<?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>MaddHat.comMaddHat.com | MaddHat.com</title>
	<atom:link href="http://maddhat.com/feed" rel="self" type="application/rss+xml" />
	<link>http://maddhat.com</link>
	<description></description>
	<lastBuildDate>Fri, 30 Sep 2011 17:39:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
<image>
  <link>http://maddhat.com</link>
  <url>http://maddhat.com/favicon.ico</url>
  <title>MaddHat.com</title>
</image>
		<item>
		<title>Remove X Cursor in XBMC</title>
		<link>http://maddhat.com/remove-x-cursor-in-xbmc</link>
		<comments>http://maddhat.com/remove-x-cursor-in-xbmc#comments</comments>
		<pubDate>Fri, 30 Sep 2011 17:39:00 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[AV]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[cursor]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[x11]]></category>
		<category><![CDATA[xbmc]]></category>
		<category><![CDATA[xorg]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=363</guid>
		<description><![CDATA[I&#8217;ve found a few annoying issues while configuring my HTPC with XBMC &#8211; one being the X cursor re-appearing after long idle states.  The cursor will go away after restarting XBMC, but this is annoying to do several times a day.  The fix is quite simple &#8211; the steps are listed below. sudo nano /etc/X11/xorg.conf In the text editor &#8211; find the section of the file labeled Section &#8220;Device&#8221;.  The ending of this section is simply EndSection.  Add the following line before the EndSection statement: Option    "HWCursor" "false" Simply restart X either by restarting XBMC or the machine completely.  The cursor should now stay gone for good!]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve found a few annoying issues while configuring my HTPC with XBMC &#8211; one being the X cursor re-appearing after long idle states.  The cursor will go away after restarting XBMC, but this is annoying to do several times a day.  The fix is quite simple &#8211; the steps are listed below.</p>
<p><code>sudo nano /etc/X11/xorg.conf</code></p>
<p>In the text editor &#8211; find the section of the file labeled Section &#8220;Device&#8221;.  The ending of this section is simply EndSection.  Add the following line before the EndSection statement:</p>
<p><code>Option    "HWCursor" "false"</code></p>
<p>Simply restart X either by restarting XBMC or the machine completely.  The cursor should now stay gone for good!</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/remove-x-cursor-in-xbmc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XBMC HDMI Audio Troubleshooting</title>
		<link>http://maddhat.com/xbmc-hdmi-audio-troubleshooting</link>
		<comments>http://maddhat.com/xbmc-hdmi-audio-troubleshooting#comments</comments>
		<pubDate>Thu, 30 Jun 2011 15:21:55 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[AV]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[hdmi]]></category>
		<category><![CDATA[htpc]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xbmc]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=350</guid>
		<description><![CDATA[I ran into some issues while configuring my XBMC HTPC with HDMI audio.  After some time with various troubleshooting steps I was able to repair the issue by completing the following steps: &#160; Relevant system specific information: OS: Ubuntu Desktop 11.04 HDMI Device: XFX ATI 5770 sudo alsamixer Ensure no devices are muted (indicated by &#8220;MM&#8221;). sudo alsactl store 0 This step saves the running alsa configuration sudo aplay -l This command will list the installed alsa devices.  Choose the device which you want to output the HDMI audio from &#8211; paying attention to the card number and device number. card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0] The above information is used to configure a custom audio device within XBMC.  Within the XBMC system configuration settings, change the output device and output passthrough device to custom with the following name: plughw:1,3  (Note that yours may differ &#8211; it is based on the output of the aplay command. &#160; After saving, restarting the machine, and re-launching XBMC, I was now receiving audio over HDMI &#8211; though sounds for the system menus no longer functioned (an issue I&#8217;ve since ignored).  However, when I played audio, it did not [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into some issues while configuring my XBMC HTPC with HDMI audio.  After some time with various troubleshooting steps I was able to repair the issue by completing the following steps:</p>
<p>&nbsp;</p>
<p>Relevant system specific information:</p>
<p>OS: Ubuntu Desktop 11.04<br />
HDMI Device: XFX ATI 5770</p>
<pre><code>sudo alsamixer</code></pre>
<p>Ensure no devices are muted (indicated by &#8220;MM&#8221;).</p>
<pre><code>sudo alsactl store 0</code></pre>
<p>This step saves the running alsa configuration</p>
<pre><code>sudo aplay -l</code></pre>
<p>This command will list the installed alsa devices.  Choose the device which you want to output the HDMI audio from &#8211; paying attention to the card number and device number.</p>
<pre><code>card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]</code></pre>
<p>The above information is used to configure a custom audio device within XBMC.  Within the XBMC system configuration settings, change the output device and output passthrough device to custom with the following name:</p>
<p>plughw:1,3  (Note that yours may differ &#8211; it is based on the output of the aplay command.</p>
<p>&nbsp;</p>
<p>After saving, restarting the machine, and re-launching XBMC, I was now receiving audio over HDMI &#8211; though sounds for the system menus no longer functioned (an issue I&#8217;ve since ignored).  However, when I played audio, it did not seem as though I was receiving the center channel audio.  I was able to fix this by an odd combination of configuration settings.  While playing a video I set the audio to analog &#8211; changed the volume from -60db to 0db, and switched audio back to HDMI.</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/xbmc-hdmi-audio-troubleshooting/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change VPN Credentials on ASA 5510</title>
		<link>http://maddhat.com/change-vpn-credentials-on-asa5510</link>
		<comments>http://maddhat.com/change-vpn-credentials-on-asa5510#comments</comments>
		<pubDate>Sun, 15 May 2011 15:00:40 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[5510]]></category>
		<category><![CDATA[asa]]></category>
		<category><![CDATA[enable]]></category>
		<category><![CDATA[privileges]]></category>
		<category><![CDATA[username]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=316</guid>
		<description><![CDATA[Another addition to my posts about Cisco ASA 5510 tasks.  The following is to change the password for a user within the device.  Simple and straight forward &#8211; but ensure that you backup your running configuration before making any system changes. enable config t username USER password PASSWORDHERE privilege 0 write mem Here&#8217;s a good article which covers Cisco Privileges.]]></description>
			<content:encoded><![CDATA[<p>Another addition to my posts about Cisco ASA 5510 tasks.  The following is to change the password for a user within the device.  Simple and straight forward &#8211; but ensure that you backup your running configuration before making any system changes.</p>
<pre>enable
config t
username USER password PASSWORDHERE privilege 0
write mem</pre>
<p><a href="http://www.ciscoarticles.com/CCSP-Cisco-Certified-Security-Professional/Privilege-Levels.html" target="_blank">Here&#8217;s </a>a good article which covers Cisco Privileges.</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/change-vpn-credentials-on-asa5510/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configure SNMP on ASA5510</title>
		<link>http://maddhat.com/configure-snmp-on-asa5510</link>
		<comments>http://maddhat.com/configure-snmp-on-asa5510#comments</comments>
		<pubDate>Sun, 01 May 2011 15:00:40 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[5510]]></category>
		<category><![CDATA[asa]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[snmp]]></category>
		<category><![CDATA[snmp-server]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=318</guid>
		<description><![CDATA[Configuring SNMP on ASA 5510 is straight forward &#8211; but once again I prefer a more straight forward list of the commands vs. the verbose explanation by Cisco.  See below to enable traps to a community name &#8220;SNMPCOMMUNITY&#8221;, the server IP being 192.168.1.1.  As with any commands that creates changes to your device &#8211; ensure you backup before making any changes. enable config t snmp-server host Inside 192.168.1.1 snmp-server community SNMPCOMMUNITY snmp-server enable traps snmp authentication linkup linkdown coldstart That&#8217;s it!  Thanks for reading.]]></description>
			<content:encoded><![CDATA[<p>Configuring SNMP on ASA 5510 is straight forward &#8211; but once again I prefer a more straight forward list of the commands vs. the verbose explanation by Cisco.  See below to enable traps to a community name &#8220;SNMPCOMMUNITY&#8221;, the server IP being 192.168.1.1.  As with any commands that creates changes to your device &#8211; ensure you backup before making any changes.</p>
<pre>enable
config t
snmp-server host Inside 192.168.1.1
snmp-server community SNMPCOMMUNITY
snmp-server enable traps snmp authentication linkup linkdown coldstart</pre>
<p>That&#8217;s it!  Thanks for reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/configure-snmp-on-asa5510/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mediacom’s DNS Hijacking Scheme</title>
		<link>http://maddhat.com/mediacom%e2%80%99s-dns-hijacking-scheme</link>
		<comments>http://maddhat.com/mediacom%e2%80%99s-dns-hijacking-scheme#comments</comments>
		<pubDate>Sun, 17 Apr 2011 13:35:25 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[broadband]]></category>
		<category><![CDATA[cable]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[hijacking]]></category>
		<category><![CDATA[mediacom]]></category>
		<category><![CDATA[mediacomcc]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=346</guid>
		<description><![CDATA[Friends of mine have consistently heard my complaints about Mediacom’s overcrowded nodes which they neglect to split, the uncoordinated and unreliable customer service, and dangerously ignorant installers (hell, my Mediacom VoIP installer didn’t know what RJ-11 was as I discussed the install with him).  However, with the current U.S. duopoly in regards to broadband – I’m forced to stick with it, as the DSL provider in the area is unable to provide more than a 1.5mbit line.  I’ve tried to make peace with these existing issues, but this week I found yet another issue with Mediacom to add to my list – which I cannot accept. I run a local DNS server on my network – and had made the decision to move away from Mediacom’s DNS servers as my forwarders after testing the speed of theirs in relation to the alternatives.  I am in NO WAY directing my traffic toward the Mediacom DNS servers.  This left me quite confused when I received a Mediacom re-direction page this week after typing a URL incorrectly.  I hopped onto DSLReports and got the scoop.  I found Mediacom has initiated a campaign to increase advertising revenue by automatically redirecting clients to their ad-based [...]]]></description>
			<content:encoded><![CDATA[<p>Friends of mine have consistently heard my complaints about Mediacom’s overcrowded nodes which they neglect to split, the uncoordinated and unreliable customer service, and dangerously ignorant installers (hell, my Mediacom VoIP installer didn’t know what RJ-11 was as I discussed the install with him).  However, with the current U.S. duopoly in regards to broadband – I’m forced to stick with it, as the DSL provider in the area is unable to provide more than a 1.5mbit line.  I’ve tried to make peace with these existing issues, but this week I found yet another issue with Mediacom to add to my list – which I cannot accept.</p>
<p>I run a local DNS server on my network – and had made the decision to move away from Mediacom’s DNS servers as my forwarders after testing the speed of theirs in relation to the alternatives.  I am in NO WAY directing my traffic toward the Mediacom DNS servers.  This left me quite confused when I received a Mediacom re-direction page this week after typing a URL incorrectly.  I hopped onto DSLReports and got the scoop.  I found Mediacom has initiated a campaign to increase advertising revenue by automatically redirecting clients to their ad-based redirection site.  The big problem I have with this is – they are completing this by means of deep packet inspection vs. re-directing through their internal DNS servers.  This means it takes precendence over my valid DNS response from an alternative DNS server.</p>
<p><a href="http://www.dslreports.com/shownews/Mediacom-DNS-Ad-Opt-Out-System-Still-Doesnt-Work-113368">DSLReports</a> stated that opt-out is possible – though it’s also been reported to magically re-enable on occasion.  <a href="http://search.mediacomcable.com/prefs.php">Follow this link for the opt-out option.</a></p>
<p>After 20 minutes on hold with Mediacom support, as is usual, customer support gave the same script about the ‘opt-out page’ and the directions to follow.  He stated there is no way for them to verify (as the support offices) who has opted-out, and additionally informed me that it was tracked by the customer’s modem MAC address.</p>
<p>Unfortunately, for us Mediacom subscribers, we are at the mercy of Mediacom to ensure  the opt-out is working correctly.  This post’s purpose is little more than to rant about my own experience – but I hope that it can at least bring some additional attention to these obnoxious, and shady actions by Mediacom in recent months.</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/mediacom%e2%80%99s-dns-hijacking-scheme/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configure Syslog Forwarding on ASA 5510</title>
		<link>http://maddhat.com/configure-syslog-forwarding-on-asa5510</link>
		<comments>http://maddhat.com/configure-syslog-forwarding-on-asa5510#comments</comments>
		<pubDate>Fri, 15 Apr 2011 15:00:41 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[5510]]></category>
		<category><![CDATA[asa]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[syslog]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=320</guid>
		<description><![CDATA[Forwarding logs from an ASA 5510 to an external syslog server is simple &#8211; but I can seldom find a straight forward list of commands for specific tasks for the ASA.  So here it is &#8211; but note this is highly customizable: logging enable logging timestamp logging trap notifications logging asdm notifications logging facility 23 logging device-id HOSTNAME logging host inside SYSLOG SERVER HOSTNAME OR IP logging debug-trace logging permit-hostdown Here&#8217;s the syslog section from Cisco&#8217;s site if you need more information.]]></description>
			<content:encoded><![CDATA[<p>Forwarding logs from an ASA 5510 to an external syslog server is simple &#8211; but I can seldom find a straight forward list of commands for specific tasks for the ASA.  So here it is &#8211; but note this is highly customizable:</p>
<pre>logging enable
logging timestamp
logging trap notifications
logging asdm notifications
logging facility 23
logging device-id HOSTNAME
logging host inside SYSLOG SERVER HOSTNAME OR IP
logging debug-trace
logging permit-hostdown</pre>
<p><a href="http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/products_configuration_example09186a00805a2e04.shtml#maintask1">Here&#8217;s</a> the syslog section from Cisco&#8217;s site if you need more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/configure-syslog-forwarding-on-asa5510/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backing Up ASA 5510 Configuration</title>
		<link>http://maddhat.com/backing-up-asa5510-configuration</link>
		<comments>http://maddhat.com/backing-up-asa5510-configuration#comments</comments>
		<pubDate>Fri, 01 Apr 2011 15:00:04 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[5510]]></category>
		<category><![CDATA[asa]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[enable]]></category>
		<category><![CDATA[tftp]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=314</guid>
		<description><![CDATA[Though us network nerds may work in a terminal most of the day &#8211; our workstations are largely Windows based.  This is a quick guide to backing up a Cisco device configuration to a Windows machine.  It&#8217;s fairly simple: Download WinAgents TFTP Server Manager and run through the installation process. This will setup a tftp server on that Windows machine that you will use to direct the configuration to.  Once installed, connect to the local server. Once configuration is complete and you are connected to your machine &#8211; find the IP of the Windows workstation (we&#8217;ll need this in a moment). Now, connect to the Cisco device.  Login and also enter enable mode: enable Once in enable mode, use the copy configuration using the following command: copy startup-config tftp You will be prompted for the server address. Type in the Windows workstation IP address here. You will also be prompted for the name of which to save.  I usually save this as the date and time of the configuration and save it in a folder for the device&#8217;s configuration backups &#8211; so do whatever method works for you. Press ENTER and the transfer will begin.  You should notice statistics on [...]]]></description>
			<content:encoded><![CDATA[<p>Though us network nerds may work in a terminal most of the day &#8211; our workstations are largely Windows based.  This is a quick guide to backing up a Cisco device configuration to a Windows machine.  It&#8217;s fairly simple:</p>
<p>Download <a href="http://www.winagents.com/en/downloads/download-tftp-server.php" target="_blank">WinAgents TFTP Server Manager</a> and run through the installation process. This will setup a tftp server on that Windows machine that you will use to direct the configuration to.  Once installed, connect to the local server.</p>
<p>Once configuration is complete and you are connected to your machine &#8211; find the IP of the Windows workstation (we&#8217;ll need this in a moment).</p>
<p>Now, connect to the Cisco device.  Login and also enter enable mode:</p>
<pre>enable</pre>
<p>Once in enable mode, use the copy configuration using the following command:</p>
<pre>copy startup-config tftp</pre>
<p>You will be prompted for the server address. Type in the Windows workstation IP address here.<br />
You will also be prompted for the name of which to save.  I usually save this as the date and time of the configuration and save it in a folder for the device&#8217;s configuration backups &#8211; so do whatever method works for you.</p>
<p>Press ENTER and the transfer will begin.  You should notice statistics on transfer are shown.</p>
<p>It&#8217;s that simple.  I&#8217;ll use this post as a reference to some more in-depth Cisco blogs in the future &#8211; but wanted to state it in one place vs. repeating it in each post.  Thanks for reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/backing-up-asa5510-configuration/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Packet Pushers Podcast</title>
		<link>http://maddhat.com/packet-pushers-podcast</link>
		<comments>http://maddhat.com/packet-pushers-podcast#comments</comments>
		<pubDate>Sun, 23 Jan 2011 15:36:15 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=297</guid>
		<description><![CDATA[Wanted to give a shout-out to my new favorite podcast – Packet Pushers. With a lengthy commute every work day I listen to many technical podcasts. I’m a fan of most twit.tv shows such as TWIT, TWIG, etc. but they rarely cover anything about the in-depth networking topics I enjoy. Packet Pushers on the other hand is like sitting in on a group meet-up of “world-class” networking gurus and being able to absorb knowledge about the real networking world. I’m nowhere near the level of knowledge about the topics as the hosts – but it really allows me to escape to that networking side of my mind and take it all in. I recommend this to anyone interested in such topics, and if you read this blog in any sort of regularity – it probably means you. Check it out at packetpushers.net]]></description>
			<content:encoded><![CDATA[<p>Wanted to give a shout-out to my new favorite podcast – Packet Pushers.  With a lengthy commute every work day I listen to many technical podcasts.  I’m a fan of most twit.tv shows such as TWIT, TWIG, etc.  but they rarely cover anything about the in-depth networking topics I enjoy.  Packet Pushers on the other hand is like sitting in on a group meet-up of “world-class” networking gurus and being able to absorb knowledge about the real networking world.  I’m nowhere near the level of knowledge about the topics as the hosts – but it really allows me to escape to that networking side of my mind and take it all in.  I recommend this to anyone interested in such topics, and if you read this blog in any sort of regularity – it probably means you.  Check it out at <a href="http://packetpushers.net" target="_blank">packetpushers.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/packet-pushers-podcast/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Server PXE Install</title>
		<link>http://maddhat.com/ubuntu-server-pxe-install</link>
		<comments>http://maddhat.com/ubuntu-server-pxe-install#comments</comments>
		<pubDate>Mon, 01 Nov 2010 15:00:29 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[gpxe]]></category>
		<category><![CDATA[inetd]]></category>
		<category><![CDATA[pxe]]></category>
		<category><![CDATA[tftp]]></category>
		<category><![CDATA[tftpd-hpa]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=193</guid>
		<description><![CDATA[I was working on a set of Ubuntu servers for a cluster in my network lab and wanted to look into alternative boot methods to streamline the process.  I followed a lot of tutorials which recommended setting up a new DHCP server that could assign the machines leases and then direct the machines to the correct boot file.  After some failed attempts with running a temporary DHCP and TFTP server on a Windows machine I sifted through my DHCP server settings for pfSense and found that it actually had support for network boot built in.  This was great and allowed me to skip the whole DHCP server step and just change the following in the Services &#62; DHCP Server tab in pfSense: Of course for this to work I had to have pfSense’s DHCP server enabled.  Having this setup will now allow the bootable machines to be assigned a DHCP lease then look for the TFTP server at the address specified (192.168.2.200 in my situation) and to look for pxelinux.0 to boot from.  The next portion of this setup is a slightly modified version of the article found here https://help.ubuntu.com/community/PXEInstallServer , modified in the sense that I left out any [...]]]></description>
			<content:encoded><![CDATA[<p>I was working on a set of Ubuntu servers for a cluster in my network lab and wanted to look into alternative boot methods to streamline the process.  I followed a lot of tutorials which recommended setting up a new DHCP server that could assign the machines leases and then direct the machines to the correct boot file.  After some failed attempts with running a temporary DHCP and TFTP server on a Windows machine I sifted through my DHCP server settings for pfSense and found that it actually had support for network boot built in.  This was great and allowed me to skip the whole DHCP server step and just change the following in the Services &gt; DHCP Server tab in pfSense:</p>
<p style="text-align: center;"><a href="http://maddhat.com/wp-content/uploads/2010/05/pfsense-pxe.png"><img class="aligncenter size-full wp-image-194" title="pfsense-pxe" src="http://maddhat.com/wp-content/uploads/2010/05/pfsense-pxe.png" alt="" width="565" height="157" /></a></p>
<p>Of course for this to work I had to have pfSense’s DHCP server enabled.  Having this setup will now allow the bootable machines to be assigned a DHCP lease then look for the TFTP server at the address specified (192.168.2.200 in my situation) and to look for pxelinux.0 to boot from.  The next portion of this setup is a slightly modified version of the article found here <a href="https://help.ubuntu.com/community/PXEInstallServer">https://help.ubuntu.com/community/PXEInstallServer</a> , modified in the sense that I left out any DHCP server steps due to the fact that I’m handling the direction through pfSense.</p>
<p><strong>Setting up your PXE server on Ubuntu:</strong></p>
<pre>sudo apt-get install inetutils-inetd tftpd-hpa

sudo nano /etc/default/tftpd-hpa
</pre>
<p>Make sure this file looks like this:</p>
<pre>#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"</pre>
<p>Save the file if you need to make any changes and restart the daemon:</p>
<pre>sudo /etc/init.d/tftpd-hpa restart

sudo nano /etc/inetd.conf</pre>
<p>Edit the file so it looks similar to the following (note that you may need to change “udp” to “udp4” to override the default and use IPv4:</p>
<pre>tftp    dgram   udp    wait    root    /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot</pre>
<p>Once completed editing this file we need to copy the boot files from the Ubuntu ISO or CD.  In my case I inserted the Ubuntu Server CD into the machine’s drive and then completed the following:</p>
<pre>sudo cp -r /media/cdrom/install/netboot/* /var/lib/tftpboot/</pre>
<p>You can copy these files from wherever you’d like just as long as they end up in /var/lib/tftpboot/</p>
<p>At this point you should have everything in working order on the server side.  If your NIC has a boot menu for network boot (as some of my Intel NICs do) you can go ahead and try booting to the network.  If successful, it should retrieve the file from the server and then proceed to the Ubuntu Server installation screen.  If you want to customize your boot from this point (for example, retrieving the files from a local CD instead of over the Ubuntu mirrors via HTTP) see the Ubuntu guide listed earlier.</p>
<p><strong>Client Machine Setup Using gpxe:</strong></p>
<p>I found that I had better results using gpxe on the client machines.  I setup a boot floppy that included all of the NIC drivers by going to this website <a href="http://rom-o-matic.net/gpxe/gpxe-git/gpxe.git/contrib/rom-o-matic/">http://rom-o-matic.net/gpxe/gpxe-git/gpxe.git/contrib/rom-o-matic/</a> and choosing “all-drivers” and selecting a .dsk as the output format.  There are many different options you can chose as well if you would rather use USB or CD for example.  I created a floppy from this image using the following command:</p>
<pre>dd if=IMAGE.dsk of=/dev/fd0</pre>
<p>The example above assumes IMAGE.dsk is in the directory you issue this command from and also that your floppy drive is located at /dev/fd0.</p>
<p>This boot disk is quite useful if you are running into any issues.  It has a menu with a few setup and diagnostic commands.  You can manually set the server of which to direct once booted to this disk (if things don’t work for you automatically), change the target boot file, etc.</p>
<p><strong>Troubleshooting:</strong></p>
<p>Hopefully this gets those interested in PXE boot going successfully.  If you are having any problems, here are a few things to check:</p>
<ul>
<li>Check your DHCP server settings.  Ensure that the IP address and filename is correct.</li>
<li>Check all of the configuration files edited earlier in this guide.  Any typos in the directory path will prevent things from working properly.</li>
<li>Check that your PXE server is listening by issuing the following command:
<pre>netstat -a | grep tftp</pre>
</li>
<li>Check that your NIC supports PXE boot</li>
<li>Check that you have properly enabled network boot in BIOS</li>
</ul>
<p>If I’ve missed anything feel free to contact me and I’ll add any additional steps for setup or troubleshooting to the list.</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/ubuntu-server-pxe-install/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Squid3 Transparent Proxy Setup</title>
		<link>http://maddhat.com/squid3-transparent-proxy-setup</link>
		<comments>http://maddhat.com/squid3-transparent-proxy-setup#comments</comments>
		<pubDate>Fri, 15 Oct 2010 15:00:17 +0000</pubDate>
		<dc:creator>MadHatter</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bridge-utils]]></category>
		<category><![CDATA[ebtables]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[squid3]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web-cache]]></category>

		<guid isPermaLink="false">http://maddhat.com/?p=259</guid>
		<description><![CDATA[Introduction Being a networking geek, I often try to figure out every aspect I can about different network technologies being used, how to configure them, and what benefits they have to provide when implemented. My home network/lab is a great place to test these technologies in a non-crucial environment. One such networking aspect I haven’t researched much is proxies. Sure, I’ve run into it with application installation that needs a connection configured, and had setup a CGI proxy in the past on a windows machine after my frustrations with my high school’s network blocking my once favorite social new site digg.com, but overall I hadn’t had much knowledge about why else proxies were implemented on a network, so I decided to play with Squid3 to educate myself. Squid3 Squid3 works as a web-cache proxy which means that while you browse, the content you are retrieving can also be cached for faster retrieval on the machine running the proxy – based on a set of rules in the proxy’s configuration files. This is not to say that ALL content gets cached, due to the fact that most content you are retrieving is dynamic, and it wouldn’t make sense to cache it [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
Being a networking geek, I often try to figure out every aspect I can about different network technologies being used, how to configure them, and what benefits they have to provide when implemented.  My home network/lab is a great place to test these technologies in a non-crucial environment.  One such networking aspect I haven’t researched much is proxies.  Sure, I’ve run into it with application installation that needs a connection configured, and had setup a CGI proxy in the past on a windows machine after my frustrations with my high school’s network blocking my once favorite social new site digg.com, but overall I hadn’t had much knowledge about why else proxies were implemented on a network, so I decided to play with Squid3 to educate myself.</p>
<p><strong>Squid3</strong><br />
Squid3 works as a web-cache proxy which means that while you browse, the content you are retrieving can also be cached for faster retrieval on the machine running the proxy – based on a set of rules in the proxy’s configuration files.  This is not to say that ALL content gets cached, due to the fact that most content you are retrieving is dynamic, and it wouldn’t make sense to cache it due to the fact that you would quickly be viewing outdated material.  In fact, in most environments only a small amount of content gets cached – which is why a web-cache proxy becomes more effective with more users working behind it.  With a one-user environment the speed increase given by the cached content may not even offset the costs of running the proxy.  With a multiple user environment there is most likely a significant amount of overlap in the viewed content and leads to the web-cache loading more of the local cached content versus retrieving new material each time.  Although the amount of users on such proxies are not limitless as, due to the nature of a web-cache proxy, it will have to perform many reads/writes to its drives to receive and deliver cached content – and without adequate hardware to handle these read/writes, the network will actually suffer in performance as it will be bottlenecked by the proxy’s speed.  If you have more questions about what exactly squid is and how it works checkout <a href="http://www.squid-cache.org/" target="_blank">Squid’s site</a>.</p>
<p>With all of this being said, the decision to implement a proxy on your network will need to be carefully examined by the needs and amount of throughput of the network.  Keep in mind that Squid can be majorly tweaked to fit the needs of the network – so looking at the configuration options available is not something to be ignored.<br />
Okay, enough with the explanations, on to the fun part – installation and configuration!</p>
<p><strong>Target Setup:</strong><br />
There are many ways to setup Squid.  The most simple is re-directing all traffic to a Squid box on the local network through your software.  This requires simply adding the Squid box to the network and directing the web applications on the clients as needed.  But those of us administering larger networks know that redirecting client browsers is a pain, and look toward a more automated solution.  This was the reason I chose to setup this Squid box as transparent.  It is transparent in the sense that no changes will be needed on the client-side for any network settings or re-direction in order for the proxy to be implemented.  The diagram below illustrates this setup:</p>
<p style="text-align: center;"><a href="http://maddhat.com/wp-content/uploads/2010/07/proxy-diagram.png"><img class="aligncenter size-full wp-image-260" title="proxy-diagram" src="http://maddhat.com/wp-content/uploads/2010/07/proxy-diagram.png" alt="" width="625" height="189" /></a><span style="font-size: xx-small;">Diagram created using <a href="Gliffy.com" target="_blank">Gliffy</a></span></p>
<p>For clients, they have the following settings:</p>
<p>IP Address: DHCP (in the 192.168.2.0 subnet)<br />
Gateway: 192.168.2.1<br />
DNS: whatever you want, doesn’t affect this setup as long as they are working DNS servers.</p>
<p>The running Squid3 box will simply pass all traffic on eth0 to eth1 and vis versa, but will intercept all traffic on port 80 and re-direct it to the port that Squid is running on.  From here, Squid will work its magic in either delivering the cached content to the client or retrieving it and then caching as needed.  The client will have no idea where the content is being delivered from, and should ideally only notice it is being received quickly.</p>
<p><strong>Installation:</strong><br />
I completed the following steps on a machine running Ubuntu 10.04 with 2 NICs installed (eth0, eth1).  We will assume eth0 will be the incoming line from the gateway, and eth1 is the outgoing line to switch which the clients access (demonstrated in diagram).</p>
<pre>sudo apt-get install squid3</pre>
<p>That was simple enough&#8230;  Most of the work is completed in the configuration.</p>
<p><strong>Configuration:</strong><br />
We need to first add a few lines to the squid configuration file to make the proxy transparent.</p>
<pre>sudo nano /etc/squid3/squid.conf</pre>
<p>Add the lines below to the configuration:</p>
<pre>http_port 3128 transparent
acl localnet src 192.168.2.0/24
acl localhost src 127.0.0.1/255.255.255.255
http_access allow localnet
http_access allow localhost</pre>
<p>This next line is optional – it changes the default size for Squid’s cache to 5000MB to be stored in /var/spool/squid3.</p>
<pre>cache_dir ufs /var/spool/squid3 5000 16 256</pre>
<p>After making the changes above, save the configuration file and restart squid3.  If there are errors Squid should fail to start.</p>
<pre>sudo /etc/init.d/squid3 restart</pre>
<p>I found ebtables easier to configure the bridge to pass traffic accordingly than iptables.  You can use whichever you’d like.<br />
Install ebtables and enter the lines below to pass traffic through accordingly.  The port at which Squid is set to run by default is 3128, but if you have changed this in the squid configuration make sure and make the change in the rule accordingly.</p>
<pre>sudo apt-get install ebtables
sudo ebtables -t broute -A BROUTING -p IPv4 --ip-protocol 6 --ip-destination-port 80 -j redirect --redirect-target ACCEPT
sudo iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128</pre>
<p>Also, enable traffic to be passed through both IPv4 and IPv6 on the local machine by uncommenting the following lines in /etc/sysctl.conf</p>
<pre>sudo nano /etc/sysctl.conf
(uncomment the following)
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1</pre>
<p>You will need to install the bridge-utils to configure the bridge within your /etc/network/interfaces file.</p>
<pre>sudo apt-get install bridge-utils</pre>
<p>After configured my /etc/network/interfaces filled looked like this:</p>
<pre>auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address 192.168.2.199
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1

auto br0
iface br0 inet static
address 192.168.2.200
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
gateway 192.168.2.1
bridge-ports eth0 eth1</pre>
<p>Save this file and either reboot the system or restart networking and squid3.</p>
<pre>sudo /etc/init.d/networking restart
sudo /etc/init.d/squid3 restart</pre>
<p>After this go to one of your client machines and browse the web for a few seconds.  You can then tell if squid3 is working correctly by checking the logs:</p>
<pre>tail /var/log/squid3/access.log</pre>
<p>This should show you the requests as they are received by squid3.  Make sure and check traffic on other ports as well to ensure that it is being passed through correctly.<br />
If traffic is not being passed correctly or squid is not logging any requests a good step to take would be to set the client machine’s browser proxy settings to direct right to the proxy.  See if browsing is now working correctly.  If so, squid3 is working correctly but there is most likely an issue with the traffic passing rules on the machine the proxy is running on.</p>
<p><strong>Conclusion:</strong></p>
<p>These were all the steps I completed to get my transparent proxy running successfully.  Obviously you can tweak to fit your needs.  The other added benefit of running the proxy in the “transparent” mode is that if the box fails you can simply disconnect the cable from the gateway to the proxy and plug directly into the client switch and the network will continue to function (obviously without local caching enabled).</p>
<p>Hopefully this helps others out there attempting to complete a similar setup.  If you notice any errors with this tutorial please let me know.  Thanks for reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://maddhat.com/squid3-transparent-proxy-setup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

