H3CNE--23.ACL

ACL包过滤

ACL

中文名叫做访问控制列表,但并非是用来控制谁访问谁,谁不能访问的,他的作用是匹配和筛选;

想要控制谁能被访问,就需要筛选出到达目的地址的包,然后进行过滤,他本身不对数据包做任何的操作,他只负责筛选

常见功能
  • 访问控制
    • ACL+Packet-filter
    • Packet叫做包,filter过滤器所以组合叫做包过滤,也就是ACL和包过滤合作就是访问控制
  • 路由控制
    • ACL+Route-policy
    • ACL+路由策略实现路由控制
  • 流量控制
    • ACL+QOS
    • QOS是做流控的,他们组合决定了什么数据包先走,什么数据包后走

基于ACL的包过滤

定义:

  • 对进出的数据包逐包检车,丢弃或允许通过
  • 包过滤必须配置在接口的某个方向才能生效
  • 一个接口的一个方向只能配置一个包过滤策略

针对一种效果,可以在出口或者入口配置不同的策略

包过滤的方向
  • 入方向
    • 只对外部进入的数据包做过滤
  • 出方向
    • 只对从内部发出的数据包做过滤
包过滤的工作流程

包刚进入,就会先判断这个包是否配置了入方向的ACL包过滤,没有配置就直接放行,如果配置了,就会主意匹配规则,规则可能不止一条,当匹配第一条规则,匹配成功后再根据规则要求是丢弃还是放行,如果不匹配,那就匹配下一条规则,匹配上就根据要求放行或丢弃,如果一直不匹配就会到最后一次的检查默认动作

默认规则的存在大概是处理不背选中的包的,例如要放行某个包到2网段,那么其他来源的不准走,这种情况就需要将默认规则设置为拒绝,这样通过筛选的就放行

所有规则匹配完了之后,会去检查默认动作,默认动作要么丢弃,要么方向,华三的设备一般默认动作是放行

出口方向的也差不多

主意事项
  • 如果默认动作是允许,至少需要一条拒绝规则
  • 如果默认动作是拒绝,至少需要一条允许规则
    • 上述的两个主意是因为要处理不通过规则的包,因为通过条件的要么放行,要么丢包,那么剩余的包正好是反向操作
  • H3C的ACL用于包过滤默认允许,用于其他默认拒绝
  • 把小范围的规则分配一个考前的顺序
  • 在不影响实际效果的前提下,把包过滤尽量配置在离源地址最近的接口的入方向

ACL分类

基本ACL
  • 支队数据包的源地址进行匹配
  • 编号2000-2999

比如说上图,配置一个基本的ACL想要让1.0网段访问不了2.0,但是如果配置了基本ACL就会导致1.0到3.0和4.0都去不了,是一个范围伤害

高级ACL
  • 对数据包的五元组进行匹配(源IP,目的IP,源端口,目的端口,协议)
  • 编号3000-3999

实验

实验拓扑如下:

左侧PC1和PC2是用路由器模拟PC机,这里配置网关的时候,直接配置一条默认路由指向网关地址就行,本质上将,PC上的网关也是一个意思,二者可以画等号

实验需求
  1. 按照图示配置IP地址
  2. 全网路由互通
  3. 在SERVER1上配置开启TELNET和FTP服务
  4. 配置ACL实现如下效果
    1. 192.168.1.0/24网段不允许访问192.168.2.0/24网段,要求使用基本ACL实现
    2. PC1可以访问SERVER1的TELNET服务,但不能访问FTP服务
    3. PC2可以访问SERVER1的FTP服务,但不能访问TELENT服务
    4. 192.168.2.0/24网段不允许访问SERVER1,要求通过高级ACL实现
配置IP

PC1:

复制代码
[PC1]int g0/0
[PC1-GigabitEthernet0/0]ip add 192.168.1.1 24
[PC1-GigabitEthernet0/0]quit
[PC1]ip route-static 0.0.0.0 0.0.0.0 192.168.1.254

PC2:

