Book Reviews

Sendmail Milters: A Guide for Fighting Spam

I wish I got 100 spams a day. Even 1000 would be nice. That might sound crazy at first, but even getting 1000 a day would be an improvement. Therefore, I welcome anything that helps me combat the inevitable flood. That's where milters come in.

A milter is an email filter designed especially for sendmail. However, using sendmail as your Mail Transfer Agent is not a requirement benefiting from this book. All of the example code is written in C, but milters can be written in other languages, like Perl.

When I first opened the book I found that about a quarter of it was more or less dedicated to simply talking about spam, as well as setting up a "test" environment. This seemed a bit superfluous at first, because every one knows what spam is, right? Well, conceptually, yes, but there is a lot more to how it is done than meets the eye. First, there is a discussion of the different kinds of spam, then there are details on the tricks that spammers use to not only get their message into your inbox, but to get you to open it. This all gives you a good understanding about what it is you are trying to fight. ("Know thine enemy.") I found this to be both interesting and eye-opening.

The next section deals with setting up web and email servers to "bait" spammers into sending you email. The goal here is to provide you with enough examples of spam to be able to write your milters successfully.

The bulk of the book describes programming the actual milters. You are given code examples that deal with every aspect of the email message. Because so much spam is sent as HTML, the book also talks in detail about dealing with email sent as HTML, as well as how to deal with encoded attachments.

Although the code examples are generally straight forward, I lost myself in the code a couple of times. This is simply because code of this nature really needs to be written for efficiency and not for the novice C coder. To get the most out of this book, you really need to have a fairly strong understanding of C. Despite this, I found the explanation of the code very easy to follow, and the authors were careful to point out potential problems.

Bryan Costales and Marcia Flynt

329 pages

Addison-Wesley, 0-321-21333-5

£ 28.99, US$ 39.99, EUR 33.50

How Linux Works: What Every Superuser Should Know

How Linux Works is the kind of of computer book that is NOT trying to be everything to everybody. The author, Brian Ward, doesn't attempt to anticipate every possible question for every user. His goal, instead, is to raise the reader's knowledge of the core tools and systems of Linux. As the subtitle suggests, this book is for the Linux user who wants to become a superuser.

Ward is refreshingly direct and technical, and his thorough, uncluttered treatment of core Linux topics is a refreshing change. He covers a range of subjects but is focused primarily on the single machine environment. Chapters include "How Linux Boots," "Essential System Files, Servers, and Utilities," "Introduction to Shell Scripts," and "Configuring and Manipulating Peripheral Devices."

The steady focus on core subjects lets the author go a bit deeper into some, though not all, topics. Although I approve of the effort to go deep rather than wide, the lack of attention to some important networking topics may be a loss for some readers. The 9 page chapter on Samba seemed a bit light, and subjects like Apache and NFS come up only in the topics for further study. The book is best when discussing topics like hardware and kernel issues.

Since this book is not trying to be for everybody, no one can guarantee whether it will be right for you. If you're the kind of reader who likes screen shots and step by step procedures, you might do better with another book, but if you're looking for straight, uncluttered discussions of how to work with CUPS or the kernel, How Linux Works may be your answer.

Brian Ward

351 pages

No Starch Press, 1-59327-035-6

£ 26.56, US$ 37.95, EUR 31.90