Review, Linux E-Mail,set up, maintain, and secure a small office e-mail server

2011-03-23 » clamav, courier-imap, dovecot, Email, IMAP, POP3, postfix, procmail, SMTP, spamassassin, squirrelmail

(this is a review that i originally posted somewhere on Slashdot, IIRC)

Linux E-mail, Second Edition is a book written for Packt Publishing by I. Haycox, A. McDonald, M. Back, R. Hildebrandt, P.B.Koetter, D. Rusenko and C. Taylor. Linux E-mail contains all the information you need to handle all email services for a small organization on your own Linux server: send and receive messages, provide access to email accounts from any web browser, block as much viruses and spam as possible, possibly before they even enter your server, backup all email and configuration data in the most effective way and, finally, configuration of some email clients. Since I have written some basic tutorials on the same argument and had already configured my own email server, using almost the same set of tools described in this book, I got a free copy from Packt Publishing for review.

Target readership

“Linux E-mail” is aimed to (quoting from the Preface) “beginner or intermediate level System Administrators in small businesses, who want to set up a Linux-based e-mail server without spending a lot of time in becoming experts in individual applications”. I can only confirm this assertion, but I think there is also another, maybe larger category of Free Software users who may find this particular book useful. I refer to anybody who doesn’t run a full fledged mail server, but still wants as much protection as possible against spam and viruses on his or her Linux desktop, and maybe is also interested to know how email delivery works behind the curtains: this book can be an interesting, effective resource also for this category of readers. In any case, you do need at least a basic understanding of the structure of a Linux system and of the command line to use this book.

Structure of the book

The first chapter, “Linux and E-mail Basics”, begins by explaining why, in this Gmail era, a small organization should still bother to manage its own email by itself. After that, the chapter goes into how email travels through the Internet, which kind of servers and protocols are involved in each phase and the structure of an email message. Finally, there is one thing which I particularly appreciated, because you need to get it right if you’re managing your own email: the role of DNS and DNS records in email delivery.

After this introduction, Linux E-mail does not describe just the principles and general, theoretical criteria that you should follow when setting up a Linux email server. The authors have chosen one specific program (Postfix, Courier-IMAP, Squirrelmail, Procmail, SpamAssassin and ClamAV) for each part of the job. The book devotes at least one chapter to each of them, describing in full detail what each program does, how it works, how it fits in the big picture and how to install, configure and also test it in the most common scenarios. The last chapter, instead, explains how to backup the server, using a few tricks that you’ll find quite useful for every kind of backup, not just email ones.

What’s good

This book has two main advantages. First, it is very complete. Secondly, it has all you really need for this particular task in one place, organized in a coherent way and explained in a clear, easy to understand style. Sure, you could find almost everything that’s in the book scattered over a lot of man pages, online tutorials and mailing lists. After all, as I said, that’s just the way I myself put together my server a couple years ago. However, just because I did it myself through online docs, I can confirm that having a book like this on your desk makes you save a lot of time and (above all) makes it much easier to understand how all the pieces work together. Email handling and terminology can be quite time-consuming to figure out without assistance. I found particularly useful from this point of view the chapters about:

  • stopping spam with Postfix (good explanation, with examples, of SMTP restrictions!)
  • troubleshooting Postfix problems
  • authenticate Postfix users with Cyrus-SASL
  • dry testing and debugging procmail recipes
  • ClamAV post installation testing

Another thing that is good, in case you were wondering, is that most of this information is not going to be outdated before you even buy the book. All the programs described in Linux E-Mail are stable backend software which is quite unlikely to radically change in the short/medium term.

What’s less good

There are a few repetitions here and there, but that’s a minor issue. One thing that, personally, I found useless are the parts on compiling and installing each application from source code and those describing how to configure Microsoft Outlook and other clients to interact with the server, handle authentication and so on. This is all information that it’s already explained somewhere else and is not strictly about configuring a server. However, it’s well written and detailed as the rest of the book, so it will probably be useful to hter readers.

All in all, there is only one thing which, in my opinion, should have been mentioned in a book like this but isn’t: how to add support, at least for sending email, for the DKIM (DomainKeys Identified Mail) and SPF (Sender Policy Framework) protocols. I know that many skilled email administrators ignore (if not hate…) DKIM and SPF and understand the reasons.

However, when I set up my server I found that adding such support was necessary in order to get my email accepted without question by Hotmail and Yahoo. Maybe this is not true anymore, but I’ll leave my server as is (if it ain’t broken…). Readers starting as email administrators with “Linux E-Mail” must just remember that they’ll have to study this one topic without its support. Everything else they’ll need is in the book.