拓扑如上:两台路由器,已经配置好了IP地址,并且都已经启用了TELNET,密码为cisco .
 
 
实验一:我们都知道PING是双向的,但我们灵活应用ACL使R1可以拼通R2,但是R2不能拼通R1
 
 
 
 
步骤1:测试在R1R2与在R2R1
 
r1#ping 12.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
r1#
 
r2#ping 12.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/3/4 ms
r2#
 
 
 
 
 
步骤2:在R1上写ACL并应用在接口
 
r1(config)#access-list 100 permit icmp host 12.1.1.2 host 12.1.1.1 echo-relay    
--允许12.1.1.212.1.1.1 返回的包,意思就是如果12.1.1.212.1.1.1的包就允许,而12.1.1.2主动发起的拼包就不允许。
r1(config)#interface e0/0
r1(config-if)#ip access-group 100 in     --
进入接口并启用ACL 100
 
 
 
 
步骤3:验证R1R2R2R1
 
r1#ping 12.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
r1#
 
r2#ping 12.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.1.1.1, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
r2#
 
 
 
 
 
实验二:使R1TELNETR2,而R2不能TELNETR1
 
 
 
 
步骤1R1R2测试相互TELNET对方
 
r1#telnet 12.1.1.2
Trying 12.1.1.2 ... Open

User Access Verification
Password:
r2>
 

 
r2#telnet 12.1.1.1
Trying 12.1.1.1 ... Open

User Access Verification
Password:
r1>
 
 
 
 
步骤2:在R1上写ACL并应用到接口
 
r1(config)#access-list 100 permit tcp host 12.1.1.2 eq 23 host 12.1.1.1 gt 1024
--- 只允许12.1.1.223端口访问12.1.1.1大于1024的端口,这样灵活应用TCP的端口号,实现了R1TELNETR2,而R2却不能TELNETR1
r1(config)#interface e0/0
r1(config-if)#ip access-group 100 in
r1(config-if)#end
r1#
 
 
 
 
步骤3:验证R1R2互相TELNET对方
 
r1#telnet 12.1.1.2
Trying 12.1.1.2 ... Open
 
User Access Verification
 
Password:
r2>
 
 
r2#telnet 12.1.1.1
Trying 12.1.1.1 ...
% Destination unreachable; gateway or host down
 
r2#
 
 
总结:
1、入站访问控制列表:将到来的分组路由到出站接口之前对其进行处理。因为如果根据过滤条件分组被丢弃,则无需查找路由选择表;如果分组被允许通过,则对其做路由选择方面的处理。
2、出站访问列表:到来的分组首先被路由到出站接口,并在将其传输出去之前根据出站访问列表对其进行处理。
3、任何访问列表都必须至少包含一条permit语句,否则将禁止任何数据流通过。
4、同一个访问列表被用于多个接口,然而,在每个接口的每个方向上,针对每种协议的访问列表只能有一个。
5、在每个接口的每个方向上,针对每种协议的访问列表只能有一个。同一个接口上可以有多个访问列表,但必须是针对不同协议的。
6、将具体的条件放在一般性条件的前面;将常发生的条件放在不常发生的条件前面。
7、新添的语句总是被放在访问列表的末尾,但位于隐式deny语句的前面。
8、使用编号的访问列表时,不能有选择性的删除其中的语句;但使用名称访问列表时可以。
9、除非显式地在访问列表末尾添加一条permit any语句,否则默认情况下,访问列表将禁止所有不与任何访问列表条件匹配的数据流。
10、所有访问列表都必须至少有一条permit语句,否则所有数据流都将被禁止通过。
11、创建访问列表后再将其应用于接口,如果应用于接口的访问列表未定义或不存在,该接口将允许所有数据流通过。
12、访问列表只过滤经由当前路由器的数据流,而不能过滤当前路由器发送的数据流。
13、应将扩展访问列表放在离禁止通过的数据流源尽可能近的地方。
14、标准访问列表不能指定目标地址,应将其放在离目的地尽可能近的地方
 
在两个实例说明了ACL的强大,即可以实现软防火墙的功能,内部始发的流量FOWARD,而外部向内部始发的流量DROP,安全的关键在于构思,怎样去灵活运用,把功能实现最大化。