实验一:基本的动态访问列表的应用(手动激活)
1.试验说明:使用3台路由器,R1模拟一个内网用户;R2模拟网关;R3模拟外网的一台服务器。R2上已经做了策略禁止R1远程登陆到R3,它只允许R1远程登陆到R2上,然后激活一个动态访问列表。这个动态访问表是临时性的,它允许R1在一个特定的时间内可以登陆到R3上,现在进行配置
2.初始配置:
R1
interface Ethernet0/0
ip address 192.168.12.1 255.255.255.0
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip route 192.168.23.0 255.255.255.0 192.168.12.2
ip route 3.3.3.3 255.255.255.255 192.168.12.2
R2
interface Ethernet0/0
ip address 192.168.12.2 255.255.255.0
interface Ethernet0/1
ip address 192.168.23.2 255.255.255.0
R3
interface Ethernet0/1
ip address 192.168.23.3 255.255.255.0
interface Loopback0
ip address 3.3.3.3 255.255.255.255
ip route 192.168.12.0 255.255.255.0 192.168.23.2
ip route 1.1.1.1 255.255.255.255 192.168.23.2
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r3>
现在R1可以直接登陆到R3上。
2 在R2上配置ACL禁止R1登陆到R3,只允许它登陆到R2上。
r2(config)#ip access-list extended DENY
r2(config-ext-nacl)#permit icmp any any
r2(config-ext-nacl)#permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet
r2(config)#int e0/0
r2(config-if)#ip access-group DENY in
r1#telnet 192.168.23.3
Trying 192.168.23.3 ...
% Destination unreachable; gateway or host down
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
r2>
现在R1就无法登陆R3了,只能登陆R2
3.在R2上建立动态访问列表允许R1可以动态的暂时的登陆到R3
r2(config)#ip access-list extended DENY
r2(config-ext-nacl)# dynamic DYN timeout 3 permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet
以上语句就是在命名列表DENY中建立一条名为DYN的动态列表项,
Timeout值表示动态列表项被激活后只能存在3分钟,之后将消失。
现在在R1上尝试登陆R3r1#telnet 192.168.23.3
Trying 192.168.23.3 ...
% Destination unreachable; gateway or host down
结果依然失败,这是因为刚建立的动态列表还需要激活。
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
r2>access-enable 注意:此命令只能在VTY线程下输入
完成激活,现在再次登陆R3
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r3>
这次可以成功登陆了。现在到R2上查看一下访问列表
r2#sh ip access-lists
Extended IP access list DENY
permit icmp any any
permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (153 matches)
Dynamic DYN permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet
permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet (10 matches)
可以看到这时出现了一条动态列表项,允许R1登陆到R3上。过了3分多钟,再次查看
r2#sh ip access-lists
Extended IP access list DENY permit eigrp any any (516 matches)
permit icmp any any
permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (153 matches)
Dynamic DYN permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet
这时那条动态列表项已经不在了。到这里,基本的动态列表配置已经完成。
4.现在再进一步的研究一下命令的几个参数;我们注意到R1到R2激活的命令:
r2#access-enable ?
host Enable a specific host only
timeout Maximum idle time to expire this entry
这后面有两个参数
现在就做一下研究host参数,先更改一下动态列表
r2(config)#ip access-list extended DENY
r2(config-ext-nacl)#dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
然后激活,现在看一下控制列表
r2# sh ip access
Extended IP access list DENY
permit icmp any any
permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (477 matches)
Dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
permit tcp any host 192.168.23.3 eq telnet (15 matches)
现在到R1上进行测试
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r1#telnet 23.0.0.3 /source-interface lo0
Trying 23.0.0.3 ... Open
r3>
我们发现R1以E0/0或LO0接口为源都可以登陆到R3上;这是因为R2的动态列表允许源为ANY
等上几分钟,再查看一下ACL
r2#sh ip access
Extended IP access list DENY
permit icmp any any
permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (477 matches)
Dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
这时动态列表项已经超时消失了,现在再次进行激活,这次加上host参数。
r1#telnet 12.0.0.2
Trying 12.0.0.2 ... Open
r2#access-enable host
在R2上查看一下ACL
r2#sh ip access
Extended IP access list DENY
permit icmp any any
permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (594 matches)
Dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet (17 matches)
注意这次生成的动态列表项的源只有192.168.12.1;而不是刚才的ANY
再到R1上进行验证
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r1#telnet 192.168.23.3 /source-interface lo0
Trying 192.168.23.3 ...
% Destination unreachable; gateway or host down
这次以LO0为源无法登陆到R3了,这就是host的作用;
现在再次激活,这次用timeout参数
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
r2#access-enable timeout 1
激活后,不进行登陆测试,现在查看ACL
r2#sh ip access
Extended IP access list DENY
permit icmp any any
permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (690 matches)
Dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
permit tcp any host 23.0.0.3 eq telnet
有一条激活的动态列表项
等上一分钟后,再次查看
r2#sh ip access
Extended IP access list WY
permit icmp any any
permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (690 matches)
Dynamic CCIE permit tcp any host 23.0.0.3 eq telnet
现在那条动态列表项已经不在了。
总结:
- 建完动态访问列表后,需要激活,只能是动态列表所允许的源登陆到建立列表的网关路由器上进行激活。命令为:access-enable
- 激活命令后有两个参数:host和timeout
- 加上host参数后,则动态列表产生一条只允许刚刚进行激活的IP为源进行到远程的telnet
- 本实验中两个timeout参数的区别:
在建立动态列表时的timeout参数表示一个绝对的生存时间。即当此列表被激活后,动态列表项能存在多长时间。无论这期间有没有符合动态列表的流量通过。
激活命令后的timeout参数表示一个相对的时间,它表示当列表被激活后,若一直没有符合该列表的流量经过,则该列表项能存在多长时间。通常情况下,前一个timeout值都比后一个timeout值设的大一些
实验二:LOCK-AND-KEY动态访问列表(自动激活)
实验说明:上一个试验我们已经必须对动态列表进行手动激活,但觉得手动激活很麻烦。现在我们就来学习一个自动激活的命令。
1.保持上一个试验的基本配置,在R2上建立本地数据库
r2(config)#username CONTOSO password FUCK
2.配置用本地数据库验证登陆信息
r2(config)#line vty 0 15
r2(config-line)#login local
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
User Access Verification
Username: CONTOSO
Password:
r2>
现在R1登陆R2就需要用户名和密码了。
3.配置自动激活动态列表
r2(config)#username CONTOSO autocommand access-enable host timeout 1
该语句表示当以用户名WY登陆R2后,系统自动执行蓝色部分表示的一条命令。
4 在R1上登陆R2
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
User Access Verification
Username: CONTOSO
Password:
[Connection to 12.0.0.2 closed by foreign host]
自动命令运行后会立即退出线程
查看ACL
r2#sh ip access
Extended IP access list FUCK
permit icmp any any
permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (840 matches)
Dynamic CCIE permit tcp any host 192.168.12.2 eq telnet
permit tcp host 12.0.0.1 host 23.0.0.3 eq telnet
我们可以看到自动生成了一条动态列表项,可见,激活命令已经在R1登陆R2后自动执行了。
5.进行验证。
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r3>
现在R1可以登陆到R3上。