<?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>Muppethouse &#187; Open Source</title>
	<atom:link href="http://www.muppethouse.com/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muppethouse.com</link>
	<description>innovation through duplication</description>
	<lastBuildDate>Fri, 30 Jul 2010 01:03:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Rockbox &#8211; I hated it, now I like it</title>
		<link>http://www.muppethouse.com/rockbox-i-hated-it-now-i-like-it/</link>
		<comments>http://www.muppethouse.com/rockbox-i-hated-it-now-i-like-it/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 23:21:34 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Dorkness]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.muppethouse.com/rockbox-i-hated-it-now-i-like-it/</guid>
		<description><![CDATA[


On iTunes I can be listening to a podcast or an audio book then pause and sync with my iPod.  When I hop into the car and hit play it continues where I left off.  If I plug in my iPod when I get to work and I have iTunes there I can [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px; margin-bottom: 10px;">
<img src="http://www.mp3gaze.com/wp-content/uploads/sansac240.jpg" alt="" style="border: solid 2px #000000;" />
</div>
<p>On iTunes I can be listening to a podcast or an audio book then pause and sync with my iPod.  When I hop into the car and hit play it continues where I left off.  If I plug in my iPod when I get to work and I have iTunes there I can hit play and continue right where I left off.  I want to have the latest podcasts handy at all times, and it would be nice to have some music on my digital media player as well.  Syncing with iTunes mostly satisfies this goal by allowing me to select what playlists to sync, including smart playlists (which can search by relative published dates like &#8220;this week&#8221;).  The last I checked, iTunes only supports auto-fill on the iPod shuffle which has always confused me.  I want to have my latest podcasts, and then don&#8217;t waste the rest of the space&#8230; fill it up with some random music &#8211; it&#8217;s better than leaving it empty.</p>
<p>Portable media players are built to be sold, which sometimes coincides with usability and customer satisfaction, sometimes not.  People use these things when they are away from their computers &#8211; running, gardening, doing housework, or driving.  If a player makes me stop running or makes me pull off my garden gloves it fails to follow it&#8217;s primary purpose &#8211; play what I want and get out of the way.  From what I can tell, most people don&#8217;t listen to podcasts or audio books.  They load the music, shuffle, and never touch the thing outside of an occasional skip forward.  When you listen to an audio book or podcast you need to pause when you get a phone call or talk to the toll booth dude &#8211; music you just let it go.  Sometimes you miss something and need to scrub backwards.  Often you need to fast forward past commercials.  Podcast listeners also update their player daily, something that music-only users are unlikely to do.  These features do not seem unreasonable, but most players perform badly with these requirements, and the iPod is no exception.</p>
<p>This is all fine, except I don&#8217;t use iTunes.  My computers these days are filled with Linux goodness.  Linux distributions normally include Rhythmbox, Banshee, or Amarok depending on which way you swing.  I don&#8217;t have much experience with Amarok, but as of today Rhythmbox and Banshee both are unreliable for use with a portable media device.  Yes, you can get them to work once, twice, or five times in a row, but that sixth time is a big fat failboat.   They are sooooo close to being good, but in the meantime I end up not listening to my podcasts in the car.</p>
<p>The iPod is designed to work with iTunes and specifically attempts to lock out third-party clients &#8211; even though Apple doesn&#8217;t make a client for my platform.  MTP devices as I understand are more open to different clients &#8211; but that still has not led to a reliable experience for my MTP device.</p>
<p>Banshee supposedly worked well syncing MTP devices, so I scored this Sansa c240 for $20 in hopes of being able to reliably listen to podcasts in my car again.  Nope, it was no more reliable than the iPod &#8211; it&#8217;d flake out every few sync attempts.  The firmware on this bad boy was beyond horrible.  Each time the device starts the volume is at 50% &#8211; no matter where it was last time.  To turn up the volume you must find a song, play it, then press the volume up button about ten times (can&#8217;t hold it) to turn it up all the way.  On the plus side, at least it will remember where you were in a song if you happen to navigate back to the exact same track after booting.  Oh booting &#8211; that&#8217;s another thing.  It took about ten seconds to boot this thing up which is a long time to sit there waiting to find a song so you can turn up the volume.  The default theme made it near impossible to see what was selected, and scrubbing through a track was super slow and difficult.</p>
<p>Enter <a href="http://www.rockbox.org/">rockbox</a>, an open source firmware for a number of media players that is loaded with features.  I had tried rockbox in the past on my iPod Mini, but was turned off by the unnecessary complexity of the system.  This weekend though I put the latest rockbox on my Sansa, and I am rather impressed.  After messing with the settings I now have a player that boots up much more quickly and resumes my podcast exactly where I was last.  I solved by syncing problem quite simply &#8211; by not doing it.  The Sansa is a mass storage device so I can just copy things to it manually &#8211; but once I get off my butt I&#8217;m going to just set up rsync to automatically make sure I have only the freshest of podcasts loaded when I plug it in.  Rockbox can build it&#8217;s database on startup, which so far has been working quite well.  With the iPod or Sansa syncing with Banshee it would always rebuild the music database, which blew away the bookmark on what I was listening to &#8211; and I spend half the drive home trying to scrub through an hour-long podcast trying to get to where I left off.  </p>
<p>The games and applications with Rockbox are quite impressive running on this craptastic Sansa.  I particularly like bubbles, which appears to be a rebuild of Frozen Bubble, a simple Linux puzzle game.  Once I get my podcasts syncing correctly I&#8217;ll probably write up a script to do an automatic playlist generation.  I&#8217;d like to have a playlist each day that sorts my podcasts by published date so I can just play the top item to hear the latest content.  </p>
<p><span id="more-339"></span></p>
<p><strong>Further Thoughts</strong></p>
<p>The Sansa device has a micro-SD card slot in it, which is nice because I have a 1GB card laying around (it&#8217;s virtually useless in my Moto Razr).  The default firmware seems to just do an either/or thing &#8211; it cannot use the card and the built-in flash.  Rockbox can and does use both, effectively doubling my storage capacity.  I can use one card for music and the other for podcasts if I want.  The reason that the screen is unreadable with the default firmware is because they blew out the contrast for some reason&#8230; that and the fact that it is a horrendous display.  Rockbox lets me turn down the contrast.  </p>
<p>Format support is a big reason some people choose rockbox.  Normally I couldn&#8217;t give a shit about formats, I am fine using the patent-encumbered mp3 format.  That said, I&#8217;ve noticed that sometimes albums gathered from nefarious places are in a lossless format like FLAC.  If I don&#8217;t feel like reconverting them I can just slap it on rockbox and it works fine.  Ogg vorbis is pretty popular among those who care about openness, so occasionally I may download a podcast in ogg format.  Being able to play this on-the-go may come in handy someday.  </p>
<div style="float:left;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://www.muppethouse.com/rockbox-i-hated-it-now-i-like-it/&title=Rockbox - I hated it, now I like it&srcTitle=Muppethouse&srcURL=http://www.muppethouse.com"target="_blank" rel=""><img border="0" src="http://www.muppethouse.com/wp-content/plugins/wp-google-buzz/icon/5.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div>]]></content:encoded>
			<wfw:commentRss>http://www.muppethouse.com/rockbox-i-hated-it-now-i-like-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nautilus Google Docs Uploader</title>
		<link>http://www.muppethouse.com/nautilus-google-docs-uploader/</link>
		<comments>http://www.muppethouse.com/nautilus-google-docs-uploader/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 03:38:27 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programs]]></category>

		<guid isPermaLink="false">http://www.muppethouse.com/nautilus-google-docs-uploader/</guid>
		<description><![CDATA[Right click, upload to Google.  
I have been slightly interested in python for a while, but just never got around to actually writing anything.  Not that I am enough of a programmer to be particularly swayed by one language over another &#8211; but the path of least resistance for writing plugins and such [...]]]></description>
			<content:encoded><![CDATA[<p>Right click, upload to Google.  </p>
<p>I have been slightly interested in python for a while, but just never got around to actually writing anything.  Not that I am enough of a programmer to be particularly swayed by one language over another &#8211; but the path of least resistance for writing plugins and such for the Linux desktop seems to by python.  This was a simple project that taught me some basics, and since there isn&#8217;t a nicely developed perl module for the Google API I went on with the python.</p>
<p>Lets say you just made a little spreadsheet in OpenOffice</p>
<p><img src="http://farm4.static.flickr.com/3199/2419558443_446955165a.jpg?v=0" alt="Openoffice" /></p>
<p>Now you want to share that amazingly complex spreadsheet with your lawyer on Google Docs</p>
<p><img src="http://farm3.static.flickr.com/2141/2419558445_1c89a99d5e.jpg?v=0" alt="Upload" /></p>
<p>Now it&#8217;s up there&#8230;</p>
<p><img src="http://farm4.static.flickr.com/3162/2419558437_8e914862d5.jpg?v=0" alt="google docs" /></p>
<p>and you can edit and share with friends</p>
<p><img src="http://farm3.static.flickr.com/2093/2420395180_59632f4869.jpg?v=0" alt="google edit" /></p>
<p>Nautilus, the Gnome file manager, lets you drop scripts of your choosing into ~/.gnome2/nautilus-scripts/.  When you run the script on a file through the right-click menu the file name gets passed to the script.  I knew this was possible, and have played around with OS X folder actions before, but I have to say that in practice this is a lot easier than AppleScript to me.  </p>
<p>Grab the <a href="http://www.muppethouse.com/scripts/gupload">python script</a> yourself, download and install the <a href="http://code.google.com/p/gdata-python-client/">gdata python API</a>, edit the file to have your own username/password, and right-click your way to uploading fun.  Disclaimer: this is just a quick and dirty thing, do not expect it to be good.</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://www.muppethouse.com/nautilus-google-docs-uploader/&title=Nautilus Google Docs Uploader&srcTitle=Muppethouse&srcURL=http://www.muppethouse.com"target="_blank" rel=""><img border="0" src="http://www.muppethouse.com/wp-content/plugins/wp-google-buzz/icon/5.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div>]]></content:encoded>
			<wfw:commentRss>http://www.muppethouse.com/nautilus-google-docs-uploader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arpwatch</title>
		<link>http://www.muppethouse.com/arpwatch/</link>
		<comments>http://www.muppethouse.com/arpwatch/#comments</comments>
		<pubDate>Sat, 25 Aug 2007 03:47:04 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programs]]></category>

		<guid isPermaLink="false">http://www.muppethouse.com/arpwatch/</guid>
		<description><![CDATA[To wrap up script week, I&#8217;d like to talk a little bit about arpwatch.  Continuing on the theme of half-baked ideas, this was one that I was rather excited about as an entry level network engineer, but the complete lack of interest kinda took the wind out of my sails.  
Here is the [...]]]></description>
			<content:encoded><![CDATA[<p>To wrap up script week, I&#8217;d like to talk a little bit about <a href="http://en.wikipedia.org/wiki/Arpwatch">arpwatch</a>.  Continuing on the theme of half-baked ideas, this was one that I was rather excited about as an entry level network engineer, but the complete lack of interest kinda took the wind out of my sails.  </p>
<p>Here is the gist.  From my experiences I&#8217;ve never seen the use of NAC, 802.1x, or even simple switch port security.  I have to assume that many corporations remain blind to what devices are hard connecting to their local network.  Each ethernet device has a universally unique burned-in address.  It gladly shoots frames with this address out to the network as it attempts to get a dynamic address, or in response to another machine&#8217;s request.  Arpwatch just sits there and listens for new devices, and creates a log entry when there is a new one.</p>
<p>To me it just stands to reason that a security conscious company would be interested in what mac addresses have been seen on the network, when they were first seen, what VLANs they&#8217;ve been on&#8230; especially when it is so simple.  If you ask a branch office or campus LAN administrator what new mac addresses have shown up on the network TODAY, they simply cannot tell you.</p>
<p>So I thought it&#8217;d be a great idea to just set up a linux box with a trunk port to the corporate switches.  This would be able to sniff for every ARP on the network and keep an inventory of hardware addresses.  Since syslogs are a little lame, I made a database where this information was stored.  You could run reports like &#8220;show me all devices that first appeared on the network on either VLAN 50 or VLAN 60 between October 10th and 16th which had 3Com network cards&#8221;.  I also created scripts to use snmp to grab the dynamic cam table from Cisco switches.  The idea here is to be able to tie those hardware addresses back into the cam tables to tell us which port and switch the machine had connected.  This seems rather obvious to me, and somewhat simple to implement.</p>
<p>I seem to have trouble not with coding or implementing these things, but with marketing.  As certain as I was that this is great information to have, there seemed to be no interest.  I&#8217;ve not seen any other tool attempting to do the same thing.  </p>
<p>Oh well, another ill-fated script.  Here is some code.  I don&#8217;t even know if I have all the pieces to this one.  I certainly don&#8217;t have the database schema.</p>
<p><a href="http://www.muppethouse.com/scripts/infile.pl">This one </a>does the parsing and importing of arpwatch logs.<br />
<a href="http://www.muppethouse.com/scripts/snmptest.pl">This one</a> does the grabbing of data from switches.</p>
<p>This is really old, so is not exactly &#8220;good&#8221; but I still think the idea is worthwhile.</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://www.muppethouse.com/arpwatch/&title=Arpwatch&srcTitle=Muppethouse&srcURL=http://www.muppethouse.com"target="_blank" rel=""><img border="0" src="http://www.muppethouse.com/wp-content/plugins/wp-google-buzz/icon/5.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div>]]></content:encoded>
			<wfw:commentRss>http://www.muppethouse.com/arpwatch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS Web Interface</title>
		<link>http://www.muppethouse.com/dns-web-interface/</link>
		<comments>http://www.muppethouse.com/dns-web-interface/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 01:00:03 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programs]]></category>

		<guid isPermaLink="false">http://www.muppethouse.com/dns-web-interface/</guid>
		<description><![CDATA[A long time ago I had searched around for a tool that would let you update DNS through a web interface.  There were a few commercial products that wanted to run their own database &#8211; but nothing that just made existing DNS infrastructure easier.  Sometimes it just doesn&#8217;t make sense to have folks [...]]]></description>
			<content:encoded><![CDATA[<p>A long time ago I had searched around for a tool that would let you update DNS through a web interface.  There were a few commercial products that wanted to run their own database &#8211; but nothing that just made existing DNS infrastructure easier.  Sometimes it just doesn&#8217;t make sense to have folks editing files with vim and hoping that there are no mistakes.  I know I am often guilty of adding a forward entry without a reverse too.  This was my attempt to solve this problem &#8211; and to automate some things that were being done manually.  I say make the computers do the work.</p>
<p><a href="http://www.muppethouse.com/scripts/dyndns.tar.gz">This package</a> is a collection of perl CGIs that use Net::DNS to dynamically update DNS.  Now in theory this could be any name server, but this was only tested with BIND.  You will need to enable dynamic updates to these zones for this to work.  You could add in security as well.  Here is what it provides:</p>
<ul>
<li>Forward and reverse entries created (and removed) with one simple form &#8211; type, click, done</li>
<li>TACACS+ authentication of users</li>
<li>Audit trail of all entries</li>
<li>New records show up instantly &#8211; no need to rndc reload or any of that jazz</li>
<li>Search tool to look through a zone for an existing record</li>
<li>Advanced configuration tool that can allow you to add/delete records such as NS, MX, or TXT</li>
</ul>
<p>There was also an automated piece to this that would automatically discover and create entries.  That was not at all generic so I have not included it.  It would be trivial to add your own script to pull from a ordering database or scan the network to find new devices &#8211; go nuts.</p>
<p>That&#8217;s all for now.  Comment if you find this useful.</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://www.muppethouse.com/dns-web-interface/&title=DNS Web Interface&srcTitle=Muppethouse&srcURL=http://www.muppethouse.com"target="_blank" rel=""><img border="0" src="http://www.muppethouse.com/wp-content/plugins/wp-google-buzz/icon/5.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div>]]></content:encoded>
			<wfw:commentRss>http://www.muppethouse.com/dns-web-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Less Impressive Scripts</title>
		<link>http://www.muppethouse.com/some-less-impressive-scripts/</link>
		<comments>http://www.muppethouse.com/some-less-impressive-scripts/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 01:13:19 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programs]]></category>

		<guid isPermaLink="false">http://www.muppethouse.com/some-less-impressive-scripts/</guid>
		<description><![CDATA[Ok, so most of the scripts I have are of the disposable variety.  Someone may still find them useful.
Here is one that loops through the tacacs+ config file for folks whose password is going to expire soon, then sends out an email to them telling them to update their password.  This is generic [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so most of the scripts I have are of the disposable variety.  Someone may still find them useful.</p>
<p><a href="http://www.muppethouse.com/scripts/notify.pl">Here is one</a> that loops through the tacacs+ config file for folks whose password is going to expire soon, then sends out an email to them telling them to update their password.  This is generic and could be used for your blossoming spam business I suppose.</p>
<p>Ok, so lets say you&#8217;ve got some Riverstone load-balancers and you&#8217;re moving over to F5 LTMs&#8230; <a href="http://www.muppethouse.com/scripts/riverstone2f5.pl">here is a script</a> that may or may not work for you to create a bigip.conf file.  Oh, and since Riverstone kinda sucks and it can be difficult to remove load-balance groups without botching the config, <a href="http://www.muppethouse.com/scripts/vipmigrate.pl">here is a command line tool</a> to give you a copy-and-paste template that should work.  Oh, and lets say you want to build a graphviz drawing of your multiple sites of Riverstone load-balancers, you could use <a href="http://www.muppethouse.com/scripts/lblgraph.pl">my little program</a> to create a .dot file to visualize it.</p>
<p>Here is a <a href="http://www.muppethouse.com/compound.pl">really lame command line tool</a> that asks you some information about how much your net worth is, what you think your savings rate, growth rate, and inflation rate will be&#8230; then it asks you how much money you&#8217;d like to retire and it tells you when you can retire.  It&#8217;s kinda silly, you could do the same thing in a few minutes with MS Excel.</p>
<p>So lets say you are like I used to be and you have your own personal LDAP directory for storing your contacts in &#8211; you know, because people do that.  And then lets say that you have a server that runs spamassassin to block spam and you want to make sure to automatically whitelist anybody who is in your LDAP directory.  <a href="http://www.muppethouse.com/scripts/ldap2whitelist.pl">Here is a script</a> that can do that.  Again, this is just disposable perl.</p>
<p>Logging into Cisco routers with telnet and changing a few things can be easy.  <a href="http://www.muppethouse.com/scripts/cisco.pl">Here you go</a>.</p>
<p>Ok, that&#8217;s all for now.  More tomorrow.</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://www.muppethouse.com/some-less-impressive-scripts/&title=Some Less Impressive Scripts&srcTitle=Muppethouse&srcURL=http://www.muppethouse.com"target="_blank" rel=""><img border="0" src="http://www.muppethouse.com/wp-content/plugins/wp-google-buzz/icon/5.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div>]]></content:encoded>
			<wfw:commentRss>http://www.muppethouse.com/some-less-impressive-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firewall Configs for your Manager &#8211; pix2xls</title>
		<link>http://www.muppethouse.com/firewall-configs-for-your-manager-pix2xls/</link>
		<comments>http://www.muppethouse.com/firewall-configs-for-your-manager-pix2xls/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 01:07:05 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programs]]></category>

		<guid isPermaLink="false">http://www.muppethouse.com/firewall-configs-for-your-manager-pix2xls/</guid>
		<description><![CDATA[If you have got Cisco Pix 7 firewalls and you&#8217;d like to have an easy to read spreadsheet to give an auditor, show your manager, or bring to firewall review meetings then this is a good tool for you (download here).  Alternatively, if you are a firewall administrator and have a tough time figuring [...]]]></description>
			<content:encoded><![CDATA[<p>If you have got Cisco Pix 7 firewalls and you&#8217;d like to have an easy to read spreadsheet to give an auditor, show your manager, or bring to firewall review meetings then this is a good tool for you (<a href="http://www.muppethouse.com/scripts/pix2xls.pl">download here</a>).  Alternatively, if you are a firewall administrator and have a tough time figuring out if you need to add a new object-group or if you have one you can reuse, this can be a useful program.  Pix has names, service groups, network objects, port ranges, network ranges&#8230; sometimes its just kooky trying to figure that all out on the command line.  Here are the bullet points -</p>
<ul>
<li>goes through a repository of configs and puts all the firewall rules into a nice spreadsheet with a tab for each firewall</li>
<li>for each rule, it actually shows you the hostnames and IPs of each group member</li>
<li>for service groups, it looks in /etc/services for the name of the service rather than just listing the port</li>
<li>descriptions of each group are put into those little cell note things, so you can just hover over to see more details</li>
<li>disabled rules show as grayed out</li>
<li>it actually works (unlike other cpan modules I tried to use to parse pix)</li>
</ul>
<p>This program I actually like because it does a whole lot in a fairly easy to understand way.  There is potential here beyond writing a spreadsheet.  All of the rules are broken out into a decent data structure, so it would be simple to use this as a starting point for writing a script to convert your ruleset to Netscreen or something.  To use the spreadsheet features this will require the Spreadsheet::WriteExcel module, but if you just want to parse pix it&#8217;s plain old perl.  </p>
<p>As a quick offshoot of this script I made <a href="http://www.muppethouse.com/scripts/compare.pl">this script</a> that uses List::Compare to look at the differences between firewalls in two sites.  It also shows lists of unused names and unused object groups for cleanup purposes.</p>
<p>A feature that I started implementing was the ability to do rule shading detection.  Lets say rule one is deny any any and rule two is permit any any &#8211; clearly rule one makes any subsequent rule useless and misleading.  You Check Point people or fwbuilder folks have had this for a long time &#8211; but as far as I know in the Check Point and Netscreen world it seems like there is no such function.  Alas I never finished that part.</p>
<p>If you use this please drop a comment and let me know.</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://www.muppethouse.com/firewall-configs-for-your-manager-pix2xls/&title=Firewall Configs for your Manager - pix2xls&srcTitle=Muppethouse&srcURL=http://www.muppethouse.com"target="_blank" rel=""><img border="0" src="http://www.muppethouse.com/wp-content/plugins/wp-google-buzz/icon/5.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div>]]></content:encoded>
			<wfw:commentRss>http://www.muppethouse.com/firewall-configs-for-your-manager-pix2xls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tacacs+ Web Interface</title>
		<link>http://www.muppethouse.com/script-week-tacacs-web-interface/</link>
		<comments>http://www.muppethouse.com/script-week-tacacs-web-interface/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 23:32:00 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programs]]></category>

		<guid isPermaLink="false">http://www.muppethouse.com/script-week-tacacs-web-interface/</guid>
		<description><![CDATA[In the past few years since I began writing perl I have collected a little arsenal of half-baked programs that have never really been exposed to the world, probably because I was too lazy to clean them up.  I decided that I would use this week to expose some of the programs that I [...]]]></description>
			<content:encoded><![CDATA[<p>In the past few years since I began writing perl I have collected a little arsenal of half-baked programs that have never really been exposed to the world, probably because I was too lazy to clean them up.  I decided that I would use this week to expose some of the programs that I have written over the years.  For the most part I worked on these until they worked rather than until they were done correctly, but they may serve as a starting point for someone else looking to do the same thing.</p>
<p>The first program on the list (<a href="http://www.muppethouse.com/scripts/tacacsweb.tar.gz">download here</a>) is a little web interface to the open source <a href="http://shrubbery.net/tac_plus/">tacacs+ AAA server</a> from shrubbery.net.  The Cisco SecureACS server can be fine, but if you need regular expression support in ACLs or a way of automating entries it may not be the tool for you.  That said, editing a flat config file can be problematic for some folks.  This was my quick solution.</p>
<p>This is just a series of CGI scripts that allows the user to admin the tacacs+ server without learning vi.  It includes the ability to add users, delete users, administrative password resets, show configuration, and test authentication.  When a users password is near expiration they can log in and change it.  Passwords are checked against the aspell dictionary to make sure that they&#8217;re not a simple word (yeah, there is room for much more improvement here).</p>
<p>There are also a couple little bonus scripts, one useful and one for fun.  The tac2rad.pl script is for tying the shrubery tacacs+ user database in with a freeradius server with the MySQL back-end.  It copies the users and passwords over to MySQL from tacacs+.  The second, crack.pl, was just for my own learning experience.  It scours the config file for des encrypted passwords and cracks them if they&#8217;re simple dictionary words&#8230; which I somehow thought would be difficult&#8230; it is not.</p>
<p>I don&#8217;t maintain these or fix them, but if they&#8217;re useful to you drop me a comment and let me know.</p>
<div style="float:left;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://www.muppethouse.com/script-week-tacacs-web-interface/&title=Tacacs+ Web Interface&srcTitle=Muppethouse&srcURL=http://www.muppethouse.com"target="_blank" rel=""><img border="0" src="http://www.muppethouse.com/wp-content/plugins/wp-google-buzz/icon/5.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div>]]></content:encoded>
			<wfw:commentRss>http://www.muppethouse.com/script-week-tacacs-web-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coverflow&#8230; meet fleow</title>
		<link>http://www.muppethouse.com/coverflow-meet-fleow/</link>
		<comments>http://www.muppethouse.com/coverflow-meet-fleow/#comments</comments>
		<pubDate>Sun, 01 Jul 2007 22:18:25 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.muppethouse.com/coverflow-meet-fleow/</guid>
		<description><![CDATA[Sometimes I don&#8217;t understand why in the commercial software world companies like Apple purchase companies like coverflow.  There are amazing folks in the open source community like Macslow and David Reveman that continually show that innovation requires little more than dedication and one very talented individual.
Anyway, here is a plugin for Banshee called fleow. [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I don&#8217;t understand why in the commercial software world companies like <a href="http://www.apple.com">Apple</a> purchase companies like coverflow.  There are amazing folks in the open source community like <a href="http://macslow.thepimp.net/">Macslow</a> and <a href="http://en.wikipedia.org/wiki/David_Reveman">David Reveman</a> that continually show that innovation requires little more than dedication and one very talented individual.</p>
<p>Anyway, here is a plugin for <a href="http://banshee-project.org/Main_Page">Banshee</a> called <a href="http://fleow.berlios.de/">fleow.</a>  It basically does what coverflow does, then some.  Sometimes commercial software is one step ahead, like with digital video editing &#8211; but watch out.  Open source is communal, counterintuitive, and a force to be reckoned with.</p>
<p><embed style="width:400px; height:326px;" id="VideoPlayback" align="middle" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-1734504941290740534&#038;hl=pl" quality="best" bgcolor="#ffffff" scale="noScale" salign="TL"  FlashVars="playerMode=embedded"> </embed></p>
<div style="float:left;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://www.muppethouse.com/coverflow-meet-fleow/&title=Coverflow... meet fleow&srcTitle=Muppethouse&srcURL=http://www.muppethouse.com"target="_blank" rel=""><img border="0" src="http://www.muppethouse.com/wp-content/plugins/wp-google-buzz/icon/5.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div>]]></content:encoded>
			<wfw:commentRss>http://www.muppethouse.com/coverflow-meet-fleow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
