我的身边的她 访问控制列表综合应用实验
实验拓扑:
实验要求:
1、 在R2上配置标准访问列表,拒绝所有来自3.3.3.0网络的数据包。
2、 在R2上配置扩展访问列表,阻塞来自网络23.1.1.0/24发往12.1.1.1地址的ICMP包。
3、 用命名的访问列表完成上述两个实验。
4、 R1路由器只允许23.1.1.3的IP地址能够Telnet到路由器上。
5、 在第4步骤中,R1路由器只允许R3在2006年11月1日至2006年11月30日的每周一到周五的8:00到18:00和周末的9:00到21:00才可以Telnet到R1。
6、 只允许R1能够主动发起连接Telnet到R3,不允许R3主动发起连接到R1路由器(Established)。
7、 在R2上配置Lock-and-key,R3与R1建立连接前需要在R2上进行认证(Telnet),在R2上的认证方式为本地数据库(在VTY线路下面开启Login local),R2自动生成临时动态访问列表,并配置绝对超时时间为5分钟,空闲时间为3分钟,自动生成的访问列表中的源地址必须用认证主机IP地址来进行替换。
8、 在R2上配置自反列表,使R1可以Ping通R3,R3不能Ping通R1。
IP地址表:(如图)
实验配置如下:
一、基本配置:
配置R1:
Router>en
Router#conf t
Router(config)#hostname R1
R1(config)#int S0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#router rip
R1(config-router)#network 12.1.1.1
R1(config-router)#end
R1#sh run
配置R2:
Router>en
Router#conf t
Router(config)#hostname R2
R2(config)#int S0
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#clock rate 64000
R2(config-if)#int S1
R2(config-if)#ip add 23.1.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#clock rate 64000
R2(config-if)#router rip
R2(config-router)#network 12.1.1.2
R2(config-router)#network 23.1.1.2
R2(config-router)#end
R2#sh run
配置R3:
Router>en
Router#conf t
Router(config)#hostname R3
R3(config)#int S0
R3(config-if)#ip add 23.1.1.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#int loop0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#router rip
R3(config-router)#network 3.3.3.3
R3(config-router)#network 23.1.1.3
R3(config-router)#end
R3#sh run
二、访问控制列表综合应用:
1. 在R2上配置标准访问列表,拒绝所有来自3.3.3.0网络的数据包.
R2#conf t
R2(config)#access-list 10 deny 3.3.3.0 0.0.0.255
R2(config)#access-list 10 permit any
R2(config)#int S1
R2(config-if)#ip access-group 10 in
2. 在R2上配置扩展访问列表,阻塞来自网络23.1.1.0/24发往12.1.1.1地址的ICMP包.
R2#conf t
R2(config)#access-list 100 deny icmp 23.1.1.0 0.0.0.255 host 12.1.1.1
R2(config)#access-list 100 permit ip any any
R2(config)#int S1
R2(config-if)#ip access-group 100 in
3.R1路由器只允许23.1.1.3的IP地址能够Telnet到路由器上.
R1#conf t
R1(config)#access-list 110 permit tcp host 23.1.1.3 host 12.1.1.1 eq 23
R1(config)#int S0
R1(config-if)#ip access-group 110 in
4. 在第3步骤中,R1路由器只允许R3在2006年11月1日至2006年11月30日的每周一到周五的8:00到18:00和周末的9:00到21:00才可以Telnet到R1.
R1#conf t
R1(config)#time-range telnettime //建立允许访问的时间范围
R1(config-time-range)#absolute start 00:00 1 nov 2006 end 00:00 1 dec 2006
R1(config-time-range)#periodic weekday 08:00 to 18:00
R1(config-time-range)#periodic weekend 09:00 to 21:00
R1(config-time-range)#exit
R1(config)#access-list 110 permit tcp host 23.1.1.3 host 12.1.1.1 eq 23 time-range telnettime
//建立访问控制列表只允许R3telnet登入到R1,将允许时间范围应用上
R1(config)#int S0
R1(config-if)#ip access-group 110 in
5. 只允许R1能够主动发起连接Telnet到R3,不允许R3主动发起连接到R1路由器(Established).
R1#conf t
R1(config)#access-list 110 permit tcp host 23.1.1.3 host 12.1.1.1 eq 23 time-range telnettime established //建立Established列表,只允许R1主动发起连接Telnet到R3, 这里的源地址指的是 R3的接口地址23.1.1.3,因为要检查的是R3回应的数据流,只有回应的数据流中TCP的ACK或RST比特才会被设置成1,主动发起连接的设备R1数据流中的TCP的ACK为0。
R1(config)#int S0
R1(config-if)#ip access-group 110 in
6. 在R2上配置Lock-and-key,R3与R1建立连接前需要在R2上进行认证(Telnet),在R2上的认证方式为本地数据库(在VTY线路下面开启Login local),R2自动生成临时动态访问列表,并配置绝对超时时间为5分钟,空闲时间为3分钟,自动生成的访问列表中的源地址必须用认证主机IP地址来进行替换.
R2#conf t
R2(config)#access-list 120 dynamic spoto timeout 5 permit tcp any host 12.1.1.1//绝对超时5分钟
R2(config)#access-list 120 permit tcp host 23.1.1.3 host 23.1.1.2 //允许R3通过tcp协议访问R2
R2(config)#int S1
R2(config-if)#ip access-group 120 in
R2(config-if)#end
R2#access-enable host timeout 3
//配置Lock-and-key特性的最后步骤是让路由器能在一个动态访问控制列表中创建一个临时性的访问控制列表条目,缺省情况下,路由器是不这么做的,可以使用下面此命令来进行启用.
Cisco强烈推荐用户使用该命令的关键字Host,其源地址总是用认证主机的IP地址来替换,所以我们在定义动态访问列表的源地址中总是指定any;Timeout规定了空闲超时值,指示连接在被切断之前允许保持的空闲时间。
R2#conf t
R2(config)#username spoto password spoto //建立本地用户和口令
R2(config)#line vty 0 4
R2(config-line)#login local //登入使用本地认证
R2(config-line)#autocommand access-enable host timeout 10 //触发access-enable的命令
7. 在R2上配置自反列表,使R1可以Ping通R3,R3不能Ping通R1.
R2#conf t
R2(config)#ip access-list extended outbound //建立命名扩展列表,允许从S1接口转发所有的外出路由包
R2(config-ext-ncl)#permit icmp any any reflect icmp_traffic //自反列表,允许R1所有网段能PING通R3
R2(config-ext-ncl)#exit
R2(config)#ip access-list extended inbound
R2(config-ext-ncl)#evaluate icmp_traffic //检查从外网进来的流量,如果这个流量确实是从内网发起的对外访问的返回流量,那么允许这个流量进来
R2(config-ext-ncl)#exit
R2(config)#int S1
R2(config-if)#ip access-group outbound out //应用控制列表
R2(config-if)#ip access-group inbound in
实验总结:
1.基于时间的访问控制列表:
①使用方法
这种基于时间的访问列表就是在原来的标准访问列表和扩展访问列表中加入有效的时间范围来更合理有效的控制网络。它需要先定义一个时间范围,然后在原来的各种访问列表的基础上应用它。并且,对于编号访问表和名称访问表都适用。
②使用规则
用time-range 命令来指定时间范围的名称,然后用absolute命令或者一个或多个 periodic命令来具体定义时间范围。
IOS命令格式为:
time-range time-range-name 用来标识时间范围的名称
absolute [start time date] [end time date] 指定绝对时间范围
periodic days-of-the week hh:mm to [days-of-the week] hh:mm 以星期为单位来定义时间范围的一个参数
2.动态访问控制列表:
①动态访问控制列表使指定的用户能获得对受保护资源的临时访问权,而不管他们是通过什么IP源地址进行访问。在用户切断连接之后,Lock-and-key特性将复原该访问控制列表。
②为了能让Lock-and-key特性能工作,用户必须先要Telnet到路由器上,Telnet给予用户一个机会来告诉路由器它是谁(通过用户名和口令进行认证),以及它目前在使用哪个源IP地址,如果用户成功地通过了认证,该用户的源IP地址就被授予临时通过路由器进行访问的权限。由动态访问控制列表的配置决定所允许访问的范围。
③动态访问列表的语法:
Access-list <number> dynamic <name> [timeout] [permit|deny] <protocol> any <destination ip> <destination mask>
Name是动态访问表的字符串名称;Timeout参数是可选的,如果定义了该参数,则指定动态表项的绝对超时时间
3.自反列表 (Reflexive ACL):
①Reflexive ACL的配置分为两个部分,一部分是outbound的配置,一部分是inbound的配置。
Reflexive ACL中outbound的部分决定了我出去的哪些内网网络流量是需要被单向访问的,inbound部分决定了这些流量在返回后能被正确的识别并送给内网发起连接的PC机
②注意在Reflexive ACL中只能用named方式的ACL,不能用numbered方式的ACL。
|outbound部分:
基本配置和普通ACL并没有什么太多不同,不同之处是reflect icmp_traffic,它的意思是这条ACE作为单向流量来处理,并且给了一个名称叫icmp_traffic,icmp_traffic在inbound部分被引用。
|inbound部分:
语句evaluate icmp_traffic对上述outbound配置中的icmp_traffic进行了引用,也就是说,它要检查从外网进来的流量,如果这个流量确实是从内网发起的对外访问的返回流量,那么允许这个流量进来。
应用reflexive ACL列表时应该注意方向,要能够完全明白in与out应正确在接口的哪个方向上。
permit ip any any 与 deny ip any any log 命令语句是用来验证其它包通过时的情况。