ACL(Access Control List)访问控制列表

目录

[ACL 访问控制列表](#ACL 访问控制列表)

ACL分类

ACL的组成

ACL匹配机制

ACL调用方式

实验配置

不允许PC1访问PC4

只允许PC1访问PC4

高级ACL

基本概念

[实验配置 限制ping](#实验配置 限制ping)

[实验配置 限制DNS](#实验配置 限制DNS)

基于时间的ACL

实验配置


ACL 访问控制列表

根据一系列不同的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的处理,从而可以实现网络访问行为的控制、限制网络流量,提高网络性能、防止网络攻击。

ACL分类

|---------------------|------------------|---------------------------------------------------------------------------|
| 分类 | 编号范围 | 功能概述 |
| 基于接口的ACL | 编号范围是1000~1999 | 根据报文的入接口对报文进行过滤 |
| 基本ACL | 编号范围是2000~2999 | 根据源地址对报文进行过滤 |
| 高级ACL | 编号范围是3000~3999 | 根据源/目的地址、源/目的端口号、协议类型等对报文进行过滤 |
| 二层ACL | 编号范围是4000~4999 | 根据源MAC地址、目的MAC地址和以太帧协议类型等二层信息对报文进行过滤 |
| 用户ACL UCL(User ACL) | 编号范围是6000~9999 | 根据报文的源IP地址、源业务组、源用户组、源端口号、目的IP地址、目的业务组、目的用户组、目的端口号、协议类型等内容定义规则,实现对报文的匹配过滤 |
| 基于MPLS的ACL | 编号范围是10000~10999 | 根据MPLS报文的Exp值、Label值、TTL值对报文进行过滤 |

经常使用的是基本ACL和高级ACL。

ACL的组成

比如:rule deny source 192.168.1.12 0.0.0.0

  • 其中的0.0.0.0 不是子网掩码而是通配符掩码,并不是区分网络号和主机号的,0.0.0.0可以简写成0
  • 通配符掩码用来告诉路由器,需要检查IP地址中的多少位(可以不是连续的1)
  • 0表示需要检查的位,1表示不需要检查的位 0->感兴趣 1->不感兴趣
  • 192.168.1.12 0.0.0.0表示精确匹配这个IP地址,而如果是0.0.0.0 255.255.255.255表示匹配所有(any)
  • 如果精确匹配最后一段是奇数的地址,那么最后1bit肯定是1,所以可以写成例如192.168.1.1 0.0.0.254 的样式

通配符掩码可以是不是连续的0或者1,如图

ACL匹配机制

ACL调用方式

ACL调用分为inbound方向和outbound方向,inbound方向调用是先调用后路由,outbound方向调用是先路由后调用。

如果数据流方向如下图,那么在F0/0处就是IN方向,在F0/1就是OUT方向。

如果数据流方向如下图,那么就是反过来,在F0/1口是IN方向,在F0/0口是OUT方向。

实验配置

  • 确定部署位置
  • 匹配对应流量
  • 决定调用方向
  • 查看以及测试

不允许PC1访问PC4

第一步:确定部署位置

现在PC1 不允许访问PC4,控制肯定是在数据包的必经之路上,所以可以在R1和R2上配置,但是我们一般采用靠近源的位置进行配置,这个为了集中化部署。

我们选择R1上配置,但是R1上有俩个接口,G0/0/1和G0/0/2。选择G0/0/1,在数据的流向上,就是inbound入方向;选择G0/0/2,在数据的流向上,就是outbound出方向;一般我们还是采用靠近源的位置进行配置。

确认部署位置为R1的G0/0/1口。

第二步:匹配对应流量

AR1\]acl 2000 \[AR1-acl-basic-2000\]rule 5 deny source 192.168.1.11 0.0.0.0 \[AR1-acl-basic-2000\]rule permit source any

第三步:决定调用方式

AR1\] interface GigabitEthernet 0/0/1 \[AR1-GigabitEthernet0/0/1\] traffic-filter inbound acl 2000

第四步:查看和测试

查看ACL [AR1] display acl 2000

AR1\]display acl 2000 Basic ACL 2000, 2 rules Acl's step is 5 rule 5 deny source 192.168.1.12 0 rule 10 permit (5 matches)

查看流量模板的应用 [AR1]display traffic-filter applied-record

AR1\]display traffic-filter applied-record ----------------------------------------------------------- Interface Direction AppliedRecord ----------------------------------------------------------- GigabitEthernet0/0/1 inbound acl 200

第五步:如何删除

删除的时候,使用rule 的编号进行删除

AR1\] acl 2000 \[AR1-acl-basic-2000\] undo rule 5

或者 删除所有的ACL

AR1\]undo acl all Info: Now deleting all ACL configurations, please wait...... Deleting operation has finished!

只允许PC1访问PC4

第一步:确定部署位置

题目要求只允许PC1访问PC4,也就意味着剩余的PC2和PC3是不能访问PC4的,但PC1.PC2,PC3之间的通信应该是不受影响的,所以部署位置在R1的GE0/0/2或者R2的两侧接口处。我们一般选择靠近源的位置,也就是R1的G0/0/2口。

第二步:匹配对应流量

AR1\]acl 2000 \[AR1-acl-basic-2000\]rule permit source 192.168.1.11 0 \[AR1-acl-basic-2000\]rule deny source any

第三步:决定调用方式

AR1\]interface GigabitEthernet 0/0/2 \[AR1-GigabitEthernet0/0/2\]traffic-filter outbound acl 2000

