访问控制列表ACL
一、访问控制列表概述
1.1 访问控制列表
ACL两种作用:
- 用来对数据包做访问控制(丢弃或者放行)
- 结合其他协议,用来匹配范围
- 读取第三层、第四层包头信息;
- 根据预先定义好的规则对包进行过滤
访问控制列表的四个元素:(也可以是5元素,包含协议)
- IP报头:
- 源地址
- 目标地址
- TCP报头:
- 源端口
- 目标端口
1.2 访问控制列表的工作原理
- 访问控制列表在接口应用的方向:
- 出方向:已经过路由器的处理,正离开路由器接口的数据包
- 入方向:已到达路由器接口的数据包,将被路由器处理
列表应用到接口的方向与数据方向有关
- 访问控制列表的处理过程
工作原理:当数据包从接口经过时,由于接口启用了acl,此时路由器会对报文进行检查,然后做出相应的处理。
1.3 ACL的种类
- 基本ACL(2000-2999):只能匹配源IP地址。
- 高级ACL(3000-3999):可以匹配源IP、目标IP、源端口、目标端口等三层和四层的字段。
- 二层ACL(4000-4999):根据数据包的源MAC地址、目的MAC地址、802.1q优先级、二层协议类型等二层信息制定规则。
1.3 ACL的应用原则和规则
1.3.1 ACL的应用原则
- 基本ACL:尽量用在靠近目的点
- 高级ACL:尽量用来靠近源的地方(可以保护带宽和其他资源)
1.3.2 ACL的应用规则
- 一个接口的同一个方向,只能调用一个acl;
- 一个acl里而可以有多个rule规则,按照规则ID从小到大排序,从上往下依次执行;
- 数据包一旦被某rule匹配,就不再继续向下匹配;
- 用来做数据包访问控制时,默认隐含放过所有(华为设备)。
1.4 相关命令
//创建acl 2000
[Huawei]acl number 2000
//拒绝源地址为192.168.1.1的流量,0代表仅此-一台,5是这条规则的序号( 可不加)
[Huawei-acl-basic- 2000]rule 5 deny source 192.168.1.1 0
//接口出方向调用acl
[Huawei -Gigabi tEthernet0/0/1]traffic- filter outbound acl 2000
//###permit代表允许,source代表 来源,掩码部分为反掩码
[Huawei-acl-basic-2001]rule permit source 192.168.1.0 0.0.0.255
//拒绝所有访问,any代表所有0.0.0.0 255.255.255.255
[Huawei-acl-basic-2001]rule deny source any
//拒绝tcp为高级控制,所以3000起
[Huawei]acl nmuber 3000
// 拒绝Ping,ping命令属于ICMP协议
[Huawei-acl-adv-3000]rule deny icmp source 192.168.1.0 0.0.0.255 destination 192.168.3.1 0
//destination代表目的地地址,destination-port代表目的端口号,80可用www代替
[Huawei-acl-adv-3000]rule permit tcp source 192.168.1.3 0 destination 192.168.3.1 0 destination-port eq 80
// 拒绝源地址192.168.10.0网段访问FTP服务器12.0.0.2
[Huawei-acl-adv-3000]rule deny tcp source 192.168.10.0 0.0.0.255 destination 12.0.0.2 destination-port eq 21
//在接口入方向应用acl
[Huawei-Gigabi tEthernet0/0/0] traffic- filter inbound acl 3000
//在接口.上取消acl的应用
[Huawei-GigabitEthernet0/0/1]undo traffic-filter inbound
[Huawei] display acl 3000 ###显示acl配置
[Huawei-acl-adv-3000]dis this ###查看规则序号
[Huawei-acl-adv-3000]undo rule 5 ###删除一条acl语句
[Huawei]undo acl number 3000 ###删除整个ACL
1.5 相关实验
要求1:完成相关配置,仅允许PC1可以和PC3实现互通
R1 配置如下:
The device is running!
//进行管理模式
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
//修改名称为R1
[Huawei]sys R1
//关闭信息提示
[R1]un in en
Info: Information center is disabled.
//进入R1的接口0/0/0
[R1]int g0/0/0
//添加IP地址为192.168.1.254 子网掩码位24
[R1-GigabitEthernet0/0/0]ip address 192.168.1.254 24
//进入R1的接口0/0/1
[R1-GigabitEthernet0/0/0]int g0/0/1
//添加IP地址为192.168.3.254 子网掩码位24
[R1-GigabitEthernet0/0/1]ip address 192.168.3.254 24
//进入R1的接口0/0/2
[R1-GigabitEthernet0/0/1]int g0/0/2
//添加IP地址为192.168.2.254 子网掩码位24
[R1-GigabitEthernet0/0/2]ip address 192.168.2.254 24
//退出接口模式
[R1-GigabitEthernet0/0/2]q
//创建acl2000
[R1]acl 2000
//设置仅允许IP为192.168.1.1的一台主机访问
[R1-acl-basic-2000]rule permit source 192.168.1.1 0
//拒绝所有其他网络访问,因为华为交换机默认是允许所有,所以要拒绝所有
[R1-acl-basic-2000]rule deny source any
//退出acl模式
[R1-acl-basic-2000]q
//再次今天R1的0/0/0接口
[R1]int g0/0/2
//接口出方向调用acl 2000
[R1-GigabitEthernet0/0/2]traffic-filter outbound acl 2000
各主机配置如下:
测试结果如下:实现了需求
要求2:禁止192.168.1.0/24网段的设备ping Web服务器
分析:
1)禁止ping命令属于ICMP协议,所以要使用高级ACL
2)前面做要求一的时候,将acl2000配置为只允许pc1通过,所以这里需要新增一条规则。
R1新增配置如下:
//因为需要禁止ICMP中的ping命令,所以选择高级acl
[R1]acl 3000
//配置拒绝192.168.1.0网段可以和目标网段使用ICMP协议(此处就代表ping命令)
[R1-acl-adv-3000]rule deny icmp source 192.168.1.0 0.0.0.255 destination 192.168.3.1 0
//进入接口0/0/0
[R1-acl-adv-3000]int g0/0/0
//接口入方向调用acl 3000
[R1-GigabitEthernet0/0/0]traffic-filter inbound acl 3000
//退出接口
[R1-GigabitEthernet0/0/0]q
//进入ACL 2000重新配置
[R1]acl 2000
//添加一条规则,允许192.168.3.0网段通过,此处优先级我选择的是7,其他也可以
[R1-acl-basic-2000]rule 7 permit source 192.168.3.0 0.0.0.255
//查看规则是否配置成功,以及其他规则是否正确
[R1-acl-basic-2000]dis this
[V200R003C00]
#
acl number 2000
rule 5 permit source 192.168.1.1 0
rule 7 permit source 192.168.3.0 0.0.0.255
rule 10 deny
#
return
测试结果如下:
pc1和client属于192.168.1.0网段,所以都ping不通
pc2不在限制网段,所以可以ping通
ICMP协议禁止后,但是还是可以正常访问的,这里我们开启server的80端口,放入test文件测试后可以发现,client主机还是可以正常访问server服务器的。
要求3:仅允许client1访问server的www服务
分析:
1)直接配置允许client1访问服务器,然后拒绝其他所有即可
2)由于一个接口只允许一个acl所以这里要在另一个接口调用acl
R1新增配置如下:
//新增acl 3001
[R1]acl 3001
//允许192.168.1.3通过TCP协议访问服务器的wwww服务
[R1-acl-adv-3001]rule permit tcp source 192.168.1.3 0 destination 192.168.3.1 0
destination-port eq 80
//拒绝其他所有
[R1-acl-adv-3001]rule deny tcp source any
//进入接口0/0/1,因为0/0/0接口调用了acl3000
[R1-acl-adv-3001]int g0/0/1
//在接口出方向调用acl3001
[R1-GigabitEthernet0/0/1]traffic-filter outbound acl 3001
测试结果如下:client1可以正常访问服务器,如果删除此项,便无法访问
关闭rule 5(也就是上面设置的允许访问协议)进行测试
[R1-acl-adv-3001]undo rule 5
测试结果如下:访问失败
版权声明:本文为weixin_45551608原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。