<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Erics Tech Blog &#187; Book Reviews</title>
	<atom:link href="http://eric.lubow.org/category/book-reviews/feed/" rel="self" type="application/rss+xml" />
	<link>http://eric.lubow.org</link>
	<description>Thoughts, musings, and other idealistic (sometimes useful) systems and development hoopla.</description>
	<lastBuildDate>Fri, 18 Nov 2011 14:56:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>MySQL for Python</title>
		<link>http://eric.lubow.org/2010/book-reviews/mysql-for-python/</link>
		<comments>http://eric.lubow.org/2010/book-reviews/mysql-for-python/#comments</comments>
		<pubDate>Mon, 27 Dec 2010 07:10:22 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=812</guid>
		<description><![CDATA[I am always for using the right tool for the right job. A lot of time, that tool is Python. I have always had trouble finding solid documentation on using MySQL with Python. There was generally enough to get by, but the more the merrier. Enter MySQL for Python by Albert Lukaszewski. As I mention [...]]]></description>
			<content:encoded><![CDATA[<p>I am always for using the right tool for the right job.  A lot of time, that tool is Python.  I have always had trouble finding solid documentation on using MySQL with Python.  There was generally enough to get by, but the more the merrier.  Enter MySQL for Python by Albert Lukaszewski. <span id="more-812"></span> <div id="attachment_813" class="wp-caption alignright" style="width: 110px"><a href="http://eric.lubow.org/wp-content/uploads/2010/12/mysql_for_python.jpg"><img src="http://eric.lubow.org/wp-content/uploads/2010/12/mysql_for_python.jpg" alt="MySQL for Python Cover" title="MySQL for Python Cover" width="100" height="129" class="size-full wp-image-813" /></a><p class="wp-caption-text">MySQL for Python</p></div></p>
<p>As I mention in most of my reviews, on the of the things I love about Packt Publishing books is that they typically follow the same pattern: installation, teaching, project, summary.  And my favorite piece is the mini projects given at the end of each chapter.  It&#8217;s a little reality check for the reader reminding them that everything that they are doing has a real life application.</p>
<p>So skipping the installation chapter and jumping right in to the teaching, there is a lot of discussion about how to do the common stuff that one does in MySQL through Python.  If you have a lot of experience with MySQL, then this is a handy reference.  I also really like the fact that scattered throughout the book is information on becoming a better programmer (like tradeoffs on memory efficiency vs. performance).</p>
<p>Chapter 4 contained information about exception handling.  Just like previous chapters, the amount of information on the handling of warnings and exceptions exceeds the boundaries of just MySQL in Python.  This was a great review for any Python programmer.  No need for further discussion as this chapter is available from Packt Publishing <a href="https://www.packtpub.com/sites/default/files/0189OS-Chapter-4-Exception-Handling.pdf">here</a>.</p>
<p>The next few chapters deal with data manipulation in Python.  This includes INSERTs, UPDATEs, DELETEs, etc.  Chapter 8 specifically deals with user management in MySQL.  This is a great skill to have regardless of the interface that you are using to tie into MySQL.  Most programmers neglect the concept of administration and leave it to the DBAs or the SysAdmins. Albert takes the reader through some admin exercises including user management, backup and recovery, and accessing the MySQL meta information like <em>information_schema</em> tables.  There was also discussion about the various storage engines which was unexpected.</p>
<p>Bouncing backwards a little was a lesson on the string and aggregation functions built into MySQL.  A lot of these capabilities are usually handled programatically and not off-loaded to the database like it should be.  Again, this is a great refresher (or even initial) lesson for any programmer who spends a lot of time building and maintaining complex queries.</p>
<p>Overall this book was another great teaching tool put forth by the folks at Packt.  The audience is definitely not at the beginner Python programmer, but an intermediate level developer would have no issues understanding everything.  You can find this book either at <a href="http://www.amazon.com/MySQL-Python-Albert-Lukaszewski/dp/1849510180">Amazon</a> or directly from <a href="https://www.packtpub.com/mysql-for-python-database-access-made-easy/book">Packt Publishing</a>.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2010/book-reviews/mod-security-2-5-by-magnus-mischel/' rel='bookmark' title='Mod-Security 2.5 by Magnus Mischel'>Mod-Security 2.5 by Magnus Mischel</a></li>
<li><a href='http://eric.lubow.org/2009/python/python-multiprocessing-pools-and-mysql/' rel='bookmark' title='Python Multiprocessing Pools and MySQL'>Python Multiprocessing Pools and MySQL</a></li>
<li><a href='http://eric.lubow.org/2007/book-reviews/building-telephony-systems-with-asterisk/' rel='bookmark' title='Building Telephony Systems With Asterisk'>Building Telephony Systems With Asterisk</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2010/book-reviews/mysql-for-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mod-Security 2.5 by Magnus Mischel</title>
		<link>http://eric.lubow.org/2010/book-reviews/mod-security-2-5-by-magnus-mischel/</link>
		<comments>http://eric.lubow.org/2010/book-reviews/mod-security-2-5-by-magnus-mischel/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 10:30:05 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[mod_security]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=509</guid>
		<description><![CDATA[Being a SysAdmin (as most of you who read this blog regularly know), I love to look at logs to solve problems. If there is an issue, the first thing I always do is look at the logs to see what went wrong. Even when I am writing programs, I build debugging in from the [...]]]></description>
			<content:encoded><![CDATA[<p>Being a SysAdmin (as most of you who read this blog regularly know), I love to look at logs to solve problems.  If there is an issue, the first thing I always do is look at the logs to see what went wrong.  Even when I am writing programs, I build debugging in from the beginning to make sure I know what&#8217;s going on at all times (especially when something goes wrong). <span id="more-509"></span> <div id="attachment_510" class="wp-caption alignright" style="width: 160px"><a href="http://eric.lubow.org/wp-content/uploads/2010/01/mod_security_cover.jpg"><img src="http://eric.lubow.org/wp-content/uploads/2010/01/mod_security_cover-150x150.jpg" alt="Mod Security 2.5 Cover" title="Mod Security 2.5" width="150" height="150" class="size-thumbnail wp-image-510" /></a><p class="wp-caption-text">Mod Security 2.5</p></div></p>
<p>One of my favorite things about mod_security is that (amongst other things), it provides logging where none was provided.  In fact, there is a whole chapter dedicated to it (chapter 4 on audit logging).  And thus the first chapter I went to (just for fun).  So I started flipping back and forth between chapters 2 (writing rules) and 4 (audit logging) to create my ruleset.  I quickly realized that it was going to be a pain to do it that way.  So I sucked it up and started reading the book.  I normally hate doing that because typically technical books read like watching paint dry, but this one read fairly easily.  I also happen to really like the type face conventions used by Packt Publishing to make examples separate from text separate from whatever else needs to stand out.</p>
<p>I skimmed chapter 1 because I not only have built programs including Apache modules in my time, but I have also setup mod_security 1 before.  This is why I was so excited to dive into this book since it has been a while and I wanted to see what has changed in mod_security over the years.</p>
<p>Right into chapter 2, I wrote a few logging rules and some protection from SQL injection.  And then I tried out the recipe to stop all visitors from the US from accessing the web site.  Needless to say that worked, so I apologize for the few min of downtime you all may have experienced.</p>
<p>Chapter 3 was inevitably about performance.  This is always a concern amongst admins.  Most of your fears are assuaged by chart after comparison chart of how Apache works under the load of <em>httperf</em> along with a few experience based suggestions on how to reduce Apache&#8217;s memory footprint and other helpful items.  It even tails off with optimizing how you employ regular expressions.</p>
<p>Now chapter 4 again, audit logging.  The logs themselves have quite a bit of information in them.  Although they can be read, it can be pretty tedious.  The mod_security console discussed in the book makes this a lot easier.</p>
<p>Virtual patching is an interesting concept that allows for the ability to apply a patch for a vulnerability without one being supplied by the vendor.  There are a few examples, including the Twitter worm of 2009 of where it can be practically applicable.  It is covered pretty extensively in chapter 5.</p>
<p>Chapter 6 is actually the meat of the book.  It is where the commonly used recipes are.  In fact, I have added more than a few of these recipe to some of the various web servers I run.</p>
<p>As a admin, one is usually concerned with security.  Let&#8217;s face it, why else would you be looking into mod_security?  If you are into host security, then have a look at chapter 7 about using chroot jails.  There is a section discussing where this is appropriate and if it is, how to implement it without having to put Apache fully in a chroot jail.</p>
<p>Just like any tool with an archaic interface for rules (like the original days of SELinux or configuring Nagios), there inevitably comes GUI tools. Remo is one of those tools.  One of the coolest things about Remo (in my opinion) is that its written in Rails and can therefore be run using either Webrick or another Rails engine (like Phusion Passenger in Apache or Mongrel).  If you don&#8217;t want to dive too heavily into the Apache config files, then give Remo a shot.</p>
<p>The book finishes up by showing an fairly detailed example ruleset for a live web application.  And really, who doesn&#8217;t have one of those (live web application).</p>
<p>Other than the one major editing flaw of labeling chapter 5 as chapter 9, the book was excellent.  Not only would I recommend this book to other SAs, I already have.  Besides being very readable, there are many recipes in this book that are immediately applicable and easily implemented.  Mod_security has a fairly low barrier to entry and the simplicity in this book proves it.  With the type of data and the amount of data being stored in web applications these days, extra security is a must.  </p>
<p>You can purchase the book from <a href="http://www.amazon.com/exec/obidos/tg/detail/-/1847194745">Amazon</a> or find other locations through <a href="http://www.packtpub.com/modsecurity-2-5/book">Packt Publishing</a>.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2009/book-reviews/modsecurity-2-5-review-coming/' rel='bookmark' title='Modsecurity 2.5 Review Coming'>Modsecurity 2.5 Review Coming</a></li>
<li><a href='http://eric.lubow.org/2010/book-reviews/mysql-for-python/' rel='bookmark' title='MySQL for Python'>MySQL for Python</a></li>
<li><a href='http://eric.lubow.org/2007/book-reviews/building-telephony-systems-with-asterisk/' rel='bookmark' title='Building Telephony Systems With Asterisk'>Building Telephony Systems With Asterisk</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2010/book-reviews/mod-security-2-5-by-magnus-mischel/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Modsecurity 2.5 Review Coming</title>
		<link>http://eric.lubow.org/2009/book-reviews/modsecurity-2-5-review-coming/</link>
		<comments>http://eric.lubow.org/2009/book-reviews/modsecurity-2-5-review-coming/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 11:00:12 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/?p=420</guid>
		<description><![CDATA[The folks over at Packt Publishing are kind enough to send me out an advance copy of the upcoming Modsecurity book by Magnus Mischel. I have written about mod security before, but really haven&#8217;t had a chance to look into it recently. I am anxious to see where its advanced to in version 2.5. If [...]]]></description>
			<content:encoded><![CDATA[<p>The folks over at <a href="http://www.packtpub.com/">Packt Publishing</a> are kind enough to send me out an advance copy of the upcoming <a href="http://www.packtpub.com/modsecurity-2-5/book">Modsecurity book</a> by <a href="http://www.packtpub.com/author_view_profile/id/373">Magnus Mischel</a>.  I have written about mod security <a href="http://eric.lubow.org/2007/engarde/configuring-mod_security-for-engarde-secure-linux/">before</a>, but really haven&#8217;t had a chance to look into it recently.  I am anxious to see where its advanced to in version 2.5.</p>
<p>If you don&#8217;t know anything about <a href="http://www.modsecurity.org/">mod_security</a>, I encourage you to read up on it in the interim.</p>
<p>Stay tuned for the review.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2010/book-reviews/mod-security-2-5-by-magnus-mischel/' rel='bookmark' title='Mod-Security 2.5 by Magnus Mischel'>Mod-Security 2.5 by Magnus Mischel</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2009/book-reviews/modsecurity-2-5-review-coming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Telephony Systems With Asterisk</title>
		<link>http://eric.lubow.org/2007/book-reviews/building-telephony-systems-with-asterisk/</link>
		<comments>http://eric.lubow.org/2007/book-reviews/building-telephony-systems-with-asterisk/#comments</comments>
		<pubDate>Mon, 12 Mar 2007 10:30:30 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Book Reviews]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/blog/2007/book-reviews/30/building-telephony-systems-with-asterisk/</guid>
		<description><![CDATA[Date: 12 Mar 2007 The next generation in telephony in combination with FOSS (Free and Open Source Software) is Asterisk. With the Open Source community revolutionizing telephony, Askterisk is the forging the way ahead. If you don&#8217;t know what Asterisk is, then you are going to be left behind. Vitals: Title Building Telephony Systems With [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Date:</strong> 12 Mar 2007<br />
The next generation in telephony in combination with FOSS (Free and Open Source Software) is Asterisk.  With the Open Source community revolutionizing telephony, Askterisk is the forging the way ahead.  If you don&#8217;t know what Asterisk is, then you are going to be left behind.</p>
<table>
<th><strong>Vitals:</strong>
</td>
<tr>
<td><strong>Title</strong></td>
<td>Building Telephony Systems With Asterisk</td>
</tr>
<tr>
<td><strong>Author</strong></td>
<td>David Gomillion &#038; Barrie Dempster</td>
</tr>
<tr>
<td><strong>Pages</strong></td>
<td>176</td>
</tr>
<tr>
<td><strong>ISBN</strong></td>
<td>1904811159</td>
</tr>
<tr>
<td><strong>Publisher</strong></td>
<td>Packt Publishing</td>
</tr>
<tr>
<td><strong>Edition</strong></td>
<td>1st Edition</td>
</tr>
<tr>
<td><strong>Purchase</strong></td>
<td><a href="http://www.amazon.com/Building-Telephony-Systems-Asterisk-Gomillion/dp/1904811159/ref=sr_1_4/102-3676712-8973705?ie=UTF8&#038;s=books&#038;qid=1172981163&#038;sr=8-4">Amazon</a></td>
</tr>
</table>
<p><strong>Audience:</strong><br />
If you are looking for a way to save money on a phone system, how to deploy Asterisk either in a business or a personal environment, then this is the book for you.  Even if you are just looking for find out more about VoIP, Voicemail systems, or a foundation of how telephony works, then this is a must read. If you have an existing Asterisk system and are looking for ways to tweak it or make it more efficient, then you need this book to take you through the first steps.  This book caters more to those with less experience with Asterisk.</p>
<p><strong>Summary:</strong><br />
As with any introduction to a new system, the most vital questions are; What is it? and Is it for me?  The authors of this book discuss the background for what it (Asterisk) is in great detail in the first chapter.  Then they answer the second question by discussing both the pros and the cons from many perspectives.  Assuming that you have decided that Asterisk is the solution for you (based on the information in chapter 1), it&#8217;s time to look into deploying an Asterisk.  First it is necessary to take stock of what you have to work with and what your capabilities are.  The authors discuss the various telephony capabilities ranging from POTS, Ts (and frame relay), and ISDNs for the medium and then move on to SIP, IAX, H.323, and others for the software protocols.  The last part of the planning stage is determining what you need and how to make it scalable.  Given various scenarios of initial stages and growth, the authors begin alluding to dial plans, extensions, and some of the other aspects that make Asterisk so versatile.</p>
<p>Chapter 3 starts right from the basic installation of Asterisk and familiarization with the configuration files.  So as not to waste too much time on building programs from source, the authors move right into the actual configuration.  This is one of the places where the book excels.  Since Asterisk is a very configurable program, it has many configuration files and configuration items.  The authors take the time to go through, at least basically, each one of the major configuration files.  First they start with the <em>zaptel.conf</em> and the <em>zapata.conf</em> for the hardware.  Then its time to move onto the software configuration where we configure <em>sip.conf</em> and <em>iax.conf</em>.  Now its on to one of the most important aspects of our Asterisk configuration, <em>voicemail.conf</em>.  The chapter is then finished up with some of the more interesting aspects of Asterisk like queues, conference rooms, and music on hold.</p>
<p>Now that the Asterisk base has been installed, the authors walk you through configuring the dialplan.  This is where Asterisk&#8217;s power really shows through.  There are many advanced features covered here like call parking, direct inward dialing, automated attendents, and other advanced call distribution mechanisms.  The author&#8217;s then discuss different methods of logging (CDR &#8211; Call Detail Records).  Also covered were the ability to record and monitor calls (and even have a legal issues note).</p>
<p>Since one of the best features of Asterisk is versatility.  Asterisk @Home is decieving by name.  Housed by CentOS Linux, Asterisk @Home provides for a more graphic based and user friendly configuration mechanism called AMP, the Asterisk Management Portal.  This chapter covers the way to configure Asterisk @Home through AMP and how each configuration aspect is matched to the concepts covered in Chapter 4.  They even show integration of Asterisk and SugarCRM, a widely used FOSS customer relationship management software.</p>
<p>The authors now come to my favorite way of teaching, real life application.  They use multiple case studies as is a staple of authors for Packt publishing.  There are explanations of a SOHO (Small Office/Home Office) setup, small business setup, and a hosted PBX setup.  The book is then rounded up by explanations of maintainance, backup (and restore), and security.  Many of the topics discussed with regards to security are general security topics such as host based security, rule based access control, and firewalling.  The final notes discuss scalability and various support mechanisms for Asterisk.</p>
<p><strong>Opinion:</strong><br />
Although I found this book slightly difficult to get through, it was jam packed with information.  I was especially impressed with the way in which the authors covered the configuration files and the way in which they were explained.  As always, I thoroughly enjoy the case studies and real life examples that are provided by the authors.</p>
<p>The one item which I feel wasn&#8217;t well covered in this book is call quality.  It is generally well known that call quality with VoIP has a tendency to be a problem.  Since Asterisk is a transport medium with the flexibility for many configuration tweaks, I think there should have been more discussion about call quality and its enhancement.</p>
<p>Overall, I found this book to be extremely helpful, although dry at times.  There is a lot of material to be conveyed and the authors did their best under the circumstances.  This book is an excellent starting point for anyone who needs to bring Asterisk into their world and needs to start from square one.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2007/system-administration/asterisk-pbx/asterisk-echo-cancellation/' rel='bookmark' title='Asterisk Echo Cancellation'>Asterisk Echo Cancellation</a></li>
<li><a href='http://eric.lubow.org/2007/system-administration/asterisk-pbx/asterisk-69-with-14x/' rel='bookmark' title='Asterisk *69 with 1.4.x'>Asterisk *69 with 1.4.x</a></li>
<li><a href='http://eric.lubow.org/2007/book-reviews/linux-firewalls-and-qos/' rel='bookmark' title='Linux Firewalls and QoS'>Linux Firewalls and QoS</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2007/book-reviews/building-telephony-systems-with-asterisk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Firewalls and QoS</title>
		<link>http://eric.lubow.org/2007/book-reviews/linux-firewalls-and-qos/</link>
		<comments>http://eric.lubow.org/2007/book-reviews/linux-firewalls-and-qos/#comments</comments>
		<pubDate>Thu, 15 Feb 2007 13:02:50 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Book Reviews]]></category>

		<guid isPermaLink="false">http://eric.lubow.org/blog/2007/book-reviews/22/linux-firewalls-and-qos/</guid>
		<description><![CDATA[Date: 15 Feb 2007 There are complex and simple firewalls. They can be as simple or as in depth as one is willing to put the time and effort into learning and configuring them. The simple firewalls being to just allow or drop packets based on protocol or source or destination IP. The complex being [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Date:</strong> 15 Feb 2007<br />
There are complex and simple firewalls.  They can be as simple or as in depth as one is willing to put the time and effort into learning and configuring them.  The simple firewalls being to just allow or drop packets based on protocol or source or destination IP.  The complex being that which deals with QoS (Quality of Service) or the L7 packet classification filter.</p>
<table>
<th><strong>Vitals:</strong>
</td>
<tr>
<td><strong>Title</strong></td>
<td>Designing and Implementing Linux Firewalls and QoS using netfilter, iproute2, NAT, and L7-filter</td>
</tr>
<tr>
<td><strong>Author</strong></td>
<td>Lucian Gheorghe</td>
</tr>
<tr>
<td><strong>Pages</strong></td>
<td>288</td>
</tr>
<tr>
<td><strong>ISBN</strong></td>
<td>1-904811-65-5</td>
</tr>
<tr>
<td><strong>Publisher</strong></td>
<td>Packt Publishing</td>
</tr>
<tr>
<td><strong>Edition</strong></td>
<td>1st Edition</td>
</tr>
<tr>
<td><strong>Purchase</strong></td>
<td><a href="http://www.amazon.com/Designing-Implementing-Firewalls-netfilter-l7-filter/dp/1904811655/sr=8-1/qid=1170188186/ref=sr_1_1/102-9148079-3465721?ie=UTF8&#038;s=books">Amazon</a></td>
</tr>
</table>
<p><strong>Audience:</strong><br />
In order to have a complete understanding of exactly how well this book covers each of the topics it delves into, one has to have a certain understanding of firewalls and the necessary uses for its components.</p>
<p><strong>Summary:</strong><br />
As is reminiscent of many of the books written by authors for Packt Publishing, the first chapter begins with descriptions and re-introductions to many of the basic networking concepts.  These include the OSI model, subnetting, supernetting, and a brief overview of the routing protocols.  Chapter 2 discusses the need for network security and how it applies to each of the layers of the OSI model.</p>
<p>Chapter 3 is when we start to get into the nitty gritty of the routing, netfilter and iproute2.  Here is where the basics of <em>tc</em> is covered including <em>qdisc</em>s, <em>class</em>es, and <em>filter</em>ers.  This is where the examples start coming.  The real world examples used throughout the book are what makes the book easy enough to not only understand, but also apply to your network. Chapter 4 discusses NAT (Network Address Translation) and how it happens from within <em>iptables</em>.  It also discuesses packet mangling and talks about the difference between SNAT (Source NAT) and DNAT (Destination NAT).  The real life example in this chapter discusses how double NAT may need to be used when implementing a VPN (Virtual Private Network) solution between end points.</p>
<p>Layer 7 filtering is the topic of Chapter 5.  Layer 7 filtering is a relatively new concept in the world of firewalling.  The author tackles it right from square one.  He talks about applying the kernel and IPTables patches (which have the potential to be very overwhelming concepts).  One of the neat concepts that the author chooses to use in the example for this chapter is bandwidth throttling and traffic control for layer 7 protocols like bittorent (a notorious bandwidth user).  He also covers some of the IPP2P matching concepts and contrasts it to using layer 7.</p>
<p>Now is where to get to the full fledged examples.  The first is for a SOHO (Small Office Home Office).  It covers everything from DHCP, to proxying to firewalling and even traffic shaping.  Next is a medium size network case study.  This includes multiple locations, servers providing similar functionality with redundency, virtual private networks, ip phones and other means of communication, and the traffic shaping and firewalling for all these services. He also discusses a small ISP example.  The book finishes up by discussing large scale networks and creating the same aspects as for the medium and small sized networks. The difference is that now the ideas are spread across cities, Gigabit ethernet connections, ATM, MLPS and other high speed methods of high speed data transfer.  There is even information on Cisco IOS and how their routers can be deployed in large scale networks.  The lower level routing protocols like BGP and firewalling and routing servers like <a href="http://www.zebra.org/">Zebra</a>.  And he finishes up with one of my favorite topics, &#8220;security.&#8221;</p>
<p><strong>Opinion:</strong><br />
Although this book covers some of the most difficult topics with regard to the internet, networking, security, traffic shaping, and general network setup, it is handled very well.  Each chapter begins with a summary of information that needs to be known and understood for the coming chapter.  I was able to put this book to work immediately (even before finishing it) with the need to traffic shape the network traffic in an office which required better VoIP (Voice Over IP) support.</p>
<p>I would recommend this book to anyone and everyone who has any responsibility for a firewall or network of any kind. One of the best aspects of the book is how up to date it is.  It uses the 2.6.12 kernel for applying the layer 7 kernel patches.  The ideas and concepts in this book will be valid and current for a long time, especially since most of the major protocols that the book covers like bittorrent and other P2P applications that are prevalent in our networks.  If you have anything to do with networking at all, I strongly suggest getting your hands on this book.  If not to understand the networking and traffic shaping concepts, then at least for a reference.</p>


<p>Related posts:<ol><li><a href='http://eric.lubow.org/2007/book-reviews/building-telephony-systems-with-asterisk/' rel='bookmark' title='Building Telephony Systems With Asterisk'>Building Telephony Systems With Asterisk</a></li>
<li><a href='http://eric.lubow.org/2010/book-reviews/mod-security-2-5-by-magnus-mischel/' rel='bookmark' title='Mod-Security 2.5 by Magnus Mischel'>Mod-Security 2.5 by Magnus Mischel</a></li>
<li><a href='http://eric.lubow.org/2007/linux-security/10-more-tips-towards-securing-your-linux-system/' rel='bookmark' title='10 More Tips Towards Securing Your Linux System'>10 More Tips Towards Securing Your Linux System</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eric.lubow.org/2007/book-reviews/linux-firewalls-and-qos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

