<?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>Long-term Memory &#187; firewall</title>
	<atom:link href="http://blog.dest-unreach.be/tag/firewall/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.dest-unreach.be</link>
	<description>A collection of note-to-self&#039;s</description>
	<lastBuildDate>Sun, 29 Jan 2012 16:05:00 +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>Compiling custom dd-wrt kernel modules</title>
		<link>http://blog.dest-unreach.be/2010/12/01/compiling-custom-dd-wrt-kernel-modules</link>
		<comments>http://blog.dest-unreach.be/2010/12/01/compiling-custom-dd-wrt-kernel-modules#comments</comments>
		<pubDate>Wed, 01 Dec 2010 18:12:20 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[dd-wrt]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[WRT320N]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=1905</guid>
		<description><![CDATA[Since none of the dd-wrt releases include ip6tables support, I added it myself. The standard kernel does support module loading, so you can simply add additional kernel features without reflashing the device. You do need some writable storage. I use the remaining 4MB of flash using JFFS, but using an external storage (USB, network, &#8230;) [...]]]></description>
			<content:encoded><![CDATA[<p>Since none of the dd-wrt releases include ip6tables support, I added it myself. The standard kernel does support module loading, so you can simply add additional kernel features without reflashing the device. You do need some writable storage. I use the remaining 4MB of flash using <a href="http://en.wikipedia.org/wiki/JFFS">JFFS</a>, but using an external storage (USB, network, &#8230;) is also possible.</p>
<p>Since you can&#8217;t run a complete build environment on the router itself, you&#8217;ll have to set up a <a href="http://en.wikipedia.org/wiki/Cross_compiler">cross-compiling</a> environment on your own machine. As I found out, this isn&#8217;t always very easy to do&#8230;<br />
<span id="more-1905"></span></p>
<p>Since there are some requirements on the development host (<a href="http://www.jonisdumb.com/2011/02/dd-wrt-cross-compile-environment.html">64bit host</a>, <a href="http://www.dd-wrt.com/wiki/index.php/Development#Pre-requisites">case-sensitive filesystem</a>), I used a clean Ubuntu-64bit 10.04 install in a virtual machine.</p>
<h3>Preparations</h3>
<p>Start by getting the sources for the 2.6.24.111 kernel:</p>
<blockquote>
<pre># svn checkout svn://svn.dd-wrt.com/DD-WRT/src/linux/brcm/linux-2.6.23 -r 14929
# head -n5 linux-2.6.23/Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 24
EXTRAVERSION = .111
NAME = Arr Matey! A Hairy Bilge Rat!</pre>
</blockquote>
<p>See, I told you it&#8217;s 2.6.24.111!</p>
<p>Next we&#8217;ll get the <a href="http://www.dd-wrt.com/wiki/index.php/Development#Building_DD-WRT_from_Source">cross-compiling toolchain</a>:</p>
<blockquote>
<pre># cd /opt
# wget http://www.dd-wrt.com/dd-wrtv2/downloads/others/sourcecode/toolchains/current-toolchains.tar.bz2
# tar jxvf current-toolchains.tar.bz2</pre>
</blockquote>
<h3>Configuring the kernel</h3>
<p>First some cleanup to do: I don&#8217;t need the madwifi drivers, so I remove their reference. The config.h file is a broken softlink, so I remove that as well. For some reason, <em>jhash2.h</em> is not included (presumably because <em>jhash.h</em> is included first). This causes <em>JHASH_GOLDEN_RATIO</em> not to be defined. There are probably nicer ways to solve this, but I just redefine the constant outside of the <em>#ifndef</em>&#8216;s</p>
<blockquote>
<pre># grep -v madwifi drivers/net/wireless/Kconfig &gt; drivers/net/wireless/Kconfig.new
# mv drivers/net/wireless/Kconfig{.new,}
#
# rm include/linux/config.h
#
# echo "#define JHASH_GOLDEN_RATIO    0x9e3779b9" &gt;&gt; include/linux/jhash2.h</pre>
</blockquote>
<p>Next configure the options you want, starting from dd-wrt&#8217;s default:</p>
<blockquote>
<pre># cp .config_std .config
# make menuconfig
# PATH=$PATH:/opt/toolchain-mipsel_gcc4.1.2/bin make modules</pre>
</blockquote>
<h3>Stripping the modules</h3>
<p>Now just cherry-pick the modules you want. If you really want to squeeze out every last byte, you can strip each individual module:</p>
<blockquote>
<pre># /opt/toolchain-mipsel_gcc4.1.2/bin/mipsel-linux-strip --strip-unneeded ipv6.ko</pre>
</blockquote>
<p>Then copy these modules onto your router and <em>insmod</em> them, probably in a script.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2010/12/01/compiling-custom-dd-wrt-kernel-modules/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Converting a WRT320N to dd-wrt</title>
		<link>http://blog.dest-unreach.be/2010/11/30/converting-a-wrt320n-to-dd-wrt</link>
		<comments>http://blog.dest-unreach.be/2010/11/30/converting-a-wrt320n-to-dd-wrt#comments</comments>
		<pubDate>Tue, 30 Nov 2010 17:53:50 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[dd-wrt]]></category>
		<category><![CDATA[Ethernet]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[switch]]></category>
		<category><![CDATA[WiFi]]></category>
		<category><![CDATA[WRT320N]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=1891</guid>
		<description><![CDATA[I bought myself a new WiFi router. When in the shop, I specifically searched for a router that is supported by dd-wrt, and has (at least) 8MB of flash. I settled for the Linksys WRT320N: it has a dual band (switchable between 2.4GHz and 5GHz, not simultaneous) 802.11a/b/g/n radio, a 4 port GbE switch, and [...]]]></description>
			<content:encoded><![CDATA[<p>I bought myself a new WiFi router. When in the shop, I specifically searched for a router that is supported by <a href="http://www.dd-wrt.com/">dd-wrt</a>, and has (at least) 8MB of flash. I settled for the <a href="http://homesupport.cisco.com/en-us/wireless/lbc/WRT320N">Linksys WRT320N</a>: it has a dual band (switchable between 2.4GHz and 5GHz, not simultaneous) <a href="http://en.wikipedia.org/wiki/IEEE_802.11">802.11a/b/g/n</a> radio, a 4 port <a title="Gigabit Ethernet aka 1000base-T" href="http://en.wikipedia.org/wiki/Gigabit_Ethernet">GbE</a> switch, and a WAN port. It houses a Broadcom BC4717 processor running at 354MHz, 8MB of flash and 32MB of RAM.</p>
<p>The default Linksys firmware is actually not bad, but dd-wrt just offers a ton more features: Multiple <a href="http://en.wikipedia.org/wiki/Service_set_%28802.11_network%29">SSIDs</a>, <a href="http://en.wikipedia.org/wiki/IPv6">IPv6</a> support (including <a href="http://www.sixxs.net/">Sixxs</a> tunneling), <a href="http://en.wikipedia.org/wiki/Bandwidth_cap">WAN volume</a> monitoring, custom firewalling, <a href="http://en.wikipedia.org/wiki/Quality_of_service">traffic shaping</a>, … So I decided to void my warranty and put my router on steroids! Mandatory note: this may very well turn your router in to a very expensive brick.</p>
<p><span id="more-1891"></span></p>
<h3>The initial flash</h3>
<p>After reading through the <a href="https://secure.dd-wrt.com/phpBB2/">dd-wrt forum</a> (most notably <a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=49362">these</a> <a href="http://secure.dd-wrt.com/phpBB2/viewtopic.php?t=63004">three</a> <a href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=52043">posts</a>) and the <a href="http://dd-wrt.com/wiki/index.php/Linksys_WRT320N_v1.0">wiki page</a>, I learned a few things:</p>
<ul>
<li><a href="http://secure.dd-wrt.com/phpBB2/viewtopic.php?p=384525#384525">Apparently</a>, this router has its reset button wired to the wrong <a href="http://en.wikipedia.org/wiki/General_Purpose_Input/Output">GPIO</a> pin. Therefor, the <a href="http://www.dd-wrt.com/wiki/index.php/Hard_reset_or_30/30/30">30/30/30 reset</a> DOES NOT WORK on this router! There is an alternative: use at least version 13493, power down the router, push and hold the WPS button (on top), power up the router, hold the WPS button for 10-12 more seconds, then release.</li>
<li>The latest recommended firmware is <a href="ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/08-12-10-r14929/broadcom_K26/">BrainSlayer&#8217;s 14929</a></li>
</ul>
<p>This is the procedure I followed, with success, starting from Linksys version v1.0.03 (build 010Jul 24, 2009):</p>
<ol>
<li>Download the <a href="ftp://ftp.dd-wrt.com/others/eko/V24-K26/svn13491-snow/Linksys/WRT320N/dd-wrt.v24-13493_NEWD-2_K2.6_mini_wrt320n.bin">tailored build for the WRT320N</a> (for the freaks, my binary MD5s to e1d7edd368bf5259c18a0874c5e761db).</li>
<li>Connect via wired ethernet to the router. That way, you can see the link going up/down.</li>
<li>In the Linksys firmware, upload this file.</li>
<li>Wait 5 very long minutes.</li>
<li>Configure yourself a static IP in the 192.168.0.0/24 network (I use 192.168.0.8)</li>
<li>Direct your browser to http://192.168.0.1/</li>
<li>Set a temporary password</li>
<li>Wait 1 minute</li>
<li>Reset the router: Power down, push &amp; hold WPS button, power up, keep holding for 11 seconds, release.</li>
<li>Close &amp; reopen your browser to flush all cached pages and credentials</li>
<li>Direct your browser to http://192.168.0.1/</li>
<li>Enjoy</li>
</ol>
<h3>The upgrade</h3>
<p>After the initial flash, you can upgrade to <a href="http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F#V24_pre_sp2_K26">any regular version</a>, but keep in mind that this unit requires a 2.6 kernel. I choose the <a href="ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/08-12-10-r14929/broadcom_K26/dd-wrt.v24-14929_NEWD-2_K2.6_mini.bin">14929-mini</a> version (md5 af9ab2ff822ab69d26fa7308d47ad05a), not because it provided all I need (it doesn&#8217;t support IPv6 for example), but because it leaves the most free space for me to fiddle with.</p>
<p>To switch versions, I always follow this overly cautious procedure:</p>
<ol>
<li>Reset to defaults: power down, push &amp; hold WPS button, power up, keep holding for 11 seconds, release</li>
<li>Make sure your IP is in the correct range (192.168.0.0/24)</li>
<li>Set a temporary password</li>
<li>Upload the new firmware</li>
<li>Wait until the browser is again at the &#8220;Set password&#8221; page</li>
<li>Set temporary password</li>
<li>Reset to defaults again</li>
</ol>
<h3>The settings</h3>
<p>Most configuration is fairly straightforward with the GUI. But setting up a second, routed SSID needed a <a href="http://www.dd-wrt.com/wiki/index.php/Multiple_WLANs">little non-intuitive work</a>:</p>
<ul>
<li>Go to <em>Wireless</em> -&gt; <em>Basic Settings</em> and add a new <em>Virtual Interface</em>
<ul>
<li>Leave <em>Network Configuration</em> to <em>Bridged</em></li>
</ul>
</li>
<li>Go to <em>Setup</em> -&gt; <em>Networking</em>
<ul>
<li>Under <em>Create Bridge</em>, click <em>Add</em></li>
<li>Name the new bridge &#8220;br1&#8243; and disable <em>STP</em></li>
<li><em>Apply Settings</em></li>
<li>Now add the desired <em>IP</em> and <em>Subnet mask</em> for this brigde-port</li>
<li><em>Apply Settings</em> again</li>
<li>Click <em>Add</em> under <em>Assign to bridge</em></li>
<li>Now assign the wl0.1 interface to this newly created bridge br1</li>
</ul>
</li>
<li>Optionally <em>Add</em> a DHCP range for br1. In this case, you need to use DNSmasq as DHCP-server.</li>
</ul>
<p>Some guides tell you to configure it in Unbridged mode. Using Bridged mode gives the potential advantage that you can link a wired port to this IP-range easily.</p>
<p>Now you can easily firewall between the two WLANs by putting iptables-lines in the startup script.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2010/11/30/converting-a-wrt320n-to-dd-wrt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS(SEC) &#8211; Firewall issues</title>
		<link>http://blog.dest-unreach.be/2010/02/10/dnssec-firewall-issues</link>
		<comments>http://blog.dest-unreach.be/2010/02/10/dnssec-firewall-issues#comments</comments>
		<pubDate>Wed, 10 Feb 2010 18:03:25 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[dnssec]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[NAT]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=1630</guid>
		<description><![CDATA[I just read this message by Mark Andrews on the BIND mailing list. It explains the possible issues with DNSSEC and over-protective firewalls, giving test-commands to verify your setup. This post is also interesting for regular DNS traffic, since a firewall doesn&#8217;t know the difference. Here is the most interesting part: First, you should verify [...]]]></description>
			<content:encoded><![CDATA[<p>I just read <a href="https://lists.isc.org/pipermail/bind-users/2010-February/078755.html">this message</a> by Mark Andrews on the <a href="https://lists.isc.org/mailman/listinfo/bind-users">BIND mailing list</a>. It explains the possible issues with DNSSEC and over-protective firewalls, giving test-commands to verify your setup. This post is also interesting for regular DNS traffic, since a firewall doesn&#8217;t know the difference.</p>
<p><span id="more-1630"></span> Here is the most interesting part:</p>
<blockquote><p>First, you should verify that you can talk to L.ROOT-SERVERS.NET using plain DNS.  This will ensure that failures in the subsequent tests are meaningful.</p>
<p>e.g.</p>
<pre>dig +nodnssec +norec +ignore ns . @L.ROOT-SERVERS.NET

; &lt;&lt;&gt;&gt; DiG 9.3.6-P1 &lt;&lt;&gt;&gt; +nodnssec +norec +ignore ns . @L.ROOT-SERVERS.NET
;; global options:  printcmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 39974
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 15

;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	192.228.79.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	128.8.10.90
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	128.63.2.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f

;; Query time: 189 msec
;; SERVER: 2001:500:3::42#53(2001:500:3::42)
;; WHEN: Mon Feb  8 13:05:49 2010
;; MSG SIZE  rcvd: 492</pre>
<p>Next we will see whether you can receive an answer that is greater than 512 bytes.  This test simulates how named makes its initial queries. Most signed responses fit between 512 bytes and 1500 bytes and are returned in a single un-fragmented UDP packet.  This test is designed to check this case.</p>
<p>e.g.</p>
<pre>dig +dnssec +norec +ignore ns . @L.ROOT-SERVERS.NET

; &lt;&lt;&gt;&gt; DiG 9.3.6-P1 &lt;&lt;&gt;&gt; +dnssec +norec +ignore ns . @L.ROOT-SERVERS.NET
;; global options:  printcmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 381
;; flags: qr aa; QUERY: 1, ANSWER: 14, AUTHORITY: 0, ADDITIONAL: 21

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.
.			518400	IN	RRSIG	NS 8 0 518400 20100214000000 20100206230000 23763 . JWEPSBVBz37WV/cvjxtlBGGLFe88ojhBM3ZZW+ZC2umpQq5lMSnE/3vO WGVWq8gOFs/mlmXttk80WxwZfUvgDXddNtqbNoNWZaGPbH9F2O+B6yDX n6jE4EcMRcjoL752uZTDMZ8WHEiEorjxsVYr1ae1MYZO5K0CqzX/qkUW 1DY=

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	192.228.79.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	128.8.10.90
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	128.63.2.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f
h.root-servers.net.	518400	IN	AAAA	2001:500:1::803f:235
j.root-servers.net.	518400	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	518400	IN	AAAA	2001:7fd::1
l.root-servers.net.	518400	IN	AAAA	2001:500:3::42
m.root-servers.net.	518400	IN	AAAA	2001:dc3::35

;; Query time: 191 msec
;; SERVER: 2001:500:3::42#53(2001:500:3::42)
;; WHEN: Mon Feb  8 12:51:28 2010
;; MSG SIZE  rcvd: 801</pre>
<p>If you get a response like this then your firewall passes UDP responses greater than 512 bytes.</p>
<p>If you did not get a response like this, you need to fix your firewall.</p>
<p>Next we will test to see whether you can get a response greater than 1500 bytes.  Such responses are normally fragmented, and this test will find out whether your firewall will pass fragmented UDP packets. Failure to pass such responses will force named to fall back to using queries which are likely to trigger the use of TCP, which should be avoided.  Failure to pass such answers will also slow up the resolution process.</p>
<p>e.g.</p>
<pre>dig +dnssec +norec +ignore any . @L.ROOT-SERVERS.NET

; &lt;&lt;&gt;&gt; DiG 9.3.6-P1 &lt;&lt;&gt;&gt; +dnssec +norec +ignore any . @L.ROOT-SERVERS.NET
;; global options:  printcmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 57084
;; flags: qr aa; QUERY: 1, ANSWER: 21, AUTHORITY: 0, ADDITIONAL: 21

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.				IN	ANY

;; ANSWER SECTION:
.			86400	IN	NSEC	ac. NS SOA RRSIG NSEC DNSKEY
.			86400	IN	RRSIG	NSEC 8 0 86400 20100214000000 20100206230000 23763 . haTtgLwOQ9Bm2F9BRqMtAzahIuUWrjcmRjFGI5s5jGUVpjgq/MOl7wRi IJ1nLQkXThzc8hn6b3faXXIhHE/8MShzOG4wFbHwJyltx8IT9E8XP4P5 Fz9TuE3EEElNE6GZNAg8UM4r8hyv/PSM8e7offdh7pg32kfW6fgoLsHy 8yQ=
.			86400	IN	DNSKEY	256 3 8 AwEAAa1Lh++++++++++++++++THIS/IS/AN/INVALID/KEY/AND/SHOU LD/NOT/BE/USED/CONTACT/ROOTSIGN/AT/ICANN/DOT/ORG/FOR/MOR E/INFORMATION+++++++++++++++++++++++++++++++++++++++++++ +++++++8
.			86400	IN	DNSKEY	257 3 8 AwEAAawBe++++++++++++++++THIS/IS/AN/INVALID/KEY/AND/SHOU LD/NOT/BE/USED/CONTACT/ROOTSIGN/AT/ICANN/DOT/ORG/FOR/MOR E/INFORMATION+++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++8=
.			86400	IN	RRSIG	DNSKEY 8 0 86400 20100214235959 20100131000000 19324 . v2DVoP16w3dqsOooCxAb393ExF6p1t3d3qJsYPkeV96/t3HIuVLnxpbV 02Wx+BR7dwLiURASmebvEhZrR4gNqO15M5gerrzDdY0IXA0q0xVAUj/J NvkdiniXjoQYGUwjJsdfqxvD7NQPtSz4YTuOvMlVffV1F2Bc6Woid7AK JGkb24MeQlAMy/gQqcLPs6c3a9RvZEwofMul66bUswGS+YsL8x9A6Cbt 1bdyhRUNYSl7AifA4++Pu+0MLpbrxH7DLI8O9ZfCA3LsEQUOFjYA+2jJ mzgFqZAU0HvxeQyStnLF3/bf7qifRegrn6+cTKjKtUZ52/kUFiaqgT2t 9TemTg==
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.
.			518400	IN	RRSIG	NS 8 0 518400 20100214000000 20100206230000 23763 . JWEPSBVBz37WV/cvjxtlBGGLFe88ojhBM3ZZW+ZC2umpQq5lMSnE/3vO WGVWq8gOFs/mlmXttk80WxwZfUvgDXddNtqbNoNWZaGPbH9F2O+B6yDX n6jE4EcMRcjoL752uZTDMZ8WHEiEorjxsVYr1ae1MYZO5K0CqzX/qkUW 1DY=
.			86400	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2010020701 1800 900 604800 86400
.			86400	IN	RRSIG	SOA 8 0 86400 20100214000000 20100206230000 23763 . KA46XFSIJT3xKdvlo2av5FmeFl5R8etArvA9PLJb4JUz2jioqYTjhDbT 6L5kJQaiavMF1Lic5spulaHlCHmVy+gLetI49Nc8htnd0QPWTn/MG3do isDlv9nh6uCR6cJj5W/anIkubiLHBmO11QLwVNa1IybTgTCKHNwefxG0 i/M=

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	192.228.79.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	128.8.10.90
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	128.63.2.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f
h.root-servers.net.	518400	IN	AAAA	2001:500:1::803f:235
j.root-servers.net.	518400	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	518400	IN	AAAA	2001:7fd::1
l.root-servers.net.	518400	IN	AAAA	2001:500:3::42
m.root-servers.net.	518400	IN	AAAA	2001:dc3::35

;; Query time: 191 msec
;; SERVER: 2001:500:3::42#53(2001:500:3::42)
;; WHEN: Mon Feb  8 13:15:19 2010
;; MSG SIZE  rcvd: 1906</pre>
<p>If you get a reponse like this then your firewall passes UDP responses greater than 1500 bytes.</p>
<p>If you did not get a response like this, you need to fix your firewall.</p>
<p>Next we need to see whether your firewall passes outbound TCP queries. Even when using EDNS, some answers will not fit into a UDP packet. Such responses require queries to be performed over TCP.</p>
<p>e.g.</p>
<pre>dig +dnssec +norec +vc any . @L.ROOT-SERVERS.NET

; &lt;&lt;&gt;&gt; DiG 9.3.6-P1 &lt;&lt;&gt;&gt; +dnssec +norec +vc any . @L.ROOT-SERVERS.NET
;; global options:  printcmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 20036
;; flags: qr aa; QUERY: 1, ANSWER: 21, AUTHORITY: 0, ADDITIONAL: 21

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.				IN	ANY

;; ANSWER SECTION:
.			86400	IN	NSEC	ac. NS SOA RRSIG NSEC DNSKEY
.			86400	IN	RRSIG	NSEC 8 0 86400 20100214000000 20100206230000 23763 . haTtgLwOQ9Bm2F9BRqMtAzahIuUWrjcmRjFGI5s5jGUVpjgq/MOl7wRi IJ1nLQkXThzc8hn6b3faXXIhHE/8MShzOG4wFbHwJyltx8IT9E8XP4P5 Fz9TuE3EEElNE6GZNAg8UM4r8hyv/PSM8e7offdh7pg32kfW6fgoLsHy 8yQ=
.			86400	IN	DNSKEY	256 3 8 AwEAAa1Lh++++++++++++++++THIS/IS/AN/INVALID/KEY/AND/SHOU LD/NOT/BE/USED/CONTACT/ROOTSIGN/AT/ICANN/DOT/ORG/FOR/MOR E/INFORMATION+++++++++++++++++++++++++++++++++++++++++++ +++++++8
.			86400	IN	DNSKEY	257 3 8 AwEAAawBe++++++++++++++++THIS/IS/AN/INVALID/KEY/AND/SHOU LD/NOT/BE/USED/CONTACT/ROOTSIGN/AT/ICANN/DOT/ORG/FOR/MOR E/INFORMATION+++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++8=
.			86400	IN	RRSIG	DNSKEY 8 0 86400 20100214235959 20100131000000 19324 . v2DVoP16w3dqsOooCxAb393ExF6p1t3d3qJsYPkeV96/t3HIuVLnxpbV 02Wx+BR7dwLiURASmebvEhZrR4gNqO15M5gerrzDdY0IXA0q0xVAUj/J NvkdiniXjoQYGUwjJsdfqxvD7NQPtSz4YTuOvMlVffV1F2Bc6Woid7AK JGkb24MeQlAMy/gQqcLPs6c3a9RvZEwofMul66bUswGS+YsL8x9A6Cbt 1bdyhRUNYSl7AifA4++Pu+0MLpbrxH7DLI8O9ZfCA3LsEQUOFjYA+2jJ mzgFqZAU0HvxeQyStnLF3/bf7qifRegrn6+cTKjKtUZ52/kUFiaqgT2t 9TemTg==
.			518400	IN	NS	a.root-servers.net.
.			518400	IN	NS	b.root-servers.net.
.			518400	IN	NS	c.root-servers.net.
.			518400	IN	NS	d.root-servers.net.
.			518400	IN	NS	e.root-servers.net.
.			518400	IN	NS	f.root-servers.net.
.			518400	IN	NS	g.root-servers.net.
.			518400	IN	NS	h.root-servers.net.
.			518400	IN	NS	i.root-servers.net.
.			518400	IN	NS	j.root-servers.net.
.			518400	IN	NS	k.root-servers.net.
.			518400	IN	NS	l.root-servers.net.
.			518400	IN	NS	m.root-servers.net.
.			518400	IN	RRSIG	NS 8 0 518400 20100214000000 20100206230000 23763 . JWEPSBVBz37WV/cvjxtlBGGLFe88ojhBM3ZZW+ZC2umpQq5lMSnE/3vO WGVWq8gOFs/mlmXttk80WxwZfUvgDXddNtqbNoNWZaGPbH9F2O+B6yDX n6jE4EcMRcjoL752uZTDMZ8WHEiEorjxsVYr1ae1MYZO5K0CqzX/qkUW 1DY=
.			86400	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2010020701 1800 900 604800 86400
.			86400	IN	RRSIG	SOA 8 0 86400 20100214000000 20100206230000 23763 . KA46XFSIJT3xKdvlo2av5FmeFl5R8etArvA9PLJb4JUz2jioqYTjhDbT 6L5kJQaiavMF1Lic5spulaHlCHmVy+gLetI49Nc8htnd0QPWTn/MG3do isDlv9nh6uCR6cJj5W/anIkubiLHBmO11QLwVNa1IybTgTCKHNwefxG0 i/M=

;; ADDITIONAL SECTION:
a.root-servers.net.	518400	IN	A	198.41.0.4
b.root-servers.net.	518400	IN	A	192.228.79.201
c.root-servers.net.	518400	IN	A	192.33.4.12
d.root-servers.net.	518400	IN	A	128.8.10.90
e.root-servers.net.	518400	IN	A	192.203.230.10
f.root-servers.net.	518400	IN	A	192.5.5.241
g.root-servers.net.	518400	IN	A	192.112.36.4
h.root-servers.net.	518400	IN	A	128.63.2.53
i.root-servers.net.	518400	IN	A	192.36.148.17
j.root-servers.net.	518400	IN	A	192.58.128.30
k.root-servers.net.	518400	IN	A	193.0.14.129
l.root-servers.net.	518400	IN	A	199.7.83.42
m.root-servers.net.	518400	IN	A	202.12.27.33
a.root-servers.net.	518400	IN	AAAA	2001:503:ba3e::2:30
f.root-servers.net.	518400	IN	AAAA	2001:500:2f::f
h.root-servers.net.	518400	IN	AAAA	2001:500:1::803f:235
j.root-servers.net.	518400	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	518400	IN	AAAA	2001:7fd::1
l.root-servers.net.	518400	IN	AAAA	2001:500:3::42
m.root-servers.net.	518400	IN	AAAA	2001:dc3::35

;; Query time: 380 msec
;; SERVER: 2001:500:3::42#53(2001:500:3::42)
;; WHEN: Mon Feb  8 13:18:19 2010
;; MSG SIZE  rcvd: 1906</pre>
<p>If you did not receive a answer like this, you need to fix your firewall.</p>
<p>If all the above tests succeeded, then you should have no issues when all the root servers are responding with signed versions of the root zone.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2010/02/10/dnssec-firewall-issues/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Belgacom Skynet starts filtering ports</title>
		<link>http://blog.dest-unreach.be/2009/11/02/belgacom-skynet-starts-filtering-ports</link>
		<comments>http://blog.dest-unreach.be/2009/11/02/belgacom-skynet-starts-filtering-ports#comments</comments>
		<pubDate>Mon, 02 Nov 2009 15:55:03 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[firewall]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=1454</guid>
		<description><![CDATA[In Belgium, there are 2 major ISPs: Telenet and Belgacom (Skynet). None of them allows you to run servers on your home DSL connection, but only Telenet enforced this by simply blocking all incoming TCP requests on the low ports. I regularly connect to my home server over SSH from all over the world to [...]]]></description>
			<content:encoded><![CDATA[<p>In Belgium, there are 2 major ISPs: Telenet and Belgacom (Skynet). None of them allows you to run servers on your home DSL connection, but only Telenet enforced this by simply blocking all incoming TCP requests on the low ports.</p>
<p>I regularly connect to my home server over SSH from all over the world to access my files, mail, photos, &#8230;. Since not every network I encounter allows outgoing 22/TCP connections, I also listen on 80/TCP and 443/TCP for SSH connections. This setting allowed me to connect home from pretty much every network.</p>
<p>However, since somewhere this weekend, Belgacom started to filter incomming connections. My last successful attempt was around 2009-10-31T00:10+0100. When trying this again today around 16:00+0100, the connection was filtered. Contrary to Telenet, Belgacom has the decency to reply with an &#8220;ICMP Administratively Prohibited&#8221; message. A quick port-scan showed that the following ports are being filtered:</p>
<ul>
<li>23/tcp (telnet)</li>
<li>80/tcp (http)</li>
<li>443/tcp (https)</li>
<li>992/tcp (telnets)</li>
<li>8023/tcp (unknown)</li>
<li>8085/tcp (unknown)</li>
<li>8443/tcp (https-alt)</li>
</ul>
<p>Connecting to home has just become more difficult&#8230; Guess I&#8217;ll start using <a href="http://code.kryo.se/iodine/">IP over DNS</a>&#8230;</p>
<h3>Update 2009-11-03</h3>
<p>Found <a href="http://www.delodder.be/blog/dutch/belgacom-blokkeert-poorten-tegen-hacker/">another blog</a> describing this issue (in Dutch). Rumor has it that Belgacom will offer an opt-out of this filtering.</p>
<h3>Update 2009-11-11</h3>
<p>The filtering of port 23, 80 and 443 can be disabled by surfing to the <a href="http://www.belgacom.be/e-services">Belgacom e-service site</a> and opting for &#8220;Basic Security&#8221; under &#8220;mijn internet &#8211; mijn opties&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2009/11/02/belgacom-skynet-starts-filtering-ports/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The journey of an IP packet through a Linux iptables firewall</title>
		<link>http://blog.dest-unreach.be/2009/04/22/the-journey-of-an-ip-packet-through-a-linux-iptables-firewall</link>
		<comments>http://blog.dest-unreach.be/2009/04/22/the-journey-of-an-ip-packet-through-a-linux-iptables-firewall#comments</comments>
		<pubDate>Wed, 22 Apr 2009 17:30:22 +0000</pubDate>
		<dc:creator>Niobos</dc:creator>
				<category><![CDATA[Networking & Security]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://blog.dest-unreach.be/?p=1082</guid>
		<description><![CDATA[When doing some research on the different tables in iptables, I was trying to figure out in what order what tables are traversed. Obviously PREROUTING happens before POSTROUTING, but it becomes more difficult to figure out if mangle happens before are after nat. I found a post which links to this overview:]]></description>
			<content:encoded><![CDATA[<p>When doing some research on the different tables in <a href="http://www.netfilter.org/projects/iptables/index.html">iptables</a>, I was trying to figure out in what order what tables are traversed. Obviously <a href="http://linuxmafia.com/faq/Security/iptables.html"><em>PREROUTING</em></a> happens before <a href="http://linuxmafia.com/faq/Security/iptables.html"><em>POSTROUTING</em></a>, but it becomes more difficult to figure out if <a href="http://linuxmafia.com/faq/Security/iptables.html"><em>mangle</em></a> happens before are after <a href="http://linuxmafia.com/faq/Security/iptables.html"><em>nat</em></a>.</p>
<p>I found <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295567">a post</a> which links to this overview:</p>
<p><a href="http://l7-filter.sourceforge.net/PacketFlow.png"><img class="alignnone size-thumbnail wp-image-1083" title="packetflow" src="http://blog.dest-unreach.be/wp-content/uploads/2009/04/packetflow-150x150.png" alt="packetflow" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dest-unreach.be/2009/04/22/the-journey-of-an-ip-packet-through-a-linux-iptables-firewall/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

