动态ACL:
动态ACL(Access Control List)是对传统访问表的一种重要功能增强。动态ACL是能够自动创建动态访问表项的访问列表。传统的标准访问列表和扩展的访问列表不能创建动态访问表项。一旦在传统访问列表中加入了一个表项,除非手工删除,该表项将一直产生作用。而在动态访问表中,读者可以根据用户认证过程来创建特定的、临时的访问表项,一旦某个表项超时,就会自动从路由器中删除。SourceByrd's Weblog-https://note.t4x.org/route/dynamic-state-acl/
动态ACL工作原理:SourceByrd's Weblog-https://note.t4x.org/route/dynamic-state-acl/
用户一般通过提供用户名和口令,就能够开启一个到路由器的telnet会话。也可以配置路由器,让其只需要口令,而不需要用户名;但并不推荐这样做。在用户被认证之后,路由器会自动关闭telnet会话,并将一个动态访问表项置于某个访问表中,以允许源地址为认证用户工作站地址的报文通过。这样,我们可以在安全边界上配置访问表,只允许那些能够通过用户认证的工作站才能发送向内的报文。
动态访问表项是传统访问表项的一部分。动态访问表项被添加到访问表的适当位置上,我们还指定了其余的传统访问表项。然后将访问表应用到某个接口上。我们至少应该允许到达路由器的telnet通信报文,这样才能进行用户认证过程。如果不允许telnet连接,用户就不能在访问表中创建动态的访问表项。并一定要将telnet表项放置在动态表项的前面。只要准确地允许了去往路由器的向内的telnet连接,动态的访问表项就会根据需要被创建。SourceByrd's Weblog-https://note.t4x.org/route/dynamic-state-acl/
动态ACL带来的好处:SourceByrd's Weblog-https://note.t4x.org/route/dynamic-state-acl/
在传统的访问表中,如果处于路由器不可信任端的用户需要访问内部的资源,就必须永久性地在访问表中开启一个突破口,以允许这些用户的工作站下的报文进入可信任网络。这些在访问表中的永久性的突破口给黑客发送报文进入安全边界,并达到内部网络提供了机会。这种情况可以通过只允许特定的可信IP源地址的报文进入内部,解决部分问题。但是,假设用户不是使用静态的IP地址呢?则上述的方法就不起作用了。
例如,用户可以通过Internet服务提供者(Internet Service Provider,ISP)拨号进入Internet。一般情况下,家庭用户每次拨入ISP时,其IP地址都是不同的,所以,如果不在安全边界上开启一个很大的突破口的话,就不能够允许来自这些用户的报文通过,而如果这样做,又给黑客们提供了可乘之机。在这种情况下使用动态访问表,能够比使用传统I P访问表提供更高的安全级别。SourceByrd's Weblog-https://note.t4x.org/route/dynamic-state-acl/
配置动态ACL:SourceByrd's Weblog-https://note.t4x.org/route/dynamic-state-acl/
Router(config)# access-list access-list-number [dynamic dynamic-name [timeout minutes]] {deny |permit} protocol anydestination ip destination mask dynamic-name/指定动态ACL的名称,timeout指定绝对超时时间,单位是分钟
Router(config)# line vty line-number [ending-line-number] /进入允许telnet的vtp进程下
Router(config-line)# login local /基于本地定义的用户名和密码进行认证
Router(config-line)# login tacacs /基于tacacs服务器进行认证
Router(config-line)# rotary 1 /如果一旦开启动态ACL,那么所有发起的telnet会话都会触发一个动态ACL表项,但是telnet会马上关闭,如果我们想要管理一台设备的话,就需要在另外一个vtp进程下面输入该命令,然后在telnet的时候地址后面打上3001。
例如:telnet:192.168.1.1 3001
Router(config-line)# password password /只进行密码认证
Router(config-line)# autocommand access-enable [host] [timeout minutes] /关键命令,输入该命令就是允许自动建立一个动态ACL,如果不加host,一旦一台主机认证成功以后,那么其他主机就不需要认证了,这样是不好的。timeout指定空闲超时时间,单位是分钟
Router(config)# username name password secret/指定认证时需要输入的用户名和密码
注意1:第一个timeout和第二个timeout的区别,第一个timeout是绝对超时时间,一般该时间需要大于第二个timeout——也就是空闲超时时 间,因为该时间是全局的。空闲超时时间是针对单独的一个表项的时间,如果该表现在指定的时间内没有流量通过,那么它就会超时,并且自动从ACL中删除。而一旦绝对超时时间是针对所有表项的,一旦它超时,所有会话都会被切断,及时有流量正在传输,如果还需要通信,就需要重新建立连接。
注意2:autocommand access-enable既可以在vty进程下面打,也可以在特权模式下打,所不同是是,特权模式下可以打?看到命令的详细解释,而vty下面看不到的。SourceByrd's Weblog-https://note.t4x.org/route/dynamic-state-acl/
SourceByrd's Weblog-https://note.t4x.org/route/dynamic-state-acl/