Secure Architectures with OpenBSD
The godfather of OpenBSD, Theo De Raadt, was given space on the cover for a snarky comment, his blessing apparently, that the book "works in tandem with OpenBSD's manual pages. As a result it will help many users grow..."
This comment is apropos, since the OpenBSD man pages, beginning with man afterboot, are some of the best getting-started OS documentation available anywhere on the net. So it is perhaps fair that a certain justification be offered for texts on this topic. This book gives many example configurations, some shell scripts, and an organizational approach that are simply beyond what one can realistically expect from the online manual pages. So yes, Theo, this book is destined to help mere mortals grow in knowledge and skill.
One nice feature of this book is that its authors refer to Linux equivalents where appropriate, e.g., in terms of configuration and system file locations and names. This makes it an ideal text for a Linux sysadmin who wants to take OpenBSD for a test drive on the public network. Two chapters covering the OpenBSD packet filter (pf) and IPSec are the gems of this text and even advanced Linux users will likely benefit from alternative approaches to solving the same problems in the alternate universe of a different operating system.
The Start-Up and Shutdown chapter has a careful and complete walk-through of /etc/rc, the equivalent of Linux's inittab. I found this to be a useful part of the book, because the various parts of this script are not always obvious from a first read through of the shell commands. Palmer and Nazario break it down into 41 sections, each with a discrete purpose. After running through the primary boot process run commands script, a brief explanation is given of each of the seven default OpenBSD processes.
Although a close examination of a minimalistic OS setup shouldn't be foreign to any mildly accomplished sysadmin, even those of the Microsoft camp, reviewing exactly what it is that the process list tells you is always a worthwhile exercise.
Like other opera omnia, the work falls into three parts, in this case: I. Getting Started, II. Configuration and Administration, and III. Advanced Features. The index and contents occupy only 25 or so pages out of the total 500 and will readily direct the casual reader into an appropriate chapter of her choice. The index entry for chroot, for instance, will direct the reader to the section on the most commonly encountered chroot issue: dynamic content generation under apache.
Coverage of the X Window System is as minimal as it should be on a platform where the benefits derived from its use have little immediate relevance for client-side GUI applications. Mac OS X users might find the book helpful, since OpenBSD can be installed, for those willing to undergo the hassle of repartitioning, on pretty much all current hardware from Apple. Many of the recipes (apache, sshd, gdb, sudo) are directly relevant to their own Darwinian flavor. Windows users will also find various parts of this book useful, since the Services for Unix product from Microsoft/Interix is widely known to be based upon an early version of OpenBSD. Note: Microsoft here joins a very long list of BSD-license adherents in opposing the world of GPL functionality, whether this be for better or for worse. So although the audience for this text is decidedly directed at those who are taking the plunge with Puffy the Blowfish, other audiences will benefit from the insights into basic systems administration activities.
This text may also serve as potent advocacy for the systems-administration practices of BSD masters. For instance, the process of user removal from a Red Hat or Debian system versus OpenBSD's rmuser script. The lifecycle of user accounts on long-lived systems does, after all, have an end as well as a beginning, so this process deserves attention, though it may occur less frequently in growing systems it nonetheless deserves attention. Note also the detailed description of rate-limiting, packet-scrubbing, transparent filtering, and load-balancing features of the platform's packet filter. It hardly seems fair to criticize snort2pf for being immature when pf itself is a novel feature with the 3.4 openbsd kernel.
Backup and Housekeeping chapters are particularly well laid out, and include strategies, not merely howto recipes. This is an important and often-neglected body of sysadmin knowledge. The Towers of Hanoi strategy backup script that uses key-based authentication to remotely backup servers will likely be a useful tool for readers of the text who are administering a remote server that needs to have routine off-site transfer of its contents.
An explanation of how to modify the default send-only setup of sendmail starts off the chapter on mail administration. Unfortunately, there is no mention of how to set up certificates for secure IMAP or POP authentication. This is an obviously necessary part of administering an email server in which passwords are not sent in the clear and I consider it to be the most egregious omission of the book. Perhaps the authors don't see email services as a place in which BSD actively or effectively contributes. X.509 key generation is covered in the Apache section for SSL and then again under the IPSec chapter, but configuration of the popular mail serving daemons to use cryptographic authentication surely deserves a place in this text which claims "secure architectures" as its purpose.
The appendices may be worth the price of the book alone for junior sysadmins first discovering the joys of BSD. These include a walk-through of CVS basics, how to use patch and diff, kernel tuning with sysctl, how
to make sense of dmesg output, and the basics of core file analysis, interpretation of RAM dumps by gdb produced at crash time. If pkg file creation were given similar treatment, it may help the *BSD package system find a broader appeal.
If you take a "hold forever" approach to your investment in books, it might be worth waiting until the second edition. Brandon Palmer indicated in a posting to the OpenBSD journal that a rewrite of the book would
likely include greater coverage of spamd administration as well as BGP and some of the high-availability features in CARP. No timing on the second edition is available and it should be noted that everything in the text is appropriate for OpenBSD 3.4, i.e., the Robin Hood puffinfish, not the 3.5 Monty Python puffinfish. I'd expect that in two more release cycles, summer 2005, it will be time to ask around about an update to this text. The IPv6 chapter will likely need a dramatic rewrite by then since it gives helpful configuration parameters for a handful of the current crop of IPv6 v.6 applications. As it is, the book stands on its own: current and relevant. A year and a half is many generations of kernel compiles in Linux-land but only a few rounds of planned upgrades for the slower-paced approach of BSD admins.
Attention to documentation seems to be the distinguishing mark of a mature project. In that vein, the recent round of OpenBSD texts can be seen as an argument that the platform is destined for greater mainstream use. Listed here are a few other recent texts on OpenBSD. The most direct competitor to this text is Absolute BSD: Unix for the Practical Paranoid by Michael Lucas and Jordan Hubbard which has been available in bookstores now for more than a year. For greater detail on the packet filter, refer to Building Firewalls with OpenBSD and PF by Jacek Artymiak or OpenBSD Firewalling by Jorg Kutemeier which is so far only available in German. Brian Carter's text OpenBSD: Implementing the Secure UNIX Platform was not available to the reviewer at the time of this writing but is expectedly to be out in distribution shortly.
Daniel Hartmeier's quotation on the back cover stating that the book's organization will help you save time is right on target. Although time will tell whether this book becomes the de facto standard as a systems handbook or complete text on OpenBSD, it is a book you can confidently recommend to anyone who wants their first experience with OpenBSD to include learning the ropes of minimalistic, and therefore robust, secure server administration practices.
Postscript: Addison Wesley has made the index of the book available. You can purchase the Secure Architectures with OpenBSD from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, carefully read the book review guidelines, then visit the submission page.
...i.e., this.
Hopefully they've set up throttling...
The Army reading list
Little off topic but ther is a good article about Linux emulation on NetBSD over at Newsforge
Help fight continental drift.
http://web.archive.org/web/*/slashdot.org Check for yourself!
I am posting this from my TiBook. It does work fine on PowerPC, but not on a 603 machine.
OpenFirmware 3 or newer.
OpenBSD is actively developing SMP support, also if you have any spare PowerPC hardware you're not using, then donate it. I'm sure that the project could benefit from it.
"Existence of the Secure Architectures with OpenBSD text was first made public on the OpenBSD Journal in early April 2004. The OpenBSD Journal, also known as deadly.org and now undeadly.org, recently changed hands from James Phillips to Daniel Hartmeier amid several more or less obscure references to Pogues lyrics."
What the hell? Two sentences and I'm already completely lost.
Comment of the year
Step 1: Install OpenBSD, make sure to select the X packages
Step 2: Configure X
Step 3: Install desired Desktop environment or Window Manager from packages
I don't think that it would fill an entire chapter.
"I use a Mac because I'm just better than you are."
http://zeus.theos.com/deraadt/hosts.html
http://openbsd.org/images/newrack.jpg
Seriously though, they keep a wildly assorted compile farm, to periodically build/test everything. If you took back your hardware, you might not be supported for long :)
I'll bite on this flamebait:
Ask that same question of any IT security professional out there.
90% of the IT security people I know prefer using OpenBSD as their firewalls or VPN tunnel boxes. They are fast, reliable, and easy to work on.
And writing rulesets for pf is definetly MUCH easier than writing them for iptables.
Don't forget that ALL of the servers with the longest uptime are BSD-based.
/* oops I accidentally made a comment, sorry */
How can you secure something with an os that is inherently insecure? OpenBSD uses SSP kernel which makes the kernels extremely vulnerable to information leaking. The problem is that with even just one information leaking problem you can get the canopy (SSP thingy) and after that you have a free pass to almost everywhere. (Go to find an other bug to exploit it too, but anyways) SSP uses fixed canopy which is extremely dangerous.
Ok, it's just one small detail of the several hundred. But the point is, OpenBSD developers are very arrogant and although they have been told about the issues they refuse to acknownledge them and fix them. They just dig themselves a hole and crawl in without even considering the possibility of having being wrong for the last 10 years or so.
The other extremely bad thing about OpenBSD is that they mark the security fixes as umm "reliability" issues and mix them with the rest of the bugs. The only reason why there has been only "one" remotely exploitable hole in the system for the last 8 years is that it has by default nothing running.
Turn the usual things on (what you will anyways) and you are just as exploitable as with any other system. Perhaps even more. It might be even so that the only reason why OpenBSD seems to be secure in the field is that it is so obscure. No one uses it so no one realizes the tricks to exploit it. If it was as common as for instance Windows XP or some standard Linux, it would get smashed even more.
There are currently lots of unfixed security flaws in the OpenBSD that they won't fix. Perhaps ever will. Some of them have been open for couple years already. OpenBSD developers seem to be just resort to blackmouthing the reporters on the mailing lists and being stubborn about their own ways of interacting. (Causing a lot of harm.)
It is jsut good that the arpa funding was suspended and it would be good if ALL the rest of the supporters would quit too. Let that crappy monster die, please.