Call For Testing iXsystems TruNAS 2U Storage Appliance

Book Review: Absolute OpenBSD, 2nd Edition

#OpenBSD #Unix

February 26th, 2013

Version 1.0

© Michael Dexter

One of the most collectable BSD books receives a ten-year update

Michael W. Lucas has updated his definitive OpenBSD book and plans to have it available by BSDCan. This is huge. I knew it's been awhile but was shocked when I peeled open the cover of the first edition of Absolute OpenBSD and saw the 2003 date. That was before amd64. FreeBSD had just turned 5.0. Ubuntu didn't exist yet. That was before the first BSDCan! Who was this guy?

Michael of course was then known for his Big Scary Daemons (BSD) column and 2002 title, Absolute BSD: The Ultimate Guide to FreeBSD. I was intrigued by his articles like BSD Tricks: Linux Compatibility, the Hard Way and was glad to see Absolute BSD reborn as Absolute FreeBSD in 2007. He then went somewhat silent but a new fellow came onto the scene: Peter Hansteen with The Book of PF that same year (more in BSDTalk 136). That title saw an update in 2010 and Lucas made a welcomed reappearance with SSH Mastery in 2012. While each of these titles is significant in its own right, what is not obvious is that the arrival of Absolute OpenBSD, 2nd Edition completes a holy trinity of OpenBSD, packet filter and OpenSSH documentation that is further boosted by Michael's own Network Flow Analysis and Charles Kozierok's TCP/IP Guide. The fact that all but SSH Mastery are from No Starch Press (he self-published it) suggests that the BSD community has some very loyal allies over at No Starch (more in BSDTalk 145).

You could say that a ten year wait sets some high expectations for Absolute OpenBSD, 2nd Edition but there's more to it. The first edition became a collector's item and the book even has its critics: OpenBSD is the best-documented nonproprietary Unix system in the world and you should spend your time reporting bugs in its documentation rather than reinventing the wheel. That assertion has its merits but fails to take in the reality of the situation: Not every user has a Unix background and we have a whole generation of GNU/Linux users that has learned to avoid the jumbled mess of man and info pages that is included with most distributions. GNU's Not Unix! The fact that most non-BSD man pages are typographically, rather than semantically marked up shows that a great many developers fail to grasp the whole concept of proper manual pages. That's where professional books and articles come in to complement the excellent on-disk documentation.

Accordingly, Chapter 1 of Absolute OpenBSD, GETTING ADDITIONAL HELP starts exactly where it should: with a tour of OpenBSD's manual pages, FAQ and other sources of official documentation and information. Next is installation, boot up and basic configuration with, and I hesitate to say this, refreshing verbosity. Michael not only covers the defaults that most people will choose most of the time but also covers alternative strategies such as using a serial console or customizing your disk layout. He is also clear when he is not covering a topic and will often point to where you can find the information he is side-stepping. It quickly becomes clear that Michael actually uses OpenBSD and is not a hired gun with a set word count to satisfy. He's also not alone. Henning Brauer and Peter Hansteen provided ongoing technical review of the book to the point that the air travel/chapters relationship became a meme. In short, this is not a drive-by book and you will not find any hand waving.

True to OpenBSD's priorities, the next chapters discuss how to avoid root, securing the system and even more detail about topics such as filesystems. I was happy to see clear information on how to set up unencrypted and encrypted softraid storage arrays because it was yet another thing on my endless TO DO list. Michael simply spelled it out and left me without any questions short of a few options that he suggests can be found in the bioctl(8) manual page. From there he takes a somewhat surprising turn with an overview of TCP/IP but this makes perfect sense if we consider the context: The OpenBSD Project takes networking very seriously and the TCP/IP chapter provides the foundation for the coming networking and PF chapters. In this regard, this is not an OpenBSD book but rather a Unix book with all of the requisite networking, operation and building of software. Throw in the aforementioned titles plus The Linux Command Line (available online and from, you guessed it, No Starch Press) and you have a very solid Unix curriculum. I have Will Backman of BSDTalk to thank for introducing me to The Linux Command Line which he says he uses in conjunction with OpenBSD to teach Unix regardless of its title. All that's missing is a Design and Implementation of the OpenBSD Operating System book and you have a solid set of computer science course materials. Parenthetically, Henning suggests that you look at OpenBSD's ntpd(8) as an example of a simple, cleanly-written daemon with proper privilege separation. Few people appreciate that OpenBSD is not only one of the best networking platforms available but also one of the best Unix development platforms available. There is a book topic for a poetic developer with a few months to burn.

Continuing in this academic and pragmatic spirit, Absolute OpenBSD gives a tour of the /etc directory and OpenBSD kernel configuration options along with compilation procedures though you are reminded repeatedly that only developers should explore this territory given the landmines that lie there. The book also provides a very practical guide to third party software ports and packages management and answers practical questions like "how do I determine what package this file belongs to?" Finally Michael also covers common network services, logging, updating, packet filtering and even gives a detailed tour of how to configure and customize OpenBSD's famously-stark desktop GUI. It's not so stark once you realize that it is a platform for customization and personalization.

All in all, Absolute OpenBSD is an excellent book from both an OpenBSD perspective and a Unix perspective. Michael provides security tips and reminders along the way and always with a sense of humor. You can order Absolute OpenBSD directly from No Starch Press and save 30% with the "ILUVMICHAEL" discount code and I will leave it up to you to decide which Michael they are referring to.


Copyright © 2011 – 2013 Michael Dexter unless specified otherwise. Feedback and corrections welcome.