复制代码
[PC2]int g0/0
[PC2-GigabitEthernet0/0]ip add 192.168.1.2 24
[PC2-GigabitEthernet0/0]quit
[PC2]ip route-static 0.0.0.0 0.0.0.0 192.168.1.254

L2-SW的g0/3口记得配置turnk口,不配置也没事

R1:

复制代码
[R1]int g0/1
[R1-GigabitEthernet0/1]ip add 192.168.1.254 24
[R1-GigabitEthernet0/1]int g0/1
[R1-GigabitEthernet0/1]ip add 100.1.1.1 24

R2:

复制代码
[R2]int g0/0
[R2-GigabitEthernet0/0]ip add 100.1.1.2 24
[R2-GigabitEthernet0/0]int g0/1
[R2-GigabitEthernet0/1]ip add 100.2.2.2 24
[R2-GigabitEthernet0/1]int g0/2
[R2-GigabitEthernet0/2]ip add 192.168.2.2 24

PC3:

R3:

复制代码
[R3]int g0/0
[R3-GigabitEthernet0/0]ip add 100.2.2.3 24
[R3-GigabitEthernet0/0]int g0/1
[R3-GigabitEthernet0/1]ip add 192.168.3.3 24

SERVER1:

复制代码
[SERVER1]int g0/0
[SERVER1-GigabitEthernet0/0]ip add 192.168.3.1 24
配置RIPv2使全网互通
复制代码
[R1]rip
[R1-rip-1]version 2
[R1-rip-1]undo summary
[R1-rip-1]net 192.168.1.0 255.255.255.0
[R1-rip-1]net 100.1.1.0 255.255.255.0

[R2]rip
[R2-rip-1]v 2
[R2-rip-1]undo summary
[R2-rip-1]net 100.1.1.0 255.255.255.0
[R2-rip-1]net 192.168.2.0 255.255.255.0
[R2-rip-1]net 100.2.2.0 255.255.255.0


[R3]rip
[R3-rip-1]v 2
[R3-rip-1]net 100.2.2.0 255.255.255.0
[R3-rip-1]net 192.168.3.0 255.255.255.0
[R3-rip-1]undo summary


[SERVER1]rip
[SERVER1-rip-1]v 2
[SERVER1-rip-1]undo sum
[SERVER1-rip-1]net 192.168.3.0 255.255.255.0
SERVER1配置服务

按照要求,SERVER1要配置telnet和ftp两个服务

telnet:

复制代码
[SERVER1]telnet server enable
[SERVER1]local-user wangdaye class manage
[SERVER1-luser-manage-wangdaye]password simple 123456abcd
[SERVER1-luser-manage-wangdaye]service-type telnet
[SERVER1-luser-manage-wangdaye]authorization-attribute user-role level-15
[SERVER1-luser-manage-wangdaye]quit
[SERVER1]user-interface vty 0 4
[SERVER1-line-vty0-4]authentication-mode scheme
[SERVER1-line-vty0-4]user-role level-15

配置了telnet服务,创建了一个wangdaye账户,密码为123456abcd

ftp:

复制代码
[SERVER1]ftp server enable
[SERVER1]local-user lidaye class manage
[SERVER1-luser-manage-lidaye]password simple 123456abcd
[SERVER1-luser-manage-lidaye]service-type ftp
[SERVER1-luser-manage-lidaye]authorization-attribute user-role level-15
配置ACL
要求1

192.168.1.0/24网段不允许访问192.168.2.0/24网段,要求使用基本ACL实现

基本ACL是只限制源地址的

那么为了防止误伤其他的包,那么可以在R2的g0/2口的出口方向配置限制原地为192.168.1.0/24网段的即可,本来说配置acl最好是靠近源地址的入方向,但是如果在离1网段最近的入方向配置,也就是R1的g0/1口的入方向配置的话,就会导致后面的3.0网段也收不到了,但是如果在R2的g0/0口的入方向配置那么就会导致除了192.168.2.0/24收不到外,还会有3.0和100.2.2.0/24网段收不到

所以此时再R2的g0/2配置基本ACL,这里基本ACL的编号是从2000开始,这里直接用2000

