Submission + - Linux Networking Cookbook
stoolpigeon writes: "[Editors: I've read the slashdot guidelines and tried to adhere to them as best I could. What follows is my review of a brand new O'Reilly book, the Linux Networking Cookbook. My email is bittercode@gmail.com. I can be reached at 321-695-4295 and I'm usually logged into AIM during the week as ronpeckjr. I would never ask this on a regular submission, but if this review is rejected, due to my writing, could I get a short note letting me know that and possibly what I could have done to improve it? I would really appreciate that.]
The Linux Networking Cookbook is Schroder's companion to her earlier book, The Linux Cookbook. As the title suggests, this is a set of networking 'recipes'. The scope is wide, but the recipes are concise and to the point. Schroder wastes little time getting to the focus of each section, making this an excellent reference guide for any of the technologies that are covered. For the reader interested in a deep, long running discussion of how and why things work the way they do, this is not what they want. The book is perfect though for the reader looking for examples and thorough instructions on getting things installed and running.
The back cover of the Linux Networking Cookbook says, "This wide-ranging recipe collection covers everything you need to know as a Linux network administrator, whether you're new to the job or have years of experience." I'm on the new to the job side of the spectrum when it comes to networking experience. My guess is that for the experienced administrator, there may not be a lot of depth. But the breadth of the information is such that they are very likely to find something new here. The book assumes a basic familiarity with administering Linux. Instructions are detailed but the reader will need to know how to navigate the file system, edit files, create user and group, change permissions and other similar tasks.
Like many other cookbooks, my questions were "Will I understand the recipes?", "Are these recipes within my skill level?" and "Are these things that I want to make?". Schroder has done an excellent job making everything in this book extremely clear and understandable. There is enough explanation to get the reader started, not so much that it feels slow or like she was padding for length. Anyone with even slight exposure to the command line in Linux should be able to dig right in, follow the instructions and enjoy the satisfaction of seeing these recipes work. It often felt to me like I had taken a few hours of research on Google, cut out the useless and outdated, cut out the excess verbiage, and was left with a distilled set of advice, examples and references for further reading. I really see this book as being strongest as a time saver and a great platform for learning. That answers my first two questions with an emphatic yes. Now all that is left is the question of, "Are these things that I want to make?" Here, really the best answer is to read through the table of contents. I'm going to comment on what stood out, but there are just too many subtopics covered to mention them all. So it would be worthwhile for any who might be interested in this book to take the time to read through them.
The only drawback to the book is that to really get a lot out of it, one is going to need access to some equipment. For many chapters some PCs are enough. For other chapters, purchasing hardware will probably be necessary. While this keeps the book from being perfect for everyone, I would say that it also means that the reader is going to get a solid understanding of the topics rather than one that is only theoretical. This is a strength of the book in my opinion, but it is good that the buyer is aware of this before they purchase.
Each chapter follows the same format. They begin with a brief overview of the technology and concepts for that chapter. Chapter 1, "Introduction to Linux Networking" contains only this overview, and is the shortest chapter of the book. The overview includes not only the primary concepts but what hardware will be required to work through the recipes and any software that may be required as well. The overview is followed by a series of subtopics, each presented with a problem, solution, discussion of the solution and a list of other resources. The solutions are given with instructions applicable to the Fedora and Debian distributions. I would assume that this makes the book immediately useful for the majority of linux users, as their distribution will probably be very similar to one of those two.
The second chapter is Building a Linux Gateway on a Single-Board Computer. This chapter is somewhat unique in that the recipes are all written with the goal of installing Pyramid Linux on a Soekris 4521 board. The recipes also require a CF card (or microdrive), power supply and null-modem cable. These hardware requirements mean that working through this chapter requires spending more than an insignificant amount. The Soekris board runs about $150 and then there will be the smaller costs of the other equipment. For the reader unwilling to spend the money, this chapter is not much use. On the other hand, someone who may be interested in learning this kind of embedded work and finding out more about network devices will find this to be an excellent chapter. I remember spending more on my first Mindstorms kit to start learning about embedded programming.
The third chapter is Building a Linux Firewall. This chapter has recipes to build an iptables firewall from scratch. The problems and solutions in this chapter are excellent and cover a wide ranging number of situations. Many distributions have gui tools for managing iptables, but I know I've run into problems with these applications more than once. Schroder lays out how to get around such difficulties and deal directly with iptables for everything from getting multiple SSH host keys past NAT to logging. The references to outside resources are also extremely useful as in the other chapters.
Chapter four is Building a Linux Wireless Access Point. This chapter builds on the previous two chapters. These recipes, combined with the previous recipes, and once again pointed at a devoice running pyramid linux, will have the reader building a very capable wireless access point. These three chapters work together as a very nice unit that could be seen a little costly for the hobbiest or as incredibly inexpensive for the network administrator. I think that they offer very attractive options to the shop with a smaller budget but a reluctance to settle on less capable hardware.
Chapter five takes a turn and is Building a VoIP Server with Asterisk. This chapter can be done with a few pcs, and hardware that allow for putting sound in and getting sound out. I found the chapter to be a little difficult to follow but I have absolutely no experience with telecommunications. I think that anyone else in my position may need to do some other supplementary reading (Schroder points out plenty) and an allowance for plenty of time to expirement and learn. Like the other chapters, the coverage is wide, and given enough time readers could have a very capable system built with the guidance given in this chapter.
Chapter six is Routing with Linux. Unlike chapters two and four, the recipes in this chapter are written assuming Debian or Fedora as opposed to Pyramid Linux. Schroder starts with calculating subnets and moves on quickly to static and dynamic routing.
Chapters seven, eight, nine and ten are all about connecting remotely. Seven is Secure Remote Administration with SSH. The basics are covered as well as hardening SSH, tunneling X Windows securely and even sshfs. I've personally spent a great deal of time tracking down little bits of information for many of these, and here they are all collected together in a very easy to read and use format. Chapter eight is Using Cross-Platform Graphical Desktops. This chapter covers rdesktop, FreeNX and VNC. The majority of the chapter focuses on FreeNX and VNC. The VNC portions give some very nice recipes for working securely and in a mixed environment that includes windows machines. I work in just such an environment, and I look forward to being able to reference this book on those occasions when I need to connect to one of our Windows servers. It doesn't happen too often, and that makes a reliable reference that much more valuable. Chapter nine is Building Secure Cross-Platform Virtual Private Networks with OpenVPN. The recipes begin with instructions on setting up a lab to work with OpenVPN and test things without interfering with the rest of a network. This is a quick chapter and lays out setting up the server and connecting with clients. Chapter ten is similar to nine but has recipes to build a Linux PPTP VPN server.
Chapters eleven and twelve move things back inside the LAN. They are Single Sign-on with Samba for Mixed Linux/Windows LANs and Centralized Network Directory with OpenLDAP. The recipes include migrating away from and into Windows networking solutions. I can see the value here not only for network administrators, but also Linux system administrators who may find themselves needing to integrate into a predominately Windows environment. I know there are often questions on Slashdot about getting Linux in the door. Well, for those who succeed, these chapters could come in very handy.
Chapters thirteen and fourteen are about network monitoring using Nagios and MRTG. The recipes cover a wide number of monitoring options and could really get an IT shop on well on their way from finding out about outages from their users, to being truly on top of their network.
Chapter fifteen is a quick treatment of IPv6. Chapter 16 covers network installs. Chapters seventeen and eighteen cover administration via serial console directly and over a modem. These tried and true methods are probably less relied upon than in the past, but they are covered well and it speaks to the thorough coverage of the book. Chapter nineteen closes the book with a host of generic recipes centered around troubleshooting network issues. This is a solid chapter, not just a quick troubleshooting grid tacked on to the end of the book. There are three appendices. The first is a list of recommended resources that is dominated by O'Reilly titles, though there are others. The second is a glossary and the third is a very useful kernel building reference.
The index is decent. It is not exceptional, but it is not bad either. This is somewhat alleviated by the fact that the book comes with access to it on Safari for 45 days. There is also a web site with all of the examples available for download. The author's website is also a good launch point for related articles and information."
The Linux Networking Cookbook is Schroder's companion to her earlier book, The Linux Cookbook. As the title suggests, this is a set of networking 'recipes'. The scope is wide, but the recipes are concise and to the point. Schroder wastes little time getting to the focus of each section, making this an excellent reference guide for any of the technologies that are covered. For the reader interested in a deep, long running discussion of how and why things work the way they do, this is not what they want. The book is perfect though for the reader looking for examples and thorough instructions on getting things installed and running.
The back cover of the Linux Networking Cookbook says, "This wide-ranging recipe collection covers everything you need to know as a Linux network administrator, whether you're new to the job or have years of experience." I'm on the new to the job side of the spectrum when it comes to networking experience. My guess is that for the experienced administrator, there may not be a lot of depth. But the breadth of the information is such that they are very likely to find something new here. The book assumes a basic familiarity with administering Linux. Instructions are detailed but the reader will need to know how to navigate the file system, edit files, create user and group, change permissions and other similar tasks.
Like many other cookbooks, my questions were "Will I understand the recipes?", "Are these recipes within my skill level?" and "Are these things that I want to make?". Schroder has done an excellent job making everything in this book extremely clear and understandable. There is enough explanation to get the reader started, not so much that it feels slow or like she was padding for length. Anyone with even slight exposure to the command line in Linux should be able to dig right in, follow the instructions and enjoy the satisfaction of seeing these recipes work. It often felt to me like I had taken a few hours of research on Google, cut out the useless and outdated, cut out the excess verbiage, and was left with a distilled set of advice, examples and references for further reading. I really see this book as being strongest as a time saver and a great platform for learning. That answers my first two questions with an emphatic yes. Now all that is left is the question of, "Are these things that I want to make?" Here, really the best answer is to read through the table of contents. I'm going to comment on what stood out, but there are just too many subtopics covered to mention them all. So it would be worthwhile for any who might be interested in this book to take the time to read through them.
The only drawback to the book is that to really get a lot out of it, one is going to need access to some equipment. For many chapters some PCs are enough. For other chapters, purchasing hardware will probably be necessary. While this keeps the book from being perfect for everyone, I would say that it also means that the reader is going to get a solid understanding of the topics rather than one that is only theoretical. This is a strength of the book in my opinion, but it is good that the buyer is aware of this before they purchase.
Each chapter follows the same format. They begin with a brief overview of the technology and concepts for that chapter. Chapter 1, "Introduction to Linux Networking" contains only this overview, and is the shortest chapter of the book. The overview includes not only the primary concepts but what hardware will be required to work through the recipes and any software that may be required as well. The overview is followed by a series of subtopics, each presented with a problem, solution, discussion of the solution and a list of other resources. The solutions are given with instructions applicable to the Fedora and Debian distributions. I would assume that this makes the book immediately useful for the majority of linux users, as their distribution will probably be very similar to one of those two.
The second chapter is Building a Linux Gateway on a Single-Board Computer. This chapter is somewhat unique in that the recipes are all written with the goal of installing Pyramid Linux on a Soekris 4521 board. The recipes also require a CF card (or microdrive), power supply and null-modem cable. These hardware requirements mean that working through this chapter requires spending more than an insignificant amount. The Soekris board runs about $150 and then there will be the smaller costs of the other equipment. For the reader unwilling to spend the money, this chapter is not much use. On the other hand, someone who may be interested in learning this kind of embedded work and finding out more about network devices will find this to be an excellent chapter. I remember spending more on my first Mindstorms kit to start learning about embedded programming.
The third chapter is Building a Linux Firewall. This chapter has recipes to build an iptables firewall from scratch. The problems and solutions in this chapter are excellent and cover a wide ranging number of situations. Many distributions have gui tools for managing iptables, but I know I've run into problems with these applications more than once. Schroder lays out how to get around such difficulties and deal directly with iptables for everything from getting multiple SSH host keys past NAT to logging. The references to outside resources are also extremely useful as in the other chapters.
Chapter four is Building a Linux Wireless Access Point. This chapter builds on the previous two chapters. These recipes, combined with the previous recipes, and once again pointed at a devoice running pyramid linux, will have the reader building a very capable wireless access point. These three chapters work together as a very nice unit that could be seen a little costly for the hobbiest or as incredibly inexpensive for the network administrator. I think that they offer very attractive options to the shop with a smaller budget but a reluctance to settle on less capable hardware.
Chapter five takes a turn and is Building a VoIP Server with Asterisk. This chapter can be done with a few pcs, and hardware that allow for putting sound in and getting sound out. I found the chapter to be a little difficult to follow but I have absolutely no experience with telecommunications. I think that anyone else in my position may need to do some other supplementary reading (Schroder points out plenty) and an allowance for plenty of time to expirement and learn. Like the other chapters, the coverage is wide, and given enough time readers could have a very capable system built with the guidance given in this chapter.
Chapter six is Routing with Linux. Unlike chapters two and four, the recipes in this chapter are written assuming Debian or Fedora as opposed to Pyramid Linux. Schroder starts with calculating subnets and moves on quickly to static and dynamic routing.
Chapters seven, eight, nine and ten are all about connecting remotely. Seven is Secure Remote Administration with SSH. The basics are covered as well as hardening SSH, tunneling X Windows securely and even sshfs. I've personally spent a great deal of time tracking down little bits of information for many of these, and here they are all collected together in a very easy to read and use format. Chapter eight is Using Cross-Platform Graphical Desktops. This chapter covers rdesktop, FreeNX and VNC. The majority of the chapter focuses on FreeNX and VNC. The VNC portions give some very nice recipes for working securely and in a mixed environment that includes windows machines. I work in just such an environment, and I look forward to being able to reference this book on those occasions when I need to connect to one of our Windows servers. It doesn't happen too often, and that makes a reliable reference that much more valuable. Chapter nine is Building Secure Cross-Platform Virtual Private Networks with OpenVPN. The recipes begin with instructions on setting up a lab to work with OpenVPN and test things without interfering with the rest of a network. This is a quick chapter and lays out setting up the server and connecting with clients. Chapter ten is similar to nine but has recipes to build a Linux PPTP VPN server.
Chapters eleven and twelve move things back inside the LAN. They are Single Sign-on with Samba for Mixed Linux/Windows LANs and Centralized Network Directory with OpenLDAP. The recipes include migrating away from and into Windows networking solutions. I can see the value here not only for network administrators, but also Linux system administrators who may find themselves needing to integrate into a predominately Windows environment. I know there are often questions on Slashdot about getting Linux in the door. Well, for those who succeed, these chapters could come in very handy.
Chapters thirteen and fourteen are about network monitoring using Nagios and MRTG. The recipes cover a wide number of monitoring options and could really get an IT shop on well on their way from finding out about outages from their users, to being truly on top of their network.
Chapter fifteen is a quick treatment of IPv6. Chapter 16 covers network installs. Chapters seventeen and eighteen cover administration via serial console directly and over a modem. These tried and true methods are probably less relied upon than in the past, but they are covered well and it speaks to the thorough coverage of the book. Chapter nineteen closes the book with a host of generic recipes centered around troubleshooting network issues. This is a solid chapter, not just a quick troubleshooting grid tacked on to the end of the book. There are three appendices. The first is a list of recommended resources that is dominated by O'Reilly titles, though there are others. The second is a glossary and the third is a very useful kernel building reference.
The index is decent. It is not exceptional, but it is not bad either. This is somewhat alleviated by the fact that the book comes with access to it on Safari for 45 days. There is also a web site with all of the examples available for download. The author's website is also a good launch point for related articles and information."