10-ACL技术

ACL与包过滤

一 ACL定义及应用场景

  • 定义

    ACL(Access Control List,访问控制列表)是用来实现数据包识别功能的。

  • 应用场景

    • 包过滤功能:对数据包进行放通或过滤操作。
    • NAT(Network Address Translation):网络地址转换
    • 按需拨号
    • Qos流分类ACL:只对数据包进行流量分类。
    • 路由过滤ACL:对路由进行放行或过滤操作。
    • 路由策略ACL:只对路由进行匹配。

二 ACL包过滤的工作原理

1. ACL包过滤基本原理

  • ACL包过滤

    • 第一步ACL:每条ACL都由若干条ACL规则条目组成。

      • ACL规则条目:由1个匹配条件和执行动词(permit或deny)组成
    • 第二步ACL包过滤:将ACL绑定到设备接口上,进行数据包过滤。

      • 匹配permit规则条目的允许放行。

      • 匹配deny规则条目的允许放行。

  • 设备接口的入方向和出方向(不同接口下的ACL工作不同)

    • 入方向(in):数据包进入设备的方向。

    • 出方向(out):数据包离开设备的方向。

    • 两个方向都可以绑定ACL对数据包进行过滤

    • 一个接口的一个方向只能绑定一条ACL

    • Cisco默认拒绝所有,华为华三默认开放



  • 入方向处理

  • 华为/H3C ACL包过滤基本原理

三 ACL的分类及应用

1. ACL条目组成

  • 条目组成

    序号/名字+执行动作+字段匹配

  • 利用数字序号标识访问控制列表

  • IP数据包字段匹配方法

    • 数据包中的各个字段

      • 数据包中各个字段都可以进行匹配
      • 常用匹配五元组:源IP、目的IP、协议、源端口、目标端口。
  • 数据包中的IP地址字段匹配

    • 匹配字段

      匹配源IP

      匹配目标IP

      同时匹配源IP与目标IP

    • 匹配方法

      • IP地址 通配符

        通配符为32位,按位通配,位为0表示这位不能变,为1表可变。通配符可不连续,子网掩码要连续。

    • 匹配案例1

      匹配:192.168.2.128 192.168.2.254

      192.168.2.10000000

      192.168.2.11111110

      通配符:不同的标为1,但这里最后一位为1是因为要包含奇数和偶数,若为0只能包含偶数。

      IP地址:保留相同部分。

      答案:192.168.2.128 0.0.0.127

    • 匹配案例2

      匹配:192.168.1.192(就1个主机)

      答案:192.168.1.192 0.0.0.0

      或者:host 192.168.1.192

    • 匹配案例3

      匹配:所有IP地址

      答案:0.0.0.0 255.255.255.255

      或者:any

    • 匹配案例4

      匹配:所有偶数IP

      0.0.0.0 255.255.255.254

    • 匹配案例4

      匹配:所有奇数IP

      0.0.0.1 255.255.255.254

  • TCP/UDP包中的端口字段匹配

    • 匹配字段(源端口或目的端或同时匹配源端口和目的端口)

    • 匹配方法

      • 端口范围操作符 端口号

        eq 端口 等于
        neq端口 不等于
        gt端口 大于
        It端口 小于
        range 端口1 端口2 在两个端口范围内
    • 匹配案例

2. 传统标准ACL

  • 定义

    传统标准 ACL 是最基础的 ACL 类型,通过编号 1-99 标识,仅能基于源 IP 地址过滤数据包,无法匹配目的 IP、协议或端口。

  • 缺陷

    对任意一条ACL规则条目的删除、修改、插入都需要先删除整个ACL,然后重新配置。

  • 应用位置原则

    由于仅基于源 IP 过滤,若配置在离源端过近的位置,可能误过滤 "同一源 IP 到不同目的" 的合法流量(例如:拒绝源 A 到目的 X 的流量,但若源 A 到目的 Y 是合法的,也会被误拒)。

  • 建议

    放在离目的端近的位置,仅在接近目的时过滤,减少误判。

  • 配置

    复制代码
    1.定义ACL规则:access-list <编号> {permit | deny} <源IP地址> [反掩码]
    2.应用到接口:interface <接口类型> <接口编号>
    ip access-group <编号> {in | out}
      
    例如:
    access-list 1 deny 192.168.20.0 0.0.0.255
      access-list 1 permit any
    int vlan 10
    ip access-group 1(命名) out

