一、实验拓扑: 二、实验要求: 1、ASA可以添加监控ICMP,这样R3、R5可以PingR1,因为是Outbound流量;R1反过来是不行的,Inbound流量不放行,通不过; 2、Unicast IP Outbound方向通行;ARP双向都通行;Multicast IP(组播流量)、IPX(广播流量)双向都不通; 比如:R1和R2启用OSPF协议(或者用EIGRP),中间经过ASA,建立OSPF协议的时候中间用的是组播IP地址:224.0.0.5、224.0.0.6,经过ASA都是组播IP,两边都过不了的; 解决方法:必须在Outside、Inside所有接口都应用ACL才可以,推荐ACL应用到全局模式; 3、单播Outbound全通、Inbound全不通; 4、允许组播和广播的流量:部署ACL放行这些流量,应用到全局格式: ciscoasa(config)# access-group mingzi global

三、命令部署: 实验一: 1、ASA可以添加监控ICMP,这样R3、R5可以PingR1,因为是Outbound流量;R1反过来是不行的,Inbound流量不放行,通不过: ciscoasa(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 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

ciscoasa(config)# policy-map global_policy ciscoasa(config-pmap)# class inspection_default ciscoasa(config-pmap-c)# inspect icmp 验证: R3#ping 100.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 100.1.1.1, timeout is 2 seconds:.!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 80/98/116 ms

R5#ping 100.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 100.1.1.1, timeout is 2 seconds:!!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 64/64/64 ms

R1#ping 100.1.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 100.1.1.3, timeout is 2 seconds:..... Success rate is 0 percent (0/5)

实验二:三层的ACL 1、R1、R5启用EIGRP,分别部署环回口用来验证: R1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.0

R5(config)#int lo0 R5(config-if)#ip add 5.5.5.5 255.255.255.0

R1(config)#router eigrp 90 R1(config-router)#no auto-summary R1(config-router)#network 100.1.1.0 0.0.0.255 R1(config-router)#network 1.1.1.0 0.0.0.255

R5(config)#router eigrp 90 R5(config-router)#no auto-summary R5(config-router)#network 100.1.1.0 0.0.0.255 R5(config-router)#network 5.5.5.0 0.0.0.255 验证: 未做任何放行流量之前: R1#show ip eigrp neighbors IP-EIGRP neighbors for process 90 R5#show ip eigrp neighbors IP-EIGRP neighbors for process 90 2、放行EIGRP流量,可以用1条Object来放行: ASA(config)# access-list eig permit eigrp any host 224.0.0.10 //224.0.0.10范围太小了,没有允许R1其它更新到对方。 ASA(config)# access-group eig global 验证: R1# *Mar 1 00:57:36.359: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 90: Neighbor 100.1.1.5 (FastEthernet0/0) is up: new adjacency R5# *Mar 1 00:55:29.523: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 90: Neighbor 100.1.1.1 (FastEthernet0/0) is up: new adjacency

R1#show ip eigrp neighbors IP-EIGRP neighbors for process 90 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 100.1.1.5 Fa0/0 12 00:00:02 1 3000 1 0

R1#show ip route eigrp //下方没有D的路由条目,老师说ACL可能写的有问题

3、修改ACL,使得R1、R5分别获得对方的EIGRP路由条目: ASA(config)# access-list eig permit eigrp any any ASA(config)# access-group eig global 验证: R1#show ip route eigrp 5.0.0.0/24 is subnetted, 1 subnets D 5.5.5.0 [90/156160] via 100.1.1.5, 00:00:15, FastEthernet0/0 R5#show ip route eigrp
1.0.0.0/24 is subnetted, 1 subnets D 1.1.1.0 [90/156160] via 100.1.1.1, 00:00:42, FastEthernet0/0 结论:同理OSPF也一样的,推荐应用的Global;如果应用到接口,要把相应的测试流量要放过,因为这时候已经没有Outbound、Inbound这种说法,ASA只匹配ACL,而且Inside、Outside都要写ACL放行Telnet流量。 不然结果是:OSPF邻居可以建立,但是Telnet流量死活过不去。 总之,接口只要有了ACL,那么ASA只会匹配这些ACL来放行相应的流量。

实验三:二层ACL 1、允许Non-IP Traffic(非IP的流量)穿越:比如BPDU包、PPPoE的报文、ARP包;默认就可以通过,不需专门放行; 2、以太网类型的ACL必须应用到所有接口; 可以允许比以太网类型的值0x600更高的,任何以太网类型的协议;0x600表示以太网,当然还有802.1q封装的类型值;0x8863、0x8864代表的是PPPoE 不同的类型值描述的是不同的协议 演示实验:老师没做 一些ACL,做了以后PPPoE就可以通了。

实验四:ARP Inspection(之前高级交换做过该实验) 本质:逃不过接口Interface、IP、MAC这3个东西的绑定

中间人×××本质:×××发送无辜ARP报文,去刷新路由器和PC的MAC地址映射表项;原本绑定的正确的MAC地址、IP地址表项,被×××这么一洗涮,就变成×××的MAC地址了。

ASA可以做:MAC地址绑定、ARP检测不泛洪 ARP检测不泛洪:关闭G0、G4口的泛洪功能,把R1、R5的ARP-Cahe缓存清除掉,这样R1和R5就没办法通信了;因为R1没有R5的MAC地址映射表,就会发送ARP请求包;对于ASA来讲,首次收到该请求,要泛洪,但是关闭了泛洪功能;所以R5收不到请求,收不到就没法回复。 为什么配置不泛洪呢?因为比如:我们就有3台设备,这样更安全;那怎么通信呢,在ASA上做手动绑定,课件有命令,自己敲吧。

实验五: 1、可以关闭MAC学习功能,也会出现实验四的问题,也需要做绑定;

总结:二层防火墙适合应用在小型的、不需要跨网段的拓扑中;大型的、跨网段的拓扑不适用