<?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>nat0 &#187; Cisco ASA</title>
	<atom:link href="http://nat0.net/category/english/security/cisco-asa/feed/" rel="self" type="application/rss+xml" />
	<link>http://nat0.net</link>
	<description>a blog about networking, Cisco-solutions and security</description>
	<lastBuildDate>Mon, 30 Jan 2012 11:48:03 +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>WLC2100 and ASA 5505 uses same hardware. Can they be converted?</title>
		<link>http://nat0.net/wlc2100-and-asa-5505-uses-same-hardware-can-they-be-converted/</link>
		<comments>http://nat0.net/wlc2100-and-asa-5505-uses-same-hardware-can-they-be-converted/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 16:14:06 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[WLC]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1378</guid>
		<description><![CDATA[I wonder if one can convert a Cisco Wireless Controller 2106 into an ASA 5505 or vice versa. It seems to be the same hardware. Anyone that knows if there is any burned-in differences, or is it just a matter of replacing the software? &#160; I will try to swap the CF-card in an ASA5505 [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I wonder if one can convert a Cisco Wireless Controller 2106 into an ASA 5505 or vice versa. It seems to be the same hardware. Anyone that knows if there is any burned-in differences, or is it just a matter of replacing the software?</p>
<p>&nbsp;</p>
<p>I will try to swap the CF-card in an ASA5505 with one from an WLC and see what happens. Stay tuned.</p>
<p>&nbsp;</p>
<p>ASA5505:</p>
<p><a href="http://nat0.net/wp-content/uploads/2011/10/asa5505.jpg"><img class="alignnone size-full wp-image-1379" title="asa5505" src="http://nat0.net/wp-content/uploads/2011/10/asa5505.jpg" alt="" width="412" height="331" /></a></p>
<p>WLC2106:</p>
<p><a href="http://nat0.net/wp-content/uploads/2011/10/wlc2106_front.jpg"><img class="alignnone size-full wp-image-1380" title="wlc2106_front" src="http://nat0.net/wp-content/uploads/2011/10/wlc2106_front.jpg" alt="" width="418" height="334" /></a></p>
<p><a href="http://nat0.net/wp-content/uploads/2011/10/wlc2106_rear.jpg"><img class="alignnone size-full wp-image-1381" title="wlc2106_rear" src="http://nat0.net/wp-content/uploads/2011/10/wlc2106_rear.jpg" alt="" width="418" height="334" /></a></p>
<div class="shr-publisher-1378"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/wlc2100-and-asa-5505-uses-same-hardware-can-they-be-converted/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Strange Win7-behavior with AnyConnect and Ipv6</title>
		<link>http://nat0.net/strange-win7-behavior-with-anyconnect-and-ipv6/</link>
		<comments>http://nat0.net/strange-win7-behavior-with-anyconnect-and-ipv6/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 18:08:39 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Anyconnect]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[Ipv6]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1370</guid>
		<description><![CDATA[I think Windows 7 behaves strange with AnyConnect and IPv6 &#160; I have recently been doing a lot of ipv6-configurations and as part of that I tried out the ipv6-support in the Cisco Anyconnect-client. While doing that I found out a lack of functionality when it comes to ipv6 in combination with Windows 7 and [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><span style="color: black; font-family: Tahoma; font-size: 13pt;">I think Windows 7 behaves strange with AnyConnect and IPv6<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">I have recently been doing a lot of ipv6-configurations and as part of that I tried out the ipv6-support in the Cisco Anyconnect-client. While doing that I found out a lack of functionality when it comes to ipv6 in combination with Windows 7 and the Aynconnect-client.</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">Since I have no native v6-support from my ISP I have an ipv6-tunnel from sixxs.net, providing my with my own /48-prefix network. An internal linux-host on my home networks serves as an ipv6 default-gateway and my home ASA firewall has an ipv6 default-route pointing towards that machine.</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">I have been abroad for a few days and fooled around with the Anyconnect while wasting time at the hotel room, and what I found out is a bit strange. Windows simply doesnt care about the Aynconnect v6-address when it comes to DNS lookups.</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">The ASA firewall at home has been configured with an v6-address on the inside interface and a default-route as stated above. I have added an ipv6-pool in addition to the normal ipv4 vpn-pool configured in my DfltGrpPolicy and my VPN-clients gets an v6-address as well as an v4-address:</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091311_1808_StrangeWin711.jpg" alt="" /><span style="color: black; font-family: Tahoma; font-size: 13pt;"><br />
</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">So I have a Windows7-client with ipv4-only configured on the nic, and dual-stack configured on the tunnel-interface. Look what happens when I try to resolve an hostname that only has an A-record (that is, v4):</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091311_1808_StrangeWin721.jpg" alt="" /><span style="color: black; font-family: Tahoma; font-size: 13pt;"><br />
</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">The wireshark-capture prooves that only an A-record is resolved:</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091311_1808_StrangeWin731.jpg" alt="" /><span style="color: black; font-family: Tahoma; font-size: 13pt;"><br />
</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">On the other hand, when I manually resolves an AAAA-record (v6) I get an instant lookup:</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091311_1808_StrangeWin741.jpg" alt="" /><span style="color: black; font-family: Tahoma; font-size: 13pt;"><br />
</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">And the corresponding wireshark-capture:</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091311_1808_StrangeWin751.jpg" alt="" /><span style="color: black; font-family: Tahoma; font-size: 13pt;"><br />
</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">Also, when I enter http://[2a00:1450:8001:63] in an browser I get the Google web-page.</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">So: My client has full connectivity with both v4-internet and v6-internet. Still, I cannot reach v6-internet in a decent way since windows doesnt resolve AAAA-records.</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">Shouldnt it do lookups of both AAAA and A-record as it would if I had dual stacks configured on the ordinary nick? Is this something wrong in Windows? Or in the Anyconnect-client? Or have I done something wrong? </span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;">Enlighten me!</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<p><span style="color: black; font-family: Tahoma; font-size: 13pt;"><br />
</span><span style="font-family: Times New Roman; font-size: 12pt;"><br />
</span></p>
<div class="shr-publisher-1370"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/strange-win7-behavior-with-anyconnect-and-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cisco ASA memory Upgrade</title>
		<link>http://nat0.net/cisco-asa-memory-upgrade/</link>
		<comments>http://nat0.net/cisco-asa-memory-upgrade/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 17:16:23 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/tjoho/</guid>
		<description><![CDATA[Newer versions of Cisco ASA requires more memory. Running anyconnect with multiple platform support requires more flash-memory than built in. There are memory upgrades available for purchase from cisco.com which I highly recommend. However, for lab-purposes any DDR memory and CompactFlash-card will do. Have a look in my lab gear. &#160; First, an ASA5505. On [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Newer versions of Cisco ASA requires more memory. Running anyconnect with multiple platform support requires more flash-memory than built in. There are memory <a href="http://www.cisco.com/en/US/prod/collateral/vpndevc/ps6032/ps6094/ps6120/product_bulletin_c25-586414.html">upgrades available for purchase from cisco.com</a> which I highly recommend. However, for lab-purposes any DDR memory and CompactFlash-card will do. Have a look in my lab gear.</p>
<p>&nbsp;</p>
<p>First, an <strong>ASA5505</strong>. On the overview photo below you can see that it has one single DDR memory-slot (to the far lower right corner on the picture). I have tried both 512Mb-modules and 1Gb-modules and both worked fine. Even if it is not visible from outside there is also an CF-slot. Remove the cover and replace the current CF-module with a bigger. I have tried both 2Gb and 4Gb-modules with success.</p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091111_1716_CiscoASAmem1.jpg" alt="" /></p>
<p>Picure of ASA5505 internals. Note the CF-slot in the bottom part and the memory to the right.</p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091111_1716_CiscoASAmem2.jpg" alt="" /></p>
<p>Picture of upgraded memory module from an ASA5505</p>
<p>&nbsp;</p>
<p><strong>ASA5510</strong> comes in different flavours depending on hardware revision. Older versions have 4 memory slots that needs to be filled with pairs of identical modules. In newer revisions there are only one single memory slot, and I guess (but I am not sure) that it support larger memory modules!</p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091111_1716_CiscoASAmem3.jpg" alt="" /></p>
<p>Picture of label on top of an Revision 01 ASA5510.</p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091111_1716_CiscoASAmem4.jpg" alt="" /></p>
<p>Picture of an ASA5510 Revision 01 filled with 2x512Mb. Note the disk1: CF-card accessible from outside and the internal disk0: CF-module just adjacent to in in the bottom of the picture.</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091111_1716_CiscoASAmem5.jpg" alt="" /></p>
<p>Picture of the memory-modules I use in an ASA5510 Revision 01.</p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091111_1716_CiscoASAmem6.jpg" alt="" /></p>
<p>Picture of an ASA5510 Revision 03-label.</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091111_1716_CiscoASAmem7.jpg" alt="" /></p>
<p>Picture of an Revision 03 ASA5510 with one single memory slot.</p>
<p>&nbsp;</p>
<p><img src="http://nat0.net/wp-content/uploads/2011/09/091111_1716_CiscoASAmem8.jpg" alt="" /></p>
<p>Picture of the memory module I use in an ASA5510 revision 03.</p>
<p>Again, remember that third party memory modules are <strong>not supported</strong> from Cisco. I strongly discourage using non-supported hardware in any production environment!</p>
<p>&nbsp;</p>
<p>And one final note: When you replace the CF-module you will notice that your current <strong>startup-config as well as the activation-key are gone.</strong> To avoid this, take your old original CF-card and put it in your computer. Make sure that your computer shows &#8220;<strong>hidden files</strong>&#8220;. Copy all content from the old module (maybe via a folder on your computer if you can only insert one CF at a time) and paste it back to your brand new large CF. And voila, all licensing and config are visible to the ASA! Also. On 5510+ there are double CF-slots: one internal and one external. Replace the external and address it as disk1:, put all large files there and your startup-config as well as hidden files containing your licenses will be untouched on the internal CF-card, addressed as disk0:</p>
<p>To Håkan: <a href="http://www.kjell.com/?item=31146">This is the memory module I bought</a>. <span style="font-family: Wingdings;">J</span></p>
<div class="shr-publisher-1350"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/cisco-asa-memory-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another missing ASA-feature: telnet and ssh client</title>
		<link>http://nat0.net/another-missing-asa-feature-telnet-and-ssh-client/</link>
		<comments>http://nat0.net/another-missing-asa-feature-telnet-and-ssh-client/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 10:17:36 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Telnet]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1290</guid>
		<description><![CDATA[Every single decent Cisco-device on earth has the ability to make an CLI-user jump to another device with telnet or ssh. Except the ASA. I really wish that this feature could be added. Right now I am troubleshooting a firewall and from where I am right now the only way in is to SSH to [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Every single decent Cisco-device on earth has the ability to make an CLI-user jump to another device with telnet or ssh. Except the ASA. I really wish that this feature could be added. Right now I am troubleshooting a firewall and from where I am right now the only way in is to SSH to the ASA. I can do whatever I want inside the firewall from my SSH-window, but I need to access a router inside of that firewall, and if this feature wasn´t missing i could simply run &#8220;ssh ip-address&#8221; to jump to the switch´s CLI.</p>
<p>Am I the last CLI-.guy on this planet? Please, Cisco?</p>
<p><em>Update: </em><a href="http://etherealmind.com/firewall-dont-ssh-telnet-server/"><em>Greg Ferro wrote an reply on this</em></a><em> and here are my comments:</em></p>
<p><em></p>
<p></em></p>
<p><em>This could be divided into several different questions.</em></p>
<p><em></p>
<p></em></p>
<p><em>1) Should we use SSH to manage the firewall? In my opinion CLI is superior to GUI for most tasks. There are exceptions, but for daily maintenance I prefer CLI for several reasons.  The alternative ASDM-GUI is equally safe/secure because both SSH and ASDM uses encrypted transports and the authentication-part can be configured equally for both entrance-types.</em></p>
<p><em></p>
<p></em></p>
<p><em>2) From where should we allow maintance of the firewall? Of course the most obvious answer to this is &#8220;from somewhere inside, but not from internet&#8221;. Sure, I agree. And you SHOULD lock down from which networks/hosts/directions management of the firewall should be enabled, and you SHOULD lock it down as tight as possible. </em></p>
<p><em></p>
<p></em></p>
<p><em>But what if you NEED to manage your firewall &#8220;from internet&#8221;? In most implementations there is some kind of fallback needed so that the administrator can reach the network from abroad and do changes. This can be done in a ton of ways: VPN-client, SSL-portal, Citrix, you name it. The common thing with all these access ways is that they must be enabled &#8220;from anywhere&#8221;. What´s the point of allowing vpn-client in if you must be at a specific location (from a specific IP) to connect your vpn-client? Or Citrix-session? So this must be enabled from anywhere.</p>
<p></em></p>
<p><em></p>
<p></em></p>
<p><em>So there are 2 ways to make this &#8220;from anywere&#8221;-connection secure:</em></p>
<p><em>1) It is encrypted. VPN-client-traffic is encrypted. The Citrix access-gateway traffic is encrypted, the VPN-portal is encrypted. And you know what? SSH is encrypted. </em></p>
<p><em></p>
<p></em></p>
<p><em>2) Authentication is safe enough. Validation of user rights can be done in a number of ways. Most common is of course username/password, but you can any other method available, from soft tokens and hard tokens to biometry or certificates. And you know what? All these authentication methods can be done for both VPN-clients, all other access method mentioned above, as well as for SSH-traffic.</em></p>
<p><em></p>
<p></em></p>
<p><em>So, what is it that makes people (not only you Greg <img src='http://nat0.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) so stubornly convinced that SSH-access to the firewall should be avoided? I can see no differences in security between SSH and other access methods.</em></p>
<p><em></p>
<p></em></p>
<p><em>And a final note: the original post was about SSH:ing FROM the device, not to. Following my dialogue with myself above I come to the conclusion that you CAN allow ssh into the device. <strong>Given that, what is so unsafe about giving someone that you trust, using a secure connection, the ability to reach the network behind the device? </strong>After all, this user has already God access to the firewall and could alter any configuration in the firewall.</em></p>
<div class="shr-publisher-1290"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/another-missing-asa-feature-telnet-and-ssh-client/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Missing feature: Cisco ASA dhcp static leases</title>
		<link>http://nat0.net/missing-feature-cisco-asa-dhcp-static-leases/</link>
		<comments>http://nat0.net/missing-feature-cisco-asa-dhcp-static-leases/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 15:38:32 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[ASA]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1285</guid>
		<description><![CDATA[Cisco ASA has an built-in dhcp-server that can become handy in some situations. Corporate deployments almost certainly contains one or more servers and especially when it comes to Windows networks I wouldn&#8217;t recommend anything else than a proper server-based dhcp-server. In smaller implementations however, the youngest sibling in the ASA family, 5505 is often the [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Cisco ASA has an built-in dhcp-server that can become handy in some situations. Corporate deployments almost certainly contains one or more servers and especially when it comes to Windows networks I wouldn&#8217;t recommend anything else than a proper server-based dhcp-server.</p>
<p>In smaller implementations however, the youngest sibling in the ASA family, 5505 is often the only network equipment on-site and for those purposes the dhcp-server functionality is quite neat.</p>
<p>One feature I miss a lot in ASA dhcp-server is the ability to do static leases. I often get questions like</p>
<p>&#8220;We use dhcp for simple mobility of our laptops and uses the ASA dhcp-server at remote locations. But I wanna permit or deny certain traffic for one specific computer, and want to make sure that he/she always gets the same IP. How do I solve this? And by the way, don&#8217;t tell me to configure that computer with static IP because then it doesn&#8217;t work when the user moves the pc to another network.&#8221;</p>
<p>And the simple answer to this is: Sorry, you can&#8217;t. Because ASA dhcp-server doesnt do static leases.</p>
<p>Cisco, can we have this feature pretty please with sugar on top?</p>
<div class="shr-publisher-1285"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/missing-feature-cisco-asa-dhcp-static-leases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASA-generated traffic &#8211; part2</title>
		<link>http://nat0.net/asa-generated-traffic-part2/</link>
		<comments>http://nat0.net/asa-generated-traffic-part2/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 08:56:59 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1256</guid>
		<description><![CDATA[&#160; In my previous post I successfully made ASA-generated traffic go into an VPN-tunnel. The catch with that was that the traffic (in my case: radius) was sources from the interface closest to the destination (outside) and I had to add that traffic to my crypto access-list to make it into the tunnel. This case [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>&nbsp;</p>
<p>In my <a href="http://blogg.kvistofta.nu/asa-generated-traffic-thru-lan2lan-tunnel/">previous post</a> I successfully made ASA-generated traffic go into an VPN-tunnel. The catch with that was that the traffic (in my case: radius) was sources from the interface closest to the destination (outside) and I had to add that traffic to my crypto access-list to make it into the tunnel.</p>
<p>This case inducted an discussion on my favorite ASA mailing-list <a href="http://onlinestudylist.com/archives/ccie_security/2011-April/thread.html#26125">OSL</a> and with good help from Tyson and the rest of the guys there I understood what I describes  below.</p>
<p>Basic setup:</p>
<p><a href="http://nat0.net/wp-content/uploads/2011/04/asaradius2.png"><img class="alignnone size-full wp-image-1271" title="asaradius2" src="http://nat0.net/wp-content/uploads/2011/04/asaradius2.png" alt="" width="518" height="185" /></a><br />
<code><br />
interface Vlan1<br />
nameif inside<br />
security-level 100<br />
ip address 10.10.10.1 255.255.255.0<br />
!<br />
interface Vlan2<br />
nameif outside<br />
security-level 0<br />
ip address 1.2.3.4 255.255.255.0<br />
!<br />
interface Ethernet0/0<br />
switchport access vlan 2<br />
!<br />
interface Ethernet0/1<br />
!<br />
route outside 0.0.0.0 0.0.0.0 1.2.3.1 1<br />
!<br />
aaa-server RAD protocol radius<br />
aaa-server RAD (inside) host 5.6.7.8<br />
key cisco<br />
!<br />
</code></p>
<p>If I wanna talk to the outside radius-server using my outside ip-address I would simply change the &#8220;aaa-server RAD (inside) host 5.6.7.8&#8243; above to &#8220;aaa-server RAD (outside) host 5.6.7.8&#8243;. That is what I did in the previous post and it works. In that post I also prooved that the above config doesn´t work. If the radius-server is on one interface (in my case outside) and the radius-definition points to another interface (inside) there will be no outbound radius traffic generated. Let´s see it again:<br />
<code>ciscoasa(config)#capture inside type raw-data interface inside<br />
ciscoasa(config)#capture outside type raw-data interface outside<br />
ciscoasa(config)#<br />
ciscoasa(config)#test aaa-server authen RAD host 5.6.7.8 user user pass pass<br />
INFO: Attempting Authentication test to IP address &lt;5.6.7.8&gt; (timeout: 12 seconds)<br />
ERROR: Authentication Server not responding: No error<br />
ciscoasa(config)#<br />
ciscoasa(config)# sh capture inside</p>
<p>0 packet captured</p>
<p>0 packet shown<br />
ciscoasa(config)# sh capture outside</p>
<p>2 packets captured</code></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><code> 1: 23:02:38.662838 802.1Q vlan#2 P0 192.168.2.10.138 &gt; 192.168.2.255.138:  udp 201<br />
2: 23:11:22.075618 802.1Q vlan#2 P0 192.168.2.10.138 &gt; 192.168.2.255.138:  udp 216<br />
2 packets shown<br />
ciscoasa(config)# </code></p>
<p>But there is a solution! (Thanks OSL!) And the solution is within the &#8220;management-access&#8221; command. This is what is written in the configuration guide about the command:</p>
<blockquote><p><strong>Managing the Security Appliance on a Different Interface from the VPN Tunnel Termination Interface</strong></p>
<p>If your IPSec VPN tunnel terminates on one interface, but you want to manage the adaptive security appliance by accessing a different interface, then enter the following command:</p>
<p><code>hostname(config)# management access management_interface</code></p>
<p>where management_interface specifies the name of the management interface you want to access when entering the security appliance from another interface. For example, if you enter the adaptive security appliance from the outside interface, this command lets you connect to the inside interface using Telnet; or you can ping the inside interface when entering from the outside interface.</p>
<p>You can define only one management-access interface.</p></blockquote>
<p>So, what has this to do with radius-packets? The undocumented secret here is that this command is also used to define a source-interface for outbound packets, for example radius-dito. Look. We add this command:</p>
<p><code>ciscoasa(config)# management-access inside<br />
ciscoasa(config)# </code></p>
<p>Next we reset our capture buffers:</p>
<p><code>ciscoasa(config)# clear capture inside<br />
ciscoasa(config)# clear capture outside<br />
ciscoasa(config)#<br />
</code></p>
<p>&#8230;and generates radius-packets&#8230;</p>
<p><code><br />
ciscoasa(config)# test aaa-server authen RAD host 5.6.7.8 user user pass pass<br />
INFO: Attempting Authentication test to IP address &lt;5.6.7.8&gt; (timeout: 12 seconds)<br />
ERROR: Authentication Server not responding: No error<br />
ciscoasa(config)# </code></p>
<p>Please ignore the fact that there is no answer. There is simply no radius-server in this lab&#8230;But, what happened in our captures.</p>
<p><code>ciscoasa(config)# sh capture inside</p>
<p>0 packet captured</p>
<p>0 packet shown<br />
ciscoasa(config)# sh capture outside</p>
<p>2 packets captured</p>
<p></code></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><code> 1: 23:49:06.205433 802.1Q vlan#2 P0 10.10.10.1.1025 &gt; 5.6.7.8.1645:  udp 62<br />
2: 23:50:39.478994 802.1Q vlan#2 P0 192.168.2.10.138 &gt; 192.168.2.255.138:  udp 201<br />
2 packets shown<br />
ciscoasa(config)#<br />
</code></p>
<p>Hey! Look at that packet, #1 on outside! It is sources from out inside ip, destined to our radius-server on outside, and sent out on our outside interface. And it is a radius-packet (udp 1645). Cool!</p>
<p><strong>Conclusion: With the management-access interface you can select the source ip for packets generated from the ASA, for example radius.</strong></p>
<p>So we have 3 different parameters for this traffic that controls the source address and/or destination interface:</p>
<ol>
<li>Routing-entry. In our example 5.6.7.8 is beyond another router and we have an outbound default route. Without that the device would never know in which direction to send the traffic.</li>
<li>The interface-relation in the aaa-server-command. See below.</li>
<li>The &#8220;management-interface&#8221;-command that can be used to configure the source ip.</li>
</ol>
<p>But how about #2. That interface-definition bothered me already in my last post. Why does it exist?</p>
<p>&nbsp;</p>
<p>It surely isn´t used to define the source interface/address because above I proove that it is the addition of the &#8220;management-access&#8221;-command that makes all the differ. Before adding that there was no packets sent out on outside when the radius-server was defined as &#8220;(inside)&#8221;.</p>
<p>And at the same time, it is not being used to define the outbound interface. This is being done with the routing-table. And as we see above stating (&#8220;inside&#8221;) doesn´t make the packet go out on interface inside.</p>
<p><strong>So, my officially question to Cisco is: Why is there an mandatory parameter to the aaa-server command that makes me define &#8220;<em>the name of the network interface where the designated AAA server is accessed</em>&#8220;? </strong></p>
<p><strong><br />
</strong></p>
<div class="shr-publisher-1256"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/asa-generated-traffic-part2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASA-generated traffic thru Lan2Lan-tunnel?</title>
		<link>http://nat0.net/asa-generated-traffic-thru-lan2lan-tunnel/</link>
		<comments>http://nat0.net/asa-generated-traffic-thru-lan2lan-tunnel/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 12:58:19 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1229</guid>
		<description><![CDATA[Recently I got an request from a Cisco ASA customer who wanted to authenticate VPN-users with a remote Radius-server. Using Radius is piece of cake, but those of us that have been working with Cisco Pix/ASA for a while know that traffic to/from the box is no nearly treated the same way as traffic going [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Recently I got an request from a Cisco ASA customer who wanted to authenticate VPN-users with a remote Radius-server. Using Radius is piece of cake, but those of us that have been working with Cisco Pix/ASA for a while know that traffic to/from the box is no nearly treated the same way as traffic going thru the box. And this customer wanted to use a Radius-server via an Lan2Lan-tunnel that terminates in the same ASA-box.</p>
<p>So. Does it work? First of all I built a small little lab with 2 ASA:s connected back to back and an Lan2Lan-tunnel connecting the both inside networks. Plain vanilla.</p>
<p>Topology:<br />
<img class="alignnone" title="L2L-tunnel" src="http://www.gliffy.com/pubdoc/2619295/L.png" alt="" width="484" height="181" /></p>
<p>Relevant parts of ASA1 config:<br />
<code><br />
ASA Version 8.2(1)<br />
!<br />
hostname ASA1<br />
!<br />
interface Vlan1<br />
nameif inside<br />
security-level 100<br />
ip address 192.168.1.234 255.255.255.0<br />
!<br />
interface Vlan2<br />
nameif outside<br />
security-level 0<br />
ip address 192.168.169.1 255.255.255.0<br />
!<br />
interface Ethernet0/0<br />
switchport access vlan 2<br />
!<br />
interface Ethernet0/1<br />
!<br />
access-list crypto-acl extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0<br />
access-list OUTSIDE extended permit ip any any<br />
no nat-traversal<br />
route outside 0.0.0.0 0.0.0.0 192.168.169.2 1<br />
!<br />
crypto ipsec transform-set tset esp-aes esp-sha-hmac<br />
!<br />
crypto map cmap-outside 10 match address crypto-acl<br />
crypto map cmap-outside 10 set peer 192.168.169.2<br />
crypto map cmap-outside 10 set transform-set tset<br />
crypto map cmap-outside interface outside<br />
crypto isakmp enable outside<br />
crypto isakmp policy 10<br />
authentication pre-share<br />
encryption aes<br />
hash sha<br />
group 5<br />
lifetime 86400<br />
tunnel-group 192.168.169.2 type ipsec-l2l<br />
tunnel-group 192.168.169.2 ipsec-attributes<br />
pre-shared-key cisco<br />
!<br />
</code></p>
<p>And ASA2:<br />
<code>ASA Version 8.2(1)<br />
!<br />
hostname ASA2<br />
!<br />
interface Vlan1<br />
nameif inside<br />
security-level 100<br />
ip address 192.168.2.1 255.255.255.0<br />
!<br />
interface Vlan2<br />
nameif outside<br />
security-level 0<br />
ip address 192.168.169.2 255.255.255.0<br />
!<br />
interface Ethernet0/0<br />
switchport access vlan 2<br />
!<br />
interface Ethernet0/1<br />
!<br />
access-list crypto-acl extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0<br />
!<br />
crypto ipsec transform-set tset esp-aes esp-sha-hmac<br />
!<br />
crypto map cmap-outside 10 match address crypto-acl<br />
crypto map cmap-outside 10 set peer 192.168.169.1<br />
crypto map cmap-outside 10 set transform-set tset<br />
crypto map cmap-outside interface outside<br />
crypto isakmp enable outside<br />
!<br />
crypto isakmp policy 10<br />
authentication pre-share<br />
encryption aes<br />
hash sha<br />
group 5<br />
lifetime 86400<br />
!<br />
tunnel-group 192.168.169.1 type ipsec-l2l<br />
tunnel-group 192.168.169.1 ipsec-attributes<br />
pre-shared-key cisco<br />
</code></p>
<p>So, this configuration connects the inside networks over the unsecure network 192.168.169.0/24. But what if ASA1 wanna talk radius to the ACS-server 192.168.2.10 beyond ASA2?</p>
<p>&nbsp;</p>
<p>First of all, the way of configuring an aaa-server in ASA is in my opinion a bit confusing. It´s all about pointing out the server ip-address together with a radius key. But if we look at the syntax for defining a radius-server we see that we also need to define an interface. Whatfor?</p>
<p><code><br />
ASA1(config)# aaa-server GROUPTAG protocol radius<br />
ASA1(config-aaa-server-group)# aaa-server GROUPTAG ?<br />
configure mode commands/options:<br />
(                    Open parenthesis for the name of the network interface<br />
where the designated AAA server is accessed<br />
deadtime             Specify the amount of time that will elapse between the<br />
disabling of the last server in the group and the<br />
subsequent re-enabling of all servers<br />
host                 Enter this keyword to specify the IP address for the<br />
server<br />
max-failed-attempts  Specify the maximum number of failures that will be<br />
allowed for any server in the group before that server<br />
is deactivated<br />
protocol             Enter the protocol for a AAA server group<br />
ASA1(config-aaa-server-group)# aaa-server GROUPTAG<br />
</code></p>
<p>So, we need to specify an interface. The reason that I think this is a bit weird is that there should already be a route in the routing-table for our radius-server 192.168.2.10. If nothing else, there is probably an default route, and in our case there is definately one. So why stating that &#8220;in order to reach 192.168.2.10 go via interface outside&#8221; in the radius-definition? I have no idea. A few moment I thought of this not as a way to specify outbound interface but source interface. What if I wanna send the radius packets to outside (according to routing table, with or without an vpn-tunnel) but use the inside interface ip as source? That would be cool, because then I didn´t have to add anything in the crypto acl (see below). This is still untested, but when we look at the syntax help above it certanly states <em>&#8220;for the name of the network interface where the designated AAA server is accessed&#8221;</em>, which of course is outside in my example.</p>
<p>So, lets add the radius definition. And what else? We need to add traffic to the crypto acl for making it go into the vpn tunnel. And since it is traffic from the ASA1 <strong>outside</strong> interface to the host 192.18.2.10 behind ASA2, that is what we add:</p>
<p>ASA1 &#8211; addition:<br />
<code><br />
access-list crypto-acl extended permit ip host 192.168.169.1 host 192.168.2.10<br />
aaa-server RAD protocol radius<br />
aaa-server RAD (outside) host 192.168.2.10<br />
key cisco<br />
</code></p>
<p>and ASA2 &#8211; addition:<br />
<code><br />
access-list crypto-acl extended permit ip host 192.168.2.10 host 192.168.169.1<br />
</code></p>
<p>And, as a proof that this works we use the &#8220;test aaa&#8221;-command to generate an radius authentication request from ASA1 to the Radius-server.</p>
<p><code><br />
ASA1(config)# test aaa authentication RAD host 192.168.2.10 username user pass$<br />
INFO: Attempting Authentication test to IP address &lt;192.168.2.10&gt; (timeout: 12 seconds)<br />
INFO: Authentication Successful<br />
ASA1(config)#<br />
ASA1(config)#<br />
ASA1(config)# sh crypto ipsec sa<br />
interface: outside<br />
Crypto map tag: cmap-outside, seq num: 10, local addr: 192.168.169.1</code></p>
<p><code> </code></p>
<p><code>access-list crypto-acl permit ip host 192.168.169.1 host 192.168.2.10<br />
local ident (addr/mask/prot/port): (192.168.169.1/255.255.255.255/0/0)<br />
remote ident (addr/mask/prot/port): (192.168.2.10/255.255.255.255/0/0)<br />
current_peer: 192.168.169.2</code></p>
<p><code> </code></p>
<p><code>#pkts encaps: 1, #pkts encrypt: 1, #pkts digest: 1<br />
#pkts decaps: 1, #pkts decrypt: 1, #pkts verify: 1<br />
#pkts compressed: 0, #pkts decompressed: 0<br />
#pkts not compressed: 1, #pkts comp failed: 0, #pkts decomp failed: 0<br />
#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0<br />
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0<br />
#send errors: 0, #recv errors: 0</code></p>
<p><code>local crypto endpt.: 192.168.169.1, remote crypto endpt.: 192.168.169.2</p>
<p>path mtu 1500, ipsec overhead 74, media mtu 1500<br />
current outbound spi: 28DAEB5B</p>
<p></code></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><code> inbound esp sas:<br />
spi: 0x53870178 (1401356664)<br />
transform: esp-aes esp-sha-hmac no compression<br />
in use settings ={L2L, Tunnel, }<br />
slot: 0, conn_id: 24576, crypto-map: cmap-outside<br />
sa timing: remaining key lifetime (kB/sec): (3914999/28682)<br />
IV size: 16 bytes<br />
replay detection support: Y<br />
Anti replay bitmap:<br />
0x00000000 0x00000003<br />
outbound esp sas:<br />
spi: 0x28DAEB5B (685435739)<br />
transform: esp-aes esp-sha-hmac no compression<br />
in use settings ={L2L, Tunnel, }<br />
slot: 0, conn_id: 24576, crypto-map: cmap-outside<br />
sa timing: remaining key lifetime (kB/sec): (3914999/28682)<br />
IV size: 16 bytes<br />
replay detection support: Y<br />
Anti replay bitmap:<br />
0x00000000 0x00000001<br />
</code></p>
<p>So, what happens if we follow my idea that the interface-relation within the radius-configuration was <strong>not</strong> a way to define outbound interface but instead a way to define source address for our radius packets. Well, let´s try. We have already a working tunnel between our LAN:s, so if we reconfigure ASA1 to use inside instead, that traffic (from 192.168.1.234 to 192.168.2.10) should already be included in our proxy acl so nothing else should be needed. Lets try:</p>
<p><code><br />
ASA1(config)# sh run aaa-server<br />
aaa-server RAD protocol radius<br />
aaa-server RAD (<strong>outside</strong>) host 192.168.2.10<br />
key cisco<br />
aaa-server GROUPTAG protocol radius<br />
ASA1(config)#<br />
ASA1(config)# clear configure aaa-server RAD<br />
ASA1(config)#<br />
ASA1(config)# aaa-server RAD proto radius<br />
ASA1(config-aaa-server-group)# aaa-server RAD (<strong>inside</strong>) host 192.168.2.10<br />
ASA1(config-aaa-server-host)# key cisco<br />
ASA1(config-aaa-server-host)#<br />
ASA1(config-aaa-server-host)# end<br />
ASA1#<br />
</code></p>
<p>ok, let´s give it a shot!<br />
<code>ASA1# test aaa authentication RAD host 192.168.2.10 username user password cis$<br />
INFO: Attempting Authentication test to IP address &lt;192.168.2.10&gt; (timeout: 12 seconds)<br />
ERROR: Authentication Server not responding: No error<br />
ASA1#<br />
ASA1#<br />
ASA1# test aaa authentication RAD host 192.168.2.10 username user password cis$<br />
INFO: Attempting Authentication test to IP address &lt;192.168.2.10&gt; (timeout: 12 seconds)<br />
ERROR: Authentication Server not responding: No error<br />
ASA1#<br />
ASA1# test aaa authentication RAD host 192.168.2.10 username user password cis$<br />
INFO: Attempting Authentication test to IP address &lt;192.168.2.10&gt; (timeout: 12 seconds)<br />
ERROR: Authentication Server not responding: No error<br />
ASA1#<br />
</code></p>
<p>It obviously doesnt work. But what happened?<br />
<code>ASA1# sh crypto ipsec sa<br />
There are no ipsec sas<br />
ASA1# </code></p>
<p>Ok, so no tunnels triggered. But this really mean that the radius packets were sent to inside instead of outside? Lets capture packets!<br />
<code>ASA1# capture OUTSIDE interface outside<br />
ASA1# capture INSIDE interface inside<br />
ASA1#<br />
ASA1# test aaa authentication RAD host 192.168.2.10 username user password cis$<br />
INFO: Attempting Authentication test to IP address &lt;192.168.2.10&gt; (timeout: 12 seconds)<br />
ERROR: Authentication Server not responding: No error<br />
ASA1#<br />
ASA1#<br />
ASA1# sh capture OUTSIDE</code></p>
<p><code> </code></p>
<p><code>0 packet captured</code></p>
<p><code> </code></p>
<p><code>0 packet shown<br />
ASA1# sh capture INSIDE</code></p>
<p><code>17 packets captured</p>
<p></code></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><code> 1: 03:45:53.705194 802.1Q vlan#1 P0 arp who-has 192.168.1.213 tell 192.168.1.1<br />
2: 03:45:58.704019 802.1Q vlan#1 P0 arp who-has 192.168.1.213 tell 192.168.1.1<br />
3: 03:46:03.702844 802.1Q vlan#1 P0 arp who-has 192.168.1.213 tell 192.168.1.1<br />
4: 03:46:03.968089 802.1Q vlan#1 P0 arp who-has 192.168.1.213 tell 192.168.1.1<br />
5: 03:46:05.702340 802.1Q vlan#1 P0 arp who-has 192.168.1.213 tell 192.168.1.1<br />
6: 03:46:06.702112 802.1Q vlan#1 P0 arp who-has 192.168.1.213 tell 192.168.1.1<br />
7: 03:46:08.335904 802.1Q vlan#1 P0 192.168.1.203.57621 &gt; 255.255.255.255.57621:  udp 44<br />
8: 03:46:10.277665 802.1Q vlan#1 P0 192.168.1.72.17500 &gt; 255.255.255.255.17500:  udp 176<br />
9: 03:46:10.278244 802.1Q vlan#1 P0 192.168.1.72.17500 &gt; 192.168.1.255.17500:  udp 176<br />
10: 03:46:10.701150 802.1Q vlan#1 P0 arp who-has 192.168.1.213 tell 192.168.1.1<br />
11: 03:46:14.292892 802.1Q vlan#1 P0 192.168.1.107.138 &gt; 192.168.1.255.138:  udp 201<br />
12: 03:46:15.699976 802.1Q vlan#1 P0 arp who-has 192.168.1.213 tell 192.168.1.1<br />
13: 03:46:15.806858 802.1Q vlan#1 P0 192.168.1.73.138 &gt; 192.168.1.255.138:  udp 201<br />
14: 03:46:17.743522 802.1Q vlan#1 P0 192.168.1.203.17500 &gt; 255.255.255.255.17500:  udp 172<br />
15: 03:46:17.745795 802.1Q vlan#1 P0 192.168.1.203.17500 &gt; 255.255.255.255.17500:  udp 172<br />
16: 03:46:17.746146 802.1Q vlan#1 P0 192.168.1.203.17500 &gt; 192.168.1.255.17500:  udp 172<br />
17: 03:46:17.746512 802.1Q vlan#1 P0 192.168.1.203.17500 &gt; 255.255.255.255.17500:  udp 172<br />
17 packets shown<br />
ASA1#<br />
ASA1#<br />
</code></p>
<p>What we see above is that there is absolutely no packets at all seen on ASA1 outside interface. On inside interface we see various packets (because that is my home network), but no radius packets.</p>
<p>So, what are our conclusions?</p>
<ul>
<li>Traffic generated from the ASA can very well be included in our Lan2Lan-tunnel so that for example the ASA can have a secure connection to an remote authentication server.</li>
<li>The interface-definition in the aaa-server command has nothing to do with source addresses. As a matter of fact, you cannot configure a source interface/address for radius-traffic the way you can do in an IOS-router.</li>
<li>The interface-definition shouldnt really be needed. The way to the remote server is pointed out by the routing table. The interface-definition must point the same direction as the routing-table, otherwise the ASA won´t know where to send the packets.</li>
<li>I was wrong</li>
<li>I can tell the customer that we can do radius over vpn.</li>
</ul>
<p>am I missing something here? Please don´t hesitate to comment!</p>
<p>&nbsp;</p>
<p><em>Update: I <strong>was </strong>missing something. Look at my <a href="http://blogg.kvistofta.nu/asa-generated-traffic-part2/">update post</a>&#8230;</em></p>
<p>&nbsp;</p>
<p>/Jimmy</p>
<div class="shr-publisher-1229"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/asa-generated-traffic-thru-lan2lan-tunnel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Checkpoint redundancy vs Cisco ASA</title>
		<link>http://nat0.net/checkpoint-redundancy-vs-cisco-asa/</link>
		<comments>http://nat0.net/checkpoint-redundancy-vs-cisco-asa/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 17:56:12 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[Checkpoint]]></category>
		<category><![CDATA[Failover]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1226</guid>
		<description><![CDATA[&#160;I am a true Cisco ASA-guy. I eat, live and sh&#8230;. ASA:s. I have been working with Cisco gear since forever and the first Cisco Firewall I configured was a Cisco 520 with floppy. Nevertheless, I also know some stuff about other firewalls. I have been working with iptables, Watchguards, Symantec/Raptor/whatever and installed a few [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>&#160;I am a true Cisco ASA-guy. I eat, live and sh&#8230;. ASA:s. I have been working with Cisco gear since forever and the first Cisco Firewall I configured was a Cisco 520 with floppy.</p>
<p>Nevertheless, I also know some stuff about other firewalls. I have been working with iptables, Watchguards, Symantec/Raptor/whatever and installed a few Checkpoints. Actually I am certified CCSA and CCSE for checkpoint firewall. Still I try to avoid them. The reason is simple. They are complex, there is only 24h available per day and there are people that know checkpoint better than I do.</p>
<p>&#160;</p>
<p>Whatever firewall I run into I compare them to ASA:s. I cant avoid it because it is ASA:s that I know by heart. And I have for a while tried to understand the complexity of load-distribution of Checkpoint clusters. Then I run into <a href="http://etherealmind.com/checkpoint-nokia-firewall-cluster-xl/">this incredible blog post by Greg Ferro at etherealmind.com.</a> And There Was Light.</p>
<p>&#160;</p>
<p>Instead of trying to explain it again half as good as the original I simply suggest anyone interrested in Checkpoint or other firewalls technology of load sharing to read the blog post above. It is great!</p>
<p>&#160;</p>
<p>ASA:s doesnt do load balancing(*). A &#8220;cluster&#8221; can contain only two members and it is always(*) a active/passive solution where the passive member is a hot-standby. It is not as near as sophisticated as the Cluster XL-solution from Checkpoint. But it it simple. And rock solid. If you want to &#8220;keep it simple, stupid&#8221; the ASA failover-solution is your setup if you ask me.&#160;</p>
<p>&#160;</p>
<p>It would be interresting to do a cost analysis and compare the cost of purchasing equal setups of ASA:s and Checkpoint-wirewalls for a specific thruput/size. I am already quite sure that it way cheaper to buy one ASA that is big enogh to handle the thruput needed, and one hot-spare, than buying 2 Checkpoint-units with the same performance.</p>
<p>&#160;</p>
<p>(*) Yes, there is an active/active-solution from Cisco. But it requires multi context. And unless you have need for multiple virtual firewalls you cant make both hardware units in the cluster processing traffic at the same time.</p>
<p>&#160;</p>
<p>Thanks for the most informative blog post this year, Greg Ferro!</p>
<p>&#160;</p>
<p>&#160;</p>
<div class="shr-publisher-1226"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/checkpoint-redundancy-vs-cisco-asa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cisco ASA hairpinning</title>
		<link>http://nat0.net/cisco-asa-hairpinning/</link>
		<comments>http://nat0.net/cisco-asa-hairpinning/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 09:42:27 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[hairpinning]]></category>
		<category><![CDATA[routing]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1172</guid>
		<description><![CDATA[Cisco Pix/ASA hairpinning The term hairpinning comes from the fact that the traffic comes from one source into a router or similar devices, makes a U-turn and goes back the same way it came. Visualize this and you see something that looks like a hairpin. Hairpinning is only relevant when the firewall is in routed [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h1>Cisco Pix/ASA hairpinning</h1>
<p>The term hairpinning comes from the fact that the traffic comes from one source into a router or similar devices, makes a U-turn and goes back the same way it came.<br />
Visualize this and you see something that looks like a hairpin.<br />
<img class="alignnone" title="Hairpin" alt="" width="236" height="350" src="http://www.bellezzaveils.com/Accessories/Main/pinwheel-hairpin.jpg" /><br />
Hairpinning is only relevant when the firewall is in routed mode since the &#8220;turnaround&#8221; of traffic is a routing decision. Also there needs to be another router<br />
involved. If the firewall is setup to only pass traffic between interfaces no hairpinning will be taking place. Typical hairpinning is done when there is a router<br />
inside of the firewall beyond which there is another network that needs to be reached to/from the inside network. See picture:<br />
<a href="http://nat0.net/wp-content/uploads/2010/09/hairpin1.jpg"><img class="alignnone size-medium wp-image-1174" title="hairpin1" alt="" width="300" height="287" src="http://nat0.net/wp-content/uploads/2010/09/hairpin1-300x287.jpg" /></a><br />
Another fundament for hairpinning taking place is that not all network equipment has full knowledge of the network topology. Typically these are computers with only<br />
a default route (&#8220;default gateway&#8221;) to something but not aware of the fact that the remote network is reachable directly via the other router without taking the path<br />
via the firewall (see picture above). If the computer had that knowledge it would never involve the firewall.<br />
A workaround like this could be in a windows-host to add &#8220;route -p 192.168.2.0 mask 255.255.255.0 192.168.1.2&#8243; from the command prompt. However this is in most cases<br />
not very flexible since it is a manual work at each host.</p>
<h2>ver 6.x and prior</h2>
<p>No hairpinning was possible. The historic reason for this was that the fact that interfaces with the same security-level was not allowed to exchange traffic was a<br />
security fature. If you needed to isolate two interfaces from each other (but allow each of them to talk to other interfaces) you could give them the same security-<br />
level and by design there was no traffic allowed between these interfaces no matter of access-list, nat or conduit-configuration. Unfortunately this also meant that<br />
since traffic in an out thru the same interface was per definition &#8220;same security-level&#8221;, no hair-pinning was possible.</p>
<h2>ver 7.0</h2>
<p>The command &#8220;same-security&#8221; was introuduced with this version. The purpose with this command was to override the isolation between interfaces with the same<br />
security-level. The command has 2 parameters: &#8220;permit-inter-interface&#8221; that allows traffic between different interfaces with same security-level and &#8220;permit-intra-<br />
interface&#8221; that allows traffic thru the same interface, aka hairpinning. However, with this version the intra-interface-parameter was only functional for vpn-<br />
traffic, for example traffic from an outside vpn-client destined to internet (full tunneling).</p>
<h2>ver 7.2</h2>
<p>Beginning with v7.2 the &#8220;same-security permit-intra-interface&#8221;-command becomes useful and can be used for other traffic than vpn-initiated. Now we can do hair-<br />
pinning. So, what is needed? First of all, the &#8220;same-security permit -intra-interface&#8221;. Also we need to allow inbound traffic if we have an access-list applied<br />
inbound on the interface. Let´s have another look at our example:<br />
<a href="http://nat0.net/wp-content/uploads/2010/09/hairpin2.jpg"><img class="alignnone size-medium wp-image-1175" title="hairpin2" alt="" width="300" height="276" src="http://nat0.net/wp-content/uploads/2010/09/hairpin2-300x276.jpg" /></a><br />
In this example we have one host at 192.168.1.100 using the firewall .1 as default gateway. The firewall has a route for the 192.168.2.0/24-network via 192.168.1.2<br />
and the route is directly connected to both networks. Because of this configuration the traffic from 192.168.1.100 is hair-pinned back, to the router.</p>
<p><code><br />
interface Vlan1<br />
nameif inside<br />
security-level 100<br />
ip address 192.168.1.1 255.255.255.0<br />
!<br />
route inside 192.168.2.0 255.255.255.0 192.168.1.2 1<br />
!<br />
same-security-traffic permit intra-interface<br />
!<br />
no nat-control<br />
</code></p>
<p>All magic lies in the &#8220;same-security-traffic&#8221;-command. In the example above we have no access-list applied. If we have we must also open for that traffic:</p>
<p><code><br />
access-list acl_inside extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0<br />
access-list acl_inside extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0<br />
access-list acl_inside extended deny ip any any<br />
!<br />
access-group acl_inside in interface inside<br />
</code></p>
<p>We most likely has a NAT/global configured for the inside network to be able to reach internet. If we add this to our example we kill our hair-pinning:</p>
<p><code><br />
nat (inside) 1 0.0.0.0 0.0.0.0<br />
global (outside) 1 interface<br />
</code></p>
<p>Now, when we try to ping from 192.168.1.100 to 192.168.2.200 we get this log output of the firewall:</p>
<p><code><br />
%ASA-3-305006: portmap translation creation failed for icmp src inside:192.168.1.100 dst inside:192.168.2.200 (type 8, code 0)<br />
%ASA-3-305006: portmap translation creation failed for icmp src inside:192.168.1.100 dst inside:192.168.2.200 (type 8, code 0)<br />
%ASA-3-305006: portmap translation creation failed for icmp src inside:192.168.1.100 dst inside:192.168.2.200 (type 8, code 0)<br />
%ASA-3-305006: portmap translation creation failed for icmp src inside:192.168.1.100 dst inside:192.168.2.200 (type 8, code 0)<br />
%ASA-3-305006: portmap translation creation failed for icmp src inside:192.168.1.100 dst inside:192.168.2.200 (type 8, code 0)<br />
</code></p>
<p>As soon as we add ANY nat-configuration for an interface we must configure nat for all traffic from that interface, even hairpinned traffic. We do this with the static-command below. The purpose of this is to &#8220;static&#8221; translate traffic from interface &#8220;inside&#8221; to interface &#8220;inside&#8221; where the source is &#8220;192.168.1.0&#8243; (netmask 255.255.255.0 and translate the source to &#8220;192.168.1.0&#8243; (the same address). We also do the same for the 192.168.2.0-network to ensure that traffic can flow initiated in both directions.</p>
<p><code><br />
static (inside,inside) 192.168.1.0 192.168.1.0 netmask 255.255.255.0<br />
static (inside,inside) 192.168.2.0 192.168.2.0 netmask 255.255.255.0<br />
</code></p>
<p>The compilation of relevant configuration lines in the firewall to ackomplish this is shown here:</p>
<p><code><br />
hostname fw<br />
!<br />
interface Vlan1<br />
nameif inside<br />
security-level 100<br />
ip address 192.168.1.1 255.255.255.0<br />
!<br />
interface Vlan222<br />
nameif outside<br />
security-level 0<br />
ip address dhcp setroute<br />
!<br />
boot system disk0:/asa725-k8.bin<br />
!<br />
same-security-traffic permit intra-interface<br />
!<br />
access-list acl_inside extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0<br />
access-list acl_inside extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0<br />
access-list acl_inside extended deny ip any any<br />
!<br />
nat-control<br />
!<br />
global (outside) 1 interface<br />
nat (inside) 1 0.0.0.0 0.0.0.0<br />
!<br />
static (inside,inside) 192.168.1.0 192.168.1.0 netmask 255.255.255.0<br />
static (inside,inside) 192.168.2.0 192.168.2.0 netmask 255.255.255.0<br />
!<br />
access-group acl_inside in interface inside<br />
!<br />
route inside 192.168.2.0 255.255.255.0 192.168.1.2 1<br />
</code></p>
<h2>Ver 8.3</h2>
<p>In this version the nat-concept is totally rewritten with a new command syntax. More about this can be read about elsewhere, but the technique is the same. This is the converted version of the configuration snippet above:</p>
<p><code><br />
hostname fw<br />
!<br />
interface Vlan1<br />
nameif inside<br />
security-level 100<br />
ip address 192.168.1.1 255.255.255.0<br />
!<br />
interface Vlan222<br />
nameif outside<br />
security-level 0<br />
ip address dhcp setroute<br />
boot system disk0:/asa831-k8.bin<br />
!<br />
same-security-traffic permit intra-interface<br />
!<br />
object network obj-192.168.1.0<br />
subnet 192.168.1.0 255.255.255.0<br />
object network obj-192.168.2.0<br />
subnet 192.168.2.0 255.255.255.0<br />
object network obj_any<br />
subnet 0.0.0.0 0.0.0.0<br />
object network obj_any-01<br />
subnet 0.0.0.0 0.0.0.0<br />
object network obj-0.0.0.0<br />
host 0.0.0.0<br />
!<br />
access-list acl_inside extended permit ip 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0<br />
access-list acl_inside extended permit ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0<br />
access-list acl_inside extended deny ip any any<br />
!<br />
object network obj-192.168.1.0<br />
nat (inside,inside) static 192.168.1.0<br />
object network obj-192.168.2.0<br />
nat (inside,inside) static 192.168.2.0<br />
object network obj_any<br />
nat (inside,outside) dynamic interface<br />
object network obj_any-01<br />
nat (inside,outside) dynamic obj-0.0.0.0<br />
!<br />
access-group acl_inside in interface inside<br />
!<br />
route inside 192.168.2.0 255.255.255.0 192.168.1.2 1<br />
</code></p>
<h2>Assymetric routing</h2>
<p>An issue with the configuration above is that since the firewall is stateful (which means that it keeps track of TCP-states) and the fact that traffic in one direction goes via the firewall (from 192.168.1.100 to 192.168.2.200) but the traffic in the other direction goes direct makes the firewall going bananas. If the traffic initiates from the 1-network all is fine since the firewall allowes the initial packet and never sees the return traffic. It might build a quite large list of incomplete sessions that eventually will time out, but it will work:<br />
<a href="http://nat0.net/wp-content/uploads/2010/09/hairpin3.jpg"><img class="alignnone size-medium wp-image-1176" title="hairpin3" alt="" width="300" height="293" src="http://nat0.net/wp-content/uploads/2010/09/hairpin3-300x293.jpg" /></a><br />
However, when the traffic is initiated from the 2-network the first packet that will be seen by the firewall is the second (SYN-ACK) which is not very appreciated.<br />
<a href="http://nat0.net/wp-content/uploads/2010/09/hairpin4.jpg"><img class="alignnone size-medium wp-image-1177" title="hairpin4" alt="" width="300" height="284" src="http://nat0.net/wp-content/uploads/2010/09/hairpin4-300x284.jpg" /></a><br />
Beginning with version 8.2 there is a solution for this in the &#8220;tcp state bypass&#8221;-functionality. By using this you can with MPF (modular policy framework) specify traffic that should not be handled stateful. <a href="http://www.cisco.com/en/US/products/ps6120/products_configuration_example09186a0080b2d922.shtml">Here </a>is an example of doing that.<br />
Genereally my solution to hairpinning- and/or assymetric routing-issues is to avoid it. If you have one or more routers in your topology it is probably a good idea to use that router as the default gateway instead and only direct traffic to the firewall that should pass it. The drawback from this is that internet-traffic needs to go via the router instead. However this seldom causes any trouble since the router is not stateful and has no issues with doing hairpinning.<br />
<a href="http://nat0.net/wp-content/uploads/2010/09/hairpin5.jpg"><img class="alignnone size-medium wp-image-1178" title="hairpin5" alt="" width="300" height="281" src="http://nat0.net/wp-content/uploads/2010/09/hairpin5-300x281.jpg" /></a><br />
Another solution if you need to pass WAN-traffic thru the firewall (for security reasons) can be to put the WAN-router(s) on a dedicated firewall interface.<br />
<a href="http://nat0.net/wp-content/uploads/2010/09/hairpin6.jpg"><img class="alignnone size-medium wp-image-1179" title="hairpin6" alt="" width="300" height="274" src="http://nat0.net/wp-content/uploads/2010/09/hairpin6-300x274.jpg" /></a></p>
<h2>Conclusion</h2>
<p>Hairpinning of traffic in Cisco Pix/ASA and problems with assymetric routing can be a pain. There are workarounds but mostly assymetric issues are symptoms of bad network design rather than configuration issues.<br />
There are more dimensions of hairpinning than just internal traffic turning around to a WAN-router. Such a common example is U-turning of VPN-traffic, for example traffic from an VPN-client going via the firewall out to internet or into another vpn-tunnel. Or spoke-hub-spoke VPN-traffic. This type of traffic seldom gives routing or assymetric issues but is more a matter of defining proxy ACL:s for vpn-traffic and not doing NAT on that traffic.</p>
<div class="shr-publisher-1172"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/cisco-asa-hairpinning/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What about wiping your firewall for breakfast?</title>
		<link>http://nat0.net/what-about-wiping-your-firewall-for-breakfast/</link>
		<comments>http://nat0.net/what-about-wiping-your-firewall-for-breakfast/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 07:33:14 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Cisco ASA]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1085</guid>
		<description><![CDATA[You know how it is? You are typing so fast making changes in you cisco gear you not always pay attention to which mode you are in? Doing config-command in exec-level, exec-commands in config-level and adding &#8220;do&#8221; in front just to make them pass? Wanna know if that happens to fast and you are in [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>You know how it is? You are typing so fast making changes in you cisco gear you not always pay attention to which mode you are in? Doing config-command in exec-level, exec-commands in config-level and adding &#8220;do&#8221; in front just to make them pass? Wanna know if that happens to fast and you are in the wrong place doing the wrong time?</p>
<p>Below I am in system context of a multi context ASA firewall. My intention is to do something with a context. I go into config mode and then into the context definition of the context I wanna change. What if I get interrupted or whatever and enter the &#8220;conf t&#8221;-command in the context configuration mode?</p>
<p><code><br />
act# sh mode<br />
Security context mode: multiple<br />
act#<br />
act# conf t<br />
act(config)# context LEFT<br />
act(config-ctx)# conf t<br />
INFO: Converting t to disk0:/t<br />
.<br />
WARNING: Could not fetch the URL disk0:/t<br />
INFO: Creating context with default config<br />
INFO: Admin context will take some time to come up .... please wait.<br />
act(config-ctx)#<br />
</code></p>
<p>Congrats! Your firewall is gone!</p>
<div class="shr-publisher-1085"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/what-about-wiping-your-firewall-for-breakfast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