第四步:查看和测试

AR1\]display acl 2000 Basic ACL 2000, 2 rules Acl's step is 5 rule 5 permit source 192.168.1.1 0 rule 10 deny (62 matches) \[AR1\]display traffic-filter applied-record ----------------------------------------------------------- Interface Direction AppliedRecord ----------------------------------------------------------- GigabitEthernet0/0/2 outbound acl 2000 -----------------------------------------------------------

高级ACL

基本概念

高级ACL可以针对数据包的源、目的IP地址、协议类型、源目的端口号等元素进行匹配

  • 使用编号创建一个高级ACL,并进入ACL视图:

Huawei\] acl num \[Huawei-acl-adv-num

高级ACL编号的范围是3000~3999。

  • 根据IP配置高级ACL规则:

Huawei-acl-adv-num\] rule 5 {permit/deny} ip source src-address wildcard destination dst-address wildcard 除了IP协议,高级ACL还能根据IP承载的上层协议信息进行匹配,例如TCP、UDP、ICMP等等。 ACL配置:操作符的含义 |-------------------------------|---------------------------------| | 操作符及语法 | 含义 | | equal portnumber | 等于端口号 portnumber | | greater-than portnumber | 大于端口号 portnumber | | less-than portnumber | 小于端口号 portnumber | | not-equal portnumber | 不等于端口号 portnumber | | range portnumber1 portnumber2 | 介于端口号 portnumber1和portnumber2之间 | ### 实验配置 限制ping 在PC1和PC2都可以访问Server1和Server2的情况下,限制PC2 ping Server2,放行其他流量 ![](https://i-blog.csdnimg.cn/direct/0d34387bd3194485bd79d62b8acbae37.png) 1.配置ACL 匹配对应流量 > \[AR1\]acl 3000 > > \[AR1-acl-adv-3000\]rule deny ip source 192.168.1.2 0 destination 10.1.1.2 0 icmp-type echo > > #echo 和 echo reply 不同,如果都被限制,那么Server2也无法ping PC2,所以不能限制echo reply > > \[AR1-acl-adv-3000\]rule permit ip 2.接口进行调用 > \[AR1\]interface GigabitEthernet 0/0/0 > > \[AR1-GigabitEthernet0/0/0\]traffic-filter inbound acl 3000 ### 实验配置 限制DNS ![](https://i-blog.csdnimg.cn/direct/5c5fee3fac6442e494494facb1553b6a.png) 在PC1和PC2都可以访问Server1和Server2的情况下,限制PC2访问Server2的DNS服务,放行其他流量 * DNS使用的是UDP服务 * DNS的传输层端口号是53 > \[AR1\]acl 3000 > > \[AR1-acl-adv-3000\]rule deny UDP source 192.168.1.2 0 destination 10.1.1.2 0 dest ination-port eq 53 > > \[AR1-acl-adv-3000\]rule permit ip > \[AR1\]interface GigabitEthernet 0/0/0 > > \[AR1-GigabitEthernet0/0/0\]traffic-filter inbound acl 3000 ## 基于时间的ACL ![](https://i-blog.csdnimg.cn/direct/ac994c26ab114855a81aa8b2021e5bbd.png) 命令规范 **time-range** *time-name* \[ { *time1* **to** *time2* { *days* } \| **from** *time1* *date1* \[ **to** *time2* *date2* \] }

time-name指定时间段的名称。

|------------------|--------------------------------|
| time-name | 指定时间段的名称 |
| time1 | 指定时间段的开始时间 |
| to time2 | 指定时间段的结束时间 |
| days | 指定时间段在周几有效 |
| from time1 date1 | 指定时间段从某一天某一时间开始 |
| to time2 date2 | 指定时间段到某一天某一时间结束。 结束时间必须大于起始时间。 |

举例

  • time-range test 14:00 to 18:00 off-day
  • 配置时间段test,在周末下午14:00到18:00生效
  • time-range test from 08:30 2013/1/1 to 18:00 2013/12/31
  • 配置时间段test,从2013年1月1日早上8点半开始生效,2013年12月31日晚上6点停止生效

实验配置

规定员工在上班时间(周一到周五8:00-17:00)不能浏览taobao网站

1.创建时间范围 time-range

AR1\]time-range working-time 8:00 to 17:00 working-day

2.配置基于时间的ACL

AR1\]acl 3000 \[AR1-acl-adv-3000\]rule 4 deny tcp source 192.168.1.0 0.0.0.255 time-range working-time destination 10.1.1.1 0 destination-port eq 80 \[AR1\]interface GigabitEthernet 0/0/0 \[AR1-GigabitEthernet0/0/0\]traffic-filter inbound acl 3000

相关推荐
Brilliant Nemo22 分钟前
Docker 镜像相关的基本操作
运维·docker·容器
xujiangyan_1 小时前
php的高速缓存
linux·服务器·php
红肤色1 小时前
【网络安全基础】CentOS 7超详细安装教程(含镜像)
linux·运维·服务器·安全·网络安全·centos
程序猿(雷霆之王)2 小时前
Linux——冯 • 诺依曼体系结构&操作系统初识
linux·运维·服务器
宁zz1 天前
乌班图安装jenkins
运维·jenkins
无名之逆1 天前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
大丈夫立于天地间1 天前
ISIS协议中的数据库同步
运维·网络·信息与通信
rainFFrain1 天前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon1 天前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
xujiangyan_1 天前
nginx的反向代理和负载均衡
服务器·网络·nginx