3. 命名标准ACL

  • 定义

    命名标准 ACL 是传统标准 ACL 的 "命名版本",用字符串名称代替编号 1-99,功能完全相同(仅基于源 IP 过滤),但管理更灵活(名称更易记忆)。

  • 优势

    • 名称比编号更直观(如 "Allow_Local_LAN" 比 "1" 更易理解),按序号顺序匹配,可按序号增加、删除、修改、插入规则条目。

    • Cisco设备,如果省略序号,默认开始序号10,默认步长为10。

    • 华为/H3C设备,默认开始序号为0,默认步长为5。

  • 配置

    复制代码
    ip access-list standard <ACL名字>
    <序号> { permit | deny } IP地址 通配符
    <序号> { permit | deny } IP地址 通配符
      
    例如:
    ip access-list standard vlan10(名字)
    10 deny 192.168.20.0 0.0.0.255
    20 permit any
    int vlan 10
    ip access-group vlan10(命名) out(删除它进入vlan删除)

4. 传统扩展ACL

  • 定义

    传统扩展 ACL 是更精细的过滤规则,通过编号 100-199 标识,可基于源 IP、目的 IP、协议类型(TCP/UDP/ICMP 等)、端口号等多条件过滤。

  • 配置

    复制代码
    access-list 100 deny udp any eq 68(任意源ip;源端口68客户端) any eq 67(任意目的ip;目的端口67服务端)
    int vlan 10
    ip access-group 100 in
    access-list 100 permit ip any any

5. 命名扩展ACL

  • 定义

    命名扩展 ACL 是传统扩展 ACL 的 "命名版本",用字符串名称代替编号 100-199,功能相同(支持多条件过滤),管理更灵活。支持源 IP、目的 IP、协议、端口等多条件。

  • 配置

    复制代码
    ip access-list extended <ACL名字>
    <序号> { permit | deny } <协议> IP地址1 通配符1 [操作符1 
    端口号1] IP地址2 通配符2 [操作符2 端口号2] [established]
    <序号> { permit | deny } <协议> IP地址1 通配符1 [操作符1 
    端口号1] IP地址2 通配符2 [操作符2 端口号2] [established]

    ip access-list extended v10

    15 deny udp any host 192.168.100.2 eq 53

    int vlan 10

    ip access-group v10 in

6. 基于二层的ACL(MAC ACL)

  • 定义

    基于二层的 ACL(Access Control List,访问控制列表)是针对数据链路层信息(如 MAC 地址、以太网类型等)制定的访问控制规则,主要用于对二层帧进行过滤,适用于交换机等二层设备,或路由器的二层接口场景。其核心是基于源 MAC 地址、目的 MAC 地址、以太网帧类型等二层特征来允许或拒绝数据包通过。

  • 配置

    模拟器不能做,真机能完成该配置

7. 基于时间ACL

  • 定义

    基于时间的 ACL(Time-Based ACL)是一种结合时间条件的访问控制列表,它能根据预设的时间范围(如特定时间段、周期性时间)动态启用或禁用 ACL 规则,使网络访问控制更具灵活性和时效性。其核心是将 ACL 规则与时间策略绑定,仅在指定时间内生效,其他时间则不执行该规则。

  • 配置

    模拟器不行,真机可以是因为接入了互联网,统一网络时间。未接入互联网的真机不行。

  • 配置案例

8. 自反ACL

  • 定义(可用四个最基础的)

    自反 ACL(Reflexive ACL)是一种动态生成反向规则的访问控制列表,主要用于允许内部网络主动发起的会话所对应的返回流量,同时阻止外部网络主动发起的未授权连接。它解决了传统 ACL 在双向流量控制中 "静态规则不够灵活" 的问题,通过动态记录内部发起的连接信息,自动生成允许返回流量的临时规则,实现更精准的安全控制。

  • 配置

    配置一个出的ACL会自动映射一个源和目的ip相反的入的ACL

  • 配置案例

相关推荐
coniting12322 分钟前
【华为】交换机vlan互访实验
网络·华为
Reggie_L1 小时前
网络原理 ——HTTPS
网络·网络协议·https
会是上一次1 小时前
Lvs集群搭建
运维·服务器·网络
云盾安全防护2 小时前
WAF能够解决数据库被渗透的问题吗?
网络·数据库
为什么要内卷,摆烂不香吗2 小时前
超简单linux上部署Apache
linux·运维·网络·apache
zybsjn2 小时前
【实战】一次出口连接数超限事故引发的架构反思:强制代理、NAT 网关与大厂最佳实践
网络·系统架构
白鸽梦游指南3 小时前
LVS运行原理及实战模拟
服务器·网络·lvs
丨千纸鹤丨3 小时前
LVS集群
服务器·网络·lvs
moton20173 小时前
【软件系统架构】系列七:系统性能——计算机性能深入解析
网络·系统架构·内存·cpu·计算机性能
智象科技4 小时前
智象科技赋能金融、证券行业 IT 运维
大数据·运维·网络·数据库·科技·金融·智能运维