动态访问控制列表在企业网中的实现
摘要:动态访问控制列表可以根据用户认证过程来创建特定的、临时的访问控制列表,是对传统访问控制列表的一种功能增强,能提供更好的安全性。基于一个企业网络,设计模拟拓扑图,给出路由器、服务器等的接口设置、ip地址分配以及配置命令,对使用动态访问控制列表前后的结果进行测试和对比分析,并在实际的网络设备上进行了实验验证。
1 引言
随着互联网的不断扩大,越来越多不同种类的网络被连接起来。网络管理人员所面对的一个任务越来越显得紧迫和棘手,这就是在允许正当访问的同时,如何拒绝那些不受欢迎的连接,因为它们大多对我们的重要设备和数据具有危险性。访问控制列表可以通过对网络数据流量的控制,过滤掉有害的数据包,从而达到执行安全策略的目的。但在传统的访问控制列表中,如果处于路由器不可信任端的用户需要访问内部网络的资源,就必须永久性地在访问控制列表中开启一个突破口,以允许这些用户工作站上的报文进入可信任网络,这些永久性的突破口给不安全报文进入安全边界并达到内部网络提供了机会,而动态访问控制列表能使指定的用户获得对受保护资源的临时访问权,从而提供更高的安全级别。国内在传统的访问控制列表方面开展了大量的研究,包括访问控制列表的阐述、配置和优化等,但动态访问控制列表具体应用的相关文献并不多见,本文在这方面作了初步的探索。
2 动态访问控制列表原理
动态ACL使用扩展ACL过滤IP流量。当配置了动态ACL之后,临时被拒绝掉的IP流量可以获得暂时性的许可。动态ACL临时修改路由器接口下已经存在的ACL,来允许IP流量到达目标设备,之后动态ACL把接口状态还原。通过动态ACL获得目标设备权限的用户,首先要开启到路由器的Telnet会话,接着动态ACL自动对用户进行验证,如果验证通过,那么用户就获得了临时性的访问权限。
动态ACL一般用于控制外网用户对内网服务器的访问,如图1所示,当Internet上的用户需要访问内网的服务器时,外网用户需要先向路由器发起一个Telnet会话,并且提供相应的用户名和密码。在用户被验证之后,路由器将一个临时的ACL语句添加到动态ACL中,并且关闭Telnet会话。动态添加的ACL对被验证用户工作站地址进行授权,当条目超时后,删除ACL中添加的临时条目。
图1 动态ACL原理示意图
3 实现动态访问控制列表的方法
3.1 网络拓扑图、接口设置及IP分配
实验模拟拓扑图如图2所示,ISP_Router 、Checking_Router和EntERPrise_Router均为Cisco Catalyst2621型路由器,Switch1为Cisco Catalyst2950型二层交换机。路由器、服务器及主机的接口设置和IP地址分配如表1所示,其中ISP_Router的Fa0/0接口与外网用户相连,Serial1/0接口与Checking_Router的Serial1/0相连;而EntERPrise_Router的Fa0/0接口与Checking_Router的Fa0/0相连,其余的Fa1/0、Fa0/1和Fa1/1则分别连接到Switch1、DNS服务器及WWW服务器。设置ISP_Router为DCE,Checking_Router为DTE。
图2 实验模拟拓扑图
表1 路由器接口是指及服务器、主机IP地址分配表
3.2 网络基本配置
采用“ip address”命令分别配置外网、内网路由器以及验证路由器的接口IP地址,Cisco路由器的所有接口在默认情况下都是关闭的,需采用“no shutdown”命令来开启;外网ISP_Router路由器设置为DCE,需采用“clock rate”命令来配置时钟频率,同时使用路由信息协议RIP来实现网络中不同网段之间的相互通信;在内网EntERPrise_Route路由器中通过动态主机分配协议DHCP来实现内部主机IP地址的动态分配;配置DNS服务器的IP地址为192.168.2.1,其默认网关指向Enterprise_Route路由器的Fa0/1接口,将域名www.lqp.com解析对应的IP地址,如图3所示。配置WWW服务器的IP地址为192.168.3.1,其默认网关指向Enterprise_Route路由器的Fa1/1接口。在WWW服务器中制作与http://www.lqp.com相关联的一个简单网页index.html,如图4所示,以此作为外网主机通过动态ACL技术访问内网Web页面的验证。具体的配置请参考相关资料,不再赘述。
图3 DNS服务器的设置
图4 WWW服务器中制作的Web页面
3.3 配置内、外网的远程登录功能
在全局模式下配置外网ISP_Router路由器及内网Enterprise_Router路由器的VTY密码和特权密码,分别为OuterNet和IntraNet,以允许远程登录,配置命令以ISP_Router路由器为例进行说明,如图5所示。同时在ISP_Router路由器和Enterprise_Router路由器上分别telnet对方,结果均成功,如图6和图7所示。
图5 ISP_Router路由器的远程登录配置命令
图6 外网路由器telnet内网路由器的结果
图7 内网路由器telnet外网路由器的结果
3.4 配置动态ACL
全局模式下,在Checking_Router路由器上配置动态ACL,配置命令和相关解析如下:
1)Checking_Router(config)# access-list 100 permit tcp any host 202.101.172.1 eq 23! 允许外网telnet Checking_Router路由器进行身份验证
2)Checking_Router(config)# access-list 100 permit tcp any host 202.101.172.1 eq 3001! 允许外网telnet Checking_Router路由器的3001端口进行管理
3)Checking_Router(config)# access-list 100 dynamic LQP123 timeout 120 permit ip any any !创建动态ACL,命名为LQP123。语句中第一个any关键字将被通过验证的用户IP地址替代,第二个any代指内网所有主机。timeout是绝对时间,为120分钟
4)Checking_Router(config)# user LQP456 password LQP456 !创建用户LQP456和密码LQP456,用于身份验证
5)Checking_Router(config)# line vty 0 3 !虚拟终端用户0、1、2、3
6)Checking_Router(config-line)# login local !使用Checking_Router路由器本地的用户名和密码进行验证
7)Checking_Router(configline)# autocommand access-enable host timeout 5 !语句中的host参数表示主机的源IP地址替换动态ACL中的any关键字,timeout指空闲时间,为5分钟
8)Checking_Router(config-line)# line vty 4!虚拟终端用户4
9)Checking_Router(config-line)# login local
10)Checking_Router(config-line)# rotary 1!设置vty 4号线路为管理员使用telnet对Checking_Router路由器进行管理,telnet端口为3001
11)Checking_Router(config-line)# interface serial 1/0! Checking_Router路由器的串行接口
12)Checking_Router(config-if)# ip access-group 100 in!在Checking_Router路由器的Serial1/0接口上应用动态ACL
3.5 验证动态ACL
1)在外网ISP_Router路由器上telnet内网Enterprise_Router路由器,不能成功,结果如图8所示:
图8 配置动态ACL后,外网路由器telnet内网路由器的结果
这是因为ISP_Router路由器去往Enterprise_Router路由器的telnet数据包进入Checking_Router路由器的serial1/0接口时,被Checking_Router路由器的ACL100拒绝。同理,Enterprise_Router路由器去往ISP_Router路由器的流量没有问题,但返回的流量进入Checking_Router路由器的serial1/0接口时,被拒绝。
2)在ISP_Router路由器上telnet Checking_Router路由器的外网接口202.101.172.1,要求验证。输入用户名LQP456和密码LQP456,验证通过,telnet会话自动被终止。在ISP_Router路由器上再次telnet Enterprise_Router路由器,远程登录成功,结果分别如图9、图10所示。Enterprise_Router路由器此时也同样能成功登录ISP_Router路由器。
图9 外网路由器telnet Checking_Router
图10 验证后,远程登录成功
3)外网主机访问内网Web页面,结果如图11所示。
图11 配置动态ACL后,外网用户通过域名访问内网Web页面
4)查看Checking_Router路由器的ACL,结果如下所示。
Checkin_Router#show access-lists
Extended IP access list 100
permit tcp any host 202.101.172.1 eq telnet(60 matches)
permit tcp anyhost 202.101.172.1 eq 3001
Dynamic LQP123 permit ip any any
permit ip host 202.101.172.2 any (102 matches)(time left 281)
从以上的输出结果可以看出,最后一行是动态ACL产生的一个条目,该条目再过281秒将被删除。有任何符合“permit ip host 202.101.172.2 any”的流量,都会刷新该计时器,如果没有任何流量来刷新计时器,那么这个动态条目将在281秒后被删除。
4 结束语
动态访问控制列表是对传统访问控制列表的一种功能增强,通过使用动态访问控制列表,不仅为授权用户提供了一个访问受保护网络的通道,还可以有效阻止未授权用户的访问和网络攻击,因此研究动态访问控制列表在企业网络上的应用具有一定的现实意义。文章设计了模拟拓扑图,给出了路由器、服务器等的接口设置、IP地址分配以及配置命令,对使用动态访问控制列表前后的结果进行了测试和对比分析,并在实际的网络设备上进行了实验验证,为动态访问控制列表在实际网络上的应用提供了参考依据。