<?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; Uncategorized</title>
	<atom:link href="http://nat0.net/category/uncategorized/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>Cisco Ironport WSA &#8211; what happened?</title>
		<link>http://nat0.net/cisco-ironport-wsa-what-happened/</link>
		<comments>http://nat0.net/cisco-ironport-wsa-what-happened/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 11:48:03 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[virus]]></category>
		<category><![CDATA[WSA]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1295</guid>
		<description><![CDATA[I have recently implemented a few Cisco Ironport WSA-solutions. When doing a follow-up after the implementation, the customer usually reacts with &#8220;Oh&#8230; WSA? We forgot about that. It probably works&#8230;&#8221; But what difference does it make? If the customer forgets about their web proxy, what good does it do? Lets have a look at an [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I have recently implemented a few Cisco Ironport WSA-solutions. When doing a follow-up after the implementation, the customer usually reacts with &#8220;Oh&#8230; WSA? We forgot about that. It probably works&#8230;&#8221;</p>
<p>But what difference does it make? If the customer forgets about their web proxy, what good does it do? Lets have a look at an implementation&#8230;</p>
<p>I asked one of our customers for permission to peek into their WSA for the purpose of this blog post. This customer has a few hundred users and is a fairly traditional type of user with mostly office users, each with a personal computer. This customer doesnt limit web browsing, except for filtering out access to known obviously bad web categories like child porn. Except for that, free access to the Web.</p>
<div id="attachment_1297" class="wp-caption alignnone" style="width: 300px">
	<a href="http://nat0.net/wp-content/uploads/2011/04/wsa1.jpg"><img class="size-medium wp-image-1297" title="wsa1" src="http://nat0.net/wp-content/uploads/2011/04/wsa1-300x114.jpg" alt="" width="300" height="114" /></a>
	<p class="wp-caption-text">Fig1: General Statistics</p>
</div>
<p>&nbsp;</p>
<p>The first thing to look at is an overview of web activity above. The average web traffic an business day is roughly one million is a working day consists of one million web requests. A web page contains several objects (images, scripts) where each object needs to be requested individually. In this implementation the clients generates 1 million transactions (requests) per day, or 20 million transactions per month.</p>
<p>But what is the content of the requested material? If we look at But WHAT users to surf? If you then look at the purity of operations as it starts to get interesting for real!</p>
<div id="attachment_1298" class="wp-caption alignnone" style="width: 300px">
	<a href="http://nat0.net/wp-content/uploads/2011/04/wsa2.jpg"><img class="size-medium wp-image-1298" title="wsa2" src="http://nat0.net/wp-content/uploads/2011/04/wsa2-300x102.jpg" alt="" width="300" height="102" /></a>
	<p class="wp-caption-text">Fig2: Purity</p>
</div>
<p>Here you can see that just over 10,000 (10.6K) transactions have been stopped this month because of URL category! That is, such as child porn! There are objects (pages, images, etc.) that the user consciously or unconsciously sought but that the system has already been blocked at the access-trial because the source is known and undesirable.</p>
<p>One can also see that almost 3,000 (2.797) object has been blocked due to malware detection. Remember that the WSA scans all through traffic for known viruses, scripts, or other type of malware. The source category has been approved or unknown the WSA have downloaded content. But when checking the contents, they have discovered something unwanted. This little fella has thus stopped nearly 3,000 viruses in the past month!</p>
<p>Overall, 99.8% of web traffic this month has been &#8220;clean&#8221;. 0.2% may seem to be disappearing bit, but it is still almost 34 000 (33.8K) potentionella threat that was blocked already at the front door!</p>
<p>If you want more detailed information about the type of threat blocked, you can obviously get it also:</p>
<div id="attachment_1299" class="wp-caption alignnone" style="width: 300px">
	<a href="http://nat0.net/wp-content/uploads/2011/04/wsa3.jpg"><img class="size-medium wp-image-1299" title="wsa3" src="http://nat0.net/wp-content/uploads/2011/04/wsa3-300x94.jpg" alt="" width="300" height="94" /></a>
	<p class="wp-caption-text">Fig3: Malware</p>
</div>
<p>With the help of the dynamic Sender Base system scored all websites on the internet. Based on a number of factors such as known virus outbreak or the credibility of a domain, each site a web reputation score from -10 to +10. WSA is configured to always block the sources with the lowest score and always allow the web site with the highest score. But how does this when in reality?</p>
<div id="attachment_1300" class="wp-caption alignnone" style="width: 300px">
	<a href="http://nat0.net/wp-content/uploads/2011/04/wsa4.jpg"><img class="size-medium wp-image-1300" title="wsa4" src="http://nat0.net/wp-content/uploads/2011/04/wsa4-300x116.jpg" alt="" width="300" height="116" /></a>
	<p class="wp-caption-text">Fig4: Web Reputation</p>
</div>
<p>Here we can see that nearly 10,000 transactions in the last month blocked because of Web reputation.</p>
<p>The conclusion I draw every time I look at this type of reporting is that the WSA is blocking lots of web traffic in the covert, and it&#8217;s surprisingly rare that users react to the IT department because they can not browse to a specific site. It may be that the user deliberately tries to make stupid mistakes on the internet, but my experience and absolute conviction is that it almost always is something that happens unconsciously. A link to an email or on facebook that look &#8220;nice&#8221;, but takes the user to a  malware site in some obscure corner of the Internet.</p>
<p>Key figures for this particular device, a typical month &#8220;at work&#8221;:</p>
<ul>
<li>The number of <strong>transactions</strong>: 20.4 million pieces.</li>
<li>The number of <strong>blocked</strong> transactions: 33 800 pcs.</li>
<li>The number of <strong>blocked Malwares</strong> / viruses: 2797 pcs, or <strong>one every 3 minutes</strong> during business hours!</li>
<li><strong>Dare you not to check the content of your web traffic?</strong></li>
</ul>
<p>&nbsp;</p>
<div class="shr-publisher-1295"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/cisco-ironport-wsa-what-happened/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to play case status table-tennis with Cisco TAC</title>
		<link>http://nat0.net/how-to-play-case-status-table-tennis-with-cisco-tac/</link>
		<comments>http://nat0.net/how-to-play-case-status-table-tennis-with-cisco-tac/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 21:35:59 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[tac]]></category>

		<guid isPermaLink="false">http://nat0.net/?p=1569</guid>
		<description><![CDATA[The problem have you ever had an open TAC case with Cisco, just waiting for them to provide either a solution or some other kind of feedback, and all that happens is that the TAC engineer sends you an email telling you that they &#8220;have work in progress&#8221; or something else not-making-the-case-evolve? If so, I [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h3>The problem</h3>
<p>have you ever had an open TAC case with Cisco, just waiting for them to provide either a solution or some other kind of feedback, and all that happens is that the TAC engineer sends you an email telling you that they &#8220;have work in progress&#8221; or something else not-making-the-case-evolve?</p>
<p>If so, I guess you have seen that the moment the engineer sends you an email, you also get a case update email telling you that the case has changed status to &#8220;customer pending&#8221;.</p>
<p>And that is a bit evil. I am pretty sure that more often than not, the reason for the engineer to send that email to you is not to tell you something, but to to actually change the case status. I have a feeling that the engineers effeciency is measured in how long the case is &#8220;Cisco pending&#8221; and as soon as the case is put over to the customer side, it is &#8220;all cool&#8221;. just like throwing a burning ball between two perssons. Or like a chess-clock that measure the time spent on each side.</p>
<p style="text-align: center;"><a href="http://nat0.net/wp-content/uploads/2012/01/chessclock.jpeg"><img class=" wp-image-1595 aligncenter" title="chessclock" src="http://nat0.net/wp-content/uploads/2012/01/chessclock.jpeg" alt="" width="257" height="196" /></a></p>
<h3>The solution</h3>
<p>The best way to handle this is to get even with their own weapons. Last week I had a mail dialogue with TAC that looked like this:</p>
<p style="text-align: center;"><a href="http://nat0.net/wp-content/uploads/2012/01/pingpong.png"><img class="size-medium wp-image-1598 aligncenter" title="pingpong" src="http://nat0.net/wp-content/uploads/2012/01/pingpong-300x288.png" alt="" width="300" height="288" /></a></p>
<p><em>TAC: we are working on the information You sent. we will get back to you tomorrow.<br />
[case status: Customer pending]</em></p>
<p>Me: thank you very much, I appretiate it.<br />
[case status: customer updated -&gt; Cisco pending]</p>
<p>TAC: you are welcome. have a nice day.<br />
[case status: Customer pending]</p>
<p>Me: you too&#8230;<br />
[case status: customer updated -&gt; Cisco pending]</p>
<p>TAC: thank you very much!<br />
[case status: Customer pending]</p>
<p>Me: please do not answer this email, since it changes the status of the case to &#8220;Customer pending&#8221;, which does NOT reflect the current situation.<br />
[case status: customer updated -&gt; Cisco pending]</p>
<p>&nbsp;</p>
<p>I won!!! <img src='http://nat0.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="shr-publisher-1569"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/how-to-play-case-status-table-tennis-with-cisco-tac/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Happy new year &#8211; Again! :-)</title>
		<link>http://nat0.net/happy-new-year-again/</link>
		<comments>http://nat0.net/happy-new-year-again/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 12:17:05 +0000</pubDate>
		<dc:creator>jimmy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CCIE]]></category>
		<category><![CDATA[INE]]></category>
		<category><![CDATA[ipexpert]]></category>

		<guid isPermaLink="false">http://nat0.net/?p=1473</guid>
		<description><![CDATA[When purging and cleaning ancient posts I found this post where I wished everyone a Happy New 2011. And I felt that it was time for an update. &#160; So, what happened during 2011 &#8211; did I become a Cisco CCIE Security? The short answer is: No. &#160; In february 2011 my written CCIE Security exam [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>When purging and cleaning ancient posts I found <a href="http://nat0.net/?p=1197">this post</a> where I wished everyone a Happy New 2011. And I felt that it was time for an update.</p>
<p>&nbsp;</p>
<p>So, what happened during 2011 &#8211; did I become a Cisco CCIE Security? The short answer is: No.</p>
<p>&nbsp;</p>
<p>In february 2011 my written CCIE Security exam expired. Shortly after that my CCNA/CCNP/CCSP/whatever certifications also was about to expire, and to prevent that from happen I passed the CCIE Security Written once more. So, that means that I have another 18 (like 12 from now) months to do another Lab attempt.</p>
<p>&nbsp;</p>
<p>During 2011 there was no way that I could find enough time to study for the lab. Primary of course because of the general work load, but also was my schedule filled with cool projects. Not only have I continued my journey to teach (I have made  my own study material on which 2 different Cisco ASA-workshops were based), I have also done a lot of implementations of Cisco <a href="http://www.cisco.com/en/US/prod/collateral/netmgtsw/ps5698/ps6767/ps9911/data_sheet_c78-614584.html">ACS5</a> and 802.1x, and lately a few <a href="http://www.google.se/url?sa=t&amp;rct=j&amp;q=cisco%20ise&amp;source=web&amp;cd=3&amp;ved=0CDkQFjAC&amp;url=http%3A%2F%2Fwww.cisco.com%2Fen%2FUS%2Fproducts%2Fps11640%2Findex.html&amp;ei=Hp4eT_WjBYKh4gTXveyNDw&amp;usg=AFQjCNHsv--TWMFSZOScsiJiF5HJtA-SIw&amp;sig2=Zl9QDnwUdUKZ-h-2dD_kiw">ISE</a>-implementations as well.</p>
<p>&nbsp;</p>
<p>So, will I ever get that CCIE number? I dont know, but I will continue to try. I have recently purchased the <a href="http://www.ine.com/ccie-security-lab-preparation.htm">&#8220;Ultimate CCIE Security Self Paced bundle&#8221; from INE</a> as a complement to the material I already have from <a href="http://www.ipexpert.com/Cisco/CCIE/Security/Self-Study-Bundle">IPExpert</a>. I find a few hours every now and then and try to focus to gain the speed/accuracy needed for the dreaded exam.</p>
<p>&nbsp;</p>
<p>Stay tuned, I´ll be back. <img src='http://nat0.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>/Jimmy</p>
<div class="shr-publisher-1473"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/happy-new-year-again/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>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>ACS 4.1 -&gt; 5.1 migration tool</title>
		<link>http://nat0.net/acs-4-1-5-1-migration-tool/</link>
		<comments>http://nat0.net/acs-4-1-5-1-migration-tool/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 09:34:10 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ACS]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1152</guid>
		<description><![CDATA[&#160;A while ago I did a migration of Cisco ACS from v4.x to v5.x. As you probably know there is a migration tool that can be used to migrate some (but not all!) of the configuration-details from 4.x into 5.x. What happened to me was very strange and I would like to share it with [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>&#160;A while ago I did a migration of Cisco ACS from v4.x to v5.x. As you probably know there is a migration tool that can be used to migrate some (but not all!) of the configuration-details from 4.x into 5.x. What happened to me was very strange and I would like to share it with you&#8230;</p>
<p>What I did, and what is also the recommended way of doing this was to:<br />
1) Make a complete database backup of the existing 4.x-installation.<br />
2) Install a new ACS 4.x for windows, running on a virtual (temporary) Win2003 server.<br />
3) Restore the backup to this temporary migration isntance.<br />
4) Run the script locally on the migration instance.</p>
<p>The script will connect to the old (local) database and the new 5.x-appliance and migrate the configuration database.</p>
<p>However, what happened to me was that when the script started I got this error message:</p>
<p><code>Fatal Error !! - cannot connect to ACS 4.x DB !!</code></p>
<p>I struggled with this for a while, trying different credentials and other settings without success. When opening a TAC case I got an instant solution to the problem:</p>
<p>This happens if you RDP or VNC to the migration server without connecting to the console. Since this server was running under Vmware ESX i could do either of:<br />
1) use the console from vmware vsphere client<br />
2) Use the /admin parameter of mstsc when RDP:ing to the migration server.</p>
<p>Who could have guessed? I hope that this blog post will be indexed and found when someone else google this error message, like I tried to do. <img src='http://nat0.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Also, this is filed as bugId&#160;CSCsr62965.</p>
<p>
Below is the full content of the Cisco TAC case, for reference.</p>
<p>
<em>Problem Details:<br />
From the existing ACS 4.x appliance (10.0.0.16) I have done a complete backup. This<br />
has been restored to a ACS 4.1 (trial) for Windows (10.0.0.19). On this machine I run<br />
the migration script. The goal is to migrate the configuration to the new ACS 5.1<br />
appliance (10.0.0.18).</em></p>
<p><em>When running the script it saids &#8221; Fatal Error !! &#8211; cannot connect to ACS 4.x DB !!&#8221;</em></p>
<p><em>This is the content of migration.log after a unsuccessfull migration attempt:</em></p>
<p><em>06-28-2010 09:08:21 JavaUtils.isAttachmentSupported(JavaUtils.java:1308) WARN &#8211; Unable to<br />
find required classes (javax.activation.DataHandler and<br />
javax.mail.internet.MimeMultipart). Attachment support is disabled.<br />
06-28-2010 09:08:34 ACS4Connector.checkDBConnectivity(ACS4Connector.java:137)FATAL -<br />
Fatal Error !! &#8211; cannot connect to ACS 4.x DB !!<br />
java.sql.SQLException: [Sybase][ODBC Driver][Adaptive Server Anywhere]Database server not<br />
found<br />
at ianywhere.ml.jdbcodbc.IDriver.makeODBCConnection(Native Method)<br />
at ianywhere.ml.jdbcodbc.IDriver.connect(IDriver.java:354)<br />
at java.sql.DriverManager.getConnection(Unknown Source)<br />
at java.sql.DriverManager.getConnection(Unknown Source)<br />
at com.cisco.nm.acs.mgmt.migration.ACS4Connector.getConnecter(ACS4Connector.java:66)<br />
at<br />
com.cisco.nm.acs.mgmt.migration.ACS4Connector.checkDBConnectivity(ACS4Connector.java:133)<br />
at<br />
com.cisco.nm.acs.mgmt.migration.MigrationApplicationCLI.runExport(MigrationApplicationCLI.<br />
java:605)<br />
at<br />
com.cisco.nm.acs.mgmt.migration.MigrationApplicationCLI.main(MigrationApplicationCLI.java:<br />
266)</em></p>
<p><em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Microsoft Windows [Version 5.2.3790]<br />
(C) Copyright 1985-2003 Microsoft Corp.</em></p>
<p><em>C:Documents and SettingsAdministrator&gt;cd migrationmigration</em></p>
<p><em>C:migrationmigration&gt;cd bin</em></p>
<p><em>C:migrationmigrationbin&gt;<br />
C:migrationmigrationbin&gt;<br />
C:migrationmigrationbin&gt;ipconfig</em></p>
<p><em>Windows IP Configuration</em></p>
<p><em>Ethernet adapter Local Area Connection:</em></p>
<p><em>Connection-specific DNS Suffix . :<br />
IP Address. . . . . . . . . . . . : 10.0.0.19<br />
Subnet Mask . . . . . . . . . . . : 255.255.255.0<br />
Default Gateway . . . . . . . . . : 10.0.0.1</em></p>
<p><em>C:migrationmigrationbin&gt;ping 10.0.0.18</em></p>
<p><em>Pinging 10.0.0.18 with 32 bytes of data:</em></p>
<p><em>Reply from 10.0.0.18: bytes=32 time&lt;1ms TTL=64</em></p>
<p><em>Ping statistics for 10.0.0.18:<br />
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),<br />
Approximate round trip times in milli-seconds:<br />
Minimum = 0ms, Maximum = 0ms, Average = 0ms<br />
Control-C<br />
^C<br />
C:migrationmigrationbin&gt;del migration.log</em></p>
<p><em>C:migrationmigrationbin&gt;migration.bat<br />
**************************************************<br />
Copyright (c) 2008, 2009 Cisco Systems, Inc.<br />
All rights reserved.<br />
**************************************************</em></p>
<p><em>This utility migrates data from ACS 4.x to ACS 5. You can migrate directly from<br />
the following ACS versions:</em></p>
<p><em>1. ACS 4.1.1.24<br />
2. ACS 4.1.4<br />
3. ACS 4.2.0.124<br />
4. ACS 4.2.1</em></p>
<p><em>The migration utility analyzes the ACS 4.x data, exports the data from ACS 4.x t<br />
hat can be migrated automatically, and imports the data into ACS 5.<br />
You can manually consolidate and resolve data according to the analysis report,<br />
before the import stage, to maximize the amount of data that the utility can mig<br />
rate.<br />
After migration, use the imported data to recreate your policies in ACS 5.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>Use saved user defaults?[yes]<br />
no<br />
Make sure that the database is running.<br />
Enter ACS 5 IP address or hostname:[10.0.0.18]</em></p>
<p><em>Enter ACS 5 Administrator username:[ACSAdmin]</em></p>
<p><em>Enter ACS 5 password:[******]</em></p>
<p><em>Change user preferences?[no]<br />
yes</em></p>
<p><em>User Groups<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Existing user groups will be migrated to the Identity Group.<br />
Enter the name of new Root:[Migrated_Group]</em></p>
<p><em>Network Device Groups<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Existing network device groups will be migrated to the Network Device Group.<br />
Enter the name of new Root:[Migrated_NDGs]</em></p>
<p><em>Consolidation Prefix<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
Identical objects found are consolidated into one.<br />
Enter the prefix to be added to such a consolidated object:[]</em></p>
<p><em>Users<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
ACS 5 supports authentication for internal users against the internal database o<br />
nly.<br />
ACS 4.x users that were configured to use an external database for authenticatio<br />
n are migrated with a default authentication password.<br />
Specify the default password.[******]</em></p>
<p><em>Disabled Group Users<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
ACS 4.x users and hosts that are associated with disabled group will be migrated<br />
as disabled:[yes]</em></p>
<p><em>Configure these users as disabled in ACS 5, or ask for a change of password on f<br />
irst access by the user to ACS 5.<br />
Select the option:<br />
1 &#8211; DisableExternalUser<br />
2 &#8211; SetPasswordChange<br />
Selected option:[2]</em></p>
<p><em>Network Device<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>TACACS+ and RADIUS network devices with same IP will be unified.<br />
Select the name to be used for unified devices.<br />
1 &#8211; RADIUSName<br />
2 &#8211; TACACSName<br />
3 &#8211; CombinedName<br />
Selected option:[3]</em></p>
<p><em>DACL name construction<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>Existing downloadable ACL will be migrated.<br />
Select the name to be used for the migrated DACL<br />
1 &#8211; DaclName_AclName<br />
2 &#8211; AclName<br />
Selected option:[1]</em></p>
<p><em>Save user defaults?[yes]</em></p>
<p><em>Connecting to ACS5, please wait&#8230;</em></p>
<p><em>Enter ACS 4.x Server ID:<br />
acs4<br />
Warning: This server id was entered before.</em></p>
<p><em>Add server specific migration prefixes?[no]</em></p>
<p><em>Show full report also on screen?[yes]</em></p>
<p><em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>Select the ACS 4.x Configuration groups to be migrated:[1]<br />
1 &#8211; ALLObjects<br />
2 &#8211; AllUsersObjects<br />
3 &#8211; AllDevicesObjects<br />
4 &#8211; SharedCommandSet<br />
5 &#8211; SharedDACLObject<br />
6 &#8211; MasterKeys<br />
7 &#8211; SharedRACObjectWithVSA<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>The following object types will be extracted:<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>User Attributes<br />
User Attribute Values<br />
Network Device Groups<br />
User Groups<br />
Groups Shell Exec<br />
Users Shell Exec<br />
Users<br />
Shared Command Sets<br />
Groups Command Set<br />
Users Command Set<br />
Network Device<br />
Shared Downloadable ACL<br />
EAP FAST &#8211; Master Keys<br />
MAB<br />
VSA Vendor<br />
VSA<br />
RAC<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>Choose one of the following:<br />
1 &#8211; AnalyzeAndExport<br />
2 &#8211; Import<br />
3 &#8211; CreateReportFiles<br />
4 &#8211; Exit<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>1<br />
Fatal Error !! &#8211; cannot connect to ACS 4.x DB !!<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>Choose one of the following:<br />
1 &#8211; AnalyzeAndExport<br />
2 &#8211; Import<br />
3 &#8211; CreateReportFiles<br />
4 &#8211; Exit<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>4<br />
Would you like to migrate another ACS4.x server?[no]<br />
no<br />
C:migrationmigrationbin&gt;</em></p>
<p><em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</em></p>
<p><em>*** Service Request LOG 2010-06-28 08:40:25.0 GMT, FZILIOTT, Action Type: Email In ***</em></p>
<p><em>From: fziliott@cisco.com<br />
Subject: SR 614750319 &#8211; * C3A &#8211; Problem running ACS4 -&gt; ACS5 migration script</em></p>
<p><em>See detail note for email textFrom: xxxx@cisco.com<br />
To: xxxx@xx.com<br />
Cc: attach@cisco.com<br />
Subject: SR 123456789 &#8211; * C3A &#8211; Problem running ACS4 -&gt; ACS5 migration script</em></p>
<p><em>Hello Jimmy,</em></p>
<p><em>Thank you for contacting the Cisco TAC.<br />
My name is Federico Ziliotto and I am the engineer assisting you for the<br />
Service Request 614750319.</em></p>
<p><em>Looking at the notes, the current problem description regards the fact<br />
that the migration utility for ACS 5.1 fails with the following<br />
exception when trying to migrate a database from ACS 4.1:</em></p>
<p><em>JavaUtils.isAttachmentSupported(JavaUtils.java:1308) WARN &#8211; Unable to<br />
find required classes (javax.activation.DataHandler and<br />
javax.mail.internet.MimeMultipart). Attachment support is disabled.</em></p>
<p><em>ACS4Connector.checkDBConnectivity(ACS4Connector.java:137)FATAL &#8211; Fatal<br />
Error !! &#8211; cannot connect to ACS 4.x DB !!</em></p>
<p><em>If needed, do not hesitate to update or modify my understanding at any time.</em></p>
<p><em>As a first action plan, I would like to collect some more details from<br />
the following points:</em></p>
<p><em>1. Could you please confirm the full version of ACS for Windows, on<br />
whose server you are running the migration tool?<br />
This should be visible in the ACS web interface, on the home page, right<br />
after logging in: 4.1.x.y</em></p>
<p><em>2. I would also like to please verify whether you are accessing the<br />
Windows server via RDP or VNC, for example.<br />
If so, I would suggest to please test running the migration tool while<br />
being physically on the Windows server.<br />
If this is a VMware machine, please use the console.</em></p>
<p><em>3. Should the issue still persists after having checked point #3, at the<br />
end of the process, please also select the option &#8220;CreateReportFiles&#8221;<br />
and then forward me the logs on the Windows server under</em></p>
<p><em>&#8230;migrationbinmigration.log<br />
and<br />
&#8230;migrationconfig</em></p>
<p><em>Please also take some time to document the business impact related to<br />
the case, if relevant, so that I can focus on the issue accordingly.</em></p>
<p><em>For your convenience I have included my contact details below; feel free<br />
to use them for any further questions.</em></p>
<p><em>Please make sure to always keep attach@cisco.com in the CC list so that<br />
the SR is updated automatically, and delete the lines from the previous<br />
emails when replying, in order to keep the case notes clear.</em></p>
<p><em>Best regards,</em></p>
<p><em>xxxxx</em></p>
<p><em>&#8211;<br />
Cisco Systems &#8211; EU TAC hotline: +32 2704 5555<br />
Technical Support worldwide Contacts and Home Page:</em></p>
<p><em>http://www.cisco.com/en/US/support/tsd_cisco_worldwide_contacts.html<br />
http://www.cisco.com/go/tsdelivery<br />
***<br />
For corporate legal information go to:</em></p>
<p><em>http://www.cisco.com/web/about/doing_business/legal/cri/index.html<br />
***</em></p>
<p><em>*** Service Request LOG 2010-06-28 09:47:19.0 GMT, JILAHBG, Action Type: Email In ***</em></p>
<p><em>From: xxxx@xx.com<br />
Subject: RE: SR 614750319 &#8211; * C3A &#8211; Problem running ACS4 -&gt; ACS5 migration script</em></p>
<p><em>See detail note for email textFrom: xxxx@xx.com<br />
To: xxxx@cisco.com<br />
Cc: attach@cisco.com<br />
Subject: RE: SR 123456789 &#8211; * C3A &#8211; Problem running ACS4 -&gt; ACS5 migration script</em></p>
<p><em>Hello</em></p>
<p><em>Running rdp to the console (start-&gt;Run-&gt;mstsc /admin) was successful. I am all done<br />
with my migration now. Thanks a lot! The case can be closed.</em></p>
<p><em>Br Jimmy</em></p>
<div class="shr-publisher-1152"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/acs-4-1-5-1-migration-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy New Year!</title>
		<link>http://nat0.net/happy-new-year/</link>
		<comments>http://nat0.net/happy-new-year/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 14:14:50 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[CCIE Security Lab]]></category>
		<category><![CDATA[English posts]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CCIE]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1197</guid>
		<description><![CDATA[My goal for 2010 was to nail that CCIE Security exam. I didn´t. During the first half of 2010 I spent almost all spare time studying and making practice labs. I did an attempt in Brussels in July but didnt make it. The goal then was to continue my studies asap after summer vacation, while [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>My goal for 2010 was to nail that CCIE Security exam. I didn´t. During the first half of 2010 I spent almost all spare time studying and making practice labs. I did an attempt in Brussels in July but didnt make it. The goal then was to continue my studies asap after summer vacation, while it was still calm and quiet at work. But there was no calm at all. I have been busy doing consulting from august to the day before christmas. No studies whatsoever.  So the next plan was to continue my studies in january when it is normally extremely calm at work. But now when I look in my schedule for 2011 I am already fully booked for january and first half of february.</p>
<p>So right now I have no idea when I will be able to get back to my ccie studies. I need to pass the lab before february 2012, otherwise I need to retake my written exam.  On the flip side I must say that I have never had more challenging and fun missions at work as I will have the next months. Implementations of lager 802.1x-solutions as well as teaching for the first time ever. It will be a blast!</p>
<p>&#160;</p>
<p>Merry christmas and a Happy New year to you all!  /Jimmy</p>
<div class="shr-publisher-1197"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/happy-new-year/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASA user authentication with Active Directory</title>
		<link>http://nat0.net/asa-user-authentication-with-active-directory/</link>
		<comments>http://nat0.net/asa-user-authentication-with-active-directory/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 16:19:19 +0000</pubDate>
		<dc:creator>Jimmy Larsson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AD]]></category>
		<category><![CDATA[Anyconnect]]></category>
		<category><![CDATA[ASA]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1126</guid>
		<description><![CDATA[Most often we Cisco-guys uses radius or tacacs when we are about to do authentication of users. But did you know that doing authentication from VPN to a user-database in an Active Directory doesn´t require IAS, ACS or any third party software at all. In fact there are multiple ways in ASA to talk to [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Most often we Cisco-guys uses radius or tacacs when we are about to do authentication of users. But did you know that doing authentication from VPN to a user-database in an Active Directory doesn´t require IAS, ACS or any third party software at all. In fact there are multiple ways in ASA to talk to AD built-in.</p>
<p>I have tried them in my home lab by using an ASA firewall and a Windows 2003 Server with Active Directory installed.</p>
<h3>LDAP</h3>
<p><code><br />
aaa-server LDAP protocol ldap<br />
aaa-server LDAP (outside) host 192.168.1.51<br />
ldap-base-dn CN=Users,DC=kvistofta,DC=local<br />
ldap-scope subtree<br />
ldap-naming-attribute sAMAccountName<br />
ldap-login-password *<br />
ldap-login-dn CN=admin,CN=Users,DC=kvistofta,DC=local<br />
server-type microsoft<br />
</code></p>
<p>Verification:<br />
<code><br />
FW(config)# test aaa authen KERBEROS host 192.168.1.51 username vpnuser passwo$<br />
INFO: Attempting Authentication test to IP address &lt;192.168.1.51&gt; (timeout: 12 seconds)<br />
INFO: Authentication Successful<br />
FW(config)# test aaa authen LDAP host 192.168.1.51 username vpnuser password 1$<br />
INFO: Attempting Authenticatio<br />
[75] Session Start<br />
n test to IP address &lt;192.168.1.51&gt; (timeout: 12 seconds)<br />
[75] New request Session, context 0xd5954260, reqType = 1<br />
[75] Fiber started<br />
[75] Creating LDAP context with uri=ldap://192.168.1.51:389<br />
[75] Connect to LDAP server: ldap://192.168.1.51:389, status = Successful<br />
[75] supportedLDAPVersion: value = 3<br />
[75] supportedLDAPVersion: value = 2<br />
[75] Binding as administrator<br />
[75] Performing Simple authentication for admin to 192.168.1.51<br />
[75] LDAP Search:<br />
Base DN = [CN=Users,DC=kvistofta,DC=local]<br />
Filter  = [sAMAccountName=vpnuser]<br />
Scope   = [SUBTREE]<br />
[75] User DN = [CN=vpnuser,CN=Users,DC=kvistofta,DC=local]<br />
[75] Talking to Active Directory server 192.168.1.51<br />
[75] Reading password policy for vpnuser, dn:CN=vpnuser,CN=Users,DC=kvistofta,DC=local<br />
[75] Read bad password count 0<br />
[75] Binding as user<br />
[75] Performing Simple authentication for vpnuser to 192.168.1.51<br />
[75] Processing LDAP response for user vpnuser<br />
[75] <strong>Authentication successful for vpnuser to 192.168.1.51</strong><br />
[75] Retrieved User Attributes:<br />
[75]    objectClass: value = top<br />
[75]    objectClass: value = person<br />
[75]    objectClass: value = organizationalPerson<br />
[75]    objectClass: value = user<br />
[75]    cn: value = vpnuser<br />
[75]    givenName: value = vpnuser<br />
[75]    distinguishedName: value = CN=vpnuser,CN=Users,DC=kvistofta,DC=local<br />
[75]    instanceType: value = 4<br />
[75]    whenCreated: value = 20100706114926.0Z<br />
[75]    whenChanged: value = 20100706114926.0Z<br />
[75]    displayName: value = vpnuser<br />
[75]    uSNCreated: value = 13726<br />
[75]    uSNChanged: value = 13731<br />
[75]    name: value = vpnuser<br />
[75]    objectGUID: value = ..1....O.c.v....<br />
[75]    userAccountControl: value = 66048<br />
[75]    badPwdCount: value = 0<br />
[75]    codePage: value = 0<br />
[75]    countryCode: value = 0<br />
[75]    badPasswordTime: value = 0<br />
[75]    lastLogoff: value = 0<br />
[75]    lastLogon: value = 129228917453688826<br />
[75]    pwdLastSet: value = 129228905663476095<br />
[75]    primaryGroupID: value = 513<br />
[75]    objectSid: value = .............LP...r{..."S...<br />
[75]    accountExpires: value = 9223372036854775807<br />
[75]    logonCount: value = 5<br />
[75]    sAMAccountName: value = vpnuser<br />
[75]    sAMAccountType: value = 805306368<br />
[75]    userPrincipalName: value = vpnuser@kvistofta.local<br />
[75]    objectCategory: value = CN=Person,CN=Schema,CN=Configuration,DC=kvistofta,DC=local<br />
[75] Fiber exit Tx=547 bytes Rx=2053 bytes, status=1<br />
[75] Session End<br />
<strong>INFO: Authentication Successful</strong><br />
FW(config)#<br />
</code></p>
<h3>KERBEROS</h3>
<p><code><br />
aaa-server KERBEROS protocol kerberos<br />
aaa-server KERBEROS (outside) host 192.168.1.51<br />
kerberos-realm KVISTOFTA.LOCAL</code></p>
<p><code> </code></p>
<p>Verification:<br />
<code><br />
FW(config)# test aaa authen KERBEROS host 192.168.1.51 username vpnuser passwo$<br />
INFO: Attempting Authentication test to IP address &lt;192.168.1.51&gt; (timeout: 12 seconds)<br />
kip_lookup_by_sessID: kip with id 76l not found<br />
Kerberos library reports: "Additional preauthentication required"<br />
<strong>INFO: Authentication Successful</strong><br />
FW(config)#<br />
</code></p>
<h3>NT Domain</h3>
<p><code><br />
aaa-server NT (outside) host 192.168.1.51<br />
nt-auth-domain-controller kvistofta<br />
</code></p>
<p>Verification:<br />
<code><br />
FW(config)# test aaa auth NT host 192.168.1.51 username vpnuser password 1qaz!$<br />
INFO: Attempting Authentication test to IP address &lt;192.168.1.51&gt; (timeout: 12 seconds)<br />
smb_iod_request :<br />
smb_iod_process_message :<br />
smb_iod_negotiate : iod_state = No connect<br />
smb_iod_negotiate : tcreate<br />
smb_iod_negotiate : bind<br />
smb_iod_negotiate : tconnect<br />
smb_iod_addrq :<br />
smb_iod_sendrq : iod_state = transport active<br />
smb_iod_waitrq :<br />
smb_iod_removerq :<br />
smb_iod_negotiate : completed<br />
smb_iod_process_message :<br />
smb_iod_thread : going to sleep for 2 secs 0 nsecs<br />
smb_iod_process_message :<br />
smb_iod_thread : going to sleep for 2 secs 0 nsecs<br />
smb_iod_request :<br />
smb_iod_process_message :<br />
smb_iod_ssnsetup : iod_state = unknown stat(3)<br />
smb_iod_addrq :<br />
smb_iod_sendrq : iod_state = unknown stat(4)<br />
smb_iod_waitrq :<br />
smb_iod_removerq :<br />
smb_iod_ssnsetup : completed<br />
smb_iod_process_message :<br />
smb_iod_thread : going to sleep for 2 secs 0 nsecs<br />
smb_iod_process_message :<br />
smb_iod_thread : going to sleep for 2 secs 0 nsecs<br />
Connected to VPNUSER<br />
smb_iod_request :<br />
smb_iod_process_message :<br />
smb_iod_addrq :<br />
smb_iod_sendrq : iod_state = session established<br />
smb_iod_waitrq :<br />
smb_iod_removerq :<br />
smb_iod_process_message :<br />
smb_iod_thread : going to sleep for 2 secs 0 nsecs<br />
smb_iod_request :<br />
smb_iod_process_message :<br />
<strong>INFO: Authentication Successful</strong><br />
FW(config)#<br />
</code></p>
<div class="shr-publisher-1126"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/asa-user-authentication-with-active-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doing some magic translations in Cisco ASA</title>
		<link>http://nat0.net/doing-some-magic-translations-in-cisco-asa/</link>
		<comments>http://nat0.net/doing-some-magic-translations-in-cisco-asa/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 17:59:01 +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[nat]]></category>

		<guid isPermaLink="false">http://blogg.kvistofta.nu/?p=1117</guid>
		<description><![CDATA[I recently got a question from a collegue regarding address translations in Cisco ASA. He wrote: Got a question from a customer if you can do the following: 1. NAT the . IP address of a machine located on the DMZ to inside with the same address as the NAT has been: at the outside [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I recently got a question from a collegue regarding address translations in Cisco ASA. He wrote:</p>
<p><i><br />
Got a question from a customer if you can do the following:</p>
<p>1. NAT the . IP address of a machine located on the DMZ to inside with the same address as the NAT has been: at the outside (ie publish public address inwards too)</p>
<p>2. Source NAT for inside addresses (clients) when they must go above the DMZ server (in the &#8220;public&#8221; address) so that the source is a different puclic address.</p>
<p>Have not tested yet so I do not know but the config must be abit weird. <img src='http://nat0.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p></i></p>
<p>ok. Lets try. I put together a quick lab-setup. A 3-legged ASA with a one-legged router on each firewall-interface:</p>
<p><code><br />
interface Vlan10<br />
 nameif outside<br />
 security-level 0<br />
 ip address 200.1.1.1 255.255.255.0<br />
!<br />
interface Vlan20<br />
 nameif inside<br />
 security-level 100<br />
 ip address 10.1.1.1 255.255.255.0<br />
!<br />
interface Vlan30<br />
 no forward interface Vlan20<br />
 nameif dmz<br />
 security-level 50<br />
 ip address 10.2.2.1 255.255.255.0<br />
!<br />
</code></p>
<p>And the routers.</p>
<p>R1:<br />
<code><br />
interface FastEthernet0<br />
 ip address 200.1.1.99 255.255.255.0<br />
 duplex auto<br />
 speed auto<br />
end<br />
</code></p>
<p>R2:<br />
<code><br />
interface FastEthernet0<br />
 ip address 10.1.1.99 255.255.255.0<br />
 duplex auto<br />
 speed auto<br />
end<br />
</code></p>
<p>and R3:<br />
<code><br />
interface FastEthernet0<br />
 ip address 10.2.2.2 255.255.255.0<br />
 duplex auto<br />
 speed auto<br />
end<br />
</code></p>
<p>Ok. R1 is the outside host on internet. R2 is an inside host on our corporate network. R3 is this magical server on DMZ. In this example it is a high performance telnet server!</p>
<p><code><br />
line vty 0 4<br />
 no login<br />
</code></p>
<p>First, make sure that this is reachable from internet. We do a static and allow the traffic on outside acl:</p>
<p><code><br />
static (dmz,outside) 200.1.1.2 10.2.2.2 netmask 255.255.255.255<br />
access-list OUTSIDE extended permit tcp any host 200.1.1.2 eq telnet<br />
</code></p>
<p>Verification. Telnet from R1 to public IP:<br />
<code><br />
R1#telnet 200.1.1.2<br />
Trying 200.1.1.2 ... Open<br />
R3><br />
</code></p>
<p>Great. Now we want to reach the DMZ server from inside. Since this is higher security level to lower and we dont have any acl on inside we dont have to care about open the traffic. But we want to use an OUTSIDE address as destination ip to reach a DMZ host. Lets try a static:</p>
<p><code><br />
FW(config)# static (dmz,inside) 200.1.1.2 10.2.2.2<br />
</code></p>
<p>The command above seems weird, right? I agree. Someday when I have a lot of time I will explain the theory but for now, just trust me!</p>
<p>Verification:<br />
<code><br />
R2#telnet 200.1.1.2<br />
Trying 200.1.1.2 ... Open<br />
R3><br />
</code></p>
<p>Next step is to hide the source address of that telnet client on inside. Right now it is using its own source ip:<br />
<code><br />
R3>en<br />
Password:<br />
R3#<br />
R3#sh users<br />
    Line       User       Host(s)              Idle       Location<br />
   0 con 0                idle                 00:08:09<br />
*  6 vty 0                idle                 00:00:00 10.1.1.99</p>
<p>  Interface    User               Mode         Idle     Peer Address</p>
<p>R3#<br />
</code></p>
<p>So, how do we accomplish that? The easiest way is to use a policy nat-statement. We create an access-list which defines which traffic to translate. We then create a nat-statement with a nat-id of your choice and call the access-list. Finaly we define which global ip to use. (outside. Remember dmz is outside relative to inside since dmz has lower security-level)<br />
<code><br />
access-list Inside2DMZ extended permit tcp 10.1.1.0 255.255.255.0 host 200.1.1.2 eq telnet<br />
nat (inside) 1 access-list Inside2DMZ<br />
global (dmz) 1 200.1.1.10<br />
</code></p>
<p>Verification:<br />
<code><br />
R2#telnet 200.1.1.2<br />
Trying 200.1.1.2 ... Open</p>
<p>R3>sh users<br />
    Line       User       Host(s)              Idle       Location<br />
*  6 vty 0                idle                 00:00:00 200.1.1.10</p>
<p>  Interface    User               Mode         Idle     Peer Address</p>
<p>R3></code></p>
<p>Voila! So, the client is on a private ip network 10.1.1.0 and establish a connection to what he think is on outside, because it is an public/outside ip. The traffic passes the magic ASA and the server on DMZ believes that the client is on internet since it has a public/outside source ip.</p>
<p><a href="http://www.gliffy.com/pubdoc/2075293/L.png"><img src="http://www.gliffy.com/pubdoc/2075293/S.png" alt="Topology" /></a></p>
<p>Mission accomplished.</p>
<div class="shr-publisher-1117"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://nat0.net/doing-some-magic-translations-in-cisco-asa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

