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
相关推荐
道清茗1 天前
【RH294知识点汇总】第 9 章 《 自动执行 Linux 管理任务 》常见问题
linux·运维·服务器
北方的流星1 天前
华三路由器NAT配置
运维·网络·华三
数据法师1 天前
开源情报收集工具GhostTrack深度测评:IP、手机号、用户名的合规信息查询方案
网络·网络协议·tcp/ip
丑八怪大丑1 天前
Java网络编程
linux·服务器·网络
想成为优秀工程师的爸爸1 天前
第三十篇技术笔记:郭大侠学UDS - 人有生老三千疾,望闻问切良方医
网络·笔记·网络协议·tcp/ip·信息与通信
橙子也要努力变强1 天前
信号捕捉底层机制-机理篇2
linux·服务器·c++
数智工坊1 天前
【SAM-DETR论文阅读】:基于语义对齐匹配的DETR极速收敛检测框架
网络·论文阅读·人工智能·深度学习·transformer
童园管理札记1 天前
【续】数字时代:学前教育的新改革
经验分享·深度学习·职场和发展·微信公众平台
CQU_JIAKE1 天前
4.28~4.30【Q】
linux·运维·服务器
先知后行。1 天前
Linux 设备模型和platform平台
linux·运维·服务器