【IT168 专稿】上篇文章我们提到了标准访问控制列表,他是基于IP地址进行过滤的,是最简单的ACL。那么如果我们希望将过滤细到端口怎么办呢?或者希望对数据包的目的地址进行过滤。这时候就需要使用扩展访问控制列表了。使用扩展IP访问列表可以有效的容许用户访问物理LAN而并不容许他使用某个特定服务(例如WWW,FTP等)。扩展访问控制列表使用的ACL号为100到199。
一,扩展访问控制列表的格式:
扩展访问控制列表是一种高级的ACL,他的具体格式如下:
acl ACL号
rule permit|deny 协议 定义过滤源主机范围 定义过滤源端口 定义过滤目的主机访问 定义过滤目的端口
例如:
(1)access-list 101
(2)rule deny tcp source any destination 192.168.1.1 0.0.0.0 destination-port equal www这句命令是将所有主机访问192.168.1.1这个地址网页服务(WWW)TCP连接的数据包丢弃。(如图1)
![]() |
图1(点击看大图) |
小提示:
同样在扩展访问控制列表中也可以定义过滤某个网段,当然和标准访问控制列表一样需要我们使用反向掩码定义IP地址后的子网掩码。
二,配置实例:
要想使扩展ACL生效需要我们配置两方面的命令:
1,ACL自身的配置,即将详细的规则添加到ACL中。
2,宣告ACL,将设置好的ACL添加到相应的端口中。
网络环境介绍:
我们采用如图2所示的网络结构。路由器连接了二个网段,分别为172.16.4.0/24,172.16.3.0/24。在172.16.4.0/24网段中有一台服务器提供WWW服务,IP地址为172.16.4.13。
![]() |
图2(点击看大图) |
实例:禁止172.16.3.0的计算机访问172.16.4.0的计算机,包括那台服务器,不过惟独可以访问172.16.4.13上的WWW服务,而其他服务不能访问。
路由器配置命令:
acl 101
//设置ACL 101,并进入访问控制列表设置模式。
rule permit tcp source any destination 172.16.4.13 0.0.0.0 destination-port equal www
//设置容许源地址为任意IP,目的地址为172.16.4.13主机的80端口即WWW服务。
rule deny tcp source any destination any
//设置阻止其他服务和数据包进行传输。
int e1
//进入E1端口
firewall packet-filter 1 outbound
//将ACL101宣告出去
设置完毕后172.16.3.0的计算机就无法访问172.16.4.0的计算机了,就算是服务器172.16.4.13开启了FTP服务也无法访问,惟独可以访问的就是172.16.4.13的WWW服务了。而172.16.4.0的计算机访问172.16.3.0的计算机没有任何问题。
扩展ACL有一个最大的好处就是可以保护服务器,例如很多服务器为了更好的提供服务都是暴露在公网上的,这时为了保证服务正常提供所有端口都对外界开放,很容易招来黑客和病毒的攻击,通过扩展ACL可以将除了服务端口以外的其他端口都封锁掉,降低了被攻击的机率。如本例就是仅仅将80端口对外界开放。
总结:
扩展ACL功能很强大,他可以控制源IP,目的IP,源端口,目的端口等,能实现相当精细的控制,扩展ACL不仅读取IP包头的源地址/目的地址,还要读取第四层包头中的源端口和目的端口的IP。不过他存在一个缺点,那就是在没有硬件ACL加速的情况下,扩展ACL会消耗大量的路由器CPU资源。所以当使用中低档路由器时应尽量减少扩展ACL的条目数,将其简化为标准ACL或将多条扩展ACL合一是最有效的方法。