一、实验拓扑: 二、实验要求: ICMP默认是没有监控的,所以R2 Ping R1不通(注意:R1、R2分别有默认路由下一跳为对应的ASA接口地址); 原因:有很多原因,R1开启Debug,查看Ping包是否可以到达R1; 能到达说明ASA没有监控ICMP,没有状态化信息;TCP默认是监控的,有状态化信息,记录源目IP、源目端口等这些信息,形成映射,所以回包的时候会对比这些映射信息,符合就放行了。ICMP这里流量出去的时候ASA没有记录状态化信息,没有形成映射,所以回包的时候没法对比,没法对比就丢掉了。(面试出场概率很高的) 这种情况是可以调整的,做一个例外,这样ASA就会监控ICMP了。 三、命令部署: 1、ASA上查看默认策略: ASA# show run
policy-map global_policy class inspection_default inspect dns preset_dns_map inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny
inspect sunrpc inspect xdmcp inspect sip
inspect netbios inspect tftp inspect ip-options TCP和UDP是例外的,不在该范围之内的;ftp是动态应用,虽然有TCP的22、23端口,但是它的流量都是临时产生的;FTP必须有用户名和密码的登录;这就是动态的交互,也就是TCP上有特殊字段会被标记的,标记部分没有告知ASA放行的话,ASA是不识别的,所以FTP比较特殊,这里仍让能看到FTP的检测。 默认不能写Inspect gre/esp,但是Inspect icmp是有的。 2、默认列表里有的,直接添加就可以,比如ICMP: ASA(config)# policy-map global_policy //默认ASA有的global_policy ASA(config-pmap)# class inspection_default //默认监控 ASA(config-pmap-c)# inspect icmp //增加icmp监控

3、默认列表没有的,创建一个就可以,比如增加对GRE的监控: ASA(config)# access-list gre permit gre any any //ACL名字为gre,抓取gre流量

ASA(config)# class-map aa //class-map名字为aa ASA(config-cmap)# match access-list gre //匹配access-list gre流量

ASA(config)# policy-map bb //policy-map名字为bb ASA(config-pmap)# class aa //匹配名字为aa的class ASA(config-pmap-c)# inspect ipsec-pass-thru //开启检测

ASA(config-pmap)# service-policy bb interface inside//在接口下应用,一个接口只能应用一个,和ACL类似,所以应用多个会报错的 四、验证: 1、R2的Ping可以到达R1,并且R1可以发送Echo Reply: R1#debug ip icmp ICMP packet debugging is on R1# *Mar 1 00:56:26.931: ICMP: echo reply sent, src 202.100.1.1, dst 10.1.1.2 2、在policy-map global_policy添加监控ICMP后:R2 可以Ping通R1 R2#ping 202.100.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 202.100.1.1, timeout is 2 seconds:!!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/52/84 ms 3、再次查看Policy-map,会看到增加很多东西: ASA(config)# show run policy-map policy-map type inspect dns preset_dns_map parameters message-length maximum client auto message-length maximum 512 policy-map bb class aa inspect ipsec-pass-thru policy-map global_policy class inspection_default inspect dns preset_dns_map inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny
inspect sunrpc inspect xdmcp inspect sip
inspect netbios inspect tftp inspect ip-options inspect icmp !