先创建一条规则,限定源地址要绑定的是反掩码

复制代码
[R2]acl basic 2000
[R2-acl-ipv4-basic-2000]rule deny source 192.168.1.0 0.0.0.255

注意:如果dis this会发现,规则后面默认带了一个序号这第一个是0,如果不指定的话会以五的倍数递增,中间间隔五个的目的是为了方便中途突然想要插入规则

刚刚只是配置完了策略,现在需要将策略用在R2的g0/2口的出方向

复制代码
[R2]int g0/2
[R2-GigabitEthernet0/2]packet-filter 2000 outbound

packet-filter就是前面讲ACL常见功能中的包过滤

要求2和3

PC1可以访问SERVER1的TELNET服务,但不能访问FTP服务

这里因为需要针对限制访问服务,区别服务的使用端口号,那么限制访问服务就是要针对对应的端口,就要用高级ACL

高级ACL属于精准打击,不需要太过谨慎,可以直接在靠近源地址的入口方向配置,所以在R1的g0/1的入口方向配置高级ACL

这里 配置ACL可以不用管放通telnet协议,只用管限制ftp服务,因为默认操作就是放通

复制代码
[R1]acl advanced 3000
[R1-acl-ipv4-adv-3000]rule deny tcp source192.168.1.1 0 destination 192.168.3.1 0 destination-port range 20 21

在ACL中精确匹配的0.0.0.0可以简写为一个0;这里本身是可以指定源端口的,但是知道服务端的端口是20和21,但是客户单的端口是随机的,所以就不设置源端口;在destination-port后面敲问号会有五个命令可以选,从上到下依次是等于,大于,小于,不等于,在某个区间

同样的也可以配置第二条规则了,也就是PC2不能访问TELNET服务,但是可以访问FTP

复制代码
[R1-acl-ipv4-adv-3000]rule deny tcp source 192.168.1.2 0 destination 192.168.3.1 0 destination-port eq 23

配置完ACL后就可以进入到f0/1口配置访问控制

复制代码
[R1-GigabitEthernet0/1]packet-filter 3000 inbound
要求4

192.168.2.0/24网段不允许访问SERVER1,要求通过高级ACL实现

因为是高级ACL所以依旧精准打击,那么就是靠近源地址的入口方向配置

也就是R2的g0/2口入方向配置,因为是不能访问server1的服务,telnet和ftp都属于ip协议,目的端口也不用指定,这样就配置完了

复制代码
[R2]acl advanced 3000
[R2-acl-ipv4-adv-3000]rule deny ip source 192.168.2.0 0.0.0.255 destination 192.168.3.1 0
[R2-acl-ipv4-adv-3000]quit
[R2]int g0/2
[R2-GigabitEthernet0/2]packet-filter 3000 inbound
相关推荐
xiaoyaohou112 小时前
011、骨干网络改进(二):MobileNet、ShuffleNet等轻量骨干的适配
网络·深度学习·机器学习
一个人旅程~2 小时前
在M系列的macbook上如何使用VMware安装ARM版的Win11以及注意哪些问题?
linux·windows·经验分享·macos·电脑
IT枫斗者2 小时前
MSE Nacos Prompt 管理:AI Agent 配置的工程化治理实践
网络·人工智能·websocket·网络协议·prompt·jar
Mapleay2 小时前
创建 Linux SDK包源码阅读环境
linux·运维·服务器
半步成诗!2 小时前
【RJ 45连接器】RJ45 网络连接器 3D 模型 3 零件装配体 SolidWorks 源文件 含 STEP/IGS 通用格式
网络·笔记·3d·硬件工程
Lsir10110_2 小时前
深入链路层:报文 MAC 传输原理与 ARP 欺骗、中间人攻击全解析
运维·服务器·网络
新手小新2 小时前
通信工程师学习笔记3-电信网间互联管理规定和网络安全法
网络·笔记·学习
Skilce2 小时前
K8S部署
linux·运维·服务器·容器·kubernetes
灰暗世界%3 小时前
飞牛nas如何设置阿里云的DDNS
服务器·网络·阿里云