I've been using FreeBSD in production environments since early 2000. I've also written articles on FreeBSD administration for magazines like Sys Admin. One of my favorite aspects of FreeBSD is its ports tree, which currently offers over 15,000 applications. Although the ports tree greatly simplifies installing software on FreeBSD, there's more to most programs than just installation. Bryan Hong's "Building an Internet Server With FreeBSD 6" (BAISWF6) helps readers take those few crucial steps past the ports tree, into the world of functional, deployed services. If you need a quick guide for a variety of popular open source software on FreeBSD, BAISWF6 is for you.
This book impressed me. Mr. Hong published it himself through Lulu Press. The production quality is much higher than "Building Firewalls with OpenBSD and PF," another self-published BSD book that I liked. Aside from a few issues with grammar, I found the book to be remarkable considering one person was responsible for writing, editing, proofing, and publishing the text.
BAISWF6 does a good job sharing the information one needs to go from the end of the port installation process to the point where a service is actually doing work. The book packs a lot of information into a well-organized format.
I have a few minor comments. First, I didn't quite understand what I was supposed to do with an OpenLDAP Server. The common server configurations on page xx don't include OpenLDAP, so I only have a vague notion that it's used for directory services.
Second, I found some of the technical advice might have benefited from outside review. For example, it's best to avoid running an OpenSSH server that can fall back to protocol version 1 (as demonstrated by the SSH-1.99 server string on p. 102). It's bad form to sync a home NTP server to Stratum 1 servers; use Stratum 2 instead. It's not necessary to rebuild the kernel to support bridging or the tap device; kernel modules are available. MAC on p. 198 should be explained as Media Access Control.
From a big picture perspective, I'd like to see the protocols appendix and glossary removed, and replaced by information on keeping a server up-to-date. It's one thing to get software installed -- it's another to keep it current. Mr. Hong should cover freebsd-update (for kernel and userland binary updates), portsnap (for the ports tree), and portupgrade (to update installed ports/packages).
Overall, I recommend this book to anyone who is trying to learn how to host popular Internet services on FreeBSD. It really cuts to the chase so the reader can be doing real work in a matter of minutes. I expect to see rapid updates to this book, since the author is free to quickly make and print them.