一、访问控制列表概述
访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。
二、访问控制列表的功能
- 限制网络流量、提高网络性能。例如,ACL可以根据数据包的协议,指定这种类型的数据包具有更高的优先级,同等情况下可预先被网络设备处理。
- 提供对通信流量的控制手段。
- 提供网络访问的基本安全手段。
- 在网络设备接口处,决定哪种类型的通信流量被转发、哪种类型的通信流量被阻塞。 [4]
例如,用户可以允许E- mail通信流量被路由,拒绝所有的Telnet通信流量。例如,某部门要求只能使用WWW这个功能,就可以通过ACL实现;又例如,为了某部门的保密性,不允许其访问外网,也不允许外网访问它,就可以通过ACL实现。
三、访问控制列表的工作原理
- 当一个数据报进入一个端口,路由器检查这个数据报是否可路由。
如果是可以路由的,路由器检查这个端口是否有ACL控制进入数据报。
如果有,根据ACL中的条件指令,检查这个数据报。
如果数据报是被允许的,就查询路由表,决定数据报的目标端口。 - 路由器检查目标端口是否存在ACL控制流出的数据报。
若不存在,这个数据报就直接发送到目标端口。
若存在,就再根据ACL进行取舍。然后在转发到目的端口。
总之,一入站数据包,由路由器处理器调入内存,读取数据包的包头信息,如目标IP地址,并搜索路由器的路由表,查看是否在路由表项中,如果有,则从路由表的选择接口转发(如果无,则丢弃该数据包),数据进入该接口的访问控制列表(如果无访问控制规则,直接转发),然后按条件进行筛选。
当ACL处理数据包时,一旦数据包与某条ACL语句匹配,则会跳过列表中剩余的其他语句,根据该条匹配的语句内容决定允许或者拒绝该数据包。如果数据包内容与ACL语句不匹配,那么将依次使用ACL列表中的下一条语句测试数据包。该匹配过程会一直继续,直到抵达列表末尾。最后一条隐含的语句适用于不满足之前任何条件的所有数据包。这条最后的测试条件与这些数据包匹配,通常会隐含拒绝一切数据包的指令。此时路由器不会让这些数据进入或送出接口,而是直接丢弃。最后这条语句通常称为隐式的“deny any”语句。由于该语句的存在,所以在ACL中应该至少包含一条permit语句,否则,默认情况下,ACL将阻止所有流量。
四、访问控制列表的类型
- 标准访问控制列表
基于源IP地址过滤数据包
标准访问控制列表的访问控制列表号是2000-2999 - 扩展访问控制列表
基于源IP地址、目的IP地址、指定协议、端口和标志来过滤数据包
扩展访问控制列表的访问控制列表号是3000-3999 - 命名访问控制列表
命名访问控制列表允许在标准和扩展访问控制列表中使用名称代替表号
五、ACL访问控制列表实验
5.1 实验拓扑及要求
5.2 实验配置流程
- 实现全网通信
SW1配置
<SW1>dis cu
#
sysname SW1
#
vlan batch 10 20
#
interface Ethernet0/0/1
port link-type access
port default vlan 10
#
interface Ethernet0/0/2
port link-type access
port default vlan 20
#
interface Ethernet0/0/3
port link-type access
port default vlan 10
#
interface Ethernet0/0/4
port link-type access
port default vlan 20
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
R1配置
<R1>dis cu
interface GigabitEthernet0/0/0.10
dot1q termination vid 10
ip address 192.168.10.1 255.255.255.0
arp broadcast enable
#
interface GigabitEthernet0/0/0.20
dot1q termination vid 20
ip address 192.168.20.1 255.255.255.0
traffic-filter outbound acl 2000
arp broadcast enable
#
interface GigabitEthernet0/0/1
ip address 12.1.1.1 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 12.1.1.2
R2配置
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 202.10.100.1 255.255.255.0
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
ip route-static 192.168.10.0 255.255.255.0 12.1.1.1
ip route-static 192.168.20.0 255.255.255.0 12.1.1.1
将4台PC与服务器ip地址配置后,进行测试
- 用ACL标准列表禁止vlan10和v1an20通信
R1配置
acl number 2000
rule 5 deny source 192.168.10.0 0.0.0.255
rule 10 permit
#
interface GigabitEthernet0/0/0.20
traffic-filter outbound acl 2000
测试
- 用ACL扩展列表禁止R1访问ftp服务器
R2配置
acl number 3000
rule 5 deny tcp source 12.1.1.1 0 destination 202.10.100.100 0 destination-port eq ftp
rule 10 deny tcp source 12.1.1.1 0 destination 202.10.100.100 0 destination-port eq ftp-data
rule 15 permit ip
#
interface GigabitEthernet0/0/0
traffic-filter inbound acl 3000
测试