ACL:访问控制列表(ACL,Access Control List)
ACL可以通过对网络中报文流的精确识别,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的;通过协议和匹配范围对数据包的访问控制,控制它要么通过放行数据,要么丢弃数据,从而切实保障网络环境的安全性和网络服务质量的可靠性。
ACL的组成
ACL是由若干个permit和deny为主要组成部分形成的语句,每条语句都是ACL的基本规则,permit表示允许,放行;deny表示不允许,禁止。
开头的rule表示规则,后面的数字表示规则编号;source 10.1.1.1 0 表示源IP地址,0表示此IP的通配符 反掩码;destination代表目的地IP地址。
通配符
通配符是一个32比特长度的数值,用于指示ip地址中,哪些需要匹配哪些不需要
通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码不同。
通配符掩码中“0”的含义是精确匹配,“1”的含义是忽略匹配
通配符的小实验
172.16.40.0/24 需要匹配16 20 24 28 计算它的反掩码
先换算这四个字段的二进制
16:0001 0000
20:0001 0100
24:0001 1000
28:0001 1100
观察得出,前4位与后2位不变为“0”;其余为“1”
0000 1100 —— 12
所以它的反掩码是12
如果地址是写死的,则反掩码都为0
ACL的分类
基本ACL(2000-2999):只能匹配源IP地址
高级ACL(3000-3999):既可以匹配源IP地址、目标IP地址;也可以匹配源端口、目标端口等,三层和四层的协议字段如(三层:ICMP、四层:TCP、UDP)
二层ACL(4000-4999):根据数据包的源mac和目的mac,802.lq;优先级、二层协议
创建ACL命令:acl number 2000/3000 ......
ACL的匹配应用原则
多条设备匹配时,有则匹配,无则放行。只要一个匹配满足时,后续相同的则不再匹配。一个接口只能调用一个ACL语句,除非删除配新的。
调用接口时:基本ACL尽量靠近目的地接口、高级ACL则尽量靠近源地接口。使用的
进入接口的地方使用“inbound”,出接口的地方使用“outbound”
使用的命令为:traffic-filter inbound/outbound ......
实验操作
1.只允许PC1与PC3通信
先配置路由器三个接口的IP地址:ip address……
设置基础ACL值为2000
允许通过的源IP地址:192.168.1.10 0(反掩码)
设置不允许通过的地址为any其它所有
基础ACL调用接口尽量靠近目的IP 所以进入g0/0/2接口
设置出口2000的地址:traffic-filter outbound acl 2000
显示PC1与PC3可以通信 ,PC2与PC3不能通信
2.禁止192.168.1.10/网络ping web服务器
需要创建高级ACL:acl number 3000
rule deny icmp source 192.168.1.0 0.0.0.255 destination 192.168.3.30 0 将1.0的所有网段设置都不允许通过,后面跟上目的IP地址
高级ACL尽量调用靠源IP的地方 所以进入接口g0/0/0
高级ACL调用接口尽量靠近源IP 所以进入g0/0/0接口
设置进口3000的地址:traffic-filter inbound acl 3000
3.只允许client 1 访问web服务器的www服务
需要创建高级ACL:acl number 3200
rule permit tcp source 192.168.1.30 0 destination 192.168.3.30 0 destination-port eq 80/www
允许client 1 到目的地址,后面跟上tcp协议的默认值80,也可www
由于PC1与PC2被禁止访问,所以调用接口只能在g0/0/1
设置出口3200的地址:traffic-filter outbound acl 3200
显示client 1可以与服务器通信 抓包结果“三次握手,四次挥手”!