<?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>Your Warranty Is Void.com &#187; Software</title>
	<atom:link href="http://www.yourwarrantyisvoid.com/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yourwarrantyisvoid.com</link>
	<description>Linux, Hardware, Software and Chaos. What more is there?</description>
	<lastBuildDate>Wed, 18 Jan 2012 03:59:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Networking: Bringing IPv6 into your network using pfSense</title>
		<link>http://www.yourwarrantyisvoid.com/2011/12/01/networking-bringing-ipv6-into-your-network-using-pfsense/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/12/01/networking-bringing-ipv6-into-your-network-using-pfsense/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 23:06:05 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[pfSense]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=1047</guid>
		<description><![CDATA[The Internet as we know it is undergoing a significant change.  With the last IPv4 addresses being allocated out, the Internet has officially run out of address space.  IPv6 is the next-generation IP addressing system that aims to resolve this issue however the changes proposed are drastically different than the current IP schema currently in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1049" title="he-pfsense-ipv6-logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/he-pfsense-ipv6-logo.png" alt="Hurricane Electric, PfSense and IPv6" width="497" height="172" />The Internet as we know it is undergoing a significant change.  With the last IPv4 addresses being allocated out, the Internet has officially run out of address space.  IPv6 is the next-generation IP addressing system that aims to resolve this issue however the changes proposed are drastically different than the current IP schema currently in place and for most is quite a daunting task to switch. In this post, we will cover some basic IPv6 information and some fundamental differences between v4 and v6 (aside from tons of IPs), and finally we will build out a pfSense firewall with IPv6 using pfSense and a free IPv6 tunnel provided by Hurricane Electric. Read more to get started on the cutting-edge of Internet infrastructure.<span id="more-1047"></span></p>
<h1>IPv6 Introduction</h1>
<h2>First, the basics&#8230;.</h2>
<p>Understanding IPv6 networking may first come off as an extremely complicated endeavor however it&#8217;s not that much different from IPv4.  The biggest thing about IPv6 is the massive amount of IPs that are made available by the change in the network protocol.  To put it in perspective, the entirety of the existing IPv4 address space consists of approximately 4,228,250,625 addresses (from 0.0.0.0 to 255.255.255.255, or 255^4 including private network blocks and multicast addresses) An IPv6 network block (like the /64 network block that we&#8217;ll get from Hurricane Electric) contains  18,446,744,073,709,551,616 IPs.  The /64 network assigned to us from Hurricane Electric is only a minuscule fraction of the entire IPv6 address space.</p>
<p>An IP address in IPv4 uses four numbers in a dotted quad notation with numbers between 0 and 255, like 192.168.1.4 and will include a subnet mask like 255.255.255.0.  This is used to establish the &#8220;network&#8221; that an IP address is a member of. An IPv6 address is radically different, with 8 hexidecimal (from 0000 to FFF) numbers seperated by a colon (:), then following up with a subnet mask in CIDR notation. An example of an IPv6 address (in this case, ipv6.google.com) is 2001:4860:4002:0802:0000:0000:0000:1010.  Rather than spell all that out, you can use :: to represent one contiguous block of zeros, and leading zeros can be removed.  The formidable example address now becomes slightly less scary 2001:4860:4002:802::1010.  Another example of an IPv6 address in this &#8220;compressed&#8221; notation, would be the IP address for Facebook 2620:0:1cfe:face:b00c::3 (faceb00c, lol). Yet another funny IPv6 address is cisco.com, at 2001:420:80:1:c:15:c0:d06:f00d (c15co, f00d).</p>
<h2>Some differences in IPv4 and IPv6</h2>
<p>The biggest difference in IPv6 from a network standpoint is that it virtually eliminates the requirement for Network Address Translation.  Instead of proxying an IP address for multiple home networks/hosts, your IPv6 network is fully routable, meaning that you can access your home computer from the Internet without the need of using port forwarding or IP masquerading.  While you technically can NAT an IPv6 address, it&#8217;s no longer an absolute requirement for Internet access. Because the Internet can now access your network, it is especially important that your firewall is configured to deny incoming connections from the Internet and explicitly allow connections on an as-needed basis (like running a web server from home, etc..). We will establish a common ruleset later on, once we have completed the IPv6 configuration.</p>
<p>Another significant change in IPv6 is changes made to the DHCP protocol.  Instead of a DHCP server telling a host what the default gateway is for the attached network, the host will instead listen for a router advertisement and will use that in its internal routing table to know how to get to the public Internet.  This router advertisement is handled by radvd which announces the router&#8217;s IP address to the network.</p>
<h2>A few things to consider</h2>
<p>When <a href="http://www.worldipv6day.org/" target="_blank">World IPv6 Test Day</a> was enacted and executed last June, many major websites went online and started offering IPv4 and IPv6 dual stack websites for the purpose of testing the world&#8217;s readiness for IPv6.  Many important things were discovered that day including the fact that most CPE devices (like Linksys routers, DSL and Cable modems and other devices) were not IPv6 compatible.  This was later broadened to include many Internet-connected devices like DVRs, Media machines and other devices were also not ready for IPv6. While some sites maintain IPv6 connectivity, once World IPv6 Test Day closed, so did many sites on IPv6 connectivity.</p>
<p>Before you start out on bringing IPv6 into your network, it is important to understand that IPv6 is still regarded as being an experimental protocol. Most of the sites you are used to won&#8217;t work in a pure IPv6 environment so we are going to set up a dual-stack network.  This means that you will be able to bring in IPv6 connectivity for IPv6 only sites and still be able to access your IPv4 sites just like your network has done in the past.</p>
<p>It is also important to realize that most embedded class devices will not use IPv6.  Devices like embedded media players, game systems, WiFi access points, printers and the like  may not support IPv6 even with firmware updates from the manufacturer.  Some devices may get support later on through vendor updates however many devices will probably not work.</p>
<p>At the very least you will learn a lot about IPv6 deployment, and you will have plenty of time to test your equipment prior to IPv6 becoming mandatory.</p>
<h1>Enough of the theory already, Let&#8217;s get started.</h1>
<p>In order to bring IPv6 into your home, we will be using an IPb6 tunnel provided by Hurricane Electric&#8217;s <a href="http://tunnelbroker.net/" target="_blank">TunnelBroker.net</a> service.  The service is free, and they provide you with a full /64 IPv6 network to play with.  In addition, they provide a certification service to test your IPv6 knowledge and skills once your IPv6 connectivity is up and running.  They give you a series of goals to accomplish even after your tunnel is up and you&#8217;re routing away and plus, it makes for great bragging rights.</p>
<p>In order to pull this off, you&#8217;ll need the following:</p>
<ul>
<li>PfSense 2.0 installed and working at the edge router on your network.<strong></strong></li>
<li>A client computer for testing. ( Windows Xp, Windows Vista, Windows 7, Linux, etc..)</li>
<li>Network switch, etc to make sure your client computer is connected to your router.</li>
<li>A WAN Internet connection.  (DHCP, Static, PPPoE, etc does not matter as long as it&#8217;s broadband)</li>
</ul>
<p><strong>Please Note:</strong> Due to the fact that we are using git to sync experimental code, you <strong>cannot</strong> use pfSense Embedded.  I tried to find a way around this, but unfortunately even at the 4GB disk image size, I was never able to get it to fit and work.</p>
<p>The IPv6 configuration will be split up into six sections:</p>
<ol>
<li>Configuring your existing pfSense router to sync up the latest IPv6 code.</li>
<li>Registering for an IPv6 Tunnel from Hurricane Electric.</li>
<li>Configuring pfSense for the tunnel, and DHCPv6.</li>
<li>Configuring workstations for IPv6.</li>
<li>Performing website testing</li>
</ol>
<h2>1: Sync up the latest IPv6 code</h2>
<p>We&#8217;ll start off with our already established and running pfSense router. We will need to enable SSH on the router so we can get to the commandline.  This will be the only time you will need to access the commandline however I do recommend leaving it enabled so you can troubleshoot the IPv6 connection later on.</p>
<p>Start off by logging into the router.  Click on &#8220;System&#8221;, then &#8220;Advanced&#8221;.  Place a check box next to &#8220;Enable Secure Shell&#8221;.  If you don&#8217;t want to use the standard port of &#8220;22&#8243;, you can specify a different port below.  Scroll down to the bottom and hit &#8220;Save&#8221;.  Don&#8217;t worry about opening up your SSH port, this does not enable it on the WAN interface.</p>
<div id="attachment_1055" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/enablessh.png"><img class="size-medium wp-image-1055 " title="Enabling SSH" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/enablessh-300x196.png" alt="Enabling SSH" width="300" height="196" /></a><p class="wp-caption-text">Enabling SSH in pfSense</p></div>
<p>Open up PuTTY and type in the IP address of your router.  If you specified an SSH port, be sure to specify it here as well.  For reference, here is my PuTTY configuration.</p>
<div id="attachment_1056" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/enablessh2.png"><img class="size-medium wp-image-1056 " title="PuTTY settings" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/enablessh2-300x287.png" alt="PuTTY settings" width="300" height="287" /></a><p class="wp-caption-text">PuTTY settings</p></div>
<p>Upon successful connection, you will be prompted for a username.  Use the same username and password you use for the Web UI (admin/pfsense).  Once you have successfully logged in, you will get the same status screen like you see on the serial port showing the WAN and LAN statuses and a menu.</p>
<div id="attachment_1057" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession.png"><img class="size-medium wp-image-1057 " title="SSH menu" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession-300x240.png" alt="SSH menu" width="300" height="240" /></a><p class="wp-caption-text">SSH menu</p></div>
<p>Select option 8 (Shell) and then type in the following command:  <strong>pkg_add -r http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-8.1-release/Latest/git.tbz</strong>  This will install GIT and perform the update.  This will take several minutes to download and install all of the packages required to perform the sync.</p>
<div id="attachment_1058" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession2.png"><img class="size-medium wp-image-1058 " title="Installing Git" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession2-300x240.png" alt="Installing Git" width="300" height="240" /></a><p class="wp-caption-text">Installing Git</p></div>
<p>Once it has completed, type in <strong>exit</strong> or hit Ctrl-D to return to the SSH menu. At the SSH menu, type option <strong>12</strong> for the &#8220;pfSense Developer Menu&#8221;.</p>
<div id="attachment_1059" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession3.png"><img class="size-medium wp-image-1059 " title="Accessing the Developer Shell" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession3-300x240.png" alt="Accessing the Developer Shell" width="300" height="240" /></a><p class="wp-caption-text">Accessing the Developer Shell</p></div>
<p>Now we will do the GIT sync. It is important to follow these instructions exactly as this is where the current running pfSense code is synched up with the pfSense developer code.    At the pfSense developer shell prompt, type in <strong>playback gitsync</strong> and hit enter.</p>
<div id="attachment_1060" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession4.png"><img class="size-medium wp-image-1060 " title="Performing the Git sync" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession4-300x240.png" alt="Performing the Git sync" width="300" height="240" /></a><p class="wp-caption-text">Performing the Git sync</p></div>
<p>You will be prompted for the git branch to sync against.  Type in <strong>master</strong> and hit enter.  The next prompt will be for a custom RCS branch, just hit enter as we want to use the master branch only.  After you hit enter, the GIT Sync will begin.</p>
<div id="attachment_1061" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession5.png"><img class="size-medium wp-image-1061 " title="Specifying the Git Branch" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession5-300x240.png" alt="Specifying the Git Branch" width="300" height="240" /></a><p class="wp-caption-text">Specifying the Git Branch</p></div>
<p>Ok, now here&#8217;s the kicker.  <strong><em><span style="text-decoration: underline;">You must reboot!</span></em></strong> In the screenshot below, it looks like the upgrade has terminated and the device has restarted services however there are settings that have been changed that will only take effect on the next reboot.  The SSH Session should drop you back to the main SSH menu (what you saw when you initially logged in).  From here, select option <strong>5</strong> and answer <strong>y</strong> to reboot the device.</p>
<div id="attachment_1062" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession6.png"><img class="size-medium wp-image-1062 " title="Reboot after your SSH session gets terminated" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession6-300x240.png" alt="Reboot after your SSH session gets terminated" width="300" height="240" /></a><p class="wp-caption-text">Reboot after your SSH session gets terminated</p></div>
<p>When the router has successfully rebooted, check that your Internet connection works and that all is working well.  The one thing that remains is to set up an ICMP rule to allow Hurricane Electric to ping your WAN interface.  This is required as part of the tunnel setup. Login to your router, click on &#8220;<strong>Firewall</strong>&#8220;, then &#8220;<strong>Rules</strong>&#8220;.  Click the &#8220;+&#8221; add button at the bottom and add a new rule.  Set the interface to <strong>WAN</strong>, protocol to <strong>ICMP</strong>, and ICMP Type to <strong>Any</strong>.  (This can be modified later).  For the source, set the type to &#8220;<strong>Single Host or Alias</strong>&#8221; and enter the IP address of <strong>66.24.2.74</strong>.  This is the IP address of the IPv6 test endpoint.  Set the destination to &#8220;<strong>WAN Address</strong>&#8221; and lastly, enter a description.   Refer to the screenshot below if you need help.</p>
<div id="attachment_1063" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/wanping.png"><img class="size-medium wp-image-1063  " title="WAN Ping rule" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/wanping-300x257.png" alt="WAN Ping rule" width="300" height="257" /></a><p class="wp-caption-text">WAN Ping rule</p></div>
<p>Now that everything is in place in your router, it&#8217;s time to get your tunnel.</p>
<h2>2:Registering with Hurricane Electric</h2>
<p>Now that our router is prepped for the IPv6 installation, it&#8217;s time to register the account with Hurricane Electric.  Head on over to <a title="Hurricane Electric Tunnel Broker" href="http://tunnelbroker.net/" target="_blank">tunnelbroker.net</a> and register an account.  Once you&#8217;ve registered the account, you will get an email with the account information and a validation link.  After you validate, click on the &#8220;Create Regular Tunnel&#8221; on the left hand sidebar and you will be provided a form similar to the one in the screenshot below.  Be sure to select an endpoint that is as geographically close to you as possible or let the tool recommend the closest endpoint.  (Note: Hurricane Electric allows you to create up to five tunnels. If this is your first tunnel, you will not see the &#8220;You currently have 1 of 5 tunnels&#8221; message.)  Type your WAN IP address into the &#8220;IPv4 Endpoint&#8221; field, select the endpoint, then scroll down and hit &#8220;Create Tunnel&#8221;.</p>
<div id="attachment_1067" class="wp-caption aligncenter" style="width: 263px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel1.png"><img class="size-medium wp-image-1067 " title="Hurricane Electric Tunnel Setup" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel1-253x300.png" alt="Hurricane Electric Tunnel Setup" width="253" height="300" /></a><p class="wp-caption-text">Hurricane Electric Tunnel Setup</p></div>
<p>After your tunnel has been successfully created, you will get a page that shows your tunnel information.  At the bottom of the page, you will notice that the rDNS delegation fields are blank. Click the &#8220;delegate to dns.he.net&#8221; link to autofill the reverse nameservers with Hurricane Electric&#8217;s default nameservers.  Click &#8220;Save&#8221; to commit the changes, then print this page. You will need it for the pfSense page.  Keep in mind that the tunnel IP address and the Routed /64 are off by <strong><span style="text-decoration: underline;">one digit</span></strong>. This will be important later on.</p>
<div id="attachment_1068" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel2.png"><img class="size-medium wp-image-1068 " title="Tunnel Information Page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel2-300x286.png" alt="Tunnel Information Page" width="300" height="286" /></a><p class="wp-caption-text">Tunnel Information Page</p></div>
<p>If you are on a dynamic IP connection (DSL, Cable Internet, FiOS, etc&#8230;), there&#8217;s one more thing you need to be aware of.  Should your WAN IP change, you will need to update your tunnel. When you login to Hurricane Electric, you will get a page similar to the below, showing all of the configured tunnels on your account.</p>
<div id="attachment_1069" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel3.png"><img class="size-medium wp-image-1069 " title="Tunnel List Page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel3-300x205.png" alt="Tunnel List Page" width="300" height="205" /></a><p class="wp-caption-text">Tunnel List Page</p></div>
<p>To edit the tunnel, click on the tunnel name and you&#8217;ll be taken to the Tunnel Information page.  Click on the Client IPv4 address and make your IP change then simply click elsewhere on the page (not on a link) and wait for the text field to turn back to a link.  If it does not, it will provide an error message indicating the error (usually that it can not ping the WAN).</p>
<div id="attachment_1070" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel4.png"><img class="size-medium wp-image-1070 " title="WAN IP Setup Error" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel4-300x297.png" alt="WAN IP Setup Error" width="300" height="297" /></a><p class="wp-caption-text">WAN IP Setup Error</p></div>
<h2>3: Configuring pfSense</h2>
<h3>Building up our tunnel endpoint</h3>
<p><strong>Note</strong>:  From here on out, I will be using the example IPs of <strong>2001:470:1234:567<span style="text-decoration: underline;">8</span>::</strong> for the IPv6 tunnel and <strong>2001:470:1234:567<span style="text-decoration: underline;">9</span>::</strong> for the Routed /64.  In your tunnelbroker.net configuration, you should have a similar offset (your tunnel is one IP less than your routed netblock).  Please keep this in mind as we go through the next steps as you can not get the two confused.</p>
<p>We have a synched router and we have our tunnel configuration. Now it&#8217;s time to start configuring pfSense.  We will start out by building out the tunnel endpoint. Login to the router and click on <strong>Interfaces &gt; Assign</strong> and click on the <strong>GIF</strong> tab.  We will be adding a GIF tunnel in order to bring in the IPv6 connectivity to our router. GIF uses <a href="http://www.ietf.org/rfc/rfc2893.txt" target="_blank">RFC2893</a> to encapsulate IPv6 into an IPv4 packet.  When we receive an encapsulated packet, pfSense will &#8220;unpack&#8221; it and reassemble it into an IPv6 packet before acting on it according to the firewall policy.  On the GIF tab, click the &#8220;<strong>+</strong>&#8221; link and enter your IPv6 tunnel endpoint information.</p>
<ul>
<li>Parent Interface should be set to WAN</li>
<li>GIF Remote Address should be the &#8220;Server IPv4 address&#8221;</li>
<li>GIF Tunnel Local Address should be the &#8220;Client IPv6 address&#8221;</li>
<li>GIF Tunnel Remote Address should be the &#8220;Server IPv6 address&#8221;</li>
<li>Description should be something descriptive but can be freeform.</li>
</ul>
<div id="attachment_1076" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense1.png"><img class="size-medium wp-image-1076" title="GIF interface page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense1-300x167.png" alt="GIF interface page" width="300" height="167" /></a><p class="wp-caption-text">GIF interface page</p></div>
<p>Once complete, hit &#8220;Save&#8221;. This will add the tunnel endpoint to the router. Click on <strong>Interface Assignments</strong> so we can assign it to a virtual interface.  To do this, click on the &#8220;<strong>+</strong>&#8221; icon and the GIF tunnel should show up as an OPT interface as shown in the screenshot below.</p>
<div id="attachment_1077" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense2.png"><img class="size-medium wp-image-1077" title="Interfaces page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense2-300x124.png" alt="Interfaces page" width="300" height="124" /></a><p class="wp-caption-text">Interfaces page</p></div>
<p>Now we need to configure the OPT interface. Click on <strong>Interfaces &gt; OPT1</strong>.  This will be the equivalent to the &#8220;WAN&#8221; of our IPv6 network.  Since it has never been used before, it is disabled by default. Place a checkbox next to &#8220;<strong>Enable Interface</strong>&#8221; which will add the IPv6 configuration section shown here. Set the <strong></strong></p>
<p>Click on the text &#8220;<strong>Add a new one</strong>&#8221; in the Gateway section and enter the configuration as shown.</p>
<ul>
<li>Default v6 Gateway should be <strong>Checked</strong>.</li>
<li>Gateway Name IPV6 is a brief one-word name to help you identify the gateway.  I have chosen &#8220;IPV6GW&#8221;.</li>
<li>Gateway IPv6 should be the <strong>Server IPv6 Address</strong>.</li>
<li>Description is an arbitrary length text to describe this gateway definition.</li>
</ul>
<p>When you&#8217;re done, you should have something similar to what is in the below screenshot.  For some reason, the gateway text showed up very small, so I increased the zoom so it was readable.</p>
<div id="attachment_1078" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense3.png"><img class="size-medium wp-image-1078" title="IPV6WAN setup" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense3-300x288.png" alt="IPV6WAN setup" width="300" height="288" /></a><p class="wp-caption-text">IPV6WAN setup</p></div>
<p>Click on &#8220;<strong>Save Gateway</strong>&#8221; first to commit the gateway information. You should see te IPv6 gateway show up in a dropdown.  Next, scroll down and click &#8220;<strong>Save</strong>&#8221; to save the Interface information.  Finally, click &#8220;<strong>Apply Changes</strong>&#8221; to apply the interface configuration and start the tunnel.  You can validate the tunnel&#8217;s operation by checking the dashboard (click on the pfSense logo).  If you don&#8217;t have the Interfaces and the Gateways windows, they can be added by clicking on the &#8220;<strong>+</strong>&#8220;  and selecting the relevant options.</p>
<div id="attachment_1079" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense4.png"><img class="size-medium wp-image-1079" title="Dashboard status page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense4-300x228.png" alt="Dashboard status page" width="300" height="228" /></a><p class="wp-caption-text">Dashboard status page</p></div>
<p>Now that the endpoint is up and running, it&#8217;s time to configure the LAN interface.</p>
<h3>Setting up the LAN interface</h3>
<p>Since we&#8217;re running in a dual-stack configuration, we are going to just add the IPv6 information to the existing IPv4 interface.  As an option, you could theoretically set up a VLAN and a new LAN interface and create an IPv6 only network.  This is something I&#8217;m planning on my network and something I&#8217;m sure I&#8217;ll cover in another article. Let&#8217;s start off by pulling up the LAN configuration via <strong>Interfaces &gt; LAN</strong>.</p>
<p>First thing to do is set the <strong>IPv6 Configuration Type</strong> to <strong>Static IPv6</strong>. This will show the IPv6 configuration section.  Enter the first IP address in the Routed /64 section from the tunnel information.  When complete, you should have something like the screenshot below.  Scroll down and hit <strong>Save</strong> to write the settings, then <strong>Apply</strong> to make the new settings active.</p>
<div id="attachment_1080" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense5.png"><img class="size-medium wp-image-1080" title="LAN configuration page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense5-300x279.png" alt="LAN configuration page" width="300" height="279" /></a><p class="wp-caption-text">LAN configuration page</p></div>
<h3>Setting up DHCPv6</h3>
<p>In order to bring the IPv6 configuration to your workstations, we will set up DHCPv6.  This is entirely optional as right now you could go ahead and set up static IPv6 addresses just as well as using DHCP however rather than typing insanely larger addresses into all of your workstations, it&#8217;s easier and faster to set up DHCPv6 and let the client OSes pull the DHCPv6 as needed.  To get started, click on <strong>Services &gt; DHCPv6 Server</strong> and then on the <strong>LAN</strong> tab.</p>
<ul>
<li>Set the <strong>Router Advertisements</strong> to <strong>Assisted</strong>.  This controls the radvd daemon mentioned earlier.  By setting the mode to &#8220;Assisted&#8221;, you are telling radvd to perform router advertisements on the local network. The radvd broadcasts are used by the DHCP client applications to set the default router.</li>
<li>Place a check next to <strong>Enable the DHCPv6 server on the LAN interface</strong>.</li>
<li>Enter the desired start and end addresses for your network DHCP range. Please note that unlike the &#8220;short notation&#8221; using the double colon, you must explicitly declare the zeroes for all octets.  In my example, I&#8217;m using 2001:470:1234:5679:0:0:0:100 as my start point and 2001:470:1234:5679:0:0:0:200 as my end point, allocating 256 addresses to DHCP (remember, IPv6 addresses are hexidecimal.)</li>
<li>Enter the Anycasted IPv6 DNS server from the Hurricane Electric tunnel configuration into the DNS server field.</li>
</ul>
<div id="attachment_1081" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense6.png"><img class="size-medium wp-image-1081" title="DHCPv6 configuration" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense6-300x282.png" alt="DHCPv6 configuration" width="300" height="282" /></a><p class="wp-caption-text">DHCPv6 configuration</p></div>
<h3>Configure some Firewall rules</h3>
<p>At this point, we have the router configured however without some firewall rules in place, we will not be able to route out or get a DHCP address. We will need to add a rule so that our IPv6 traffic can get out.  Click on <strong>Firewall -&gt; Rules</strong> then click on the <strong>LAN</strong> tab.  We are going to duplicate the outbound rule created for the LAN outbound.   In the rule listing, click on the &#8220;<strong>+</strong>&#8221; icon to the right of the IPv4 outbound rule and change the protocol from IPv4 to IPv6.  Once done, hit <strong>Save</strong> then <strong>Apply</strong>.  When you&#8217;re done, your LAN rules should look like the below.</p>
<div id="attachment_1082" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense7.png"><img class="size-medium wp-image-1082" title="Duplicated Firewall rules" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense7-300x109.png" alt="Duplicated Firewall rules" width="300" height="109" /></a><p class="wp-caption-text">Duplicated Firewall rules</p></div>
<h2> 4: Configure your workstations</h2>
<p>After you get the router configured, it&#8217;s time to set up a workstation.  For this test, I used a Linux box and a Windows 7 workstation.  For Windows, all that is needed is to make sure that the NIC has IPv6 support bound to it.  To do this, go to the Network and Sharing Center and click on the &#8220;Adapter Settings&#8221; on the left hand sidebar.  Right click the adapter and go to Properties.  Make sure that IPv6 is listed and checked as shown below:</p>
<div id="attachment_1085" class="wp-caption aligncenter" style="width: 248px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/ipv6nic.png"><img class="size-medium wp-image-1085" title="Windows 7 Network protocols list" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/ipv6nic-238x300.png" alt="Windows 7 Network protocols list" width="238" height="300" /></a><p class="wp-caption-text">Windows 7 Network protocols list</p></div>
<p>To test that it&#8217;s working properly, open up a command prompt and check to see that ipconfig is showing the proper IP address.  Disregard any fe80:: addresses as these are link-local and not routable for our purposes. Your output should look something similar to my output below:</p>
<div id="attachment_1086" class="wp-caption aligncenter" style="width: 289px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/ipconfig.png"><img class="size-medium wp-image-1086" title="Windows 7 ipconfig" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/ipconfig-279x300.png" alt="Windows 7 ipconfig" width="279" height="300" /></a><p class="wp-caption-text">Windows 7 ipconfig</p></div>
<p>In Linux, the setup is even easier.   Most Linux operating systems already have IPv6 enabled, so it&#8217;s just a matter of pulling an IP address.  Run <strong>sudo dhclient -6 -v {interface}</strong> where {interface} is your network interface.  In my output below, I am using wlan0.  The <strong>-v</strong> parameter is optional, this is only to show what dhclient is doing and that it picked up the address from pfSense.</p>
<div id="attachment_1088" class="wp-caption aligncenter" style="width: 217px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/Screenshot-Terminal.png"><img class="size-medium wp-image-1088" title="Linux dhcpcd output" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/Screenshot-Terminal-207x300.png" alt="Linux dhcpcd output" width="207" height="300" /></a><p class="wp-caption-text">Linux dhcpcd output</p></div>
<p>This next screenshot shows <strong>ifconfig</strong> with three IP addresses: One IPv4 address, one link local IPv6 address and the routeable IPv6 address.</p>
<div id="attachment_1089" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/Screenshot-Terminal-1.png"><img class="size-medium wp-image-1089" title="Linux ifconfig output" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/Screenshot-Terminal-1-300x131.png" alt="Linux ifconfig output" width="300" height="131" /></a><p class="wp-caption-text">Linux ifconfig output</p></div>
<p>If you want to make the IPv6 settings permanent, you can set this information in Network Manager.  Edit your existing network connection, click on <strong>IPv6 Network</strong>, set the &#8220;Method&#8221; dropdown to <strong>Automatic</strong> and hit <strong>Save</strong>.  I didn&#8217;t provide screenshots on this because it depends on the network type and connection name and it ended up being way more complex than necessary.  IPv6 connectivity should work on both wired and wireless Ethernet adapters.</p>
<h2>5: Time to test!</h2>
<p>There are several sites that are available that allow IPv6 testing and IPv6/v4 dual-stack testing. My favorite is <a href="http://test-ipv6.net" target="_blank">http://test-ipv6.net</a>.  The site does IPv6 and IPv4 dual stack testing and ensures that you are able to connect to IPv6 and IPv4 sites.  There is also test surfing to <a href="http://ipv6.google.com" target="_blank">http://ipv6.google.com</a> which is an IPv6 only site.   If all goes well, you should receive output like the below:</p>
<div id="attachment_1090" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/testipv6com.png"><img class="size-medium wp-image-1090" title="Test-ipv6.com test results" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/testipv6com-300x159.png" alt="Test-ipv6.com test results" width="300" height="159" /></a><p class="wp-caption-text">Test-ipv6.com test results</p></div>
<h1>So, what now?</h1>
<p>With IPv6 properly working on your network, you are good to go however there&#8217;s probably not much to look at.  Most of the sites I tested were IPv4 only and the few IPv6 sites I could find were mostly broken.    From a consumer-side standpoint, you will notice no difference in the operation of websites.  From a server standpoint, each IP address is routeable meaning that each and every IP in your netblock can run web-accessible services.  The thing now is to pay close attention to your firewall.</p>
<p><strong>Remember that all IPs are routeable!</strong>  Prior to this setup, your router implicitly &#8220;protected&#8221; your LAN by using network address translation. By default, the router would allow LAN connections to exit the router but any unsolicited connection from the Internet could not access the LAN workstations due to how NAT works.  We used port forwarding to allow outside Internet computers inside to access local services.  IPv6 has no such requirement and all IPv6 addresses are public.  You need to make sure that your router&#8217;s firewall is set up properly and only allows incoming connections to IPs as needed by your network.  Our firewall configuration is set up with a default deny policy with an explicit LAN outbound rule.  This means that inside IPv6 addresses can surf the Internet uninhibited but any unsolicited connection from the Internet is automatically blocked.</p>
<p><strong>Test your network devices!</strong> Test all of your devices, from your computers to your smartphones, printers and anything else that plugs into the network.  You&#8217;ll get a quick idea of what works on IPv6 and what doesn&#8217;t. You&#8217;ll also have a good idea of which manufacturers and what devices to look for firmware updates in order to get ready for when IPv6 goes live.</p>
<p>For further things to do with your tunnel, take a look at Hurricane Electric&#8217;s IPv6 certification test.  The IPv6 certification test will test your knowledge of IPv6 and setting up various services on an IPv6 server including email and a Web server.  It&#8217;s a good idea to give it a shot so you can get experience working with the new IPv6 network.</p>
<p>Hopefully all went well in your IPv6 configuration and you&#8217;re up and running. If not, post a reply and I&#8217;ll try my best to help out.</p>
<p>Happy Hacking!<br />
FIRESTORM_v1</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/12/01/networking-bringing-ipv6-into-your-network-using-pfsense/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Networking: Installing and configuring pfSense Embedded</title>
		<link>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 02:54:03 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[pfSense]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=969</guid>
		<description><![CDATA[After publishing the last post on networking and the security series, I felt it was necessary to go ahead and publish a piece on building a custom router.  I have been a fan of pfSense for the past four years and swear by it. It has the ease of use of a commercial GUI-driven router [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-970" title="pfSense Logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/pfsenselogo.png" alt="pfSense Logo" width="300" height="110" /></p>
<p>After publishing the last post on networking and the security series, I felt it was necessary to go ahead and publish a piece on building a custom router.  I have been a fan of pfSense for the past four years and swear by it. It has the ease of use of a commercial GUI-driven router and unrivaled flexibility limited only by the hardware it is installed on.  In this howto article, we will cover installing pfSense on an embedded platform and initial configuration for getting your router up and running.</p>
<p><span id="more-969"></span></p>
<h3>First, an introduction to pfSense</h3>
<p>PfSense is a lightweight FreeBSD based distribution geared towards router and firewall installations. It has been around since 2004 when it was forked from the m0n0wall project and has since turned into an excellent stand-alone distribution for routing and firewalling.  Although pfSense is generally intended towards full-PC installations, they offer an embedded image for use without skimping on the features.  pfSense is well known in the Linux/Unix/BSD community and is very highly regarded for both it&#8217;s feature set and it&#8217;s flexibility.</p>
<p>A question I get asked a lot is &#8220;Why pfSense? Why not just buy a Linksys?&#8221;  The answer is about hardware and software.  While I do own a couple of Linksys routers and do admire Linksys for bringing NAT devices to the common user, their hardware is restrictive and is only usable in the standard configuration (1 WAN and 4 LAN/WIFI) Even though it has been proven several times that the hardware they use for the LAN portion can support advanced features like VLAN support, bridging, multiple interfaces/IP&#8217;s, they will never release this functionality to those that want it and will instead force the advanced user to look elsewhere. In Linksys&#8217;s view, the router dictates the network.  With pfSense, I can build a custom configuration however I deem fit, with multiple NICs for WAN and LAN, with custom configurations and with VLAN support.  Not to mention that &#8220;stock&#8221; pfSense even supports DHCP, Captive Portal (like &#8220;free wifi&#8221;) , DNS, VPN support, Fail Over mode and many other options that Linksys wouldn&#8217;t ever make available.  Even if I never use VPN support or use the Failover mode, it&#8217;s nice to know those features are there should I ever need them.</p>
<h3>Hardware Requirements:</h3>
<p>In order to use pfSense Embedded, you will need a computer that adheres to the below spec.  Of course more is better, but these are the minimum specs as posted on the pfSense website.</p>
<ul>
<li>CPU: 100MHZ x86 Pentium or equivalent.</li>
<li>RAM: 128 MB RAM</li>
<li>Serial Port</li>
<li>512MB Flash storage or 1GB hard drive</li>
<li>Two Network Adapters (NICs)</li>
</ul>
<p>Please note that some of the advanced features like VPN support, Captive Portal and some high-bandwidth connections may require faster processors than what is outlined below.  If you want to make sure your embedded platform matches spec, take a look at <a href="http://www.pfsense.org/index.php?option=com_content&amp;task=view&amp;id=52&amp;Itemid=49">pfSense&#8217;s hardware sizing guid</a>e which covers some of the items more in depth.</p>
<h3>A note on storage:</h3>
<p>The pfSense distribution comes in two flavors.  You have the &#8220;desktop PC&#8221; version for full-size computers with a CD ROM and a hard drive, and you have an &#8220;embedded&#8221; version which is for devices without a CDROM or hard drive and use some method of flash storage.  While you may be able to install the desktop PC version on the embedded device, it is not recommended as the distribution will be tailored for running on a hard drive, not a solid state memory device.  If you intend to use a hard drive, install the PC version.</p>
<p>You can use any IDE device for storage as long as it is recognized by your computer&#8217;s BIOS and is supported by FreeBSD.  I have not had a problem with either of these two stipulations, so you should not have any problems with it. One thing to consider is the use of an IDE to CF adapter <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822998003">like this one on Newegg</a>.  This particular device fits right into the IDE header on the motherboard and allows you to use a Compact Flash cartridge as an IDE hard drive which is perfect for installing and running pfSense.  The router in my home is a slightly different model, but is running on a Sandisk 4GB CF cartridge and has been doing so for the last two years without fail.</p>
<h3>My hardware:</h3>
<p>In this howto, I will be using a Transcend 1GB IDE solid-state device that I got on Ebay. This device plugs into the 40 pin IDE header and mimics a standard hard drive.  It is fast and will definitely get the job done.  The hardware I will be using is a set top box device I scavenged from a computer show a long time ago.  It has a 233MHz Cyrix processor , 512MB RAM, an onboard serial port, an IDE port, an onboard NIC and a single PCI riser slot where I will be installing a dual 10/100 Intel NIC.</p>
<h3>Getting Started:</h3>
<p>If you are using the CF to IDE adapter mentioned earlier, you can use a USB-CF reader and an application to burn the image to the CF cartridge.</p>
<p>In order to proceed, you will need the following items</p>
<ul>
<li>A Linux based computer with one free IDE port</li>
<li>An IDE-CF adapter with an appropriately sized CF card minimum 512MB, recommended 1GB, referred hereafter as flash cartridge.</li>
<li>The &#8220;target system&#8221; that will ultimately run pfSense with at least two NICs.</li>
<li>A third NIC (optional, for guest network, discussed in the &#8220;Advanced&#8221; section below).</li>
<li>A serial cable (Female to Female) and a Null Modem Adapter.</li>
<li>A pocket switch with a small patch cord.</li>
</ul>
<h3>Identify your Flash device</h3>
<p>First, attach your flash cartridge to your Linux PC and boot it.  Make sure that it boots your Linux distribution first and does not attempt to boot from the flash cartridge.  Once booted, login as root and run <strong>dmesg</strong>. Look for the /dev entry for your flash module.  You may be able to look for the manufacturer name as is the case in my output below:</p>
<div id="attachment_971" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/IDEhd.gif"><img class="size-medium wp-image-971 " title="IDE HDA dmesg output" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/IDEhd-300x128.gif" alt="My Transcend module is listed as hda" width="300" height="128" /></a><p class="wp-caption-text">My dmesg output.</p></div>
<p>In the output above, my Transcend module was recognized as hda (primary master HD), so my /dev entry is /dev/hda.  We will need this later on to burn the image.</p>
<h3>Download, validate, burn:</h3>
<p>Now that we know what device we need to burn to, it&#8217;s time to get the image.  Head on over to <a href="http://www.pfsense.org/mirror.php?section=downloads">the pfSense Mirror selection page</a> and pick a server that&#8217;s closest to you.</p>
<p>You should then be presented with a list of images named <strong>pfSense-1.2.3-RELEASE-XXXX-nanobsd.img.gz</strong> where XXXX is a choice of 512mb, 1g, 2g and 4g images.  In my particular case, I will be using pfSense-1.2.3-RELEASE-1g-nanobsd.img.gz as it is pre-built to a 1gig flash cartridge.</p>
<p>Use <strong>wget</strong> to download the image along with the accompanying .md5 file as shown in the sample output below. Note: URLs in the below image may differ depending on the mirror you are using, but the filenames will be the same.</p>
<div id="attachment_973" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wget.gif"><img class="size-medium wp-image-973 " title="wget download of files" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wget-300x153.gif" alt="wget download of files" width="300" height="153" /></a><p class="wp-caption-text">wget download of files</p></div>
<p>Once both files have downloaded, use <strong>md5sum -c </strong>to check the file for consistency against the provided md5 checksum as shown in the sample output below.</p>
<div id="attachment_974" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/md5sum.gif"><img class="size-medium wp-image-974 " title="md5sum validation" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/md5sum-300x153.gif" alt="md5sum validation" width="300" height="153" /></a><p class="wp-caption-text">md5sum validation</p></div>
<p>If the MD5 check returns <strong>OK</strong> then you are clear to proceed. If not, go back and re-download the file again. Make sure you downloaded the same file and md5 checksum.  In order to burn it, we will use <strong>zcat</strong> to cat the zipped image out to the /dev entry mentioned earlier.  My syntax will be <strong>zcat pfSense-1.2.3-RELEASE-1g-nanobsd.img.gz | dd of=/dev/hda bs=16k</strong>however, if your flash cartridge shows up at another location other than /dev/hda, be sure that you change the command above to point to the proper device.  Once the command completes, it should look like this:</p>
<div id="attachment_975" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/burncomplete.gif"><img class="size-medium wp-image-975 " title="Image Burn Completed" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/burncomplete-300x153.gif" alt="Image Burn Completed" width="300" height="153" /></a><p class="wp-caption-text">Image Burn Completed</p></div>
<p>Now that the image burn is done, shutdown the Linux box and pull your flash cartridge out and install it in the device that is going to run pfSense.  Go ahead and connect it up but do not attach any network cables to the interfaces just yet.  You will also need to connect the serial cable with a null modem adapter to the device to continue initial setup.</p>
<h3>Initial Configuration and Setup</h3>
<p>Now that we&#8217;ve burned the image, we are ready to do the initial setup.  This entails doing some NIC probing to find the network adapters in the system and to assign them to their respective duties (WAN, LAN, Optional Interface 1, etc).  You should only ever need to do this once as once the NICs are set up and the router is running, you can do everything including re-assign the interfaces from the web-based GUI.</p>
<p>Open up PuTTY, Hypertrm or your favorite terminal application and set the serial port parameters to 9600 baud, no parity 8 data bits, 1 stop bit.  Turn on the embedded device and after a moment, you should see some BSD boot stuff flash past.  Wait until it prompts you to set up VLAN information as shown below:</p>
<div id="attachment_976" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/vlaninfo.gif"><img class="size-medium wp-image-976 " title="Vlan Setup prompt" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/vlaninfo-300x167.gif" alt="Vlan Setup Prompt" width="300" height="167" /></a><p class="wp-caption-text">Vlan Setup Prompt</p></div>
<p>If you are lucky, you should see two interfaces, one for each NIC.  If you have three network cards in your system, you will see three different interfaces.  In the above screenshot, I have em0, em1 and fxp0.  Since we will not use VLANs for our basic or our advanced configurations, we will answer &#8220;N&#8221; here.</p>
<p>Now, we will do some network probing to figure out exactly which NIC  goes to which interface using the pocket switch and the patch cord.  Don&#8217;t plug anything in yet.</p>
<div id="attachment_977" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/probelan.gif"><img class="size-medium wp-image-977 " title="Probe for LAN interface" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/probelan-300x167.gif" alt="Probe for LAN interface" width="300" height="167" /></a><p class="wp-caption-text">Probe for LAN interface</p></div>
<p>With nothing plugged into the network interfaces, hit a and hit enter.  This will start the autodetection process. When prompted, attach the pocket switch to the interface you will use as the LAN interface and make sure that the LINK light on the switch and the NIC come on.  Hit Enter and you should see a message where it detected the LAN interface link come up.  It will then prompt you for the WAN interface.  Hit a then enter again and move the patch cord to the WAN interface and hit enter.  Repeat this process for the Optional interface (OPT1) or if your router only has two NICs, just hit enter.  Refer to the below output.</p>
<div id="attachment_978" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/assignednics.gif"><img class="size-medium wp-image-978 " title="Assigned NICs" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/assignednics-300x167.gif" alt="Assigned NICs" width="300" height="167" /></a><p class="wp-caption-text">Assigned NICs</p></div>
<p>Be sure that you only change the patch cord when it tells you to.  If you disconnect the cable at the &#8220;hit A for autodetect&#8221; prompt, it may not detect link when it should.  If you run into this issue, disconnect the patch cord and restart your router.  Allow it to boot up and start over.  Once you get done assigning interfaces, simply hit Enter to exit assignment.  It will print the current assignments of the interfaces and ask you to validate.  Answer Y if the displayed assignments are correct and hit Enter, otherwise hit N and start over or restart the device.</p>
<p>Assuming all went well, you will see it do a bunch of additional configuration.  Once you get to the menu as shown below, you can then disconnect the serial cable and proceed with the configuration of the pfSense router.</p>
<div id="attachment_979" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/configdone.gif"><img class="size-medium wp-image-979" title="Configuration completed" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/configdone-300x167.gif" alt="Configuration Completed." width="300" height="167" /></a><p class="wp-caption-text">Configuration Completed</p></div>
<p>&nbsp;</p>
<h3>Continuing the Configuration</h3>
<p>Connect the pocket switch up to the LAN port of the router and connect your router&#8217;s WAN port to your Internet connection.  Connect a computer to an unused port on the pocket switch and start it up. Once booted, you should have an IP address in the 192.168.1.x subnet and depending on whether or not your Internet connection is DHCP, you may already be able to surf.</p>
<p>Open a browser and go to http://192.168.1.1 and when prompted login with the username of <strong>admin</strong> and the password of <strong>pfsense</strong>.  If all goes well, you should see a screen that looks like the one below.</p>
<p>&nbsp;</p>
<div id="attachment_982" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard.gif"><img class="size-medium wp-image-982" title="pfSense Wizard" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard-300x181.gif" alt="pfSense Wizard" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard</p></div>
<p>&nbsp;</p>
<p>Click &#8220;Next&#8221;</p>
<p>On this screen, you will set some basic network configuration parameters like the pfSense&#8217;s hostname, local domain and the two DNS servers.  Use the ISP provided DNS servers here and click Next.</p>
<p>&nbsp;</p>
<div id="attachment_983" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard2.gif"><img class="size-medium wp-image-983" title="pfSense Wizard, page 2" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard2-300x181.gif" alt="pfSense Wizard, page 2" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 2</p></div>
<p>&nbsp;</p>
<p>On this screen, we will set up the timeserver and the timezone of the firewall.  Set the timezone where appropriate and then either use the provided time server or set your own.  I left it default and have not noticed any issues with time reporting.</p>
<p>&nbsp;</p>
<div id="attachment_984" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard3.gif"><img class="size-medium wp-image-984" title="pfSense Wizard, page 3" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard3-300x181.gif" alt="pfSense Wizard, page 3" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 3</p></div>
<p>&nbsp;</p>
<p>The next screen is where we will set up the WAN parameters.  Start off with selecting which type of WAN link you have.  Choices are DHCP (default),  Static IP, PPPoE and PPTP.  For each selection, there is a relevant section that must be completed.  Since I use DHCP, I left it as default.</p>
<p>&nbsp;</p>
<div id="attachment_985" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard4.gif"><img class="size-medium wp-image-985" title="pfSense Wizard, page 4" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard4-300x181.gif" alt="pfSense Wizard, page 4" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 4</p></div>
<p>&nbsp;</p>
<p>Pay special attention to the bottom two options.  The first option &#8220;Block RFC1918 networks&#8221; prevents LAN IP addresses from the &#8220;private&#8221; networks from entering from the WAN interface. Private networks are 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16.  Unless you are using this router inside another NAT environment, this option is best left turned on.</p>
<p>The other option &#8220;Block Bogon Networks&#8221; should be left enabled. This prevents non-routed and not-assigned networks from being routed against from your WAN interface. Since these addresses are not routed and not assigned, they should never contact your router anyways.</p>
<p>&nbsp;</p>
<div id="attachment_986" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard5.gif"><img class="size-medium wp-image-986" title="pfSense Wizard, page 5" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard5-300x181.gif" alt="pfSense Wizard, page 5" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page4, Bogon networks and RFC1918 options</p></div>
<p>&nbsp;</p>
<p>Now we are at the LAN configuration.  This is where we can change the router&#8217;s internal IP address and subnet mask.  Please note that most of pfSense uses CIDR notation, so you may want to get familiar with it or have a <a href="http://www.subnet-calculator.com/cidr.php" target="_blank">CIDR calculator</a> at the ready.<strong><em></em></strong> Tip: a /24 is the same as 255.255.255.0</p>
<p>&nbsp;</p>
<div id="attachment_987" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard6.gif"><img class="size-medium wp-image-987" title="pfSense Wizard, page 5" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard6-300x181.gif" alt="pfSense Wizard, page 5" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 5</p></div>
<p>&nbsp;</p>
<p>This screen allows us to change the default password of <strong>pfsense</strong>.  I highly recommend changing it to something memorable.  If you forget it, you can always reset it via a serial connection without resetting the router back to factory settings.</p>
<p>&nbsp;</p>
<div id="attachment_988" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard7.gif"><img class="size-medium wp-image-988" title="pfSense Wizard, page 6" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard7-300x181.gif" alt="pfSense Wizard, page 6" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 6</p></div>
<p>&nbsp;</p>
<p>Finally we have reached the end of the wizard.  Click &#8220;Reload&#8221; and wait a few minutes.  During this time, the router will reboot itself to get adjusted into the new environment.  Let the web page reload the router&#8217;s admin page and it should take you to a configuration page like the one below.</p>
<p>&nbsp;</p>
<div id="attachment_989" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/status.gif"><img class="size-medium wp-image-989" title="pfSense main status page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/status-300x181.gif" alt="pfSense main status page" width="300" height="181" /></a><p class="wp-caption-text">pfSense main status page</p></div>
<p>&nbsp;</p>
<p>Once you are at this screen, you should be able to browse the Internet.</p>
<h3>Some basic tips:</h3>
<ul>
<li>Portforwarding can be set up under Firewall -&gt; NAT and works pretty much like you would expect a Linksys box to work.  Be sure to leave the &#8220;Auto Add a firewall rule to permit traffic through this NAT rule&#8221; at the bottom checked.  This will create a matching rule on the WAN side to allow traffic along with the rule to bring the traffic from the WAN to your destination computer.</li>
<li>You can see each interface&#8217;s status by going to Status -&gt; Interfaces.  If you are on a PPPoE or PPTP connection, you can disconnect and reconnect from this page.  If you are using DHCP, you can also release and renew your IP here.</li>
<li>If you run into trouble performing port forwarding, you can access the system firewall logs via Status -&gt; System Logs.  Be sure to turn on Logging on your rules so you can see new connections as they are being performed.</li>
<li>If you&#8217;re having problems with a specific host, you can access a packet capture utility via Diagnostics -&gt; Packet Capture</li>
<li>If you want to diagnose upstream Internet connectivity issues, you can access Traceroute via Diagnostics -&gt; Traceroute. and a ping utility via Diagnostics -&gt; Ping</li>
<li>Like numbers and graphs? Check out the system traffic graph (Status-&gt; Traffic Graph) and the system RRD graph (Status -&gt; RRD Graphs).  You may need to install the Adobe SVG viewer to view these graphs.</li>
<li>Unlike a Linksys box, it is recommended to halt the router before powering down and use the reboot function if a restart is needed.  Both options appear under Diagnostics with the labels &#8220;Halt system&#8221; and &#8220;Reboot system&#8221; respectively.</li>
</ul>
<h3>What&#8217;s next?</h3>
<p>Even in its basic configuration you already have a very powerful router on your hands.  The sky&#8217;s the limit. The pfSense installation can support a great many different configurations and options so don&#8217;t think that you&#8217;re locked into a single configuration.  Out of the box, pfSense has the software support for DHCP, DNS server, and other basic functionality as well as more things like CARP Failover, Open NTPD (Time server), OpenVPN, Remote Syslog, Traffic aggregation, and many other features that warrant exploration.</p>
<p>In a follow up article, I will explore setting up an advanced configuration, establishing a VLAN to isolate a wireless network from the wired network while still providing Internet access.  This is a useful configuration for you that like to share your Internet access but don&#8217;t want to make your home network vulnerable.</p>
<p>Happy Hacking!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CVS Netbook Revisited</title>
		<link>http://www.yourwarrantyisvoid.com/2011/07/25/cvs-netbook-revisited/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/07/25/cvs-netbook-revisited/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 16:42:40 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[Sylvania]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=906</guid>
		<description><![CDATA[A few months ago, I posted a hardware teardown of the CVS Sylvania Netbook pictured above. After working with it and performing a lot of research on it, I promised a follow up article, and here it is.  To sum it all up, with a bit of modification to the software, a spare SD card [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-751 aligncenter" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/2011-01-06-17.11.07-300x225.jpg" alt="" width="300" height="225" /></p>
<p>A few months ago, I posted a hardware teardown of the CVS Sylvania Netbook pictured above. After working with it and performing a lot of research on it, I promised a follow up article, and here it is.  To sum it all up, with a bit of modification to the software, a spare SD card and a lot of patience, you can actually turn this thing into a somewhat useful Linux device.  There&#8217;s also some improvements and suggestions to be had for improving the Windows CE side of things should you decide to continue using it in its default state.</p>
<p><span id="more-906"></span></p>
<p>When I posted the original teardown, I was somewhat distressed at how little information there was for this device. There was a ton of &#8220;marketing&#8221; material online however very few real-world posts.  This appears to have changed and although most of the reviews lamblasted the device as a horrible design and underpowered, I have found that for the price I paid for it, it&#8217;s not bad at all.  In this article, we will be focusing on software because as much as I&#8217;d like to say I&#8217;ve done a lot of hardware mods to this thing, the truth of the matter is that I haven&#8217;t.  Time has continued to get away from me and I&#8217;ve had to put a lot of projects on hold.  But let&#8217;s not start this article off on a downbeat.</p>
<p>In the three months that I&#8217;ve been doing research on the Sylvania Netbook, I have uncovered a lot of information that can help turn this machine into a pretty useful piece of equipment.  The fact that it has a pretty decent battery in of itself should be of merit to justify the time invested in fine-tuning it.</p>
<h2>1: Windows CE</h2>
<p>In my research, there have been two key complaints against the Sylvania netbook in regards to a &#8220;stock&#8221; configuration.  The first complaint has been that it is running Windows CE (affectionately called &#8220;WinCE&#8221;) and the second being that the WinCE installation is really badly implemented.</p>
<ul>
<li>The key thing to remember with working with Windows CE is that <strong>Windows CE is NOT Windows like on your desktop or &#8220;normal&#8221; laptop!</strong> Windows CE was designed for small form factor devices and although it shares the same name as it&#8217;s bigger brother desktop OS, <strong>Windows CE can not run Native Windows applications.</strong> This appears to be the biggest hurdle in locating user software for the device as people will attempt to download software then when they get the software into the netbook, they are thrown off by an error message stating it&#8217;s not a &#8220;valid&#8221; application.  Consider it like taking a MacOS program designed for MacOS and attempting to get it running in Windows XP.  It ain&#8217;t gonna happen.  That being said, there <strong>is</strong> Windows CE applications out there, however the pickings are slim.</li>
</ul>
<ul>
<li>The other issue with working with the stock Windows CE installation is that the OS software is so badly implemented on the netbook that most things that should work, don&#8217;t.  Thankfully for us there is a patch available that will make things easier.  From research, the patch addresses several performance issues with the core OS, several updates to the builtin applications as well as an update to Internet Explorer.  Unfortunately, IE will still render mobile sites by default, but the rendering won&#8217;t take as long.  The patch also fixes the issue with the wireless card not being able to properly associate with WPA/WPA2 secured networks and DHCP release/DHCP renew works as expected.  I have uploaded the patch to here.  In order to install the patch, follow the below instructions. You will need a spare SD card at least 128MB in size.</li>
</ul>
<p>Here&#8217;s how to download and perform the OS update:</p>
<ol>
<li>Download the patch from here:  <a href="http://www.yourwarrantyisvoid.com/downloads/files/sylvania_smartbook_OS_update.zip" target="_blank">sylvania_laptop_OS_update.zip</a></li>
<li>Extract the executable to an SD card.</li>
<li>Insert the SD card into the Sylvania netbook.</li>
<li>Browse to the SD card slot (Computer -&gt; SD Card)</li>
<li>Launch the patch and follow the on screen prompts.</li>
</ol>
<h2>2:On the Linux side of things&#8230;</h2>
<p>When I did my original research, I was fortunate to have come by a site dedicated to a Linux distribution made solely for the WM8505 series devices like the Sylvania Netbook. The site and the distribution were called Bento Linux and much like the Japanese namesake, the distribution was very small and was designed to be able to run within the computer&#8217;s limited spec.  Unfortunately, the site www.bento-linux.org no longer exists but thankfully I still have the documentation and files needed to pull it off.  If you are the owner of bento-linux.org and are willing to give me the site files, I would be more than happy to host it here. Please contact me in the comments.</p>
<p>One of the added benefits of Bento-Linux is that unlike some replacement OS installations, this is a sidecar installation meaning that all work is done on the SD card.  If you want to boot to Windows CE, halt the Linux OS, pop out the SD card and power the Netbook back on and you&#8217;re up and running like nothing happened.  Although the Bento Linux site did have instructions for performing an installation to the device&#8217;s flash ram, it is not recommended as if you accidentally mess up the Linux distribution, there may be no recovery. In a sidecar installation, you can pop the SD card into another device, make your changes, and then put the SD card into the netbook and you&#8217;re up and running again.</p>
<p>Although the site claimed that the distro could run on a 512MB SD card, I will up the recommendation to at least a 2GB card.  Prices are low and SD cards are very commonplace so it&#8217;s worth it to get a larger chip.  I started out on a 2GB SD card, but later upgraded to a 4GB Microdrive and noticed a significant performance increase going from solid-state memory to a USB Microdrive. Your mileage will vary, but it is recommended to stick with an SD card first, then perform upgrades and additional installations as needed later on.  As far as USB devices are concerned, you can use any USB storage device/keydrive that is recognized by the usb mass-storage driver in Linux.</p>
<p>Please note that the version of Bento I was running is usable however it did not appear that the sound card was operational. Since I am intending to use this as an external serial console, this was not a deal breaker for me.</p>
<h3>Installation (SD Card Only)</h3>
<p>Bento-linux comes in two parts. One part is for a FAT16 partition placed at the beginning of the SD card and it contains the boot commands needed to tell u-boot (the Netbook&#8217;s bootloader) how to boot the linux kernel and the root filesystem.  The other part contains the linux kernel and the filesystem in an EXT3 filesystem and will contain all the files needed to run Linux.</p>
<ol>
<li>You will need to start with an SD card at least 1GB in size.  I used a 2GB which gave me some room to play around on and of course the bigger, the better.</li>
<li>Partition the SD card with a 20MB FAT16 partition at the beginning of the card and the rest of the disk space can be allocated for an EXT3 partition.  Do not create a swap partition.</li>
<li>Download the file <a title="FAT partition for Bento Linux" href="http://www.yourwarrantyisvoid.com/downloads/files/fatpart.tgz" target="_blank">fatpart.tgz</a> and extract it into the root of the FAT partition on the SD card.</li>
<li>Download the file <a title="EXT3 partition file for Bento Linux" href="http://www.yourwarrantyisvoid.com/downloads/files/extpart.tgz" target="_blank">extpart.tgz</a> and extract it into the root of the EXT3 partition of the SD card.</li>
<li>Unmount the card and insert into the Sylvania&#8217;s SD cardslot and power on the machine. It should boot the Bento Linux distribution</li>
</ol>
<h3>Installation (SD Card + USB stick)</h3>
<p>This setup does not require special partitioning, however it does require that the SD card be formatted FAT16.   You will also need a USB storage device formatted EXT3.</p>
<ol>
<li>Download the file <a href="http://www.yourwarrantyisvoid.com/downloads/files/fatpartusb.tgz" target="_blank">fatpartusb.tgz</a> and extract it to the root of the FAT formatted SD card.</li>
<li>Download the file extpart.tgz and extract it to the root of the EXT3 formatted USB stick (or hard drive).</li>
<li>Insert the SD card into the Sylvania&#8217;s SD slot and insert the USB stick into a free USB port on the Sylvania.</li>
</ol>
<p>In either instance, when you first boot the distro, it will simply bring you to a console prompt and you are good to go.  There are a couple of things you may want to do:</p>
<ul>
<li>(Pretty much required)  Set a root password.</li>
<li>Install fluxbox (light weight graphical interface) and wicd for wireless control.</li>
<li>Install aurora (lightweight firefox lookalike)</li>
<li>Install other applications though apt-get as desired.</li>
</ul>
<p>Although the bento-linux site is no longer in existence, it appears that all the repositories that come with the distribution point to the arm ports of the official Debian repositories.  Prior to them going offline, I saw a note about Bento-Linux had the sources for the WM8505 however it appears that VIA has recently released the sources for the WM8585/VT8505 chips that drive the netbook so if you have any custom drivers, it appears that now there is an easier method for getting the drivers compiled in.  I am not a kernel compiler expert so I can&#8217;t advise on this process, however some brief research does seem to indicate that there is some element of truth to this.</p>
<h3>Linux Impressions and final words</h3>
<p>After getting the Bento Linux distribution working comfortably in the netbook, I played around with it and made some tweaks here and there that did give some notable boost in performance.   If you are using a spinning platter form of storage, creation of a  swap file or swap partition is recommended as it will give you a performance boost.  Attempting to make a swap file on the SD card or on a solid-state USB drive are not recommended because of the performance hit when writing to these devices and also due to the issue of &#8220;burn-in&#8221; when a storage cell is written to frequently.  I found that the device works decently enough for quick tasks and light webpages however it will not handle flash at all, nor will it be able to render sites with large amounts of images.  In my testing, I was able to use this device to configure Cisco switches and other devices through a USB-Serial adapter and Linux&#8217;s &#8220;minicom&#8221; terminal emulator.</p>
<p>While I believe it was a valiant effort by Sylvania to enter into the netbook market, I do believe that they should have done more research.  The Sylvania netbook, even running Linux and with all the performance tweaks mentioned, still is easily beat by Asus&#8217; first offerings into the Netbook market. The two biggest things that seem to harm this device are the lack of RAM in the system (mine only has 128MB RAM) and the sub-par processor less than 1GHz.  If you have one, then you may be able to make it work for you, however if you are considering one, I&#8217;d stay clear.  It&#8217;s not worth the price they are asking for it at CVS.</p>
<p>A couple of comments left by Syed and Dave to the original CVS netbook post indicates that there are people out there that are able to get Android running on this device.  If you have information or an article written on how you did it, let me know in the comments.  I&#8217;m interested in trying it out and finding out what works on this machine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/07/25/cvs-netbook-revisited/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Building Snort and Nessus &#8211; Ubuntu IDS Part 3</title>
		<link>http://www.yourwarrantyisvoid.com/2011/05/20/building-snort-and-nessus-ubuntu-ids-part-3/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/05/20/building-snort-and-nessus-ubuntu-ids-part-3/#comments</comments>
		<pubDate>Fri, 20 May 2011 16:01:31 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=851</guid>
		<description><![CDATA[&#160; In this final article in the three part Ubuntu IDS series, we will go over installing, compiling and configuring Snort and Nessus on our new IDS device.  We will use Snort to analyze traffic as seen by the IDS and we will use Nessus to perform vulnerability testing on the network. The process for [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a rel="attachment wp-att-852" href="http://www.yourwarrantyisvoid.com/2011/05/20/building-snort-and-nessus-ubuntu-ids-part-3/watchtower/"><img class="aligncenter size-medium wp-image-852" title="Watchtower" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/Watchtower-300x199.jpg" alt="" width="300" height="199" /></a>In this final article in the three part Ubuntu IDS series, we will go over installing, compiling and configuring Snort and Nessus on our new IDS device.  We will use Snort to analyze traffic as seen by the IDS and we will use Nessus to perform vulnerability testing on the network. The process for installing Snort will also cover installing SnortReport provided by Symmetrix Technologies so we can translate Snort&#8217;s cryptic messages into a more readable format that we can take action on.  Read on as we wrap up the installation and finish our IDS device.</p>
<p><span id="more-851"></span>This article is divided into three sections. The first section will cover installing Snort, then we will move on to customizing Snort beyond the steps covered in the first section for our specific installation.  Finally we will end with installing Nessus.</p>
<h2>1:  Installing Snort</h2>
<p>Admittedly, this was the longest part in the series. I had tried manually to compile and install Snort from sources over and over again and wasn&#8217;t getting anywhere fast.  I had performed research over and over again on what options to use and was no further along than when I had unzipped the sources.  Luckily my research finally turned up a complete HOWTO article written by Symmetrix Technologies which provided instructions on how to compile and set up Snort.  You can download their HOWTO from this site:  <a href="http://www.symmetrixtech.com/download.html">http://www.symmetrixtech.com/articles/004-snortinstallguide286.pdf</a></p>
<p><strong>There are some discrepancies that you must take note of:</strong> If you are using the bonded interface as described in the prior articles, you will need to use the interface &#8220;bond0&#8243; instead of the document&#8217;s provided eth1 interface for monitoring.  If you monitor an ethX interface, you will only get half of the conversation, and since most of Snort&#8217;s ability to detect traffic relies on analyzing stimulus and the responses to that stimulus, you will be severely cutting down on Snort&#8217;s effectiveness.</p>
<h2>2: Snort Tuning</h2>
<p>If you&#8217;re this far in, then it&#8217;s safe to assume that you have already downloaded Snort, the associated ruleset and have SnortReport installed and running.  There are some things that the Snort installation howto did not entirely touch on and these are things that we will cover here.</p>
<p><strong>Adding BPF to /etc/init.d/rc.local</strong></p>
<p>One of the things missing from the Installation HOWTO was to add a BPF expression to the snort command line. BPF stands for &#8220;Berkeley Packet Filter&#8221; and is used by Snort and tcpdump to control what traffic is being analyzed by the respective tool.  In our configuration, we need to add an exception for the IDS&#8217;s management traffic otherwise when we install and run Nessus, we will end up triggering a ton of alerts.</p>
<p>Edit the /etc/rc.local file and locate the snort line.  Add &#8221; not host 192.168.0.253&#8243; to the end of the snort line. Replace 192.168.0.253 with that of the IP of the management interface of your IDS.  This is the BPF syntax that tells it to monitor your network but not the IP of your IDS device. By adding it to the end of the snort command, we are effectively telling Snort to not listen to the traffic generated by Nessus when we decide to fire it off.</p>
<p><strong>Password Protect SnortReport:</strong></p>
<p>Regardless of whether or not your IDS device can be reached from the Internet, there exists several vulnerabilities in SnortReport including one that allows potential code execution.  This could allow someone that knows you run SnortReport to execute code on your IDS and would be counterproductive to our efforts.  Until SnortReport has been fixed by SymmetrixTech, we will have to use a more basic method of securing it.  In order to provide minimal protection for SnortReport, we will add .htaccess protection to the directory that SnortReport was installed in so that way only authorized people will have access to SnortReport.</p>
<p>As root, we will use htpasswd to create the password file.  If you forget it later on, you can recreate the file easily using the below steps. Use the below command to make the password file and replace &#8220;joe&#8221; with that of your desired username.</p>
<p><strong># htpasswd -c /var/snortreportpasswd joe</strong></p>
<p>Now, we need to create a .htaccess file in /var/www/snortreport-1.3.1 to reference it.  Copy the below code and enter it into /var/www/snortreport-1.3.1/.htaccess and don&#8217;t forget the . in the filename.</p>
<pre>AuthName "SnortReport"
AuthType Basic
AuthUserFile /var/snortreportpasswd
Require valid-user
</pre>
<p>Finally, there is one more change we need to make to Apache2 to get the .htaccess protection working.  Edit /etc/apache2/sites-available/default and look for the clause that looks like the one below:</p>
<pre>&lt;Directory /var/www/&gt;
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
&lt;/Directory&gt;</pre>
<p>Change the &#8220;<strong>AllowOverride None</strong>&#8221; to &#8220;<strong>AllowOverride All&#8221;</strong> and then restart apache2 via <strong>/etc/init.d/apache2 restart</strong> . Now try it out by going to http://(your IDS IP address)/snortreport-1.3.1/alerts.php. You should  get a password prompt. Type in the password that you created using the htpasswd command earlier and you should see a green page that says SnortReport.</p>
<p>When you first load the page, you will see two dropdowns for Timeframe and Day.  If your IDS has received any incidents, you will see it show the incidents here.   Clicking on the incident summary will show more details including the source and destination IP addresses. Clicking on the IP will return correlated events that include the source or destination IP you clicked on and will show packet payloads and IP addressing information.</p>
<p>Now that you have a way to read the incidents that the IDS receives, it&#8217;s up to you to decide whether or not the incidents generated are something to take action against. However, installing an IDS is only one half of the solution.  In order to be aware of the effect an attack may have on your network, you first must know what vulnerabilities exist on your network.  For that, we turn to the free vulnerability scanner, Nessus.</p>
<h2>3: Installing Nessus</h2>
<p>Nessus is widely used as a professional commercial-grade vulnerability scanner. It can generate reports that indicate per host what vulnerabilities exist and can provide information on where to go to learn more about patching or mitigating the threat.  Keep in mind that while Nessus is often used on Linux, it is a commercial product.  It does have a home version which we will be using in our installation however the home version can not be used in a commercial environment.</p>
<p>The Nessus HomeFeed provides your Nessus installation with the most up-to-date vulnerability detection methods and signatures.  Access to the HomeFeed does come at a cost, however the benefits of having a vulnerability scanner outweigh the loss of a couple of features. Most notably, a feature that is only available to their commercial feed is that you can not set up recurring scans of you home network, e.g. you can&#8217;t tell the IDS to automatically scan your network and generate reports on a regular schedule.  The only other limitation that I have been able to find is that the scans are limited to 16 active hosts per report so if you have 32 hosts, you will need to run two scans. Despite the two limitations mentioned above, Nessus is still a great scanner, and will work quite well for identifying vulnerabilities on your network.</p>
<p>All that being said, let&#8217;s get started.</p>
<p>First off, head to Tenable Security&#8217;s website at <a title="Nessus Security" href="http://www.tenable.com/products/nessus/nessus-homefeed" target="_blank">http://www.tenable.com/products/nessus/nessus-homefeed</a> and register to receive your activation code. Keep your email handy, you will need it later.</p>
<p>Next, head to <a href="http://www.tenable.com/products/nessus/nessus-download-agreement" target="_blank">http://www.tenable.com/products/nessus/nessus-download-agreement</a> and agree to the license, then download the Ubuntu debian package that is appropriate for your distribution.  Since this tutorial is based on using Ubuntu 10.04, I downloaded the Ubuntu 10.04 32 bit version. Although the filename says &#8220;ubuntu910&#8243;, this version was recommended by Tenable as the version to use for 10.04.</p>
<p>Now, SCP the installation package to the IDS and then use <strong>dpkg -i Nessus-4.4.1-ubuntu910_i386.deb</strong> to install it into the server. <strong>Please note:</strong> If your Ubuntu Server is running a 64 bit kernel, please download the 64bit version of Nessus.</p>
<p>Once installed, you will need to add a Nessus user to the service so you can login.  Nessus users are seperate from OS users, so you can have multiple users without having to add multiple users to the system.  To start this process, run <strong>/sbin/nessus-adduser</strong> and follow the prompts.  For the first user that you add, you will want to add an administrative user. This user will be able to adjust Nessus&#8217;s scan policies, behaviors and other settings within Nessus.</p>
<p>Now that you&#8217;ve added a user, you will need to register your Nessus installation using the HomeFeed code in your email.  Run the command <strong>/opt/nessus/bin/nessus-fetch &#8211;register &lt;Activation Code&gt;</strong> and allow it to complete the installation. Substitute <strong>&lt;Activation Code&gt;</strong> with the HomeFeed code in the email.  <strong>Please note:</strong> This step may take a considerable amount of time due to the fact that Nessus will download and update itself according to the HomeFeed subscription.  This only took about an hour on my system, your mileage may vary depending on Internet connectivity speeds.</p>
<p>Now that the Nessus service is installed, registered and updated, it&#8217;s time to test the installation.  Open a web browser and go to <strong>https://your-ids-ip-address:8834</strong> .  If you are running Firefox and are using Noscript, AdblockPlus or Flashblock, you will need to add exceptions for Javascript and Flash for the IDS IP.  This is required as the Nessus UI relies entirely on Javascript and Flash.</p>
<p>Now that you have Nessus installed, it is <strong>highly</strong> recommended to take a read through the Nessus User&#8217;s Guide: <a href="http://cgi.tenable.com/nessus_4.4_user_guide.pdf" target="_blank">http://cgi.tenable.com/nessus_4.4_user_guide.pdf</a> While Nessus is a vulnerability scanner, some of the tests it performs can cause unpredictable results. It is recommended to set up a &#8220;safe&#8221; scan that performs basic testing and then set up a &#8220;full&#8221; scan for aggressive testing.</p>
<h3>How to read the scan results:</h3>
<p>Once you have made it through the User&#8217;s Guide and have performed your first scan, you can download or view the report.  The report is listed according to IP address, then service name, then vulnerability. Each vulnerability will include the service name, port, protocol, related CVE information (links to the CVE database for more information), as well as common fixes for the vulnerability.</p>
<p>I recommend taking a look at the vulnerability list in this order:</p>
<ol>
<li>Externally accessible services: A vulnerability in Apache that listens to the outside world threatens your internal network.  Address this first!</li>
<li>Internally accessible services on the same server as external services:  Should the external service be compromised, internal services could be used to further compromise the network.</li>
<li>Internally accessible services: A service listening internally may not pose much of a threat, but may be a possible point of compromise should another host get infected.  ( A common example is a weakness in older versions of Samba that would allow for remote code execution.)</li>
</ol>
<p>Generally speaking, it is a good idea to keep up to date with all service packs, updates and patches as this will prevent any known exploits from turning into full-blown worms.  Remember, it only takes one vulnerability to get compromised.</p>
<h2>Final thoughts:</h2>
<p>This has definitely been quite a project. I have learned a whole lot about network security in the course of my GCIA training and in building this project. I honestly think that building an IDS device from scratch is a great way to get acquainted with network security and how to perform vulnerability assessments.  Using Snort Report to analyze suspicious traffic and incoming threats and using Nessus to identify vulnerabilities in your system will help your home network stay secure against the ever evolving threats going around the Internet.</p>
<p>Always remember that security is no use  if the warnings go unheeded.  While you don&#8217;t have to turn into a complete security nut, make it a good habit to take a look at Snort Report once a week at least.  Personally, I record the number of events logged and if it changes, I then investigate further however I haven&#8217;t picked up any incidents in the last month so for me it&#8217;s a pretty easy check.  If you find yourself with tons of IRC events and you don&#8217;t use IRC, it&#8217;s very possible that you have an active trojan on your hands and may warrant further investigation.</p>
<p>I hope you had fun and learned a lot from this project. I had a lot of fun building it and working out the kinks to make it all work together.  If you have any comments or questions, please leave me a comment and I&#8217;ll do my best to answer.</p>
<p>FIRESTORM_v1</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/05/20/building-snort-and-nessus-ubuntu-ids-part-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting up bonding networking -Ubuntu IDS Part 2</title>
		<link>http://www.yourwarrantyisvoid.com/2011/05/04/building-an-ubuntu-ids-part-2/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/05/04/building-an-ubuntu-ids-part-2/#comments</comments>
		<pubDate>Wed, 04 May 2011 16:01:59 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=847</guid>
		<description><![CDATA[In an earlier article, I demonstrated how you can build a passive monitoring device for an Ethernet network as the first part to a three part project to build a home IDS device.  In this article, the second in the series, I will describe how to set up the networking for an IDS using the [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-848" href="http://www.yourwarrantyisvoid.com/2011/05/04/building-an-ubuntu-ids-part-2/cctvwall/"><img class="aligncenter size-medium wp-image-848" title="CCTV Wall" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/CCTVwall-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>In an earlier article, I demonstrated how you can build a passive monitoring device for an Ethernet network as the first part to a three part project to build a home IDS device.  In this article, the second in the series, I will describe how to set up the networking for an IDS using the passive tap that I built earlier.This setup will involve using a technique called bonding to take two physical interfaces and bond them together, creating a logical interface that we can use for Snort.  This article will also explain where is the best location to place the tap and what you can expect to see once the networking is set up using common Linux utilities like tcpdump.</p>
<p><span id="more-847"></span></p>
<h2>Requirements</h2>
<ul>
<li>A Passive Tap as mentioned in &#8220;<a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/" target="_blank">Build a Passive Ethernet Tap</a>&#8221; or similar device.</li>
<li>Three network cards or a single network card with  three interfaces.</li>
<li>A new installation of Ubuntu Server. (I am using Ubuntu Server 10.04LTS).</li>
<li>Beer. (Always)</li>
</ul>
<p>The requirements for this project aren&#8217;t that extensive and chances are you have most if not all the equipment you need in your parts bin. The most significant item in this list is the three network cards.  If you followed the steps in my first article in this series, you already have a machine with two or three network cards in it so you&#8217;re pretty much there. If not, then go ahead and get three network cards in your Ubuntu server and ensure that all three cards re properly recognized by the system even if there&#8217;s no IP address. for them.</p>
<p>The first two network cards will be combined together to form the monitoring interface while the third card will be for our management interface.  The management interface will be assigned an IP address and will be how we acccess the server&#8217;s commandline (via SSH), and the scanning and reporting tools we will install in Part 3.</p>
<h2>Getting things set up</h2>
<p>With the proper hardware in hand, we can now set about performing the configuration necessary to getting our interfaces configured properly. In the code below, you can see the interfaces (eth0, eth1 and eth2) and that eth0 has been configured with an IP address.  If you haven&#8217;t configured yours with an IP address, this will be covered while we perform the configuration.</p>
<pre>matt@ids-01:~$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:18:f3:18:1c:25 
 inet addr:192.168.0.222  Bcast:192.168.0.255  Mask:255.255.255.0
 inet6 addr: fe80::218:f3ff:fe18:1c25/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:45458 errors:0 dropped:0 overruns:0 frame:0
 TX packets:23861 errors:0 dropped:0 overruns:0 carrier:2
 collisions:0 txqueuelen:1000
 RX bytes:55984695 (55.9 MB)  TX bytes:2326303 (2.3 MB)

eth1      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:11505094 errors:2 dropped:0 overruns:0 frame:2
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:3057886364 (3.0 GB)  TX bytes:218 (218.0 B)

eth2      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:8061127 errors:1 dropped:0 overruns:0 frame:1
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:1434430796 (1.4 GB)  TX bytes:250 (250.0 B)

lo        Link encap:Local Loopback 
 inet addr:127.0.0.1  Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:48 errors:0 dropped:0 overruns:0 frame:0
 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:3948 (3.9 KB)  TX bytes:3948 (3.9 KB)
</pre>
<p>In this output, you can see eth0 is my management interface as it has been assigned an IP, eth1 and eth2 are both going to become a new interface called bond0.  When we set up Snort, we will use bond0 as our monitoring interface so that way we can take advantage of Snort&#8217;s stateful analysis and because it will be critical for any network analysis to hear both sides of the conversation on the passive tap.</p>
<p>In order to set up bonding, we will need to install the <strong>ifenslave</strong> package.  As root, run the below command:</p>
<p># <strong>apt-get install ifenslave</strong></p>
<p>Once apt-get completes, let&#8217;s check a few things.  First, let&#8217;s take a look at <strong>/etc/modprobe.d/aliases.conf</strong>.  Make sure that the two lines below appear in the file:</p>
<p><strong>alias bond0 bonding</strong><br />
<strong>options mode=0 miimon=100 downdelay=200 updelay=200</strong></p>
<p>If you will be making more than one bonding interface, you will need to add another alias line to coincide with the bond interfaces you wish to add (bond1, bond2, etc..) and you will need to add <strong>max_bonds=X</strong> to the end of the options line. Set X to the maximum number of bonding interfaces you will be using.</p>
<p>Now this is where things get interesting.  In order to test this out, we will bond the interfaces using the command below:</p>
<p><strong># ifenslave bond0 eth1 eth2</strong></p>
<p>It does not matter which order the two eth interfaces appear, however bond0 must come first.  This command tells the Linux kernel to take eth1 and eth2 and pair them together into a single interface (bond0).  Now that we have done that, <strong>ifconfig -a</strong> will present a new interface:</p>
<pre>root@ids-01:~# ifconfig -a
bond0     Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 inet6 addr: fe80::2e0:b6ff:fe00:a206/64 Scope:Link
 UP BROADCAST RUNNING PROMISC MASTER MULTICAST  MTU:1500  Metric:1
 RX packets:19568527 errors:3 dropped:0 overruns:0 frame:3
 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:198240524 (198.2 MB)  TX bytes:468 (468.0 B)

eth0      Link encap:Ethernet  HWaddr 00:18:f3:18:1c:25 
 inet addr:192.168.0.222  Bcast:192.168.0.255  Mask:255.255.255.0
 inet6 addr: fe80::218:f3ff:fe18:1c25/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:45907 errors:0 dropped:0 overruns:0 frame:0
 TX packets:24117 errors:0 dropped:0 overruns:0 carrier:2
 collisions:0 txqueuelen:1000
 RX bytes:56024505 (56.0 MB)  TX bytes:2411029 (2.4 MB)

eth1      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:11506043 errors:2 dropped:0 overruns:0 frame:2
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:3058301702 (3.0 GB)  TX bytes:218 (218.0 B)

eth2      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:8062484 errors:1 dropped:0 overruns:0 frame:1
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:1434906118 (1.4 GB)  TX bytes:250 (250.0 B)

lo        Link encap:Local Loopback 
 inet addr:127.0.0.1  Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:48 errors:0 dropped:0 overruns:0 frame:0
 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:3948 (3.9 KB)  TX bytes:3948 (3.9 KB)
</pre>
<p>Now that we have the bonding interface up, we need to write the configuration in <strong>/etc/networking/interfaces</strong> so that they will be brought up at boot time.  After struggling with this for a few moments, I finally found out the proper rules needed in order to do this:</p>
<ol>
<li>You have to define your bonding interface first.</li>
<li>You must use an &#8220;<strong>up</strong>&#8221; statement to specify how to bring up the interfaces. We will be using the parameter <strong>promisc</strong> to ensure that the interfaces are ready for when we install Snort.</li>
<li>We must use bonding-specific statements to specify how the bonding interface will be created and for each interface&#8217;s role in the bonding configuration.</li>
</ol>
<p>Edit <strong>/etc/networking/interfaces</strong> and remove the existing information.  Add the below lines, but be sure to add the proper IP addressing information for your management interface.</p>
<pre># The primary network interface
auto eth0
iface eth0 inet static
 address 172.20.1.253
 netmask 255.255.255.0
 broadcast 172.20.1.255
 gateway 172.20.1.250

auto bond0
iface bond0 inet manual
 bond-slaves none
 bond-mode 0
 bond-miimon 100
 up ifconfig bond0 promisc up

auto eth1
iface eth1 inet manual
 up ifconfig eth1 promisc up
 bond-master bond0
 bond-primary eth1 eth2

auto eth2
iface eth2 inet manual
 up ifconfig eth2 promisc up
 bond-master bond0
 bond-primary eth1 eth2</pre>
<p>In the above configuration, the <strong>up</strong> parameter tells the network scripts to bring up the selected interface up with the promiscuous mode enabled so we can prepare the interfaces at boot time for  listening to network traffic. The <strong>bond-master</strong> and <strong>bond-primary</strong> parameters indicate which bonding interface the physical interface should be added to.  Granted for one bond interface it would appear faster to just single keywords however if you decide to set up multiple bonded interfaces, the keywords would lose meaning quickly.</p>
<p>When all is said and configured, reboot the computer.  When the computer comes back up, check <strong>ifconfig -a</strong> and see if you see something like the below.</p>
<pre>root@ids-01:~# ifconfig -a
bond0     Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 inet6 addr: fe80::2e0:b6ff:fe00:a206/64 Scope:Link
 UP BROADCAST RUNNING PROMISC MASTER MULTICAST  MTU:1500  Metric:1
 RX packets:19570074 errors:3 dropped:0 overruns:0 frame:3
 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:198918392 (198.9 MB)  TX bytes:468 (468.0 B)

eth0      Link encap:Ethernet  HWaddr 00:18:f3:18:1c:25 
 inet addr:172.20.1.253  Bcast:192.168.0.255  Mask:255.255.255.0
 inet6 addr: fe80::218:f3ff:fe18:1c25/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:46106 errors:0 dropped:0 overruns:0 frame:0
 TX packets:24224 errors:0 dropped:0 overruns:0 carrier:2
 collisions:0 txqueuelen:1000
 RX bytes:56042559 (56.0 MB)  TX bytes:2427777 (2.4 MB)

eth1      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:11506719 errors:2 dropped:0 overruns:0 frame:2
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:3058600599 (3.0 GB)  TX bytes:218 (218.0 B)

eth2      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06 
 UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1
 RX packets:8063355 errors:1 dropped:0 overruns:0 frame:1
 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:1435285089 (1.4 GB)  TX bytes:250 (250.0 B)

lo        Link encap:Local Loopback 
 inet addr:127.0.0.1  Mask:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
 UP LOOPBACK RUNNING  MTU:16436  Metric:1
 RX packets:48 errors:0 dropped:0 overruns:0 frame:0
 TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:0
 RX bytes:3948 (3.9 KB)  TX bytes:3948 (3.9 KB)
</pre>
<h2>Now to install it&#8230;</h2>
<p>In order to install this machine where it will be most effective in your network, there are some things to consider:</p>
<ul>
<li>What kind of Internet access do you have? (Cable, DSL, FiOS, etc&#8230;..)</li>
<li>Does your ISP require running a program on your router to connect? (like PPPoE clients, RASPPPoE, others..)</li>
<li>What is considered the &#8220;edge&#8221; of your network?</li>
<li>Where is the location where the IDS would have most visibility to the network traffic generated by your computers either wired or wireless?</li>
</ul>
<p>In most corporate networks, there is a single switch that handles all the traffic for a network. This makes things a loss less complex as the network traffic is in one place however in most homes, this is simply not the case.  At least in my network, there&#8217;s at least four switches between the router (my edge) and the innermost device (my Wireless Access Point). Since I wanted all the traffic monitored, I elected to connect the passive tap between my router and the first switch.  Any internet activity generated by any device on the network will be monitored by the IDS and if malicious will generate an alert.  If you have only a couple of PCs that are wireless but have several embedded devices like gaming consoles or media streaming boxes (not media center PCs, more like Boxee boxes and the like) you may want to move the passive tap between your wireless access point and the switch connecting the embedded devices as they are a lot less likely to generate malicious traffic.  Your configuration may be different, but when in doubt, installing the passive tap and your soon-to-be IDS between your edge router and the rest of your network is a safe bet.</p>
<h2>What&#8217;s Next?</h2>
<p>We&#8217;ve covered how to build a passive tap. We just covered how to configure bonding for the passive tap.  In the final article in the series, we will discuss how to install Snort and make this machine into a full blown IDS device.</p>
<p>Happy Hacking!</p>
<p>&nbsp;</p>
<p>FIRESTORM_v1</p>
<p>&nbsp;</p>
<div id="_mcePaste" class="mcePaste" style="position: absolute; left: -10000px; top: 3862px; width: 1px; height: 1px; overflow: hidden;">root@ids-01:~# ifconfig -a<br />
bond0     Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06<br />
inet6 addr: fe80::2e0:b6ff:fe00:a206/64 Scope:Link<br />
UP BROADCAST RUNNING PROMISC MASTER MULTICAST  MTU:1500  Metric:1<br />
RX packets:19570074 errors:3 dropped:0 overruns:0 frame:3<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:198918392 (198.9 MB)  TX bytes:468 (468.0 B)&nbsp;</p>
<p>bond1     Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:04<br />
inet6 addr: fe80::2e0:b6ff:fe00:a204/64 Scope:Link<br />
UP BROADCAST RUNNING PROMISC MASTER MULTICAST  MTU:1500  Metric:1<br />
RX packets:24303821 errors:2 dropped:0 overruns:0 frame:2<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:777005710 (777.0 MB)  TX bytes:468 (468.0 B)</p>
<p>eth0      Link encap:Ethernet  HWaddr 00:18:f3:18:1c:25<br />
inet addr:192.168.0.222  Bcast:192.168.0.255  Mask:255.255.255.0<br />
inet6 addr: fe80::218:f3ff:fe18:1c25/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
RX packets:46106 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:24224 errors:0 dropped:0 overruns:0 carrier:2<br />
collisions:0 txqueuelen:1000<br />
RX bytes:56042559 (56.0 MB)  TX bytes:2427777 (2.4 MB)</p>
<p>eth1      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06<br />
UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1<br />
RX packets:11506719 errors:2 dropped:0 overruns:0 frame:2<br />
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:3058600599 (3.0 GB)  TX bytes:218 (218.0 B)</p>
<p>eth2      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:06<br />
UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1<br />
RX packets:8063355 errors:1 dropped:0 overruns:0 frame:1<br />
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:1435285089 (1.4 GB)  TX bytes:250 (250.0 B)</p>
<p>eth3      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:04<br />
UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1<br />
RX packets:16316361 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:3675415003 (3.6 GB)  TX bytes:238 (238.0 B)</p>
<p>eth4      Link encap:Ethernet  HWaddr 00:e0:b6:00:a2:04<br />
UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1500  Metric:1<br />
RX packets:7987460 errors:2 dropped:0 overruns:0 frame:2<br />
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:1396558003 (1.3 GB)  TX bytes:230 (230.0 B)</p>
<p>lo        Link encap:Local Loopback<br />
inet addr:127.0.0.1  Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING  MTU:16436  Metric:1<br />
RX packets:48 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:3948 (3.9 KB)  TX bytes:3948 (3.9 KB)</p>
<p>root@ids-01:~#</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/05/04/building-an-ubuntu-ids-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build a Passive Ethernet Tap &#8211; Ubuntu IDS Part 1</title>
		<link>http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 16:34:40 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=802</guid>
		<description><![CDATA[One of the things that the GCIA study has taught me is that being able to monitor the network your computer is on is a critical necessity to maintaining a secure network. Corporate environments can set up IDS devices to monitor traffic however monitoring doesn&#8217;t work unless you have proper connectivity to what you want [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/acousticcoupler/" rel="attachment wp-att-803"><img class="aligncenter size-medium wp-image-803" title="acoustic coupler" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/acousticcoupler-300x199.jpg" alt="Image courtesy of forums.overclockers.co.uk" width="300" height="199" /></a></p>
<p>One of the things that the GCIA study has taught me is that being able to monitor the network your computer is on is a critical necessity to maintaining a secure network. Corporate environments can set up IDS devices to monitor traffic however monitoring doesn&#8217;t work unless you have proper connectivity to what you want to monitor. Unfortunately, most of us don&#8217;t have central wiring in our house and expensive managed switches that can set up span sessions with which to monitor traffic in transit.  In this HOWTO, I will cover how to build your own monitoring connection that you can use on your own network to monitor traffic without breaking the bank. This article is first in a three part series on how to build your own home IDS for monitoring your network traffic. Look for the other two sections soon!<br />
<span id="more-802"></span></p>
<h2>A little bit more info first&#8230;</h2>
<p>In the early days of affordable Ethernet networking, devices called hubs (or repeaters) were used to bring the signals together from each workstation in order to allow the workstations to communicate with each other. When a packet was sent to the hub, the hub repeated the packet across all ports on the device and all other workstations would receive it, even if it was not destined for that particular workstation.  The hubs gave way to switches as networking technology became cheaper and faster. Unfortunately, the switches also changed the old way of signal transmission. When a workstation sends a packet to a switch, it is sent from the sender&#8217;s switch port  and arrives at  the switch port of the workstation that the packet is destined to. It does not get sent to other workstations&#8217; switch ports unlike the hub&#8217;s transmission method.  Because of the need for network monitoring, more advanced switches started offering monitor ports (Cisco calls them span sessions) that are used to forward all traffic that goes through a switch out of this specifically configured port.  This port would then be connected to the monitoring device and would allow the monitoring device to &#8220;listen&#8221; to all packets that traversed the switch.</p>
<p>The good thing is that most if not all managed switches support a monitor port however the bad thing is that a managed switch is way outside the pocketbook of most home network users.</p>
<h2>But why not use a hub?</h2>
<p>A hub would allow us to listen in on network traffic however a hub would degrade your network&#8217;s performance thanks to it&#8217;s lack of proper high speed flow control and its susceptability to collisions.  In my testing, I used a 100baseT hub between my firewall and my network and found that my previously rock solid network connection had dropped well below speed and would barely support YouTube streaming, much less Netflix.  Instead of using a hub and risking continued degradation, I decided to research another solution.</p>
<h2>So, what&#8217;s the solution and how do I use it?</h2>
<p>The solution is the Passive Tap.  This device sits between a unmanaged switch and a computer or router and allows a monitor device to listen in on the network connection between a computer and switch.  The word passive in this instance means that there is no way to detect the device&#8217;s presence. It does not have a MAC address, it does not repeat. For all intensive purposes, the tap does not exist.</p>
<p><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/passivetapmonitorsetup/" rel="attachment wp-att-804"><img class="aligncenter size-full wp-image-804" title="Passive Tap Monitor Setup" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/PassiveTapMonitorSetup.jpg" alt="" width="438" height="174" /></a></p>
<p>In the image above, we have connected the Passive Tap between a network switch and a monitored host in order to monitor traffic between the host and other machines on the network (in this case the Server).  This would be an ideal setup for monitoring traffic generated by the monitored host and the rest of the network with the focus being on the monitored host. In this configuration, the monitor device would pick up all traffic destined to or originating from the host and any broadcast traffic generated by the network.</p>
<p style="text-align: center;"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/passivetapmonitorsetup2/" rel="attachment wp-att-873"><img class="size-full wp-image-873 aligncenter" title="Passive Tap Monitor Setup #2" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/PassiveTapMonitorSetup2.jpg" alt="Passive Tap Monitor Setup #2" width="438" height="174" /></a></p>
<p>This configuration is a bit different than the first image however the scope of the monitor device&#8217;s visibility has changed. Instead of just monitoring the Monitored Host, this configuration allows the monitor device to monitor any Internet traffic that passes between any host on the switch and the firewall. If there were additional devices connected to the switch (other desktops, an Xbox, a Wifi Access point, etc..) their communication with the Internet would also be monitored.  The only communication that would not get monitored would be communication between the devices plugged into the switch (for example the Monitored Host and a Wifi Accesspoint, etc.)</p>
<h2>Parts List</h2>
<p>In order to build a passive tap, you will need the following items.  The parts themselves cost me about $20 at a computer store which is a lot better than the $200 that some eBay sellers want.</p>
<ul>
<li>A cat-5 patch cord</li>
<li>A surface mount biscuit jack / modular mounting box. (See picture below)</li>
<li>Two CAT5 keystones (they don&#8217;t have to be green/red like mine)</li>
<li>Screwdriver</li>
<li>Wire cutters/blade</li>
<li><a href="http://en.wikipedia.org/wiki/Punch_down_tool" target="_blank">A M110 punch down tool</a> (If you have one, it makes the installation easier)</li>
<li>A monitoring computer with two network interfaces and Wireshark installed (windows) or tcpdump(linux)</li>
<li>A test computer (or device) with one network interface</li>
<li>A network switch.</li>
<li>Beer (optional)</li>
</ul>
<div id="attachment_805" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/parts/" rel="attachment wp-att-805"><img class="size-medium wp-image-805" title="Parts" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/Parts-300x225.jpg" alt="Parts" width="300" height="225" /></a><p class="wp-caption-text">Parts</p></div>
<p>Here&#8217;s an image of the parts. The biscuit jack on the left, the two keystones are in the center and the patch cord is on the right.</p>
<p>We&#8217;ll start off by first taking a look at the keystones up close.</p>
<div id="attachment_806" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/keystones/" rel="attachment wp-att-806"><img class="size-medium wp-image-806" title="Keystones" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/Keystones-300x225.jpg" alt="Keystones" width="300" height="225" /></a><p class="wp-caption-text">Keystones</p></div>
<p>These keystone jacks are wired up and marked in such a way that all you need to do to wire it up properly is to follow the color code. A closer inspection will reveal that there are small numbers in between the symbols for the wire positions. In <a href="http://www.infocellar.com/networks/cables/twisted-pair-cables.htm" target="_blank">this page on twisted pair wiring</a>, you can see that of the four pairs in a Cat-5 10/100 cable, only pairs 2 (white/orange) and 3(white/green) are used.  In order to properly receive both sides of the conversation on the wire, we will need to &#8220;tap&#8221; into both pairs and route them to the proper pins on the two keystones to each jack&#8217;s Pair 2 (receive pair) so that the data being sent can arrive at the NIC of our monitoring device.</p>
<p>If you scroll down to the section labeled &#8220;568A and 568 B Color Schemes&#8221;, you will see that the receive pair is on pins 3 and 6 of the diagram jacks.  Our keystones are similarly labelled and when we are done, we will have one pair of the Cat-5 patch cable going to pins 3 and 6 of one jack, and the other pair of the Cat-5 patch cable going to the other jack.</p>
<h2>Let&#8217;s get started.</h2>
<p>First off, it is important to understand that you must be able to do this WITHOUT NICKING OR CUTTING THE WIRES.  A cut or nick could result in either your tap not working properly or the tap getting all the data but your connected host doesn&#8217;t or any one of a whole handful of issues.  Thankfully, Cat-5 patch cords are not very expensive, but it still sucks to put a project on hold because a slip of the knife.</p>
<p>To start, lay out the patch cord and decide on where you want the tap.  Since the hosts are closer to my monitor machine, I&#8217;ve decided to create a short end and a long end with the tap being more towards one end.  You may want to have the tap in the middle or very close to one end of your patch.  It electrically does not matter.</p>
<p>Strip back about two to three inches of jacket so that you have something like below.</p>
<div id="attachment_807" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/strippedwires/" rel="attachment wp-att-807"><img class="size-medium wp-image-807" title="Stripped Wires" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/strippedwires-300x225.jpg" alt="Stripped Wires" width="300" height="225" /></a><p class="wp-caption-text">Stripped Wires</p></div>
<p>Mount the keystones in the surface mount box as shown below.</p>
<p>&nbsp;</p>
<div id="attachment_811" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/mounted-keystones/" rel="attachment wp-att-811"><img class="size-medium wp-image-811" title="mounted keystones" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/mounted-keystones-300x225.jpg" alt="mounted keystones" width="300" height="225" /></a><p class="wp-caption-text">mounted keystones</p></div>
<p>Now that they are mounted, we will then need to take a look at which pair of pins we need to match the wires up to. Below is a better side-view pic of the green jack in detail.  Please note, your jacks may appear different, but all CAT5 keystone jacks that I have seen have both a color designation and a numeric designation. Be sure to pay attention to which is which and where you are placing your wires otherwise it may not work.</p>
<div id="attachment_812" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/wiremarks/" rel="attachment wp-att-812"><img class="size-medium wp-image-812" title="Wire/Pin designations" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/wiremarks-300x225.jpg" alt="Wire/Pin designations" width="300" height="225" /></a><p class="wp-caption-text">Wire/Pin designations</p></div>
<p>You can click on the picture for a larger more detailed image.  In the above image (using the top set of colors as a guide) we see that the orange/white hash is pin 3 and the solid orange is pin 6. The same goes for the red jack (not shown).  That being said, untwist the orange and green wires, and place them into their respective slots. Make sure that the solid wire goes with the solid pin and the hashed wire goes with the hashed pin. A reversal here will cause the monitor port not to receive data and could affect your host/switch.</p>
<div id="attachment_815" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/readytocrimp/" rel="attachment wp-att-815"><img class="size-medium wp-image-815" title="Wires ready to crimp" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/readytocrimp-300x225.jpg" alt="Wires ready to crimp" width="300" height="225" /></a><p class="wp-caption-text">Wires ready to crimp</p></div>
<p>In the above photo, you can see that the white/orange pair are lightly inserted into the wire channels.  If you don&#8217;t have the M100 punch tool, you can get away with using the wire caps that came with your keystones.  These caps will push down the wire and crimp it into place over a metal pin that connects the wire to the pin in the jack.  When you are done, you will have something akin to the below:</p>
<div id="attachment_816" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/readytoclose/" rel="attachment wp-att-816"><img class="size-medium wp-image-816" title="Tap ready to close" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/readytoclose-300x225.jpg" alt="Tap ready to close" width="300" height="225" /></a><p class="wp-caption-text">Tap ready to close</p></div>
<p>Also of note: To act as a strain relief, I have added tiewraps on the cable. This will serve to protect the cable from getting yanked out and damaged.  In this picture, you can also see the two white caps that have punched the wires down in place. Reassemble the jack and make sure to install the screw in the lid if your jack has one.</p>
<div id="attachment_817" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/completedtap/" rel="attachment wp-att-817"><img class="size-medium wp-image-817" title="Completed Passive Ethernet Tap" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/completedtap-300x225.jpg" alt="Completed Passive Ethernet Tap" width="300" height="225" /></a><p class="wp-caption-text">Completed Passive Ethernet Tap</p></div>
<p>Here&#8217;s the completed tap in all it&#8217;s glory!</p>
<h2>Testing the Tap</h2>
<p>In order to test the tap, we need at least two computers, one of which must have two network adapters.  The computer with one network adapter will be our &#8220;test host&#8221; and the other computer will be our monitoring host.  On the test host, I have assigned the IP address 10.0.0.2 and on the monitoring computer, I have assigned one interface (eth0) with the IP of 10.0.0.1.  The monitoring interface (eth1) will have no IP address assigned to it and will be for testing the tap.  Remember that as far as the test host is concerned, the tap is just a CAT-5 patch cable.</p>
<p>Before proceeding, mark the passive tap where the Ethernet cables come out as A and B.  This will be important as this test will also help us label which side of the conversation we are listening to.  One side will be considered &#8220;Network to Host&#8221; and the other will be considered &#8220;Host to Network&#8221;.  It is imperative that we get both sides of the conversation, each side represented by one of the two keystone jacks. While it might not be important now, later on when you use this tap for something else (like an IDS project), you will need to know which side of the conversation you are listening to.</p>
<p>To get your test rig set up, connect the long side (side A in my case) of the tap cable to the switch.  Connect the short side (side B in my case) to the test host.  Connect the ethernet interface on the monitoring machine to the switch, but leave the  unmonitored interface disconnected.  Keep in mind that on my monitoring machine, eth0 was the interface with the IP address, and eth3 was the interface that will be used for monitoring. I&#8217;m using Linux on my system, you may need to make adjustments where needed.</p>
<ul>
<li>On the monitoring host, ensure that you can ping the test host before hooking up the monitoring interface to the tap.</li>
<li>On the monitoring host, open two terminal windows</li>
<li>In the first window, start tcpdump using this command:  <strong>sudo tcpdump -i eth3 -nvs0 -c 10 ip[9]=1</strong>This translates to start tcpdump on eth3, no host resolution (-n), verbose mode (v), no snapshot length (s0), for a count of 10 packets (-c 10) and only on ICMP protocol (ip[9]=1).</li>
<li>Attach the monitoring interface to one of the two keystones.  I picked the red jack.</li>
<li>In the second window, ping the test host using the -c 5 parameter:  <strong>ping testmachine -c 5</strong> The -c 5 tells ping to try 5 times.</li>
<li>You should see the below text in your ping window:</li>
</ul>
<p>&nbsp;</p>
<pre>$ ping  testmachine -c 5
PING testmachine (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=7.25 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.685 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.719 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.746 ms
64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=0.704 ms</pre>
<p>&nbsp;</p>
<ul>
<li>Your TCPDUMP window should show something like this:</li>
</ul>
<p>&nbsp;</p>
<pre>21:48:59.093624 IP (tos 0x0, ttl 64, id 27270, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 1, length 64
21:49:00.088502 IP (tos 0x0, ttl 64, id 49871, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 2, length 64
21:49:01.087486 IP (tos 0x0, ttl 64, id 36772, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 3, length 64
21:49:02.086630 IP (tos 0x0, ttl 64, id 27025, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 4, length 64
21:49:03.085505 IP (tos 0x0, ttl 64, id 28037, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.2 &gt; 10.0.0.1: ICMP echo reply, id 24899, seq 5, length 64</pre>
<p>&nbsp;</p>
<ul>
<li>Keep in mind that there are two packets associated with ping. One is an <strong>ICMP Echo Request</strong> and the other is an <strong>ICMP Echo Reply</strong> In this case I received the echo reply which means that the red jack is for &#8220;Host to Network&#8221; monitoring or B-&gt;A. If you got ICMP echo request, then your jack is A-&gt;B.</li>
<li>Mark the jack as B-&gt;A and continue testing. At this point, we know that our tap at least hears half the conversation.</li>
<li>Switch the monitor interface to the other jack (Mine is green) and rerun the ping.  Your ping should show the below just like before:</li>
</ul>
<p>&nbsp;</p>
<pre>$ ping 10.0.0.2 -c 5
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=9.69 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.705 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.663 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.722 ms
64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=0.714 ms</pre>
<p>&nbsp;</p>
<ul>
<li>This time, however, the TCPDUMP output should have changed:</li>
</ul>
<p>&nbsp;</p>
<pre>22:00:28.084339 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 1, length 64
22:00:29.077220 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 2, length 64
22:00:30.076215 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 3, length 64
22:00:31.075218 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 4, length 64
22:00:32.074214 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
 10.0.0.1 &gt; 10.0.0.2: ICMP echo request, id 40269, seq 5, length 64</pre>
<p>&nbsp;</p>
<ul>
<li>Just like before, I received 5 packets however last time I got the ICMP echo reply, this time I got the ICMP echo request.  This means that the green jack is the A-&gt;B connector, that is Network to Host. Mark it as appropriate.</li>
</ul>
<p>If you&#8217;re at this point, then you have demonstrated that the tap works.  It allows the test host to communicate with the network unimpeded, it also allows the monitoring of host to network and network to host data.  My passive tap looks like the one below:</p>
<div id="attachment_818" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/labelled/" rel="attachment wp-att-818"><img class="size-medium wp-image-818" title="Finished Passive Tap" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/03/labelled-300x225.jpg" alt="Finished Passive Tap" width="300" height="225" /></a><p class="wp-caption-text">Finished Passive Tap</p></div>
<h2>Now what to do?</h2>
<p>At this point, with a good passive tap in hand, you have a whole bunch of things you can do. You could:</p>
<ol>
<li>Establish an IDS for your network (my original plan)</li>
<li>Monitor a host&#8217;s traffic exchange with the network/Internet.</li>
<li>Perform traffic reconstruction for analysis.</li>
<li>Monitor network communication between your Wireless access point and the rest of your network</li>
</ol>
<h2>Troubleshooting</h2>
<p>Unfortunately, I can&#8217;t account for every situation however there may be some situations where the tcpdump test doesn&#8217;t exactly work as planned.  Here&#8217;s some common solutions if your tests don&#8217;t work quite right<strong>:</strong></p>
<p><strong>I can see the A-&gt;B traffic, but can&#8217;t see the B-&gt;A traffic. The ping window shows the host responds. (or)</strong></p>
<p><strong>I can see the B-&gt;A traffic but can&#8217;t see the A-&gt;B traffic. The ping window shows the host responds. (or)</strong></p>
<p><strong>I can not see any traffic, but the ping window shows the host responds.</strong></p>
<p><strong> </strong>Check your wires on the keystone and make sure the wire went down onto the metal pin. Sometimes when using the caps to crimp down the wires, one of the wires will shift at the last second<strong>.<br />
</strong></p>
<p><strong>I can see the ICMP Echo Request  on one port but I see nothing on the other. The ping window shows that the host does not respond.</strong></p>
<p>Check to see that the wires didn&#8217;t rip apart or that they were not nicked in the construction process.</p>
<h2>Last Thoughts</h2>
<p>Even if you don&#8217;t plan on building a home IDS, having a passive tap in your toolbox is a good idea.  You never know when you will need to intercept and analyze traffic between two devices on a network. This device will allow you to do so with minimal effort and cost all while allowing the host to chatter away unimpeded by the monitoring.</p>
<p>Happy Hacking!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/04/06/homeland-security-build-a-passive-ethernet-tap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Minecraft Server in Ubuntu Server</title>
		<link>http://www.yourwarrantyisvoid.com/2011/01/09/installing-minecraft-server-in-ubuntu-server/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/01/09/installing-minecraft-server-in-ubuntu-server/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 22:29:05 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Minecraft]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=773</guid>
		<description><![CDATA[Ok, I&#8217;ll admit it.  I&#8217;ve been caught by the Minecraft bug.  It bit me hard and of course I learned rather quickly that there is a problem with using two laptops to play Minecraft on and that is that it&#8217;s a pain in the posterior to move your save games around.  In this article, I [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-775" href="http://www.yourwarrantyisvoid.com/2011/01/09/installing-minecraft-server-in-ubuntu-server/minecraftubuntu/"><img class="aligncenter size-full wp-image-775" title="Minecraft and Ubuntu logos" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/01/minecraftubuntu.jpg" alt="Minecraft and Ubuntu logos" width="263" height="88" /></a>Ok, I&#8217;ll admit it.  I&#8217;ve been caught by the Minecraft bug.  It bit me hard and of course I learned rather quickly that there is a problem with using two laptops to play Minecraft on and that is that it&#8217;s a pain in the posterior to move your save games around.  In this article, I will be covering how to install Minecraft Server on a new installation of Ubuntu 9.04LTS.  These instructions will work for all current versions of Ubuntu, so if you&#8217;re using something newer or something older, these instructions should get you up and running in no time. <span id="more-773"></span></p>
<h2>Foreword</h2>
<p>Please note that per Notch (the Minecraft developer), running the Multiplayer server is still in beta phase so expect it to crash, be buggy and generally not work.  That being said, I can personally tell you that Minecraft Server DOES work and except for a few minor gameplay glitches, the server works quite well. Please keep in mind that this is by no means an exhaustive article on all things Minecraft Server, nor is it written in stone (ba-dum-thish!) as the Minecraft Server application may change.  If it does, I will make changes to this article to keep it current.</p>
<p>I can tell you that having your own Minecraft server is awesome and that you will never go back to playing singleplayer as you won&#8217;t have to worry about files to migrate and that your world will continue to evolve even as you are not playing.  This being said, before you disconnect your Minecraft session, it is recommended to make sure that your minecraft player is somewhere safe, be it in your bunker or somewhere where baddies can&#8217;t get to you while you are away. Remember, just because you&#8217;re not logged in, doesn&#8217;t mean that the world stops.</p>
<h2>System Requirements</h2>
<p>The System Requirements for Minecraft Server have yet to be officially established however there are some guidelines that have turned up during my research into this topic.  The below is a guideline only and not an exhaustive set of requirements.  It&#8217;s perfectly fine if you don&#8217;t meet all of them however expect performance hits depending on how you use the server.</p>
<ul>
<li>Processor: At least a 1.5GHz single core chip, whichever architecture you desire.</li>
<li>RAM:  At least 1.5GB FREE RAM. If you use the server for anything more than Minecraft, make sure you have at least 1.5GB free RAM at full utilization.</li>
<li>Disk: At least a 20Gb disk, with swap space allocated. (Using the &#8220;Use Full Disk&#8221; and &#8220;Automatically Setup Partitions&#8221; options in the Ubuntu Setup will ensure you have enough swap.  Although the game isn&#8217;t that big, the save files and caching elements will be quite large so of course the more the merrier.</li>
<li>Networking: 10/100 Ethernet is recommended.</li>
<li>Video:  Doesn&#8217;t matter. We will be running Minecraft Server in a Screen session, so there&#8217;s no need for a fancyOMGWTFBBQ video card. Save that for the rig you will play Minecraft on.</li>
</ul>
<p><strong>Please note: In order to take advantage of Minecraft Server, you must purchase the game from Notch at <a title="Minecraft Official Site" href="http://www.minecraft.net" target="_blank">www.minecraft.net</a> and have a username and password. You will still need to use either the Minecraft Beta standalone application or the Minecraft Beta web-based application to access your server.</strong></p>
<p>This is the basic setup of a good single person Minecraft server. While the possibility exists that you may be able to run multiple connected players on the specs above, if you are planning on hosting a lot of players, you may want to consider a beefer rig. My Minecraft server uses the below stats:</p>
<ul>
<li>Processor: Dual Core Intel Core 2 Duo 1.86GHz</li>
<li>RAM:  3.5GB DDR-2</li>
<li>Disk: 80GB SATA</li>
<li>Networking: 10/100/1000 Ethernet (onboard)</li>
<li>Video: whatever&#8217;s on the motherboard.</li>
</ul>
<h2>Getting Started</h2>
<p>This HOWTO will already assume you&#8217;ve installed your core Ubuntu Server installation and have performed no additonal steps. Login with your user account that you created during setup and perform the following steps. While you can technically prepend &#8220;sudo&#8221; to each command, I find it faster and less frustrating to just &#8220;sudo bash&#8221; and type your password once.</p>
<ul>
<li>
<b>apt-get update</b>
</li>
<li>
<b>apt-get install openssh-server</b>
</li>
<li>
<b>apt-get install screen</b>
</li>
</ul>
<p>This will install the OpenSSH server so you can remotely manage the server.  You will need a client like PuTTY (<a title="Putty Homepage" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">download from here</a>) in order to access it.  This will also install Screen which will contain the Minecraft server process.  If you don&#8217;t install screen, you will not be able to exit the SSH session without the Minecraft server being killed off.</p>
<p>Now for the fun part.  You will need to install Java in order to start the Minecraft server but Minecraft server will require the use of only the Sun JVM. I tried with the other JVM and it did not work at all.</p>
<ul>
<li>
<b>apt-get install sun-java6-bin sun-java6-jdk sun-java6-jre</b>
</li>
</ul>
<p>In order to ensure that the java environment is correct, run the command &#8220;java -version&#8221; and make sure it matches the below text.<br />
<b># java -version<br />
java version &#8220;1.6.0_22&#8243;<br />
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)<br />
Java HotSpot(TM) Server VM (build 17.1-b03, mixed mode)<br />
</b></p>
<p>If it shows something else, you will need to do the following:</p>
<ul>
<li><b>update-java-alternatives -l</b></li>
</ul>
<p>This will list off all the various Java VMs that are installed.<br />
<b># update-java-alternatives -l<br />
java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk<br />
java-6-sun 63 /usr/lib/jvm/java-6-sun</b><br />
You will need to set the proper Java VM to use via the below syntax:</p>
<ul>
<li>
<b>update-java-alternatives -s java-6-sun</b>
</li>
</ul>
<p>Now, run &#8220;java -version&#8221; again and it should show the same version information as above. If it does, you&#8217;re good to go otherwise check your error messages.</p>
<p>Please note that the rest of these commands are run without root privileges. <span style="color: #ff0000;"><strong>NEVER EVER RUN MINECRAFT SERVER AS ROOT!</strong></span></p>
<h2>Installing Minecraft Server</h2>
<p>If you&#8217;re this far, then you&#8217;ve got the Java VM set properly and your server is all set for Minecraft Server.  You will need to download the minecraft_server.jar to your computer then use scp to put it on the server. You can download a Windows SCP client called WinSCP from <a title="WinSCP homepage" href="http://winscp.net/eng/index.php" target="_blank">this site</a>. Copy it into your non-root user&#8217;s home directory, in my case I&#8217;m using &#8220;mcserver&#8221;.</p>
<p>To start the server, you will need to use the following command:</p>
<ul>
<li>
<pre>java -Xmx1024m -Xms1024m -jar minecraft_server.jar nogui</pre>
</li>
</ul>
<p>You will see a lot of text scroll past the screen and you will see it generate a new world via the console messages. Once it settles down, you can then type &#8220;help&#8221; for a list of commands.</p>
<p>Since we just fired it up, let&#8217;s go ahead and stop it. Type in the command &#8220;save-all&#8221; which forces the server to save the generated map, then &#8220;stop&#8221; to shut the server down.</p>
<h2>Stopping and Starting the server</h2>
<p>To start the server, first off make sure you are in a screen session by typing &#8220;screen -list&#8221; like below:</p>
<pre>mcserver@mcserver:~$ screen -list
There is a screen on:
 2434.tty1.mcserver        (01/09/2011 12:58:57 PM)        (Attached)
1 Socket in /var/run/screen/S-mcserver.</pre>
<p>This indicates that you are in a screen session.  If you see &#8220;(no screens running)&#8221; then just type &#8220;screen&#8221; to start one.</p>
<p>Once in the screen session, type in the command shown below.  This is the exact same command as when we installed it, but this time we&#8217;re not going to shut it down.</p>
<ul>
<li>
<pre>java -Xmx1024m -Xms1024m -jar minecraft_server.jar nogui</pre>
</li>
</ul>
<p>To disconnect from the screen session, hit Ctrl-A and then the D key, this will drop you back to the shell prompt where you can then type &#8220;exit&#8221; to logout. The Minecraft Server will continue to run.</p>
<p>To stop the server that is already in a screen session, login to the server using SSH and the non-root user.  To reconnect with the screen session, type in &#8220;screen -r&#8221;.  You will be reconnected to the server and can then perform the following commands:</p>
<ul>
<li>say Server is going down</li>
</ul>
<p>This lets any players know that the server&#8217;s going down.</p>
<ul>
<li>save-all</li>
</ul>
<p>This tells the server to save the entire world.</p>
<ul>
<li>stop</li>
</ul>
<p>This tells the Minecraft Server to shutdown and exit. You will be dropped to a console prompt from there you can shutdown the server or do whatever you need to do.</p>
<h2>Other useful commands in MC Server</h2>
<pre>Console commands:
 help  or  ?               shows this message
 kick &lt;player&gt;             removes a player from the server
 ban &lt;player&gt;              bans a player from the server
 pardon &lt;player&gt;           pardons a banned player so that they can connect again
 ban-ip &lt;ip&gt;               bans an IP address from the server
 pardon-ip &lt;ip&gt;            pardons a banned IP address so that they can connect again
 op &lt;player&gt;               turns a player into an op
 deop &lt;player&gt;             removes op status from a player
 tp &lt;player1&gt; &lt;player2&gt;    moves one player to the same location as another player
 give &lt;player&gt; &lt;id&gt; [num]  gives a player a resource
 tell &lt;player&gt; &lt;message&gt;   sends a private message to a player
 stop                      gracefully stops the server
 save-all                  forces a server-wide level save
 save-off                  disables terrain saving (useful for backup scripts)
 save-on                   re-enables terrain saving
 list                      lists all currently connected players
 say &lt;message&gt;             broadcasts a message to all players</pre>
<h2>Quick and Easy Start script</h2>
<p>Below is a very simple script I wrote because I kept forgetting all the java commands.  In order to use it, save both lines below as a file (like &#8220;startmcserver.sh&#8221;) and then &#8220;chmod +x startmcserver.sh&#8221; so that way you can start the server simply by running &#8220;./startmcserver.sh&#8221;</p>
<pre>#!/bin/bash
java -Xmx1024m -Xms1024m -jar minecraft_server.jar nogui</pre>
<p>Remember to keep both lines intact.  It&#8217;s essentially the same Java command, but it&#8217;s easier to type.</p>
<p>Have fun and Happy minecrafting!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/01/09/installing-minecraft-server-in-ubuntu-server/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Android:Sprint officially releases Android 2.1 for Samsung Moment!</title>
		<link>http://www.yourwarrantyisvoid.com/2010/05/15/androidsprint-officially-releases-android-2-1-for-samsung-moment/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/05/15/androidsprint-officially-releases-android-2-1-for-samsung-moment/#comments</comments>
		<pubDate>Sat, 15 May 2010 07:10:43 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Product Reviews]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Mods]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=447</guid>
		<description><![CDATA[While writing up the review for the Samsung Moment versus the Palm Pre, I happened to find out that Sprint has now released Android 2.1 (Eclair) for the Moment.  Guess now I have to start over again, but the up side is that this is a very significant update from Samsung&#8217;s initial release, Android 1.5. [...]]]></description>
			<content:encoded><![CDATA[<p>While writing up the review for the Samsung Moment versus the Palm Pre, I happened to find out that Sprint has now released Android 2.1 (Eclair) for the Moment.  Guess now I have to start over again, but the up side is that this is a very significant update from Samsung&#8217;s initial release, Android 1.5.</p>
<p>You can download the update from Sprint at <a title="Sprint's samsung moment update page" href="http://shop.sprint.com/en/software_downloads/pda_smartphone/samsung_moment.shtml" target="_blank">http://shop.sprint.com/en/software_downloads/pda_smartphone/samsung_moment.shtml</a></p>
<p>Please note: According to the instructions available at the link above, you will need to use a Windows PC to apply the update to your phone.  I will be posting a mirror shortly and it will show up in the &#8220;Download Files&#8221; page at the top of this page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/05/15/androidsprint-officially-releases-android-2-1-for-samsung-moment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web: Stupid HTML trick to get past content filters</title>
		<link>http://www.yourwarrantyisvoid.com/2010/05/02/web-stupid-html-trick-to-get-past-content-filters/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/05/02/web-stupid-html-trick-to-get-past-content-filters/#comments</comments>
		<pubDate>Sun, 02 May 2010 16:58:50 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Webservers]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=426</guid>
		<description><![CDATA[I know it&#8217;s been a while since I posted, and I do apologize.  Life has definitely not been kind to me in the regards of time however I have not forgotten anything. I have two major posts coming up hopefully within the next week, however here&#8217;s a quick article about a trick I discovered while [...]]]></description>
			<content:encoded><![CDATA[<p>I know it&#8217;s been a while since I posted, and I do apologize.  Life has definitely not been kind to me in the regards of time however I have not forgotten anything. I have two major posts coming up hopefully within the next week, however here&#8217;s a quick article about a trick I discovered while working on a project with a friend.  The project was to see if their content filter could be broken in their chat application andthrough a little bit of HTML know-how and some PHP code, I was able to crank out a generator to do just that.  Read more to find out the details.<span id="more-426"></span></p>
<h2>The Challenge:</h2>
<p>The trick was to figure out how to get certain &#8220;four letter words&#8221; past the chat app&#8217;s filter and into the main chat window without the word being munged by the system.  Most chat applications filter out obscene words through a string matching system and replaces it with something that is much less offensive, usually a series of asterisks.  The only thing I could use was straight ASCII characters, and I couldn&#8217;t use any &#8220;img src&#8221; HTML tags to do the dirty work (literally).</p>
<h2>The Analysis:</h2>
<p>All HTML code that is rendered is associated with something called a character set (or code page from the old MS-DOS days).  These character sets associate any character with a certain number (often called it&#8217;s ASCII value).  Although some characters are standard on all character sets, (like &#8220;a&#8221; = 97),  some control characters and characters above 256(decimal) change significantly.  In order to properly convey these control characters via the web, urlencoding was created and implemented as part of the HTML spec.  What this means is that every character in a character set can be represented in HTML through the use of the percent sign (%) modifier. The syntax for this was %(ASCII value in hexadecimal). The general idea was that if you typed in a russian name using symbols not found in the Latin alphabet, these symbols could be properly represented on the server side.</p>
<p>With that in mind, I examined the UTF-8 character set.  In this example, I&#8217;ll use the word &#8220;taco&#8221; to represent the offending word.</p>
<h2>How it&#8217;s done:</h2>
<p>The process for this is as follows:</p>
<ol>
<li>Find the ASCII value for each character in the word</li>
<li>Find the hexadecimal value for the ASCII value</li>
<li>Add &#8220;%&#8221; in front of that number</li>
<li>Insert a &#8220;null&#8221; character somewhere.</li>
</ol>
<p>For reference, you can use <a title="ASCII table" href="http://www.asciitable.com" target="_blank">this chart</a> which gives you the ASCII and the ASCII in hex values already</p>
<p>From the chart, we see the following information:</p>
<p>t = 116 (decimal) or 74(hex)</p>
<p>a=97(decimal) or 61(hex)</p>
<p>c= 99(decimal) or 63(hex)</p>
<p>o = 111(decimal) or 6f(hex)</p>
<p>Using this information, we can then create our string, inserting the % where needed.  %74 %61 %63 %6f</p>
<p>Only one item remains.  In order to spoof some of the more intelligent content filters, you need to put a null character in there somewhere. This throws off the content filter and makes it think that there are different characters represented.  For this, I used character 0B which does not have latin equivalent and is a control code that does not render in HTML.  I used 0B because 08 rendered as a tab in testing.</p>
<p>Knowing this, I inserted the null character between the urlencoded &#8220;a&#8221; and the urlencoded &#8220;c&#8221;: %74 %61 %0B %63 %6F</p>
<h2>Testing it out:</h2>
<p>All that is needed to test it is to copy and paste the above string into any chat application and hit send. You will need to remove the spaces from between the characters otherwise your application will treat them as renderable characters as well.  If it works, you&#8217;ll see the word &#8220;taco&#8221; in your window.  Now you know how to get past content filters.  If you are in the business of building content filters, now you have a new strategy for blocking people abusing them.</p>
<h2>Don&#8217;t be a prick!</h2>
<p>I posted this information with the hopes that people may find it useful, not so that script kiddies can run around and make asses of themselves.  Be smart about how you use this information and last but not least, DON&#8217;T BE A PRICK!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/05/02/web-stupid-html-trick-to-get-past-content-filters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Games: Half-life &#8220;mad-scientist&#8221; glitch found and overcome</title>
		<link>http://www.yourwarrantyisvoid.com/2010/01/23/games-half-life-mad-scientist-glitch-found-and-overcome/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/01/23/games-half-life-mad-scientist-glitch-found-and-overcome/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 17:18:01 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Toys and Games]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[How-To's]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=346</guid>
		<description><![CDATA[When I&#8217;m not wielding a soldering iron or slinging parts around my workbench, I like to get my frag on just like many other gamers out there.  So imagine my sadness when in the midst of the heated battle to protect the planet from the likes of an invading alien force in the original Half-life, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-347" title="Valve Logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2010/01/logo_valve1-300x226.jpg" alt="Valve Logo" width="300" height="226" /></p>
<p>When I&#8217;m not wielding a soldering iron or slinging parts around my workbench, I like to get my frag on just like many other gamers out there.  So imagine my sadness when in the midst of the heated battle to protect the planet from the likes of an invading alien force in the original Half-life, my pursuit of alien destruction came to a screeching halt by way of a serious game glitch. This glitch occurred on the map called &#8220;Questionable Ethics&#8221; and was readily reproducible.  Read more for details about the game glitch and a video that shows how you can get past the glitch and continue on.<span id="more-346"></span></p>
<p>Half-life is one of my most favorite games in all of the games I own.  While the honor of the &#8220;First FPS ever played&#8221; goes to Quake 2 from my days at Texas A&amp;M, this was the first FPS that brought a compelling story along with it.  Now, even though I know every nook and cranny of the game&#8217;s maps and it&#8217;s intricate storyline, I still love playing the game even if all I do is run around and flail my crowbar at random baddies that pop up.</p>
<p>My most recent game play however came across a glitch where the scientists that were supposed to help you after you save them ended up sending the scientists all over the map and rendered them unusable.  This is critically game-stopping as the same scientists are supposed to escort you to the front door of the building and open a door controlled by a retinal scanner. Without the scientists to open the door, you&#8217;re pretty much hosed.</p>
<p>Thankfully, the people at the Valve support forum had a solution.  I went ahead and tested and was able to continue with my game.  I felt that someone else might be trapped by this same situation so I went ahead and recorded a video on the glitch and how to get past it.</p>
<p>Here is the link to the forums where I found the only solution for this issue:  <a href="http://forums.steampowered.com/forums/showthread.php?p=12208808" target="_blank">http://forums.steampowered.com/forums/showthread.php?p=12208808</a></p>
<p>&nbsp;</p>
<p><object width="445" height="364"><param name="movie" value="http://www.youtube.com/v/n_PrWwZuFqE&amp;hl=en_US&amp;fs=1&amp;border=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed type="application/x-shockwave-flash" width="445" height="364" src="http://www.youtube.com/v/n_PrWwZuFqE&amp;hl=en_US&amp;fs=1&amp;border=1" allowscriptaccess="always" allowfullscreen="true"></embed></object>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/01/23/games-half-life-mad-scientist-glitch-found-and-overcome/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

