Lock-and-key(Dynamic acl)是动态过滤IP协议流量的流量过滤安全特性。它使用IP动态扩展访问列表配置。它可以联合其它标准访问列表和静态扩展访问列表使用。
当配置了lock-and-key,指定用户的一般情况下会被阻塞掉的IP流量会获得一个临时性的权限通过路由器。一旦被触发,lock-and-key重新配置接口已经存在的acl以允许用户到达他们指定的主机。在使用过之后,lock-and-key会将该接口配置为原来的状态。
认证过程:
User telnet filter_router
Lock-and-key automatically attempts to authenticate the user and reconfigure the acl of the interface
User gain a temporary access through the filter_router
Now user can reach their destination host.
Lock-and-key 的优点:
使用挑战机制认证单个用户
在大型网络环境中支持简单的管理
在许多情况下减少路由器对ACL的CPU处理要求
减少被网络上的hackers攻破的机会
什么时候使用动访(lock-and-key
远程设备访问本地设备
本地设备有限地访问远程设备
动访如何工作:
1.一个用户打开一个telnet会话到配置了动访的边界路由器。该用户是通过虚拟终端连接到该路由器
2.思科IOS接收到telnet数据包,打开一个telnet 会话,要求输入密码实施用户验证进程,用户想要通过该路由器访问另一端的设备必须通过认证。这一步可以通过本地路由器验证,也可以由诸如TACACS+或RADIUS服务器之类的一个中心安全访问中心来实施。
3.用户通过认证,然后登出telnet会话,软件产生在动态访问列表里一个临时性的条目。
4.用户通过防火墙交换数据。
5.当配置的超时计时器到时,软件删除临时访问列表,或者可以由管理员手动删除之。注意:当用户终结会话之后软件不会自动删除临时访问列表,直到计时器超时或管理员手动删除。
动访对路由器性能的影响:
当动访被触发的时候,动访会更新访问列表,这导致SSE交换路径会短暂性地失效。
Dynamic access lists require the idle timeout facility(even if the timeout is left to default) and therefore cannot be SSE switched.These entries must be handled in the protocol fast-switching path.
当远程用户触发了边界路由器上的动访,附加的访问列表会被 加入到边界路由器接口上。该接口上的访问列表会动态地增长或缩减。如果列表很大的话会影响数据包的转发性能。可以查看接口以删除相应的访问列表。
 
配置lock-and-key 的步骤:
1.router(config)#access-list access-list-number [dynamic dynamic-name [timeout minutes]] {deny|permit} telnet source source-wildcard destination destination-wildcard [precedence precedence] [tos tos] [established] [log]
配置一个动态访问列表以临时性地使用。
2.Router(config)#access-list dynamic-extend
该命令可以在动访快要到时的时候重新进行telnet重认证以延长另外6分钟时间。(在原有的基础上每次递增6分钟)
3.Router(config)#interface type number
4.Router(config-if)#ip access-group access-list-number
5.Router(config-if)#exit
6.Router(config)#line vty line-number [ ending-line-number]
7.Router(config-line)#login tacacs
 或
 Router(config-line)#password  password
 或
 Router(config-line)#login local
 或
 Router(config-line)#exit
 然后
 Router(config)#username name password secret
8.router(config-line)#autocommand access-enable [host] [timeout timeout]
 或
 Router(config)#autocommand access-enable [host][timeout minutes]
 在全局状态下配置激活创建临时性访问列表的条目的命令。如果不指定host关键字,在所要允许的网络的所有主机都会被允许。
Lock-and-key 配置准则
动态访问控制列表配置准则:
*不要为任意一个访问列表创建多于一个的动态访问列表,软件只参考第一个定义的动态访问列表。
*不要和另一个动态访问列表指定相同的dynamic-name。确保这点以确定软件会重复使用已存在的列表。必须保证所有命名的条目全局性地唯一。
*为动态访问列表指定属性的时候使用和静态访问列表一样的方式。这样临时性的访问控制条目会继承该指定给该列表的属性。
*配置telnet作为认证会话协议。
*要么在autocommand命令中的access-enable命令中使用timeout参数定义一个空闲超时值,要么使用access-list命令定义一个absolute超时值。如果不如此做,动态生成的列表会一直存在于所实施的接口当中直到管理员手动删除。
*如果定义了一个超时值,该值最好等于广域网空闲超时值。
*如果空闲计时器和absolute计时器都被配置了,空闲超时值必须比absolute超时值小。
*如果absolute计时器将要到时,但工作还没做完,可以使用命令access-list dynamic-extend命令去扩展动访的absolute计时器,每次增加6分钟,该命令允许用户打开一个新的telnet会话到路由器对所使用的lock-and-key进行重新认证。
*在动访的临时条目中,只有源和目的地址被替换了,这取决于访问列表是在出向访问还是在入向访问。其它的所有属性,比如端口,是由主动态访问列表继承来的。
*每次增加动态访问列表都是加在开头处,它的顺序是不可以被指定或被修改的。
*临时访问条目永远不会被写入NVRAM
*手动清除或查看动态访问列表,参考 管理 lock-and-key章节。
对于动态访问的认证有三种方法:
1.配置一个安全服务器
Router(config-line)#login tacacs
2.配置用户名命令
Router(config)#username name {nopassword|password { mutual-password | encription-type encrption-password}}
3.配置密码和登录命令
Router(config-line)#password password
Router(config-line)#login local
 
配置autocommand 命令的时候遵循以下准则
*如果使用TACACS+服务器认证用户,需要在服务器上为每个用户配置autocommand命令,或者如果使用本地验证的话可以在线路上配置autocommand命令。
*为所有的虚拟终端配置相同的autocommand命令。如果在一条虚拟终端线路上忽略了autocommand命令将会允许任何的主机获得对路由器的访问权限并且不会产生一条动态访问列表条目。
*IDLE timeout或absolute timeout两者必须至少配置一个。否则,动态访问列表条目会一直存在于接口中直到手动删除。
*如果两者都配置了 IDLE timeout < absolute timeout是必须的。
查看DACL可以使用命令show access-lists [access-list-number]
手动删除DACL可以使用命令router#clear access-template [access-list-number | name] [dynamic-name] [souorce] [destination]
动访举例:
interface ethernet0
ip address 172.18.23.9 255.255.255.0
ip access-group 101 in
access-list 101 permit tcp any host 172.18.21.2 eq telnet
access-list 101 dynamic mytestlist timeout 120 permit ip any any
line vty 0
login local
autocommand access-enable timeout 5
Lock-and-key 使用TACACS+ 配置的例子
aaa authentication login default group tacacs+ enable
aaa accounting exec stop-only group tacacs+
aaa accounting network stop-only group tacacs+
enable password ciscotac
!
isdn switch-type basic-dms100
!
interface ethernet0
ip address 172.18.23.9 255.255.255.0
!
interface BRI0
ip address 172.18.21.1 255.255.255.0
encapsulation ppp
dialer idle-timeout 3600
dialer wait-for-carrier-time 100
dialer map ip 172.18.21.2 name diana
dialer-group 1
isdn spid1 2036333715291
isdn spid2 2036339371566
ppp authentication chap
ip access-group 102 in
!
access-list 102 permit tcp any host 172.18.21.2 eq telnet
access-list 102 dynamic testlist timeout 5 permit ip any any
!
!
ip route 172.18.250.0 255.255.255.0 172.18.21.2
priority-list 1 interface BRI0 high
tacacs-server host 172.18.23.21
tacacs-server host 172.18.23.14
tacacs-server key test1
tftp-server rom alias all
!
dialer-list 1 protocol ip permit
!
line con 0
password cisco
line aux 0
line VTY 0 4
autocommand access-enable timeout 5
password cisco