Archive | OpenSource

Open Source means that users have the freedom to see how software works, adapt it for the own needs, fix bugs and limitations and contribute back to the community.

CentraLUG, August 6th, Special Location: Roger Trussel, Building FireFox Extensions

The monthly meeting of CentraLUG, the Concord/Central New Hampshire
chapter of the Greater New Hampshire Linux Users Group, occurs on the
first Monday of each month starting at 7 PM. Due to summer hours at the
NHTI Library, we will be meeting at the Sybase offices, 6 Loudon Road,
Suite 501, Concord, thanks to member (and Sybase employee) Larry Cook.

DIRECTIONS: From Interstate 93, take exit 14 and head east over the
Merrimack River. Immediately after the bridge, take the first right.
Drive straight back to the cornfield, then turn right and then right
again to get to the south end of the building. Walk around the building
to the right to come in the front (east) entrance. Take the elevator to
the fifth floor. Straight off the elevator is Sybase. Enter and turn
left. At the end of the hallway is the conference room.

Google Map: http://tinyurl.com/2rtc8k

Open to the public. Free admission. Tell your friends.

Roger Trussell will present a session on building Firefox extensions.
Firefox extensions are small zipped blocks of code that add new
functionality to Firefox, from a simple toolbar button to a completely
new feature. Extensions allow Firefox to stay small and unbloated.
Extensions give content providers another way to make certain features
more accessible to their end-users. We will see some quick examples of
how to build extensions for Firefox 2.x using XML and JavaScript. We
will also see a demonstration of some useful extensions available for
web content developers.

Roger Trussell is a programmer with over five years of experience in a
variety of support roles for health care, software, research, and
manufacturing environments. He has worked at many companies throughout
the Upper Valley such as DHMC, isee systems, inc. (formally known as
High Performance Systems, Inc.), and Timken Aerospace. Roger holds a
Bachelor of Science degree in Computer Science from Rensselaer
Polytechnic Institute in Troy NY. One of Roger’s main interests is
bridging the gap between programmers and end-users. He has worked on
software installer technology and he has worked in end-user support roles.

More details at about this meeting and the group are available at
http://www.centralug.org and http://www.gnhlug.org as I learn them!

Hope to see you there!

What I’m listening to…

July has found me working out more often and more consistently. One of the big challenges with staying on an exercise machine is the tedium. It is boring. I’ve found audiocasts have helped me pass the time, occupy my mind and make me feel the time spent is more worthwhile. This month and last, I’ve listened to:

  • The keynote presentations from the RedHat Summit 2007
  • Nearly all the videos from the RedHat site
  • Several weekly Technometria audiocasts
  • David Weinberger on ‘Everything is Miscellaneous
  • Chris Lydon interview David Weinberger
  • David Weinberger interviewed Cory Doctorow
  • Several Boston PHP meetings
  • The Massachusetts Technology Leadership Council’s Open Source Summit presentations (thanks Dan Bricklin!), including discussions on GPL3, the OLPC, Lightning Presentations, and more.

I’ll plug them any chance I get: the GigaVox network has some of the best, most interesting, high-quality audiocasts for techies on the web. I’m a contributing member and I encourage you to do the same.

Resistance is not futile

Tim O’Reilly notes in Update: Firefox vs. IE in OReilly Network Logs, “as of last month, Firefox passed IE, with 46% of all access to OReilly sites, vs IEs 45%.” Now, one percent is not significant, and the cause can likely be explained in a number of ways; perhaps there are more popular FOSS books than new Vista books in the past few months. But it is great to see that competition continues to prod Microsoft to compete, and inspires Mozilla to achieve.

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.

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.