什么是ACL?
访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数
据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访
问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全
功能
限制网络流量、提高网络性能。例如,ACL可以根据数据包的协议,指定这种类型的数据包
具有更高的优先级,同等情况下可预先被网络设备处理。
提供对通信流量的控制手段。
提供网络访问的基本安全手段。
在网络设备接口处,决定哪种类型的通信流量被转发、哪种类型的通信流量被阻塞。
例如,用户可以允许E- mail通信流量被路由,拒绝所有的Telnet通信流量。例如,某部门要求
只能使用WWW这个功能,就可以通过ACL实现;又例如,为了某部门的保密性,不允许其访问外
网,也不允许外网访问它,就可以通过ACL实现。
工作原理
①当一个数据报进入一个端口,路由器检查这个数据报是否可路由。如果是可以路由的,路
由器检查这个端口是否有ACL控制进入数据报。如果有,根据ACL中的条件指令,检查这个数据
报。如果数据报是被允许的,就查询路由表,决定数据报的目标端口。
②路由器检查目标端口是否存在ACL控制流出的数据报。若不存在,这个数据报就直接发送
到目标端口。若存在,就再根据ACL进行取舍。然后在转发到目的端口。
总之,一入站数据包,由路由器处理器调入内存,读取数据包的包头信息,如目标IP地址,
并搜索路由器的路由表,查看是否在路由表项中,如果有,则从路由表的选择接口转发(如果无,
则丢弃该数据包),数据进入该接口的访问控制列表(如果无访问控制规则,直接转发),然后按
条件进行筛选。
ACL实例
参考下图
首先划分VLAN,财务部和市场部分别为10 和20(这里我图里面没有标记),设置他们的Ip
地址网关和子网掩码等,外网FTP和WEB也分别设置如下
实验需求:
1,接触划分VLAN,三层交换作为网关
2,允许财务部访问web服务器,不允许财务部访问FTP服务器
3,允许市场部访问FTP服务器,不允许访问Web服务器
配置IP地址
财务部
市场部
FTP服务器
Web服务器
配置交换机的接口VLAN
LSW1
sys
un in en
sysname sw1 //改名为sw1
vlan b 10 20 30 40 50 //配置VLAN,创建5个VLAN
int e0/0/1 //进入1口
p l a
p d v 10 //配置VLAN为10
int e0/0/2
p l a
p d v 20 //配置VLAN为20
int e0/0/3
p l a
p d v 30 //配置VLAN为30
int vlanif 10
ip add 192.168.1.254 24 //配置VLAN10的网关
int vlanif 20
ip add 192.168.2.254 24 //配置VLAN20的网关
int vlanif 30
ip add 172.16.1.1 30 //配置VLAN30的网关
q
ip route-static 0.0.0.0 0 172.16.1.2
//这里是一条缺省路由,也就是吓一跳,给路由指定方向
LSW2
sys
un in en
sysname sw2
vlan b 10 20 30 40 50 //配置5个VLAN
int e0/0/1
p l a
p d v 40 //配置接口VLAN为40
int e0/0/2
p l a
p d v 50 //配置接口VLAN为50
int vlanif 40 //配置VLAN40的网关
ip add 172.16.1.2 30
int vlanif 50 //配置VLAN50的网关
ip add 172.16.2.1 30
q //退出
ip route-static 0.0.0.0 0 172.16.2.2 //配置缺省路由,指向吓一跳
ip route-static 192.168.1.0 24 172.16.1.1 //配置回执路由,吓一跳为172.168.1.1
ip route-static 192.168.2.0 24 172.16.1.1 //配置回执路由,吓一跳为172.168.1.1
AR1
sys
un in en
sysname R1
int g0/0/0
ip add 172.16.2.2 30 //配置接口网关
int g0/0/1
ip add 192.168.3.254 24
int g0/0/2
ip add 192.168.4.254 24
q
ip route-static 192.168.1.0 24 172.16.2.1 //配置回执路由,指定吓一跳
ip route-static 192.168.2.0 24 172.16.2.1
配置ACL
AR1
acl number 3000
rule 5 permit tcp source 192.168.1.0 0.0.0.255 destination 192.168.4.2 0 destination-port eq 80
rule 10 deny tcp source 192.168.1.0 0.0.0.255 destination 192.168.3.2 0 destination-port eq 21
//允许财务部访问web服务器,不允许财务部访问FTP服务器
rule 15 permit tcp source 192.168.2.0 0.0.0.255 destination 192.168.3.2 0 destination-port eq 21
rule 20 deny tcp source 192.168.2.0 0.0.0.255 destination 192.168.4.2 0 destination-port eq 80
//允许市场部访问FTP服务器,不允许访问Web服务器
q
int g0/0/0
traffic-filter inbound acl 3000
//启动ACL
这里我们的配置已经全部完成
测试
在测试之前我们要先启动FTP和Web服务器,两个服务器都是同样的步骤
然后我们开始测试
先测试
允许财务部访问web服务器,不允许财务部访问FTP服务器
同样的操作,允许市场部访问FTP服务器,不允许访问Web服务器
从上面的测试中我们可以看出,我们的配置成功
总结
ACL是一组规则的集合,应用在路由器的某个接口上。
ACL的两个方向:
出(out),已经进过路由器出来,正离开路由器接口的数据包
入(in),已到达路由器接口的数据包,将被路由器处理。
ACL,检查如果不匹配将继续往下检查,如果有任何一条匹配路由器将允许该数据包 通过不在
检查,如果没有任何一条匹配则丢弃。要注意ACL的顺序。