Lock-and-Key?Security?(Dynamic?ACL)
概述
有一种特殊的需求,比如一台连接了内网和外网的路由器,某些时候想限制内网的用户访问外网,如果用户想要获得访问外网的权限,就必须通过认证。
路由器在最初阻挡用户的数据通过,在用户通过认证后,再放行。
要实现这样的功能,可以使用?Dynamic?ACL。Dynamic?ACL?在一开始拒绝用户相应的数据包通过,当用户认证成功后,就临时放行该数据,但是在会话结束后,再将?ACL?恢复最初的配置。要定义?Dynamic??ACL?什么时候恢复最初的配置,可以定义会话超时,即会话多久没有传数据,就断开,也可以定义绝对时间,即无论会话有没有结束,到了规定时间,也要断开。
Dynamic?ACL?给用户提供的认证方法有多种,最常用的可以使
用?AAA,本地用户数据库。只要用户提供了正确的用户名和密码,就可以获得网络访问权。用户要向路由器提供用户名和密码以获得认证,就必须?telnet?配置了?Dynamic?ACL?的路由器,当?telnet?到路由器时,输入了正确的用户名和密码之后,认证就算通过。而要注意的是,用户输入的用户名,并不是普通的用户名,必须是具有访问功能的用户名,如果用户输入的用户名是普通的,那么等于普通的???telnet,并不能成为认证,只有输入的用户名是具有访问功能的,才能通过认证并获得网络访问权。要赋即一个用户名网络访问权的功能,就需要配置?autocommand?来实现。当使用?AAA?认证时,用户名要有?autocommand,也可以在配置本地用户数据库时为用户名添加,并且还可以加在?VTY?接口下。
会话结束的时间以分钟为单位,有空闲时间和绝对时间,如果两个时间同时配,空闲时间必须小于绝对时间,如果两个时间都不配,Dynamic??ACL??打开的访问缺口必须手工清除。
因为??Dynamic??ACL??在认证时是依靠用户??telnet???自己,所以一定要为用户打开telnet???访问权限,某些数据也可以让其默认通过,比如路由协议的数据。认证通过之后,就可以访问相应的服务,在认证通过之后,具体可以访问哪些,需要配置?ACL来定义,也就是配置了?dynamic?的条目,这样的动态条目只能配置一条,如果配多条动态?ACL,IOS?只认第一条,要注意?Dynamic?ACL?只支持扩展的?ACL。
说明:
R2?和?R3?为内网,R4?为外网,配置?R1,默认允许所有?telnet?通过,因为要使用?telnet做认证,然后只有当认证通过之后,ICMP?才可以通过。
1.配置?Dynamic?ACL
(1)配置默认不需要认证就可以通过的数据,如?telnet
r1(config)#access-list?100?permit?tcp?an?an?eq?telnet
(2)配置认证之后才能通过的数据,如?ICMP,绝对时间为?2?分钟。
r1(config)#access-list?100?dynamic?ccie?timeout?2?permit?icmp?any?any
(3)应用?ACL
r1(config)#int?f0/0
r1(config-if)#ip?access-group?100?in
2.测试访问
(1)测试内网?R2?telnet?外网?R4
r2#telnet?14.1.1.4
Trying?14.1.1.4?...? Open
r4>
说明:从结果中看出,telnet?不受限制。
(2)测试测试内网?R2?ping?外网?R4
r2#ping?14.1.1.4
Type?escape?sequence?to?abort.
Sending?5,?100-byte?ICMP?Echos?to?14.1.1.4,?timeout?is?2?seconds:
U.U.U
Success?rate?is?0?percent?(0/5)
r2#
说明:内网在没有认证之前,ICMP?是无法通过的。
3.配置本地用户数据库
r1(config)#username?ccie?password?cisco
4.配置所有人的用户名具有访问功能
r1(config)#line?vty?0?181
r1(config-line)#login?local
r1(config-line)#autocommand?access-enable 这条必加
5.内网?R2?做认证
r2#telnet?10.1.1.1
Trying?10.1.1.1?...? Open
User?Access?Verification
Username:?ccie
Password:
[Connection?to?10.1.1.1?closed?by?foreign?host]
r2#
说明:当?telnet?路由器认证成功后,是会被关闭会话的。
6.测试内网到外网的?ICMP?通信功能
r2#ping?14.1.1.4
Type?escape?sequence?to?abort.
Sending?5,?100-byte?ICMP?Echos?to?14.1.1.4,?timeout?is?2?seconds:
!!!!!
Success?rate?is?100?percent?(5/5),?round-trip?min/avg/max?=?1/2/4?ms
r2#
说明:认证通过之后,ICMP?被放行。
7.查看?ACL?状态
r1#sh?ip?access-lists
Extended?IP?access?list?100
10?permit?tcp?any?any?eq?telnet?(105?matches)
20?Dynamic?ccie?permit?icmp?any?any
permit?icmp?any?any?(5?matches)
r1#
说明:可以看到动态允许的流量已放行。
8.host?功能
有配置访问功能时,命令有
r1(config-line)#autocommand?access-enable
r1(config-line)#?autocommand access-enable?host
两种,并且后面可以跟时间,这里的时间为空闲时间,必须比之前的绝对时间要小,在配置访问功能时,如果没有加?host,那么内网一台主机通过认证之后,所有主机都能访问外网,加了?host,就变成谁通过了认证,谁才能访问外网。
|
|