Local-And-Key是动态ACL的一种,可以在外网用户访问内网设备时提供一种简单的安全机制,在配置了LOCAL-AND-KEY的路由器上,所有的外网到内网的访问都是需要经过telnet的用户验证,如果通过了telnet验证,那么外网用户就获得了访问内网的临时访问权(路由器会根据动态ACL产生一条临时的ACL来匹配访问流量),但如果不通过验证,外网用户无法访问内网设备。
注意的点:1、local-and-key配置在边界路由器上,即被保护主机的边界。
2、telnet的认证是在配置了local-and-key的路由器上进行,也就是telnet该路由器来进行认证,在 通过认证后,该telnet会马上断开连接,并给出通过认证的提示,不会影响路由器本身的安全性 能,但是也就不能通过telnet来管理配置了local-and-key的路由器了。
3、应用于外网用户时首先保证外网用户可以访问该路由器(telnet可以登录,否则无法通 信也就无从认证了)。
session 2 配置
1、实验环境2台cisco3745路由器和一台虚拟PC机器
internet扮演一台外网路由器兼外网用户(使用loopback 0来模拟),而R2及PC2扮演内网边界路由器及受保护的应用PC主机,实验要求为:当外网用户访问PC2时候,需要经过telnet安全认证通过,否则将无法访问,并且只有经过了telnet安全认证的用户才能对PC2进行访问,这里单独提一下“只有经过了telnet安全认证的用户才能对PC2进行访问”这个点是因为后面配置里面讲到的一个host参数的关系,见下文:
1、首先配置相互连通性,这里就用静态路由或者默认路由保证internet的lo0口与PC2可以通信即可
internet f0/0 192.168.1.1 ----- R2 f0/0 192.168.1.2 ------ R2 f0/1 10.0.0.1 ----- PC2 10.0.0.2 getway 10.0.0.1
做路由后测试ping
internet#show run int f0/0
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
end
internet#ping 10.0.0.2
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/33/48 ms
做路由通信后,开始配置local-and-key
R2上的配置:
第一步,配置本地认证数据库,设置认证所用到的用户名及密码
R2(config)#username ccie password ccie
第二部,创建动态ACL,匹配要进行认证的流量。并且允许telnet流量(认证需要telnet),并在接口上启用ACL
R2(config)#access-list 101 permit tcp any any eq 23 (允许telnet认证的流量,放在动态ACL条目下面也不影响,不过建议放在前面)
R2(config)#access-list 101 dynamic local-and-key timeout 60 permit ip any any
创建了101的动态ACL条目,当源通过认证时,会产生一条临时ACL内容为permit ip 源 any,允许访问的时间为60分钟,不加时间参数的话默认是120分钟。
R2(config-if)#ip access-group 101 in 将ACL应用在对外接口的in方向
第三部,配置认telnet证使用本地数据进行
R2(config)#line vty 0 4
R2(config-line)#login local
R2(config-line)#autocommand access-enable host timeout 2
R2(config-line)#exit
第四步,在接口上应用ACL
R2(config-if)#ip access-group local-and-key in 应用在接口的in方向
以上四部动态ACL local-and-key就配置完成了,其中标红的host参数,是指“只有经过了telnet安全认证的用户才能对PC2进行访问”,否则不加此参数的结果是只要有一个源通过了telnet的认证,那么将放行any对于PC2的访问。2是时间参数2分钟,意思为telnet连接以后2分钟内不进行认证行为该会话就会自动关闭,默认为5分钟,此功能是为了防止对路由器的telnet半连接攻击设计。
autocommand说明:此命令类似于登录脚本,就是登录后执行输出aotucommand后面的命令或者文字,就是说telnet登录成功后,就会执行access-enable host timeout 2这条命令,由这条命令激活了之前设置的动态ACL,才会自动生成动态ACL定义的临时ACL条目。
session 3 测试结果
1、没有启用local-and-key的ping测试
internet#ping 10.0.0.2
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/33/48 ms
2、启用了local-and-key动态ACL的ping测试
internet#ping 10.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
UUUUU
Success rate is 0 percent (0/5)
3、在internet路由器上使用telnet认证连接R2,并通过认证
internet#telnet 192.168.1.2
Trying 192.168.1.2 ... Open
User Access Verification
Username: ccie
Password:
% List#101-local-and-key already contains this IP address pair
[Connection to 192.168.1.2 closed by foreign host] 认证成功后看到连接马上自动关闭
internet#
4、再pingPC2看结果并查看R2上的ACL条目
internet#ping 10.0.0.2 source 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 16/273/1028 ms
internet#
可以访问PC2了,查看R2中的ACL:
R2#show access-lists
Extended IP access list 101
10 Dynamic local-and-key permit ip any any
permit ip host 192.168.1.1 any (79 matches)
20 permit tcp any any eq telnet (57 matches)
R2#
看到动态ACL列表local-and-key产生了一条临时条目permit ip host 192.168.1.1 any (79 matches),允许192.168.1.1对于any的访问。
完成local-and-key动态ACL的应用。
补充:动态ACL的local-and-key只是检查ip,如果经过认证某台设备的ip被非法抢占了,那么抢占这个已经通过认证的ip的设备就可以利用这个抢占的ip来通信了,所以local-and-key动态ACL不实用。