This article originally appeared in the March 2001 issue of the Dæmon News Online Magazine. This is a cleaned-up version of the article with minor style edits and made it HTML5 compliant; else, the content has not been changed.
Title: The FreeBSD Corporate Networker's Guide
Author: Ted Mittelstaedt
Publisher: Addison Wesley
Although FreeBSD (and the other BSDs) have documentation available online or in the system manual, there aren't that many books published about BSD. You have the "The Complete FreeBSD" book by Greg Lehey and "The FreeBSD Handbook" by the FreeBSD Documentation Project, but other than that, there isn't a lot out there. The new book, "The FreeBSD Corporate Networker's Guide", is a great addition to the small collection of books.
The book in question covers quite a nice range of topics, from sharing the network with Windows machines to BSD advocacy, but the main focus is FreeBSD in a corporate environment. Beginners to FreeBSD might be left behind on some of the topics at first, but the author tries to keep a pace fast enough that most can keep up. Beware, there is a slight slant against Microsoft, which many people won't have a problem with. ;-)
The book's sequence is a little odd at first glance, but it grouped together in a way that people with some experience under their belt can easily jump to a particular section. Below is a quick glance of the chapters in the book.
The first two chapters cover how FreeBSD can co-exist with (and quite possibly replace) Microsoft Windows, how FreeBSD can provide fundamental network services like name resolution and can serve Windows clients with Samba. Also included in the first chapter is basic information about UNIX, a quick comparison between FreeBSD and Windows, plus a sampling of hardware that FreeBSD can run on. Some of the hardware listed is a bit dated, but for what many people want to do with FreeBSD (like running a network router, a basic file/print server, etc.) the hardware listed will work wonders.
Some beginners might want to start with the third chapter where the author hits on installing FreeBSD and how to manage a FreeBSD setup. The installation chapter goes completely in-depth on how to setup core components such as X Windows, PPP, basic ports and common issues that could arise. There isn't much on kernel compilation, but that topic alone can take up an entire book. The fourth chapter goes over the basic shells, the user environment, different types of terminals and how to get terminal access from another machine (via Telnet or ssh), and user management. For the beginners, the author dedicates about four pages to UNIX equivalents of common DOS commands, redirection (using pipes and simple ">" and "<") and superuser commands. The author rounds up the chapter by quickly covering backups, compiling programs and checking out logs.
In the fifth chapter, the author covers how FreeBSD can participate in the tangled Internet, including how to choose an ISP, using FreeBSD as a firewall with ipfw and setting up ntp. This is also where the author starts introducing Cisco fundamentals, since he does come from the ISP world and most corporate networks have some Cisco equipment. For those who are forced to setup a proxy (I feel sorry for those people), information on SOCKS, HTTP proxying and squid are covered. Rounding out the section is a very detailed discussion on network address translation, routing and how FreeBSD may not be the best solution in a situation where reliability and performance are crucial. On the other hand, there isn't much on why FreeBSD would be a good choice for a small business or a branch location where cost is a large factor and performance isn't the biggest problem. A very basic overview on using FreeBSD as a web server is given in chapter six. Those who are looking for information on PHP, Python and CGI will have to look elsewhere.
This is kind of where the book's organization gets a little quirky. One would think that the chapter(s) following web serving and getting FreeBSD on the Internet should be on serving e-mail, but instead goes into Samba and printing. It's a minor nitpick and doesn't drop my overall rating on the book.
Chapters seven and eight focus on how FreeBSD can provide services to both UNIX clients and Windows clients, which would the case in many corporations. Before entering the setup and configuration of Samba, the author goes into the basics of the FreeBSD file system and touches on both soft and hard links. The author provides information on NetBIOS and the SMB protocol, as well as setting up different kinds of Microsoft operating systems (including DOS) with a networking client. The instructions are very clear and walks the reader through every little dialog and option to make sure that things are set up right the first time. He even touches on login scripts, possible browsing issues on both a single network segment and routed networks. Chapter seven finishes up on how to install and configure Samba, permissions and how they affect Microsoft Access database files, and the problem with encrypted password support with different versions of the Windows operating systems.
Chapter eight hits on all aspects of printing; from the protocols, print spools to the meaning of "print server". He also describes how to setup lpr (Line Printer Remote) support on Windows and some Registry hacks that might be necessary under Windows NT. The remainder of the chapter goes over setting up lpd (Line Printer Daemon) and lpr on FreeBSD, making FreeBSD into a network print server, filters and checking printer usage via printer accounting. It also touches on managing the print queues and using Ghostscript to print to non-PostScript printers.
The topic of e-mail is the focus of chapter nine, including setting up and using an e-mail client, Sendmail, POP3 versus IMAP, and e-mail address naming conventions. There is also a nice overview of the terms and protocols that are used in the world of e-mail, like LDAP and PoPassd (used to allow remote users to change their account password on the mail server). Like the other chapters, the author sets aside several pages on the different Microsoft mail clients available for each Windows operating system (even a look at the vintage 16-bit client); it also includes a (long) list of known issues that are bundled with the different Microsoft mail clients. Further into the chapter, the author goes over how to install and setup a basic Sendmail configuration (configuring Sendmail alone has a book dedicated to itself). The rest of the chapter goes over what LDAP is, how to install it and how to setup clients to use it, allow e-mails to be sent and received by the public Internet (with some Cisco router configuration hints), DNS entries, mailing list services, web-based e-mail, and e-mail to fax services.
The final chapter is dedicated to spreading the word about FreeBSD. It starts off with a fairly in-depth history of BSD and the relationship between Linux and FreeBSD. The author has a slight slant towards the BSD license versus the GNU Public License, but mostly with a point of view from the commercial side. About a quarter of the chapter is dedicated to the eternal question, "Why Use FreeBSD?" The author goes into the pros and cons of FreeBSD and other operating systems (including Novell NetWare and Windows NT) as a server or network operating system. The most outstanding pro listed is the cost of the commercial solutions versus FreeBSD. Also mentioned is the key word, "advocacy" and he defines a FreeBSD advocate as: ""A FreeBSD Advocate is not someone who believe that if every computer used FreeBSD the world would be a better place." Some may or may not agree on that point of view, but it does provide a nice balance between a casual user and a "bigot."
The last portion of the chapter is dedicated to the anti-trust case against Microsoft, where Microsoft screwed up and the current growing backlash against Windows. He has a definite slant against Microsoft and their actions and does a pretty good job in clearly defining the reasons why. Those who are looking for a simple "Microsoft sucks, w00t!" scream should definitely look elsewhere. ;-)
Overall, the book does a very good job in describing how to place FreeBSD in a current network and provides a stepping stone towards BSD geekdom. There are several typos and mistakes, but no book can avoid those problems (even college textbooks can have more incorrect information than pictures). It is really nice to see another well done book about FreeBSD and I give it a nice 8.5 out of 10.
The book's official website is at http://www.freebsd-corp-net-guide.com, which also has a short errata for the book.
Article copyright © 2001–2010 Linh Pham. All rights reserved. Re-production of portions of this work, or its entirety, requires permission of the copyright holder.