<?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>yurisk.info &#187; Cisco</title>
	<atom:link href="http://yurisk.info/tag/cisco/feed/" rel="self" type="application/rss+xml" />
	<link>http://yurisk.info</link>
	<description>Technical Blog about IT Security and Networking</description>
	<lastBuildDate>Tue, 07 Sep 2010 12:42:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>snmp-map in ASA is for passing through traffic only</title>
		<link>http://yurisk.info/2010/08/28/snmp-map-in-asa-is-for-passing-through-traffic-only/</link>
		<comments>http://yurisk.info/2010/08/28/snmp-map-in-asa-is-for-passing-through-traffic-only/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 04:53:42 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[ASA/PIX Cisco]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Cisco ASA]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=1127</guid>
		<description><![CDATA[I don’t know who to blame – me for not being attentive or Cisco documentation for being vague, but when I read about snmp-map inspection that allows you to block selectively by SNMP version I decided it was the way to protect ASA itself from such queries. And only with the help of Netpro forum [...]]]></description>
			<content:encoded><![CDATA[<p>I don’t know who to blame – me for not being attentive or Cisco documentation for being vague, but when I read about snmp-map inspection that allows you to block selectively by SNMP version I decided it was the way to protect ASA itself from such queries. And only with the help of Netpro forum at Cisco.com did I learn that this feature is designed to inspect the SNMP traffic that passes THROUGH the ASA and not destined to the ASA itself.<br />
So if you want to limit what version of SNMP ASA will use to answer queries , use usual snmp-server host …<br />
For those who do want to block passing through the ASA SNMP of say version 1 and 2c , here is how:</p>
<div class="cmd">Louvre(config)#&nbsp;&nbsp; snmp-map no-v1or2-here<br />
deny version 1 <br />
deny version 2c</div>
<p> Now define with access-list what traffic to inspect, you may use specific IPs or just general SNMP ports – udp 161 and 162:</p>
<div class="cmd">Louvre#&nbsp;&nbsp;sh run access-list no-v3 <br />
access-list no-v1or2-here extended permit udp any any eq snmptrap<br />
access-list no-v1or2-here extended permit udp any any eq snmp</div>
<p> Bind ACL to class-map:</p>
<div class="cmd">Louvre(config)#&nbsp;&nbsp;class-map snmp-block-v2or1<br />
match access-list no-v1or2-here</div>
<p>Use the class-map in policy map with enabling snmp-map inspection :</p>
<div class="cmd">Louvre(config)#&nbsp;&nbsp;policy-map no-snmp-v2or1<br />
class snmp-block-v2or1<br />
  inspect snmp no-v1or2-here</div>
<p>And finally apply the policy map on some interface</p>
<div class="cmd">Louvre(config)#&nbsp;&nbsp;service-policy no-snmp-v2or1interface outside</div>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2010/08/28/snmp-map-in-asa-is-for-passing-through-traffic-only/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASA 8.2 now speaks SNMP v3 decently</title>
		<link>http://yurisk.info/2010/08/25/asa-8-2-now-speaks-snmp-v3-decently/</link>
		<comments>http://yurisk.info/2010/08/25/asa-8-2-now-speaks-snmp-v3-decently/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 18:43:55 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[ASA/PIX Cisco]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Cisco ASA]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=1110</guid>
		<description><![CDATA[ASA 8.2 speaks SNMP v3 decently This article is all about SNMP in ASA. ASA has much less configuration options than IOS does, and this is good. Starting version 8.2 ASA supports version 3 of the SNMP protocol which adds new security model to the whole SNMP stack. But first we will start with old [...]]]></description>
			<content:encoded><![CDATA[<p>ASA 8.2 speaks SNMP v3 decently<br />
This article is all about SNMP in ASA. ASA has much less configuration options than IOS does, and this is good. Starting version 8.2 ASA supports version 3 of the SNMP protocol which adds new security model to the whole SNMP stack.  But first we will start with old fashioned SNMP v2c (c is for ‘community’) . It takes about 15 secs to do it:</p>
<div class="cmd">
snmp-server location  “935 Pennsylvania Avenue, NW”<br />
snmp-server contact “Don’t call us we’ll call you”<br />
snmp-server community ***** &nbsp;&nbsp;&nbsp;// Note this community will be used if more specific one isn’t given per host<br />
snmp-server enable traps snmp authentication linkup linkdown coldstart &nbsp;&nbsp;//specific traps<br />
snmp-server enable &nbsp;&nbsp;&nbsp;// you enable server<br />
snmp-server listen-port 161  &nbsp;&nbsp;// in case you want to change, who knows …<br />
snmp-server host outside 195.95.193.8 community ****** version 1 udp-port 162 &nbsp;&nbsp;&nbsp; // only now SNMP polling is enabled and to the given host , also version 1 and port 162 on SNMP management (195.95.193.8) to send traps<br />
no snmp-server enable traps ipsec start stop &nbsp;&nbsp;&nbsp;// To disable specific traps </div>
<p>As you already know this setup will exchange community strings in clear text and also no packet is cryptographically authenticated/verified. What a shame for “Adaptive Security Appliance” . The fix is on the way. It is called SNMP v3 and has 3 security levels to choose from:<br />
<strong>noAuthNoPriv</strong> – packets are neither authenticated  nor  encrypted . Basically the model used so far by SNMP v1 and v2c – everything clear text.<br />
<strong>authNoPriv</strong>   &#8211;  packets are authenticated , that is user is sent in clear text but its password is not , (configurable) MD5 or SHA algorithm.<br />
<strong>authPriv</strong> &#8211; the highest level, all SNMP packets are both authenticated using MD5 or SHA and their content is encrypted with DES/3DES/AES (128,196,256) algorithm.<br />
Using the list above let’s configure our ASA for each level .<br />
General steps:</p>
<ul>
<li>Configure snmp-server group for every security level you want to use ;</li>
<li>Creatre user for each security level you wan to use and assign it to the snmp-server group of your choice</li>
<li>Create usual snmp-server host entry but adding version 3 and username to be used by this host. <strong>NOTE</strong> You can have only one such command per host but no matter which out of 3 security levels you specify in this command it will allow the other 2 to be used in querying as well</li>
</ul>
<p><strong>noAuthNoPriv.</strong></p>
<div class="cmd">snmp-server group v3-noauth v3 noauth <br />
snmp-server user Jambo v3-noauth v3<br />
snmp-server host outside 199.252.47.11 version 3 Jambo </div>
<p>Querying the ASA:</p>
<div class="cmd">snmpwalk -v 3 -u Jambo -l noauthnopriv  155.7.145.89</div>
<p><strong>authNoPriv.</strong></p>
<div class="cmd">snmp-server group V3-auth v3 auth<br />
snmp-server user AUTH V3-auth v3 auth md5 12345678<br /> <br />
 Minimum pass length is 8 , and while ASA seems not to care it is a violation and snmpwalk will complain on pass &lt; 8 and bail out .<br />
snmp-server host outside 199.252.47.11 version 3 AUTH</div>
<p>Querying the ASA:</p>
<div class="cmd">snmpwalk -v 3 -u AUTH -a md5 -A 12345678 -l authnopriv  155.7.145.89</div>
<p><strong>authPriv.</strong><br />
Here everything will be encrypted.</p>
<div class="cmd">snmp-server group v3-priv v3 priv<br />
snmp-server user very_secure v3-priv v3  auth md5 12345678 v3-priv v3  auth md5 12345678 priv aes 128 12345678<br />
snmp-server host outside 199.252.47.11 version 3 very_secure</div>
<p>N.B. To my surprise there is no such thing as <strong> debug snmp</strong> . Actually it does exist, but entering this command gives no error and produces no debug either.<br />
Noticed by the way. In logs you can see all the passwords you entered while configuring SNMP, not very secure I would rather say .</p>
<div class="cmd">(config)# sh log | grep snmp</div>
<div class="cmdout">%ASA-5-111008: User &#8216;enable_15&#8242; executed the &#8216;snmp-server user AUTH V3-auth v3 auth md5 12345678&#8242; command.</div>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2010/08/25/asa-8-2-now-speaks-snmp-v3-decently/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sla monitor in Cisco ASA land</title>
		<link>http://yurisk.info/2010/08/24/sla-monitor-in-cisco-asa-land/</link>
		<comments>http://yurisk.info/2010/08/24/sla-monitor-in-cisco-asa-land/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 13:14:49 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[ASA/PIX Cisco]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Cisco ASA]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=1103</guid>
		<description><![CDATA[SLA monitoring is finally here. What is it useful for ? To add/remove dynamically routes in ASA depending on results of the SLA status. Below is configuration steps but while there are many words in the command itself there are not much options there , so the command is long but pretty uniform. TokyoASA1(config)# sla [...]]]></description>
			<content:encoded><![CDATA[<p>SLA monitoring is finally here. What is it useful for ? To add/remove dynamically routes in ASA depending on results of the SLA status.<br />
Below is configuration steps but while there are many words in the command itself there are not much options there , so the command is long but pretty uniform.</p>
<div class="cmd">TokyoASA1(config)# sla monitor 33<br />
TokyoASA1(config-sla-monitor)# type echo protocol  ipIcmpEcho 150.6.2.2 int  outside type echo<br />
TokyoASA1(config-sla-monitor-echo)# ? </div>
<div class="cmdout"> default            Set a command to its defaults <br />
  exit               Exit probe configuration  <br />
  frequency          Frequency of an operation <br />
  no                 Negate a command or set its defaults <br />
  num-packets        Number of Packets <br />
  request-data-size  Request data size <br />
  threshold          Operation threshold in milliseconds <br />
  timeout            Timeout of an operation <br />
  tos                Type Of Service  </div>
<div class="cmd">TokyoASA1(config-sla-monitor-echo)# frequency ? </div>
<div class="cmdout">sla-monitor-echo mode commands/options: <br />
  &lt;1-604800&gt;  Frequency in seconds </div>
<div class="cmd">TokyoASA1(config)# sla monitor schedule 33 ?  </div>
<div class="cmdout"> ageout      How long to keep this Entry when inactive <br />
  life        Length of time to execute in seconds <br />
  recurring   Probe to be scheduled automatically every day <br />
  start-time  When to start this entry
  </div>
<div class="cmd">TokyoASA1(config)# sla monitor schedule 33 life forever start after 00:05:00 </div>
<p>Now create tracking process to be later applied to the static route:</p>
<div class="cmd">TokyoASA1(config)# track 1 rtr 33 reachability </div>
<p>And finally we create static route and attach to it the created track :</p>
<div class="cmd">TokyoASA1(config)# route outside 0 0  136.6.123.3 track 1</div>
<p>Now let&#8217;s see some statistics on the track:</p>
<div class="cmd">TokyoASA1# sh track </div>
<div class="cmdout">Track 1 <br />
  Response Time Reporter 33 reachability <br />
  Reachability is Down <br />
  1 change, last change 00:04:03 <br />
  Latest operation return code: Unknown <br />
  Tracked by: <br />
    STATIC-IP-ROUTING 0 </div>
<p>The final configuration looks like</p>
<div class="cmdout">sla monitor 33 <br />
 type echo protocol ipIcmpEcho 150.6.2.2 interface outside <br />
 num-packets 3 <br />
 request-data-size 1500 <br />
 timeout 30 <br />
 frequency 5 <br />
sla monitor schedule 33 life forever start-time after 00:05:00 </div>
<div class="cmd">TokyoASA1# sh sla monitor configuration</div>
<div class="cmdout">SA Agent, Infrastructure Engine-II<br />
Entry number: 33 <br />
Owner:  <br />
Tag:  <br />
Type of operation to perform: echo <br />
Target address: 150.6.2.2 <br />
Interface: outside <br />
Number of packets: 3 <br />
Request size (ARR data portion): 1500 <br />
Operation timeout (milliseconds): 30 <br />
Type Of Service parameters: 0&#215;0 <br />
Verify data: No <br />
Operation frequency (seconds): 5 <br />
Next Scheduled Start Time: Start Time already passed <br />
Group Scheduled : FALSE <br />
Life (seconds): Forever <br />
Entry Ageout (seconds): never <br />
Recurring (Starting Everyday): FALSE <br />
Status of entry (SNMP RowStatus): Active <br />
Enhanced History:</div>
<div class="cmd">TokyoASA1# sh sla monitor configuration  operational-state </div>
<div class="cmdout">Entry number: 33 <br />
Modification time: 15:14:04.168 UTC Sun May 23 2010 <br />
Number of Octets Used by this Entry: 1480 <br />
Number of operations attempted: 48 <br />
Number of operations skipped: 0 <br />
Current seconds left in Life: Forever <br />
Operational state of entry: Active <br />
Last time this entry was reset: Never <br />
Connection loss occurred: FALSE <br />
Timeout occurred: FALSE <br />
Over thresholds occurred: FALSE <br />
Latest RTT (milliseconds): 1 <br />
Latest operation start time: 15:22:59.169 UTC Sun May 23 2010 <br />
Latest operation return code: OK <br />
RTT Values: <br />
RTTAvg: 1RTTMin: 1RTTMax: 1 <br />
NumOfRTT: 3RTTSum: 3RTTSum2: 3 </div>
<div class="cmd">TokyoASA1# debug sla monitor ? </div>
<div class="cmdout">  error  Output IP SLA Monitor Error Messages<br />
  trace  Output IP SLA Monitor Trace Messages </div>
<div class="cmd">TokyoASA1# debug sla monitor trace </div>
<div class="cmdout">TokyoASA1# IP SLA Monitor(33) Scheduler: Starting an operation <br />
IP SLA Monitor(33) echo operation: Sending an echo operation <br />
IP SLA Monitor(33) echo operation: RTT=0 OK <br />
IP SLA Monitor(33) echo operation: RTT=0 OK <br />
IP SLA Monitor(33) echo operation: RTT=1 OK <br />
IP SLA Monitor(33) Scheduler: Updating result <br />
IP SLA Monitor(33) Scheduler: Starting an operation <br />
IP SLA Monitor(33) echo operation: Sending an echo operation <br />
IP SLA Monitor(33) echo operation: RTT=0 OK <br />
IP SLA Monitor(33) echo operation: RTT=0 OK <br />
IP SLA Monitor(33) echo operation: RTT=1 OK </div>
<p>And by the way it really works &#8211; when track is down the route to which it is attached magically disappeared<br />
from the routing table as should.</p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2010/08/24/sla-monitor-in-cisco-asa-land/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redundant interfaces in Cisco ASA</title>
		<link>http://yurisk.info/2010/08/23/redundant-interfaces-in-cisco-asa/</link>
		<comments>http://yurisk.info/2010/08/23/redundant-interfaces-in-cisco-asa/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 17:54:08 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[ASA/PIX Cisco]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Cisco ASA]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=1082</guid>
		<description><![CDATA[In Checkpoint they call it interface bonding – when will I stop dragging this Checkpoint everywhere ? – in Cisco ASA they called it interface redundancy. The idea is to provide for the physical link failure. That is – you combine two physical interfaces on the ASA into a virtual one, then you configure all [...]]]></description>
			<content:encoded><![CDATA[<p>In Checkpoint they call it interface bonding – when will I stop dragging this Checkpoint everywhere ? – in Cisco ASA they called it interface redundancy. The idea is to provide for the physical link failure. That is – you combine two physical interfaces on the ASA into a virtual one, then you configure all the Layer 3 parameters on this virtual interface. At the same time only ONE of the interfaces in a group is active, if it fails ASA transparently switches to the next available interface in a group and all traffic passes through it. By default the first added to the group interface becomes active and all the rest become passive. At the end of the article there is some dry theory and facts, but now let’s plunge into code.<br />
<strong>Warning !</strong>The moment you assign some physical interface to be a member of the redundant virtual interface ALL the existing configs on such interface are wiped out.<br />
Create redundant interface (group) and assign 2 physical interfaces to it :</p>
<div class="cmd">Santa#conf t<br />
Santa(config)# interface Redundant1<br />
Santa(config-if)# member-interface Ethernet0/0<br />
Santa(config-if)# member-interface Ethernet0/2<br />
Santa(config-if)#no nameif<br />
Santa(config-if)#no security-level<br />
Santa(config-if)#no ip address</div>
<p>Now basically we can start configuring nameif , IP address and security level for this Redundant1 interface but let’s be more creative and create some VLANs on it.</p>
<p>So far :</p>
<div class="cmd">Santa#show run int</div>
<div class="cmdout">interface Redundant1<br />
member-interface Ethernet0/0<br />
member-interface Ethernet0/2<br />
no nameif<br />
no security-level<br />
no ip address</div>
<div class="cmd">Santa(config)# interface Redundant1.120</div>
<p>Santa(config-subif)# vlan 120<br />
Santa(config-subif)# nameif dmz<br />
Santa(config-subif)# security-level 50<br />
Santa(config-subif)# ip address 10.0.0.12 255.255.255.0</p>
<p>To remind you state of the physical interfaces comprising the Redundant 1 is :</p>
<div class="cmdout">interface Ethernet0/2<br />
no nameif<br />
no security-level<br />
no ip address</div>
<p>interface Ethernet0/0<br />
no nameif<br />
no security-level<br />
no ip address</p>
<p>interface Redundant1<br />
member-interface Ethernet0/0<br />
member-interface Ethernet0/2<br />
no nameif<br />
no security-level<br />
no ip address</p>
<div class="cmd">Santa(config)# interface Redundant1.100<br />
Santa(config-subif)# vlan 100<br />
Santa(config-subif)# nameif outside<br />
Santa(config-subif)# security-level 0<br />
Santa(config-subif)# ip address 139.61.77.12 255.255.255.0</div>
<p>Now some verification is looming (pay attention to the bottom of the output where you can see which interface is currently active and how many state changes have happened so far) :</p>
<div class="cmd">Santa# sh int redundant 1 detail</div>
<div class="cmdout">Interface Redundant1 &#8220;&#8221;, is up, line protocol is up</div>
<p>Hardware is i82546GB rev03, BW 1000 Mbps, DLY 10 usec<br />
Auto-Duplex(Full-duplex), Auto-Speed(100 Mbps)<br />
Available but not configured via nameif<br />
MAC address 001b.d589.9892, MTU not set<br />
IP address unassigned<br />
1870 packets input, 150617 bytes, 0 no buffer<br />
Received 1329 broadcasts, 0 runts, 0 giants<br />
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort<br />
766 L2 decode drops<br />
264 packets output, 24326 bytes, 0 underruns<br />
0 output errors, 0 collisions, 0 interface resets<br />
0 babbles, 0 late collisions, 0 deferred<br />
0 lost carrier, 0 no carrier<br />
input queue (curr/max packets): hardware (9/18) software (0/0)<br />
output queue (curr/max packets): hardware (0/2) software (0/0)<br />
Control Point Interface States:<br />
Interface number is 10<br />
Interface config status is active<br />
Interface state is active<br />
Redundancy Information:<br />
Member Ethernet0/0(Active), Ethernet0/2<br />
Last switchover at 07:25:35 UTC August 19 2010</p>
<div class="cmdout">And what about some debug ? Of course:</div>
<div class="cmd">Santa(config)# debug redundant-interface ?</div>
<p>exec mode commands/options:<br />
error errors<br />
event events</p>
<div class="cmd">Now let’s initiate shut on physical interface Ethernet0/2 that is now active</div>
<div class="cmdout">redundant interface Redundant1 switchover, active idx 1, stby idx 0</div>
<p>redundant interface Redundant1 switching active from Ethernet0/2 to Ethernet0/0.</p>
<p>Send gratuitous ARP on Redundant1.100.<br />
Send gratuitous ARP on Redundant1.120.<br />
redundant interface Redundant1 switch active to Ethernet0/0 done.</p>
<p>Switch has happened, now verify it:</p>
<div class="cmd">Santa(config-if)# sh int redundant 1 det</div>
<div class="cmdout">Interface Redundant1 &#8220;&#8221;, is up, line protocol is up<br />
Hardware is i82546GB rev03, BW 1000 Mbps, DLY 10 usec<br />
Auto-Duplex(Full-duplex), Auto-Speed(100 Mbps)<br />
Available but not configured via nameif<br />
MAC address 001b.d589.9892, MTU not set<br />
IP address unassigned<br />
2284 packets input, 187559 bytes, 0 no buffer<br />
Received 1544 broadcasts, 0 runts, 0 giants<br />
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort<br />
797 L2 decode drops<br />
296 packets output, 27430 bytes, 0 underruns<br />
0 output errors, 0 collisions, 1 interface resets<br />
0 babbles, 0 late collisions, 0 deferred<br />
0 lost carrier, 0 no carrier<br />
input queue (curr/max packets): hardware (8/18) software (0/0)<br />
output queue (curr/max packets): hardware (0/5) software (0/0)</div>
<p>Control Point Interface States:</p>
<p>Interface number is 10<br />
Interface config status is active<br />
Interface state is active<br />
Redundancy Information:</p>
<p><strong>Member Ethernet0/0(Active), Ethernet0/2<br />
Last switchover at 07:57:11 UTC August 19 2010 </strong></p>
<p>Having done a bit practice the dry theory comes next.</p>
<ul>
<li>You can define up to 8 Redundant interfaces (if you have ASA 5580 why not?);&lt;\li&gt;</li>
<li>All the interfaces in the same group should be of the same type (Ethernet with Fiber won’t go well) ;&lt;\li&gt;</li>
<li>Only one interface is passing production traffic at any given moment;&lt;\li&gt;</li>
<li>Redundant interface gets by default MAC address of the first added to it interface, configurable;&lt;\li&gt;</li>
<li>When fail over happens to the second interface, it takes over MAC address of its previously active neighbour to prevent loss of traffic. If MAC is configured especially and manually it remains the same;&lt;\li&gt;</li>
<li>You can force some interface to become Active using the command:<br />
Santa# redundant-interface redundant active-member &lt;if_name&gt;&lt;\li&gt;</li>
<li>Redundant interfaces are compatible with fail over feature.&lt;\li&gt;</li>
</ul>
<p>For even more information , see:<br />
<a href="http://www.cisco.com/en/US/docs/security/asa/asa83/configuration/guide/intrface.html">ASA 8.3 interface configuration </a></p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2010/08/23/redundant-interfaces-in-cisco-asa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing with RIP on ASA</title>
		<link>http://yurisk.info/2010/08/23/playing-with-rip-on-asa/</link>
		<comments>http://yurisk.info/2010/08/23/playing-with-rip-on-asa/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 05:32:22 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[ASA/PIX Cisco]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Cisco ASA]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=1063</guid>
		<description><![CDATA[Cisco ASA and RIP RIP has been with ASA for years and in this article I will try to cover all possible scenarios in configuring, misconfiguring. debugging and verifying it. As I come up with new ideas how to break the RIP on ASA I will update this article as well. As it would be [...]]]></description>
			<content:encoded><![CDATA[<p>Cisco ASA and RIP<br />
RIP has been with ASA for years and in this article I will try to cover all possible scenarios in configuring, misconfiguring. debugging and verifying it. As I come up with new ideas how to break the RIP on ASA I will update this article as well.<br />
As it would be expected ASA has a bit limited version of RIP daemon as compared with IOS one. Major tasks you my be required to do &#58;</p>
<ul>
<li>	Enable RIP on the ASA;</li>
<li>	Dictate the version to work with – RIP v1 or RIP v2;</li>
<li>	Specify networks RIP protocol will be active for;</li>
<li>	Exclude some interfaces from active advertising RIP on them but allow to get<br />
RIP updates on them , i.e. passive interface(s);</li>
<li>	Decide whether you want auto-summarization or not. Default is on;</li>
<li>	Enable Rip updates authentication and whether it  should be<br />
encrypted (MD5 mode) or clear text (text mode);</li>
<li>	If using authentication define authentication keys under relevant interfaces;</li>
<li>	To make your life harder you will be asked to redistribute;</li>
<li>	Finally verify and debug RIP operation.</li>
</ul>
<p>SO let’s get our hands dirty.<br />
Enable RIP routing process.</p>
<div class="cmd">ASA#conf t<br />
ASA(config)# router rip <br />
TokyoASA(config-router)#</div>
<p>Set it to run exclusively version 2 . ASA doesn’t know to mix version<br />
2 and 1 as IOS does.</p>
<div class="cmd">TokyoASA(config-router)# version 2</div>
<p>Networks to be active for . You should specify classful nets or even if you specify anything different after you enter such networks ASA will automatically turn them into classful ones anyway.</p>
<div class="cmd">TokyoASA(config-router)#  network 5.0.0.0</div>
<p> Verifying configuration so far&#58; </p>
<div class="cmd">TokyoASA(config-router)# sh run router</div>
<div class="cmdout">router rip<br />
 network 5.0.0.0 <br />
 version 2</div>
<p>You will most probably want to disable summarization &#58;</p>
<div class="cmd">TokyoASA(config-router)# no auto-summary </div>
<p>Exclude some interface from advertising on it&#58;<br />
- To suppress on ALL interfaces in one go&#58;</p>
<div class="cmd">TokyoASA(config-router)# passive-interface  default </div>
<p>- To be more specific&#58;</p>
<div class="cmd">TokyoASA(config-router)# passive-interface  outside </div>
<p>Authentication is configured exclusively under the interface &#58;<br />
-	Dictate which authentication mode to use.</p>
<div class="cmd">TokyoASA(config-if)# rip authentication mode md5 </div>
<p>-	Specify the key (password) and its id.</p>
<div class="cmd">TokyoASA(config-if)# rip authentication key MYKEY key_id 33  </div>
<p> Here is how it looks in show run interface &#58;</p>
<div class="cmdout">
interface Ethernet0/0 <br />
 nameif outside <br />
 security-level 0 <br />
 ip address 136.6.12.12 255.255.255.0 <br />
 rip authentication mode md5 <br />
 rip authentication key &lt;removed&gt; key_id 33 </div>
<p><strong>Redistribute.</strong> Just redistributing learned in other ways networks into the RIP would be boring. As usual you redistribute connected, static, ospf and rip (when working with the rest of the protocols).</p>
<div class="cmd">TokyoASA(config-router)# redistribute ? </div>
<div class="cmdout">router mode commands/options&#58; <br />
  connected  Connected <br />
  ospf       Open Shortest Path First (OSPF) <br />
  rip        Routing Information Protocol (RIP) <br />
  static     Static routes</div>
<p>Much more interesting is to implement some policy while redistributing using route-maps. As expected route-maps here are not what we used to know in IOS.<br />
So what can you match for me ?</p>
<div class="cmd">TokyoASA(config-route-map)# match ? </div>
<div class="cmdout">route-map mode commands/options&#58;<br />
  interface   Match first hop interface of route  <br />
  ip              Match IP address or next-hop or route-source <br />
  metric       Match metric of route <br />
  route-type  Match route-type of route </div>
<p>The most familiar and useful match on ACL lies here&#58;</p>
<div class="cmd">TokyoASA(config-route-map)# match ip ? </div>
<div class="cmdout">route-map mode commands/options&#58;  <br />
  address       Match address of route or match packet <br />
  next-hop      Match next-hop address of route <br />
  route-source  Match advertising source address of route </div>
<div class="cmd">TokyoASA(config-route-map)# match ip address FILTER-ACL <br />
TokyoASA(config-route-map)#  route-map RIPv2 permit 10  <br />match ip address FILTER-ACL  <br /> match interface inside <br />
TokyoASA(config-router)# redistribute connected  route-map RIPv2 metric 13 </div>
<p>About rest of the match conditions, I’ll cover them when talking about OSPF in ASA.</p>
<div class="cmd">TokyoASA(config-route-map)# match route-type ? </div>
<div class="cmdout">route-map mode commands/options&#58; <br />
  external       Match external route (OSPF type 1/2) <br />
  internal       Match internal route (including OSPF intra/inter area) <br />
  local          Match locally generated route <br />
  nssa-external  Match nssa-external route (OSPF type 1/2) </div>
<p><strong>Filtering out routes  in updates.</strong><br />
If you want to filter some networks in updates use distribute-list.</p>
<div class="cmd">TokyoASA(config-router)# distribute-list MYACL ? </div>
<div class="cmdout">router mode commands/options&#58; <br />
  in   Filter incoming routing updates <br />
  out  Filter outgoing routing updates </div>
<p><strong>Now some debug is due.</strong><br />
Enable rip debug&#58;</p>
<div class="cmd">TokyoASA1# debug rip<br />
TokyoASA1# sh debug</div>
<div class="cmdout">debug rip routing <br />
debug rip database <br />
debug rip events </div>
<p>Normal functioning protocol debug output&#58;</p>
<div class="cmdout">add 10.0.2.0 255.255.255.0 via 0.0.0.0, connected metric [0/0]network<br />
0.0.6.136 is now variably masked <br />
add 136.6.0.0 255.255.0.0 via 0.0.0.0, connected metric [0/0] <br />
RIP-DB&#58; redist 10.0.0.0 255.255.255.0(metric 0, last interface dmz1) to RIP <br />
RIP-DB&#58; redist 10.0.2.0 255.255.255.0(metric 0, last interface dmz1) to RIP <br />
RIP-DB&#58; Get redist for network 10.0.2.0 <br />
RIP-DB&#58; adding 10.0.2.0 255.255.255.0 (metric 0) via 0.0.0.0 on Ethernet0/2.120 to RIP database <br />
RIP-DB&#58; rip_create_ndb create 10.0.2.0 255.255.255.0, (best metric 4294967295) <br />
RIP-DB&#58; rip_create_rdb Create 10.0.2.0 255.255.255.0, (metric 0) via 0.0.0.0, Ethernet0/2.120(permanent) <br />
RIP-DB&#58; add 10.0.2.0 255.255.255.0 (metric 0) via 0.0.0.0 on Ethernet0/2.120 (donot_age) <br />
RIP-DB&#58; Adding new rndb entry 10.0.2.0 255.255.255.0 <br />
RIP-DB&#58; rip_create_ndb create 10.0.0.0 255.0.0.0, (best metric 4294967295) <br />
RIP-DB&#58; rip_create_rdb Create 10.0.0.0 255.0.0.0, (metric 0) via 0.0.0.0, Null0(permanent) <br />
RIP-DB&#58; Created rip ndb summary entry for 10.0.0.0 255.0.0.0 <br />
RIP-DB&#58; Adding new rndb entry 10.0.0.0 255.0.0.0 rip_route_adjust for dmz1 coming up <br />
RIP&#58; sending request on dmz1 to 224.0.0.9 rip_route_adjust for dmz1 coming up <br />
RIP&#58; sending request on dmz1 to 224.0.0.9 <br />
RIP&#58; sending v2 flash update to 224.0.0.9 via dmz1 (10.0.2.120) <br />
RIP&#58; build flash update entries &#8211; suppressing null update <br />
RIP&#58; sending v2 update to 224.0.0.9 via dmz1 (10.0.2.120) <br />
RIP&#58; build update entries &#8211; suppressing null update </div>
<p>Now the authentication has been enabled but keys on 2 peers are not the same&#58;</p>
<div class="cmdout">RIP&#58; sending v2 update to 224.0.0.9 via inside (136.6.121.12)<br />
RIP&#58; build update entries <br />
10.0.0.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 136.6.23.0 255.255.255.0 via 0.0.0.0, metric 2, tag 0 136.6.123.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 136.6.124.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 <br />
RIP&#58; Update contains 4 routes <br />
RIP&#58; Update queued <br />
RIP&#58; sending v2 update to 224.0.0.9 via dmz1 (10.0.0.120) <br />
RIP&#58; build update entries <br />
136.6.23.0 255.255.255.0 via 0.0.0.0, metric 2, tag 0 136.6.121.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 136.6.123.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 136.6.124.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 <br />
RIP&#58; Update contains 4 routes <br />
RIP&#58; Update queued <br />
RIP&#58; Update sent via inside rip-len&#58;92 <br />
RIP&#58; Update sent via dmz1 rip-len&#58;92 <br />
RIP&#58; ignored v2 packet from 136.6.123.3 (invalid authentication) <br />
RIP&#58; sending v2 update to 224.0.0.9 via inside (136.6.121.12) <br />
RIP&#58; build update entries <br />
10.0.0.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 136.6.23.0 255.255.255.0 via 0.0.0.0, metric 2, tag 0 136.6.123.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 136.6.124.0 255.255.255.0 via 0.0.0.0, metric 1, tag 0 <br />
RIP&#58; Update contains 4 routes <br />
RIP&#58; Update queued <br />
RIP&#58; sending v2 update to 224.0.0.9 via dmz1 (10.0.0.120) <br />
RIP&#58; build update entries </div>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2010/08/23/playing-with-rip-on-asa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracking the source of DOS attack with Cisco IOS</title>
		<link>http://yurisk.info/2009/05/28/tracking-the-source-of-dos-attack-with-cisco-ios/</link>
		<comments>http://yurisk.info/2009/05/28/tracking-the-source-of-dos-attack-with-cisco-ios/#comments</comments>
		<pubDate>Thu, 28 May 2009 11:23:47 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[IOS Cisco]]></category>

		<guid isPermaLink="false">http://yurisk.info/?p=141</guid>
		<description><![CDATA[Problem: Enterprise is under Denial Of Service Attack that brings down key elements of the business or the whole network at all. To track the attacker is the first step in handling the attack and unless the flood is coming from inside (most probably not in a well managed LAN) you will need help of [...]]]></description>
			<content:encoded><![CDATA[<p>Problem: Enterprise is under  Denial Of Service Attack that brings down key elements of the business or the whole network at all.<br />
To track the attacker is the first step in handling the attack and unless the flood is coming from inside (most probably not in a well managed LAN) you will need help of your Service Provider to find out the origin. Unfortunately Service Provider&#8217;s  (SP) backbone is not well suited for such forensics, as its business role is<br />
to provide uninterrupted connectivity to ALL the clients , not only  you, so SP  will not enable ACLs/ip accounting/Netflow on their backbone to identify  where the attack is coming from . And if source Ip of the attack is spoofed  you can&#8217;t do much .</p>
<p>For such cases Cisco came with the nice feature called<br />
 <strong>ip source tracking</strong>   that will gather flow statistics for specific destination<br />
 IPs (of victim) and  periodically will export them for viewing, and will do all this without overloading the backbone router it is enabled on (Of course relevant if your SP is using Cisco gear) . Here are details:</p>
<p> &#8211; Enable it globally for the victim IP , here IP being attacked is 63.45.33.22</p>
<p><strong>Edge(config)#ip source-track 63.45.33.22</strong></p>
<p>- If you want (and if this is being done by SP they will not) you may create   log entries:<br />
<strong>Edge1(config)#ip source-track syslog-interval 2</strong><br />
Then you will see in logs (good for reminding to disable this afterwards) :<br />
May 28 10:55:47.105: %DOS_TRACK-5-CFG: IP Source Tracker configured for 1 hosts</p>
<p>- Also you may define how often to export gathered info to be viewed (seems to depend on the platform )  :</p>
<p> <strong>Edge(config)#ip source-track export-interval 60</strong></p>
<p>- And finally , you see the data accumulated so far :</p>
<p><strong>Edge#sh ip source-track</strong><br />
Address               SrcIF               Bytes      Pkts        Bytes/s     Pkts/s<br />
63.45.33.22          Fa0/0               141G      485M       8244        141</p>
<p>Most important here will be the Source interface (in this router there is only 1 ingress interface , in real backbone you will have few feeds) where you see most of the incoming traffic for this destination IP. Then you (SP) would go to the upstream router connected to this local interface, enable the same source tracking and so on. Up to the last point in the backbone where the attacking traffic enters<br />
the backbone of SP out of some upstream SP . Then SP would have option to contact the abuse of this upstream provider for them to investigate the issue further, or at least divert the attack to the black hole at the entry point, so end client would not be affected at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2009/05/28/tracking-the-source-of-dos-attack-with-cisco-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cisco ip accounting to begin with</title>
		<link>http://yurisk.info/2009/01/17/cisco-ip-accounting-to-begin-with/</link>
		<comments>http://yurisk.info/2009/01/17/cisco-ip-accounting-to-begin-with/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 17:15:01 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[IOS Cisco]]></category>

		<guid isPermaLink="false">http://yurisk.wordpress.com/?p=57</guid>
		<description><![CDATA[  First of all, Happy New year to All ! As I promised before (last year I&#8217;ll look at ip accounting in Cisco world. I&#8217;ll say it at the start already &#8211; accounting being with us since IOS 10.0 nowadays is getting pushed aside by the powerful Netflow feature.And while it is nowhere being depreciated/end-of-lifed [...]]]></description>
			<content:encoded><![CDATA[<p> <br />
First of all, Happy New year to All !<br />
As I promised before (last year <img src='http://yurisk.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;ll look at ip accounting in Cisco world. I&#8217;ll say it at the start already &#8211; accounting being with us since IOS 10.0 nowadays is getting pushed aside by the powerful Netflow feature.And while it is nowhere being depreciated/end-of-lifed by Cisco , it is presented as being &#8220;not enough&#8221;for the modern enterprise. I will agree that Netflow indeed provides lots of additional statistics and info , but will remind that it demands from device and the user substantially more as well.<br />
And therefore for many cases is just plain overkill.</p>
<p>So lets look at accounting closer.<br />
When enabled on the interface it  creates database of accounting information<br />
containing number of bytes that passed the router  between pairs of IP addresses. There are actually more types of accounting  but here I&#8217;ll talk about 2 types only: <span style="text-decoration:underline;">IP accounting</span> and  <span style="text-decoration:underline;">IP access-list violations accounting</span>. The first gathers statistics  for the traffic passing the router &#8211; entering and leaving it (means traffic that destined for or originating from the router itself is not accounted for). The 2nd type gathers info about traffic that is being rejected by the router according to applied ACLs. Both types can be enabled for physical/logical interfaces only (so to say VTY is not in the pack).</p>
<p>Both types share the same database memory space. And talking about memory -<br />
by default router keeps 512 records, after these are exhausted no new accounting info is recorded. As usual , this is configurable (see later).</p>
<p><strong>IP accounting</strong></p>
<p>Here is a sneak preview of accounting at work:</p>
<p>   Source           Destination              Packets               Bytes<br />
122.94.42.91     62.20.179.36                       2                 223</p>
<p>What you see is Ip addresses spotted in the IP packet header as source/destination<br />
, number of packets and bytes. The database is updated continuously as traffic<br />
passes the router.</p>
<p><span style="text-decoration:underline;">IP accounting condifuration</span></p>
<p>- enable on the interface of interest (only outbound traffic is recorded),<br />
i.e traffic leaving interface<br />
- if desired tune number of kept records<br />
- see in CLI gathered info<br />
- see info through SNMP agent (won&#8217;t cover here)<br />
- clear active accounting database and copy snapshot to checkpoint  database<br />
(done at once)<br />
- see later at any time snapshot in checkpoint database or active records<br />
in real-time</p>
<p>So here is our CLI:<br />
1) Enable on interface<br />
<span style="color:#000080;">Router(config)#int fa0/1<br />
Router(config-if)#ip accounting [output-packets]</span></p>
<p>2) [Optional] Tune maximum records value if desired (default 512, maximum 4294967295):<br />
<span style="color:#000080;">Router(config)#ip accounting-threshold 1200</span></p>
<p>3) See the active records in the database:</p>
<p><span style="color:#000080;">Router#sh ip account</span><br />
   Source           Destination              Packets               Bytes<br />
68.146.13.6       162.30.79.36                       1                 129<br />
79.82.168.224     162.30.79.36                       1                 126<br />
142.53.125.103    162.30.79.36                    9237              423360<br />
83.171.0.22       162.30.79.36                       1                 129<br />
118.181.13.61     162.30.79.36                       4                 360</p>
<p>4) Copy active database to checkpoint database and wipe out active db records:</p>
<p><span style="color:#000080;">Router#clear ip account<br />
Router#sh ip accounting checkpoint</span></p>
<p>  Source           Destination              Packets               Bytes<br />
68.146.13.6       162.30.79.36                       1                 129<br />
79.82.168.224     162.30.79.36                       1                 126<br />
142.53.125.103    162.30.79.36                    9237              423360<br />
83.171.0.22       162.30.79.36                       1                 129<br />
118.181.13.61     162.30.79.36                       4                 360</p>
<p>Usage tip: What is this good for at all? As I started in the previuos post<br />
I use such info to provide some insight to the client of what is going on<br />
(or rather going in/out) in his network at the given moment. So, all these<br />
commands I do on the client&#8217;s perimeter equipment which we manage. I have<br />
no slightest inclination to do this for client/whoever on my backbone<br />
gear, and you would be advised not too. Just try to enable accounting on the<br />
router passing gigabits of traffic and you&#8217;ll have some &#8216;splaning to do<br />
afterwards <img src='http://yurisk.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .  And in general be advised that many of the posts in my blog come<br />
from Service Provider view  and not of the end-client enterprise<br />
(no matter how big it is) standpoint.</p>
<p>5.5) Some extra-bonus configs though &#8211; you may configure ACL that will filter<br />
for what IP addresses to gather accounting info only. While trying to catch<br />
who is loading your network would be counter-productive to use such filtering,<br />
for monitoring long-time  it makes sense:</p>
<p>  <span style="color:#000080;">Router(config)#ip accounting-list 19.90.14.59 0.0.0.0</span></p>
<p>Then to  database will be written only records involving this IP(s):<br />
 <br />
  <span style="color:#000080;">Router#sh ip account<br />
</span>   Source           Destination              Packets               Bytes<br />
19.90.14.59    162.30.79.37                       7                2912</p>
<p><strong>IP access-list violations accounting.</strong></p>
<p>This accounts for traffic blocked by ACL(s) applied to the interface(s)<br />
- To enable :<br />
<span style="color:#000080;">Router(config-if)#ip accounting access-violations</span><br />
Accounting will exclude mls traffic when mls is enabled.</p>
<p>-  To see the records:<br />
<span style="color:#000080;">Router#sh ip accounting access-violations</span><br />
  Source           Destination              Packets               Bytes   ACL</p>
<p>Accounting data age is 8</p>
<p>* Of course to see something you need to have some blocking ACL applied to the<br />
interface(s) beforehand. As I have no ACL on any interface this db is empty.</p>
<p><strong>USAGE TIP 2</strong>: If you use this feature to spot most loading flow, you&#8217;ll love this<br />
one-liner that after  you pass to it (through std input) print out of<br />
the show ip accounting will sort data by bytes passed in ascending order:</p>
<p>*Hint  Darkstar is Linux machine, not router itself .<br />
  root@DarkStar:~# <span style="color:#000080;">sort -n -k4,4</span><br />
&lt;NOW COPY PASTE OUTPUT FROM ROUTER HERE &#8230;&gt;<br />
68.146.13.6       162.30.79.36                       1                 129<br />
79.82.168.224     162.30.79.36                       1                 126<br />
142.53.125.103    162.30.79.36                    9237              423360<br />
83.171.0.22       162.30.79.36                       1                 129<br />
118.181.13.61     162.30.79.36                       4                 360</p>
<p>79.82.168.224     162.30.79.36                       1                 126<br />
83.171.0.22       162.30.79.36                       1                 129<br />
68.146.13.6       162.30.79.36                       1                 129<br />
118.181.13.61     162.30.79.36                       4                 360<br />
142.53.125.103    162.30.79.36                    9237              423360</p>
<p><strong>USAGE TIP 3</strong>:<br />
To even further improve on the one-liner above below is again one-liner<br />
that not only sorts accounting data by Bytes field but also sums up bytes per<br />
Ip address (here in the 2nd field, but you can esaily modify to your needs):</p>
<p><a href="mailto:root@DarkStar">root@DarkStar</a>:~# <span style="color:#000080;">sort -n -k4,4 | awk &#8216;{ips[$2] += $4} END { for (x in ips) print x,ips[x]}&#8217;<br />
</span>122.53.125.103   162.30.79.36                       3                 120<br />
59.44.58.120     162.30.79.36                       3                 417<br />
123.203.142.106  162.30.79.36                       1                 177<br />
82.144.177.32    162.30.79.36                       1                 234<br />
218.103.137.105  162.10.79.36                       1                 126<br />
80.37.83.120     162.10.79.36                       1                 126<br />
79.182.121.216   162.10.79.36                       9                 377<br />
207.191.202.251  162.30.79.36                       9                 377<br />
84.195.248.47    162.20.79.36                       7                 304<br />
201.95.211.8     162.40.79.36                       8                 364<br />
79.180.14.184    162.30.79.36                      24                 994<br />
124.64.176.192   162.70.79.36                       5                 227<br />
62.219.133.44    162.30.79.36                      72                3077<br />
91.196.214.6     162.40.79.36                       4                 160<br />
125.125.227.168  162.40.79.36                      15                 797</p>
<p>0<br />
162.20.79.36 304<br />
162.40.79.36 1321<br />
162.30.79.36 5396<br />
162.10.79.36 629<br />
162.70.79.36 227<br />
<a href="mailto:root@DarkStar">root@DarkStar</a>:~#</p>
<p>Here I&#8217;ll wrap up my short (if you ask me) memo with few links for those interested to deep digger :</p>
<p>1) The whole book dedicated to knowing your network better :</p>
<p>Network Management: Accounting and Performance Strategies<br />
by Benoit Claise &#8211; CCIE No. 2686; Ralf Wolter</p>
<p><a href="http://www.ciscopress.com/bookstore/product.asp?isbn=1587051982">http://www.ciscopress.com/bookstore/product.asp?isbn=1587051982</a></p>
<p>Cisco IOS command reference:</p>
<p><a href="http://www.cisco.com/en/US/docs/ios/12_3/ipaddr/command/reference/ip1_i1g.html#wp1091971">http://www.cisco.com/en/US/docs/ios/12_3/ipaddr/command/reference/ip1_i1g.html#wp1091971</a></p>
<p>PS Next post I am planning to do on Netflow , the beast of accounting to be tamed.</p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2009/01/17/cisco-ip-accounting-to-begin-with/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guarding against brute force attack on VTY in Cisco IOS</title>
		<link>http://yurisk.info/2008/10/10/guarding-against-brute-force-attack-on-vty-in-cisco-ios/</link>
		<comments>http://yurisk.info/2008/10/10/guarding-against-brute-force-attack-on-vty-in-cisco-ios/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 09:24:03 +0000</pubDate>
		<dc:creator>Yuri</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[IOS Cisco]]></category>

		<guid isPermaLink="false">http://yurisk.wordpress.com/?p=41</guid>
		<description><![CDATA[Cisco starting IOS 12.3 introduced a simple but powerful feature to guard against brute force password guessing attack on remote access. The usual template followed when configuring VTY access is: 1) Configure ACL containing management IPs to be allowed to access the router through VTY 2) (Optional) Restrict VTY access protocol to ssh only (transport [...]]]></description>
			<content:encoded><![CDATA[<p>Cisco starting IOS 12.3 introduced a simple but powerful feature to guard against brute force password guessing attack on remote access. The usual template followed when configuring VTY access is:<br />
1) Configure ACL containing management IPs to be allowed to access the router through VTY<br />
2) (Optional) Restrict VTY access protocol to ssh only (transport input ssh)<br />
3) Apply this ACl to VTY : (config-line)# access-class &lt;ACL&gt;  in<br />
4) (Optional)  SIngle out one VTY line for a special remote access IP to be used if all VTY lines<br />
are currently in use: (config)# line vty 4<br />
Now I enhanced this template with following features:<br />
#Blocks login for 300 seconds after 5 failed logins within  50 seconds time interval</p>
<p><strong>login block-for 300 attempts 5 within 50</strong><br />
#apply specified ACl to VTY line when above event occurs, it is meant to exempt<br />
#your managemnt IP form being blocked. After timed block expires this ACL gets removed<br />
#from VTY and previous ACL that was applied before the event is reapplied back</p>
<p><strong>login quiet-mode access-class anti-DOS</strong></p>
<p>#Logging rate-limitation to prevent cluttering logs with failed attempts<br />
<strong>login on-failure log every 10</strong></p>
<p><strong>ip access-list standard anti-DOS<br />
 permit 193.193.193.33<br />
 remark Deny VTY access to anyone else if brute-force logins take up all VTY lines<br />
</strong> <br />
Another nice feature is delay between login attempts:<br />
<strong>Sacramento(config)#login delay 2</strong><br />
  Delay login is in seconds</p>
<p>Then in logs you will see the following failed attempts:</p>
<p><code><br />
*May  2 02:04:14.105: %SEC_LOGIN-4-LOGIN_FAILED: Login failed [user: ] [Source: 62.141.52.141] [localport: 22] [Reason: Login Authentication Failed] at 05:04:14  Sat May 2 2009<br />
*May  2 02:04:22.112: %SEC_LOGIN-1-QUIET_MODE_ON: Still timeleft for watching failures is 22 secs, [user: ] [Source: 62.141.52.141] [localport: 22] [Reason: Login Authentication Failed] [ACL: anti-DOS] at 05:04:22  Sat May 2 2009<br />
*May  2 02:09:22.091: %SEC_LOGIN-5-QUIET_MODE_OFF: Quiet Mode is OFF, because block period timed out at 05:09:22  Sat May 2 2009<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://yurisk.info/2008/10/10/guarding-against-brute-force-attack-on-vty-in-cisco-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
