Archive | Technology

Developers Increasingly Targeting non-Windows Platforms

“Windows dominance on the client is cracking, according to the latest release of Evans Data Corp’s North American Development Survey. Targeting of the Windows OS has declined by 12% from a year ago, continuing a two-year gradual decline. Currently 64.8% of North American developers are targeting some version of Windows, as opposed to 74% last year and this is expected to drop another 2% in the coming year. Although Windows remains the largest market segment, Linux targeting has increased by 34% from 8.8% a year ago to 11.8% today.”

Source: http://www.evansdata.com/n2/pr/releases/WindowsInDecline2007.shtml

Via: http://holdenweb.blogspot.com/2007/07/developers-migrating-away-from-windows.html

The BFC Computing Weblog : Ditching Linux

In the The BFC Computing Weblog, Bill McGonigle explains how Ditching Linux is actually a good case study for why Free/Open Source Software is better than proprietary software. In a word: standards. Bill swaps Linux for BSD, Mac OS for Linux and OpenSolaris for Linux and everything still works.

Brute Force Detection (BFD) script for vsftpd

vsftpd is the “very secure file transfer protocol daemon” and a great product to use for file transfers. Unfortunately, a bunch of script kiddies and zombies runs scripts guessing the 2283 most common user name and password combinations. Sometimes, I’ll see several of these runs of login attempts in a single day, peaking one day at over 13 thousand bogus login attempts. I resent the amount of time, resources, bandwidth and power my server has to spend rejecting these attempts.

Last year, I blogged about the script Brute Force Detection that works with many servers and reads the logs to ban repeated failed login attempts. Unfortunately, it did not have the settings to read vsftpd generated logs, and there were not any directions simple enough for me to understand to set one up. A year passes, I read more, learn more, expecially the great Man Page of the Month sessions at MonadLUG, and I find a couple of hours to hack at this, motivated by yet another log report filled with vsftpd login attempts. Here’s what I did:

BFD uses rules files that are portions of scripts customized for the particular log to read, the messages to look for, and the locations at which the IP addresses of the offending attacker can be found. When each rule file in turn is read into the main BFD script, it becomes part of a set of commands that slices and dices the log, finds the (adjustable) number of excessive attempts, and issues the commands to ban attempts from that IP address. The trick is figuring out what commands you need to implement to return the stream of IP addresses in the correct format. Here’s an example, the sshd rule file:

REQ="/usr/sbin/proftpd"
if [ -f "$REQ" ]; then
LP="/var/log/secure"
TLOG_TF="proftpd"
TRIG="15"

## PROFTP
ARG_VAL=`$TLOGP $LP $TLOG_TF | grep -w proftpd | grep -iwf $PATTERN_FILE | tr '[]' ' ' | tr -d '()' | awk '{print$10" "$13}' | tr -d ':' | awk '{print$1":"$2}' | grep -E '[0-9]+'`
fi

Boy, is that inscrutable! Here’s a quick tour: REQ is the required file (the binary that runs proftpd) so the script only runs if there is such a file (“fi” is the shell script equivalent of “if” – cute!). The other variables are used to feed the main processing line, starting with ARG_VAL. This line processes the log (named LP) through a series of pipes that filters the result down to the items that need to be processed. Grep processes lines through Globally searching, using Regular Expressions and Prints them through to the next command in the pipe. TR translates characters from one set to another, or -Deletes them. Awk is a simple text processing language, really handing for tricks like printing the tenth and thirteenth words out of a line.

Here’s the trick to working this out: take a log file you know has your suspect violations, use cat to feed it into the beginning of the pipe described above, and add item-by-item to the pipe to figure out what each does and what the final result looks like, in this case a text file IP Addresses and login names, something like:

192.168.1.1:fred
192.168.1.1:fred
192.168.1.1:fred
192.168.1.1:fred
192.168.1.1:barney
192.168.1.1:charlie
192.168.1.1:dave
192.168.1.1:eric

This is what BFD gets fed bac k to it. Then, it counts the number of attempts, compares that against the TRIG value set above, and if it exceeds the trigger level, executes the command (set in BFD’s configuration file, conf.bfd) to ban the offending attacker. (It also optionally sends an email to the admin, a good idea to ensure you’ve got things set up properly.)

Now, your installation of vsftpd may be a little different from mine, your logs may have different names and columns in different orders, so use this script only after testing out that it works properly with your configuration. Best of luck with it. Here’s my implementation of a script to detect vsftpd script kiddie attacks:

REQ="/usr/sbin/vsftpd"
if [ -f "$REQ" ]; then
LP="/var/log/messages"
TLOG_TF="vsftpd"
TRIG="15"

