ACL(访问控制列表)原理及应用
一、ACL介绍
信息点间通信和内外网络的通信都是企业网络中必不可少的业务需求,但是为了保证内网的安全性,需要通过安全策略来保障非授权用户只能访问特定的网络资源,从而达到对访问进行控制的目的。
简而言之,ACL(访问控制列表)可以过滤网络中的流量,控制访问的一种网络技术手段。
实际上,ACL的本质就是用于描述一个IP 数据包、以太网数据帧若干特征的集合。
然后根据这些集合去匹配网络中的流量(由大量数据包组成),同时根据策略来“允许”或者“禁止”。
作用:
①ACL可以限制网络流量、提高网络性能。
②ACL提供对通信流量的控制手段。
③ACL是提供网络安全访问的基本手段。
④ACL 可以在路由器端口处决定哪种类型的通信流量被转发或被阻塞。
二、ACL的分类(基于IP)
①标准 ACL
标准型 ACL只能匹配源IP 地址,在应用中有三种匹配的方式:
1、 any,指任意地址
2、 <net><mask>,指定某个IP 网段
3、 src_range ,指定 IP 的地址范围
配置命令:
ip access-list standard <name> //标准 ACL,name为名字
{permit | deny} any
{permit | deny} <network> <net-mask>
{permit | deny} src_range <start-ip> <end-ip>
②扩展型 ACL
扩展型 ACL可匹配多个条目,常用的项目有源、目的IP ,源、目的端口号,以及 ip协议号(种类)等,可以用来满足绝大多数的应用。
在一个条件中,这些项目的前后顺序如下:协议号,源ip地址,源端口号,目的ip地址,目的端 口号。
配置命令:
ip access-list extended <name>
{permit|deny} {ip|icmp |tcp| udp} {any |network |src_range} [src_port] {any | network | src_range} [dst_port]
三、ACL的匹配规则
一个端口执行哪条ACL,这需要按照列表中的条件语句执行顺序来判断。
如果一个数据包的报头跟表中某个条件判断语句相匹配,那么后面的语句就将被忽略,不再进行检查。数据包只有在跟第一个判断条件不匹配时,它才被交给ACL 中的下一个条件判断语句进行比较。
如果匹配(假设为允许发送),则不管是第 一条还是最后一条语句,数据都会立即发送到目的接口。
如果所有的ACL判断语句都检测完毕,仍没有匹配的语句出口,则该数据包将视为被拒绝而被丢弃(隐含拒绝:deny any )。
这里要注意,ACL不能对本身产生的数据包进行控制。
四、ACL的调用
不同的模块来调用,将会起到不同的作用,这也是ACL应用广泛的根本原因。常见的调用ACL的模块有:
①包过滤:ip access-group
②网络地址转换:NAT
③策略路由:PBR
④ip 服务质量:QoS
⑤动态路由过滤:RIP/OSPF等
较为常用的是access-group ,其调用方法非常需要确定两个因素:
1、具体配置接口选择:一般的原则是离开要被控制的主机更近的那个 口。
2、方向选择:方向有 in和 out 两种,一个接口的一个方向上只能同时
调用一个 ACL条目。配置命令:
interface fastethernet
ip access-group <name> in|out
五、实验
实验一:
使用扩展型ACL,实现 PC ping 不通路由器,但路由器可以ping PC
ip access-list extended test
F0/0
deny icmp 192.168.1.254 255.255.255.0 8
interface fastethernet 0/0
ip access-group test in
实验二:
某网络中,禁止所有用户去ping 、telnet、http访问某服务器(dns
服务器, ip为192.168.1.253),但要其正常提供服务
ip access-list extended test
deny icmp any 192.168.1.253 255.255.255.255
deny tcp any 192.168.1.253 255.255.255.255 eq 23
deny tcp any 192.168.1.253 255.255.255.255 eq 80
permit ip any any
实验三:
某网络中除了正常的web访问、邮件收发,其他所有的应用禁止
ip access-list extended test
permit tcp any any eq 80
permit tcp any any eq 25
permit tcp any any eq 110
deny ip any any(隐含条目)