ACL基本介绍
ACL:访问控制列表,通过端口对数据流进行过滤,ACL判别依据是五元组:源IP地址,源端口,目的IP地址,目的端口、协议。(ACL工作于OSI模型第三层,是路由器和三层交换机接口的指令列表,用来控制端口进出的数据包)
ACL 两种作用:
- 用来对数据包做访问控制
- 结合其他协议用来匹配范围
ACL常用两种:
- 基本ACL(2000-2999):只能匹配源ip地址。
- 高级ACL(3000-3999):可以匹配源ip、目标ip、源端口、目标端口等三层和四层的字段。
ACL配置原则:
- 基于协议设置ACL(TCP、UDP、ICMP、HTTP)
- 基于方向设置ACL(数据的进和出)
- 基于接口设置ACL
注意点:
- 一个接口的同一个方向,只能调用一个ACL
- 一个端口、一个方向、一条协议只能对应一条访问列表
- 一个ACL列表里面有多个rule(规则),从上往下依次执行
- 具有严格限制条件的语句应放在列表最上面
- 数据包一旦被某个rule(规则)匹配,就不在继续往下匹配
- 访问控制列表不能过滤路由器自己产生的数据
- 华为设备:配置ACL时,默认隐含放过所有数据包
华为ACL配置顺序,系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。
需求1:在R2配置基本acl 拒绝PC1访问172.16.10.0 网络配置接口静态路由
R1
[ ]Int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.254 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.1.1.1 24
[R1]ip route-static 172.16.10.0 24 12.1.1.2
R2
[ ]Int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 172.16.10.254 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.1.1.1 24
[R2]ip route-static 192.168.10.0 24 12.1.1.1
测试互通之后,配置ACL
[R2]acl 2000
设置acl 2000
[AR2-acl-basic-2000]rule deny source 192.168.10.1 0
设置规则拒绝源地址范围,这里是精准IP地址,这里掩码是反掩码0.0.0.0=0
[AR2]int g0/0/0
进入接口
[R2-GigabitEthernet0/0/0]traffic-filter outbound acl 2000
在设备接口里应用规则出口acl 2000
进行测试
需求2:在R2上配置高级acl拒绝PC1和PC2 ping server,但是允许其HTTP访问server
[R2]acl 3000
设置acl 3000
[AR2-acl-basic-3000]rule 5 deny icmp source 192.168.10.0 0.0.0.255 destination 172.16.10.2 0
设置规则拒绝icmp协议(ping)源地址范围,反掩码0.0.0.255,到172.16.10.2,这里精准地址,反掩码0.0.0.0=0
[AR2]int g0/0/0
进入接口
[R2-GigabitEthernet0/0/0]traffic-filter outbound acl 3000
在设备接口里应用规则出口acl 3000
进行测试
注意:只有报文是① icmp、且② 源地址是192.168.10.x、且③ 目标地址是172.16.10.2才会被拒绝。需同时满足这三个条件才会被匹配。
需求3:拒绝源地址192.168.10.2 telnet 访问 12.0.0.2
[R2]acl 3001
设置acl 3001
[AR2-acl-adv-3001]rule deny tcp source 192.168.10.2 0 destination 12.0.0.2 0 destination-port eq 23
设置规则拒绝TCP协议,这里精准地址,反掩码0.0.0.0=0,到目的172.16.10.2,这里精准地址,反掩码0.0.0.0=0,端口23,eq=等于
[AR2]int g0/0/0
进入接口
[R2-GigabitEthernet0/0/0]traffic-filter outbound acl 3001
在设备接口里应用规则出口acl 3001
需求4:允许源地址1.1.1.1访问2.2.2.2.其他剩下的报文全部被拒绝。
[R2]acl 3002
设置acl 3002
[AR2-acl-adv-3002]rule 5 permit ip source 192.168.10.2 0 destination 172.16.10.1 0
规则允许IP源端口192.168.10.2到目的172.16.10.1
[AR2-acl-adv-3002]rule 10 deny ip
规则拒绝所有IP
需求5:拒绝任何人上QQ :传输层 UDP 8000
[R2]acl 3003
设置acl 3003
[AR2-acl-adv-3003]rule deny udp destination-port eq 8000
规则拒绝udp端口等于8000的
注意:
①如果某acl 没有在端口调用,该acl不起任何作用
②acl 属于三层技术只能部署在三层设备上面,acl适合用于不同网段互访的访问控制
③相同vlan相同网段的pc互访控制(这种情况不适合用 acl),建议使用端口隔离来实现。