## VSFTPD
ARG_VAL=`$TLOGP $LP $TLOG_TF | grep -w vsftpd | grep -i rhost | grep -iwf $PATTERN_FILE | awk '{print $13":"$12}'| tr -d '[]()?@'| cut -d = -f 2,4 | grep -E '[0-9]+'`
fi

The cut command is a new one here: like the use of awk it lets you pick particular columns to slice out of the line, but also gives you the option to specify the delimiter that sets off the columns. In this case, I use cut to pick off the second half of two columns that are formatted as “rhost=192.168.1.1” and “ruser=badguy@badplace.com” to pick off the second values from each of those columns.

DLSLUG notes, 7-June-2007

The Dartmouth – Lake Sunapee Linux User Group held their meeting on the usual first Thursday, but at a new location: the Dartmouth Regional Technology Center, where Bill McGonigle has recently set up his new offices. Nice place!

Seven attendees found their way to the meeting, and we had an informal chat covering a wide range of issue: the challenges of single-person consultancies, the business of consulting, Nagios, Dartware, a new version of Logo from MIT, having a presence at Hanover’s Street Fest (July 28, btw).

Bill had an interesting proposal: that the group create a “chuck box” (Boy Scouts’ term, ref: http://www.troop168.net/forms/patrolboxa.htm) that could contain a GNHLUG-booth-in-a-box: a banner, handouts, a tent/canopy,… what else? Interesting idea.

Bill also recommended we check out http://www.zazzle.com if we’re considering making promotional items.

Good times had by all. No DLSLUG meeting in July; instead, you’re encouraged to come to the GNHLUG-wide BBQ July 15th. Hope to see you there!

MonadLUG meeting notes, 14-June-2007: Ed Haynes of WindRiver: real-time and Linux

Bill Sconce posted the notes from the MonadLUG meeting of 14-June-2007, one I had to miss due to client projects. It sounds like it was a really interesting meeting. The push to tweak the kernel of Linux to be responsive in a real-time environment benefits us all, as some portions of that specialized work can be rolled into the main-line kernel code. This is one of the great benefits of Open Source, where developers “scratching their itch” – working on their specific needs – can contribute back to the greater community at little or no cost to them.

I heard a similar sentiment voiced at FUDCon ’07 Boston in presentations about the One Laptop Per Child machines: in tracing down some of the code that was running down the batteries on these cute little laptops, the OLPC crowd found entire classes of code that were working fine on desktop and server machines plugged into the wall, but wasting CPU cycles when a different algorithm could be implemented that was more power-friendly. This doesn’t just benefit the OLPC crowd; some of their work goes back into mainline kernels where it makes everyone’s laptop battery last longer, server stacks idle cooler, requiring less AC power and less Air Conditioning power, lowering the heat-disapation requirements of data centers, and slowing global warming. Yet another case of Open Source saving the world.

ongoing · I’ve Seen This Movie

Tim Bray is ticked and he’s not going to take it any more: in I’ve Seen This Movie, Tim blogs,

One would assume that the world’s largest software company, when facing a technology choice, would take the trouble to actually, you know, understand the technologies involved, but the evidence doesn’t support that assumption.
Why? · The thing is, I’ve seen this movie before: The movie where there’s an emerging standard that’s got some buzz and looks promising and maybe it’ll raise the tide and float all our boats a little higher, and then Microsoft says they won’t play.

Geez. Nothing new on the internet but repeats. There’s a great conclusion. Worth reading the entire post.

MonadLUG, 14-June-2007: Ed Haynes: Real-time in Linux

MonadLUG is fortunate this month to have Ed Haynes of Wind River make a presentation on Real-time processing in Linux. Group coordinator Charlie Farinella posts the announcement:

Who: Ed Haynes, Wind River
What: Real-Time
Date: Thursday June 14, 2007
Time: 7:00PM
Where: SAU 1 office, 106 Hancock Rd., Peterborough
http://wiki.gnhlug.org/twiki2/bin/view/Www/MonadLUG

Linux is finding itself used in more applications that can be characterized as “Real Time”. What is a Real-Time system? What impact does it have to the Linux OS, and how has Linux evolved to better meet real-time challenges? What’s the difference between “soft” and “hard” real-time? A live demonstration will be held to characterize the performance of difference linux kernels.

Presenting will be Ed Haynes from Wind River. Ed currently serves as a technical resource for the New England Wind River region. He has 10 years experience as a software developer on embedded realtime systems and also led IPv6 development at Nortel.

Sounds like a good meeting!

Powered by WordPress. Designed by Woo Themes

This work by Ted Roche is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States.