The mission of the DFWUUG is to promote interest in and an understanding of UNIX All meetings are open to the public without charge. The group meets the first Thursday of the month, with the exception of
those months where the Thursday falls on or near a holiday. Everyone
is cordially invited to attend. For current information, please check
out the user group's web site www.dfwuug.org.
Collaborative Software Development (CSD) is a fairly recent phenomenon that combines the flexibility of SourceForge.net and the best practices of Open Source Development. Greg´s presentation will enlighten you about CSD and how you can bring it behind your firewall. Greg Pratt is a former Vice President and President of the Dallas Fort Worth Unix Users Group. He is a Senior Systems Engineer with VA Software (formerly VA Linux Systems)
Well, this is it - my last "President's Podium" DFWUUG folks, I've really enjoyed being your Being involved with this group has taught me a lot I want to give a special, HUGE thanks for all of the Best wishes for a great 2002!
When Brad Corbett owned the Texas Rangers, he figured that if the outfield When is something equal to something else. Is an MBA at one school
equi- In 1959 the graduating class of Shimer College put itself on the map
with the 1) Curriculum--developed
over 20 years at the University of Chicago So, what does all this mean, for courses you might take, or which your 1) Purpose: skills alone,
or skills and teambuilding. 2) Who are the students?
Backgrounds, ability, prerequisites? 3) Instructor. Instructor
knowledge, instructor techniques, ability 4) Facilities. This
includes written materials. Are they readable? 5) Time and motivation.
There is an amount of time needed to teach Considering the "cost" of training, consider two things:
A Column Devoted to Computer Security Firewall Builder The Easy Way Out of IPTables I was reading a message on the firewall-wizards mailing list recently wherein a fellow wanted to stop all TCP packets with the SYN and FIN bits set coming into his firewall. This is a desirable thing to do. Heres why: The TCP specification says that a TCP packet has six flag bits SYN, URG, PSH, RST, FIN, ACK (synchronize, urgent, push, reset, finish, and acknowledge). The specification doesnt say what to do when a packet with nonsensical combinations of flags bits arrives. One such combination is SYN and FIN set. This combination indicates the start of communication (SYN set) and the end of communication (FIN set). Clearly, this is not sensible, but bad guys on the network use packets like this to fingerprint your systems on the Internet. Depending on how the system replies to this packet, a bad guy can conjecture what sort of system is on the other end and from that, use known vulnerabilities to attack you. The best thing to do in this case is drop the packet without a reply. I thought this is easy with Darren Reeds IPFilter: block in quick log proto tcp from any to any flags SF/SF But as I read on, I found the fellow was doing this on a Linux firewall with iptables. IPFilter doesnt run on Linux, so he cant use IPFilter. The good news is iptables with Linux 2.4.x kernel does allow the inspection of the flag bits in a TCP header. So, I began to think how do you go about doing this with iptables. Hmm. There have been some significant changes with iptables over ipchains and not just in syntax. This is not as easy as it might seem at first blush. Rather than dig out the specification on iptables and delve into it, I decided it was time to look into a program I had had my eye on for some time, fwbuilder. Vadim Kurland and Vadim Zaliva have written a program called Firewall Builder to make it easy to create and maintain firewall rulesets. Firewall Builder consists of an object-oriented GUI and a set of policy compilers for various firewall platforms, like iptables. In Firewall Builder, a firewall policy is a set of rules; each rule consists of abstract objects that represent real network objects and services (hosts, routers, firewalls, networks, and protocols). Firewall Builder helps firewall administrators maintain a database of objects and allows policy editing using simple drag-and-drop operations. Preferences and object databases are stored in XML format. Once the ruleset is written, Firewall Builder compiles the ruleset into a script that implements the security policy described by the ruleset. I downloaded the source from http://fwbuilder.sourceforge.net to build the components of Firewall Builder: fwbuilder, fwbuilder iptables compiler, libfwbuilder and libfwbuilder development. I also had to download and build gtkmm-1.2.5 as Firewall Builder requires this. Everything built without a hitch once I had gtkmm-1.2.5 built as well. To start Firewall Builder, type fwbuilder & This brings up a window showing the objects that come predefined in
Firewall Builder. There are standard objects representing the standard
services such as TCP and UDP services like telnet and NFS. There are
user-defined objects for defining objects of interest to you. I clicked
on Firewall and then Insert -> Firewall. Now I have a
firewall. At this point I am presented with forms to fill in information
about the firewall such as a name. Its very important to name
your firewall something meaningful since this name will be used to create
other files related to the firewall. Hint: dont use spaces in
the name. I fill in that it is a Linux 2.4 firewall and the firewall
software, in this case, iptables. Next, go to the Interfaces tab
on the firewall and fill in the network interface names and IP addresses.
These are necessary if you have rules that are specific to an interface.
In this case, the rule is a global rule and not specific to any interface.
After all, you might get probed from the inside by one of your own guys.
Next, I selected some option on the Firewall tab: I set the log level
to warning and dont want any sessions open prior to
the start of the firewall to be considered valid. Finally, click Apply
and I have a firewall named Demo-Firewall in the layout
viewer. I expand that entry and it has a Policy and a NAT
entry. Before I get into making the Policy, I need to define
the special case I want to guard against. So, I click on open the Services
in the directory viewer. Then I open TCP under the Services.
I want to create an object that represents the specific TCP condition
I want to filter out. I pull down Insert -> TCP to create the object.
I get a form to fill in that has port information, TCP flags, a name
for this object, and commentary fields. I fill in the form with a name
of tcp-syn-fin and click on the flags SYN and FIN, and then
Apply to create the object. Now, I go back to the directory
listing and select my firewall Demo-Firewall and the Policy
underneath it. There is a rule numbered 00 with a source,
destination, and service set to Any, an action of
Deny, a time of Any and a blank comment. I drag-and-drop
my tcp-syn-fin #!/bin/sh if [ -x /usr/bin/logger ]; then modprobe ip_conntrack || exit 1 Hmmm. All this from just one rule! Lets look at what this does. The first part including the modprobes log the starting up of the firewall and make sure the necessary kernel modules are loaded. The next four lines dealing with /proc save the current state of IP forwarding, turn IP forwarding off and adjust some TCP parameters. The next three iptables commands set the default policy on the OUTPUT, INPUT, and FORWARD chain to DROP, a good policy to have. The next bit of shell manipulations clear any previous rules out of all the existing chains so the firewall starts with a clean slate. The next six iptables statements get rid of and log any TCP sessions that exist at the starting of the firewall. Again, this is starting with a clean slate. Now we get to the crux of the biscuit, as the late Frank Zappa would say, Rule 0. First, iptables creates a new chain called RULE_0. The next three iptables commands append rules to the OUTPUT, FORWARD, and INPUT chains specifying that when a new TCP connection comes in with the SYN and FIN bits set, jump to the chain named RULE_0. The iptables command sets the warning level (warning) and the message (RULE 0 Deny) that will go into syslog if the rule is matched. The next iptables command says that a match causes the packet to be unceremoniously dropped. The next three iptables commands are catchall rules in case something might be slipping in that we didnt consider; best to drop those things. The last statement restores the state of IP forwarding. Wow! All that from one rule! Talk about bang for the buck! This was just setting up one rule; if you had more (and you would in a real world firewall) the rulesets would outweigh the overhead. The important thing to note here is that we were able to abstract the idea of dropping any TCP packets with SYN and FIN set as a policy without getting mired down the intricacies of iptables. This just like using a compiler write a program instead of assembly language. Just as compilers free us from the hassles of keeping up with registers, storage locations and weird/arcane instructions and lets us abstract our problems at a higher level, Firewall Builder frees us from the hassles of keeping up with similar low level stuff and lets us abstract our security policy at higher level. Just as compilers give us more maintainable code, Firewall Builder gives us more maintainable firewalls. Check out Firewall Builder at http://fwbuilder.sourceforge.net.
A review of the book Mastering Regular Expressions, Jeffrey E. F. Friedl, O'Reilly & Associates, Inc., 1997, ISBN 1-56592-257-3, 7th printing This book has been on my reading list for a while, and I finally got around to tackling it to help with writing a section on regular expressions in a training course that I developed. What are regular expressions? According to the Perl regular expressions tutorial, "A regular expression is simply a string that describes a pattern." In a scripting language, text editor, and in a few other types of tools, these patterns can help you match text. You can pull apart pieces of the matched text for further processing, and if you'd like, you can replace parts of the text. That's a very general description of a very general tool that has uses in just about any text processing task. I've used regular expressions ("regexes" for short) for many different things, such as automated test code that checks program output against expected results, in CGI scripts that handle forms on my web page, and in my email filter. A single regex can replace dozens of lines of code that do parsing. Regexes are very compact and powerful, but that compactness also leads many people to complain that they're difficult to understand after you've written them. Regexes are combinations of /, \, ^, $, (, and many other punctuation characters, along with ordinary letters and numbers. The most extreme example, on the last page of the book, is a 6600 character monstrosity that looks somewhat like a photo mosaic when viewed from a distance. However, the book gives some techniques for making regexes more understandable, such as embedding comments, and storing pieces of a complex regex in variables and then splicing them together. To appreciate the book, you'll need to have some programming experience, or some other background that steels you for the task of reading dense jumbles of arcane symbols. The first three chapters are an introduction to regexes. Beginners may not make it past this section, but that's okay, because the book is worth the purchase just for the first three chapters. The second section, chapters four and five, discusses details about regexes. Luckily, the author doesn't dive into the computational theories behind regular expressions (if he did, we'd find that our regular expressions aren't so regular after all). Even so, this is pretty deep stuff. The third section, chapters six and seven, give details about using regexes in particular tools. Chapter seven, on Perl, comprises a full third of the book. The scripting language that's the undisputed regex champion is my favorite language, Perl. The book focuses on Perl. However, there's also reasonable coverage of other tools such as egrep, awk, tcl, GNU Emacs, plus some mentions of vi, sed, lex, Python, and Expect. There are many differences in the regex implementation among these tools, some obvious and others very subtle. This book is the best reference for sorting through the differences. This is especially useful if you're getting confused when using more than one of these tools at a time, or if you learned regexes in one tool and you're getting surprising results using another. The author tells me that he's working on an update to the book because some aspects of it are dated. "The real meat of the book -- Chapters 4 and 5 -- is as valid and useful as ever, but some of the specifics have changed. Python and TCL, for example, have changed their engines to be more Perl like," said Friedl. This means that much of the Perl-specific information will be shifted to the parts of the book are aren't tool-specific. Even accomplished script hackers are usually humbled by the masterful and comprehensive treatment of regexes that this book provides. I have been using regexes for years, and I was surprised, not so much by the advanced features that I mostly knew were there and just hadn't had the need to learn yet, but actually by the gotchas that exist even in simple expressions. Like most O'Reilly books, this book is associated with the type of animal that is shown on the cover. The author says on his web page that this is the "Hip Owls Book," distinguishing his book from the other O'Reilly owl book, Learning the UNIX Operating System. Tracking down further information from the author was not easy. All three URLs given in the appendix are defunct. Further searching turned up a pile of additional URLs that are also mostly defunct. Finally I found what looks like a home page for the book at http://public.yahoo.com/~jfriedl/regex/. This page includes a comprehensive list of errata, and an updated "About the Author" blurb, which mentions that Friedl went to work for Yahoo. I also found an interview of Friedl at amazon.com, done in 1997. The bottom line? Beginners who have some appreciation for program code will benefit from reading the first three chapters and using the rest of the book as a reference when needed. Experts who read the book all the way through will come away with their tails between their legs, significantly smarter about all the things that regular expressions can do, and quite a bit more wary about how they can get themselves into trouble. Copyright 2002, Danny R. Faught
Here is the DFWUUG program schedule to date:
Open Forum. Thanks,
This month's topic for the Security SIG will be on SNARE: Host-Based Linux Intrusion Detection.
Is your networking NOT WORKING???!!
DFWUUG Members, EXPAND YOUR TECHNICAL LIBRARY How would you like to expand your technical
library AT NO EXPENSE? You can review up to two books at a time from the
O'Reilly catalog http://www.oreilly.com and then keep the books for your
technical library. The procedure is to select the books you want to review.
Then email John Dyer at jdyer@gte.net with the names of the books, your
name and email address(s) and a phone number. John will then order the
books and will notify you when the books arrive. When you receive the
books, read them, write your review(s) and email your review to John for
publication. As you review a book, you can request another one. You can
look at the newsletter for a sample of what the reviews should look like..
John J Dyer ********************************************************************** O'Reilly User Group Program members receive 20% discount on conference prices. Register early--limited space is available. Please use the discount code *DSUG* when registering. This discount is meant for use by your current UG members only. If posting information about this conference on your website, please do not include discount information. For more details or brochures, please contact Denise Olliffe, deniseo@oreilly.com or 707-829-0515 ext 339. ********************************************************************** O'Reilly is a registered trademark of O'Reilly & Associates, Inc. All other trademarks are property of their respective owners.
UNIX
shell differences and how to change your shell
Using
sounds in applets
The Apache/Perl Integration Project
DFWUUG Members, BOOK EXCHANGE
The question is, or how do you recycle those technical
books and journals you never read anymore? The answer is, bring them to
the next DFWUUG meeting and put them on display so members can browse
through them and take home whatever is of interest. There is no monetary
reward but you may find something you want and your stuff may get recycled
through another great mind. Due to storage limitations, please be prepared
to take you leftover stuff home with you afterward. Otherwise it will
be sent to the trash. Think of it as a form of spring house cleaning.
There is a new mail list for the DFW Unix Users Group:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
How to subscribe/unsubscribe to DFWUUG mail lists. Send an e-mail to "<mail list>-request@dfwuug.org", where the name in angle brackets is the name of the mail list being subscribed or unsubscribed. For example, to subscribe to the jobs mail list, an e-mail would be sent to "jobs-request@dfwuug.org". The double quotes are delimiters and should not be included in the address. The body of the e-mail should consist of two words on one line: subscribe <mail list>. For example, to unsubscribe to the jobs mail list, the body of the e-mail would contain the following line: unsubscribe jobs. A confirmation message is sent to subscribers. Currently, the following mail lists are open to all members of
DFWUUG
The jobs mail list is for announcements of available positions and people available/looking for work. Any DFWUUG member or sponsor can Subscribe and post messages to this mail list. The leaders mail list is where the Board members handle the operations of DFWUUG. Anyone can post a message to this mail list, and any DFWUUG member can subscribe to it. In order to post a message to any mail list, you must first be subscribed to it. Receipt of a confirmation message is the signal that you are subscribed, and that you can now post a message to that mail list. Other mail lists. The notify mail list is used for general announcements from DFWUUG. It is open to any non dues-paying member. Anyone who registers at a DFWUUG event is put on the notify list. Dues-paying members are put on the newsletter (newsl) mailing list and receive all the mailings sent to the notify list members, as well as the newsletter. The newsl mail list is for members who wish to receive the DFWUUG newsletter by e-mail. Only dues-paying members and sponsors can be on this mail list, and subscription is handled by DFWUUG officials. Privacy concerns. Subscribers to DFWUUG mail lists are assured of privacy. The e-mail addresses are not given or sold to anyone. They are available only to DFWUUG mail list administrators performing mail list administratration. E-mail from a DFWUUG mail list does not contain anyone else's e-mail address, except perhaps the e-mail's author. Spam. Spam is not condoned or permitted on DFWUUG mail lists. Spammers are removed from all DFWUUG mail lists, and cannot resubscribe. Whether a particular e-mail is spam is defined by DFWUUG mail list administrators. |