ACL

ACL概述

Access Control list, ACL 称之为 访问控制列表, 该表中包含了很多规则

每个规则都是用来匹配数据的.

每个规则中都有对数据的处理发送: 允许/拒绝

作用

  1. 控制路由条目实现路径是否互通.
  2. 控制数据包转发 —实现流量控制.

ACL 类型

  1. 基本ACL(标准): 2000-2999, 仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。
  2. 高级ACL: 3000-3999, 可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口号、UDP源/目的端口号、生效时间段等来定义规则。
  3. 二层ACL: 4000~4999, 使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。
  4. 用户自定义ACL: 5000~5999, 使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。
  5. 用户ACL: 6000~6999, 既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。

ACL概述

主要用于在众多类型的数据包中, “匹配/抓取” 感兴趣的数据

是一个包含多个 “规则” 的列表, 不同规则通过 “规则号” 进行区分.

每个 “规则” 都包含: 动作 + 条件 两部分内容

动作分为: 允许(permit) 和 拒绝(deny)

条件分为: 地址(address) 和 通配符(wildcard bits).

掩码,反掩码和通配符的区别

  1. 掩码: 区分网络位和主机位. 1在左边,0在右边, 0 和 1 不会交叉,
  2. 反掩码: 有用且仅在OSPF中应用. 0在左边, 1在右边, 0 和 1 不会交叉.
  3. 通配符: 0 和 1 出现, 没有规律.

为什么要使用ACL?

为了企业的业务安全, 要求不同部门对服务器有不同的权限.

例: PC1不能访问Server, PC2允许访问Server , 允许其他流量互通.

如果想要控制设备之间的连通性, 必须搞清楚数据转发的路径.

在数据转发路径上的某些节点设备上, 使用控制策略, 过滤数据包.

解决方案: 现网中, 实现流量访问控制的方法有两种

  1. 控制路由条目 -在数据包转发路径上的三层设备上, 通过路由策略, 拒绝路由条目, 从而确保数据包无法互通.
  2. 控制数据包转发 – 在数据包转发路径上的任何一个设备的接口下, 调用专门的 “流量控制工具”, 比如ACL

ACL解析

举例:

  • acl 2000
  • rule 10 permit source 192.168.1.0 0.0.0.255

解析:

  • 2000, 表示的是 “ACL的名字” ,可以通过ID表示, 也可以通过字符表示
  • rule, 表示的是 “规则”
  • 10, 表示的是 “规则号” , 取值范围是0 – 4924967294
  • permit, 表示的是动作 – 允许; (deny 表示的是动作 – 拒绝)
  • source, 表示当前的 “规则” 检查的是数据包的 “源”地址
  • “源IP地址”, 表示的是”源IP地址的范围”
  • 通配符, 表示的是 “与源IP地址对应的通配符”
    • 根据0来匹配数据包的源IP地址
    • 0.0.0.255, 表示匹配前三个字节的IP地址
    • 0.0.0.0, 表示匹配所有IP地址
    • 如source 192.168.1.0 0.0.0.255,表示匹配 192.168.1.x的源IP地址.

ACL类型

基本ACL: 只能匹配 “源IP地址” ,不能匹配其他的信息, 匹配数据不精准, 所用的 ID 取值范围是: 2000 – 2999.

高级ACL: 可以匹配 “源IP地址”, “目标IP地址”, “协议号”, “端口号”等, 匹配的数据更加精准, 所用的 ID 取值范围是: 3000 – 3999

二层ACL: 4000-4999

配置思路

确定PC1与Server之间的数据转发路径.

确定转发路径上的转发设备有哪些, 判断在哪个设备上配置ACL

判断数据包在每个端口上的转发方向, 确定ACL的配置命令和调用方向.

配置命令

配置ACL

acl 2000

rule 10 deny source 192.168.1.0 0.0.0.255

调用ACL

interfacce g0/0/0

traffic-filter outbound acl 2000

验证与测试

PC1> ping 192.168.100.1, 不通

PC1> ping 192.168.2.1, 通

PC2>ping 192.168.100.1 通

思考:

是否还存在其他的配置ACL的方法? 应该如何配置?

ACL小结

  • ACL用来匹配数据包, 并实现数据包的过滤
  • ACL的类型分为: 基本ACL和高级ACL, 使用不通的ID范围来表示
  • 基本ACL, 只能匹配数据包的源IP地址, 匹配数据不精准
  • 高级ACL, 可以同时匹配数据包的源IP, 目标IP, 源端口, 目标端口, 协议号等字段, 匹配数据包更加精准.
  • ACL必须先配置, 再调用, 并且在端口调用是由有方向的.

基本ACL实战项目

项目背景:公司存在两个部门,为了确保业务安全, 需规划安全控制策略.

1.不允许”售后服务部”以任何方式访问”财务部”服务器.

2.”售后服务部”可以访问网络中的任何其他设备.

需求:

1.售后服务部不能访问服务器

2.其他都可以访问

配置思路:

  1. 配置终端设备
    • 终端设备: IP,掩码,网关
    • 服务器设备: IP,掩码,网关
    • (命令略)
  2. 配置网络设备
    • 交换机: 默认为hybrid, 可以不配置.
    • 路由器: 接口IP, 路由(默认路由或静态路由)
      • [r1]ip route-static 192.168.2.0 24 192.168.12.2
      • [r1]ip route-static 192.168.3.0 24 192.168.12.2
        • 或使用默认路由: 0.0.0.0 0 192.168.12.2
      • [r2]ip route-static 192.168.1.0 24 192.168.12.1
        • 或使用默认路由: 0.0.0.0 0 192.168.12.1
  3. 确认网络连通性
    • 当前未配置ACL所有设备都可通信
    • 若出现网络不通, 检查各设备配置.
  4. 配置ACL
    • 确定需配置的路由器(R2)
    • 过滤源IP地址为”售后服务部”网段.
      • [R2]acl 2001
      • [R2]rule 10 deny source 192.168.1.1 0.0.0.255
      • quit
    • 调用ACL(确定在哪个端口调用→在R2的g0/0/2, 数据出口方向)
      • [R2-acl-basic-2001]interface g0/0/2
      • [R2-GigabitEthernet0/0/2]traffic-filter outbound acl 2001
  5. 验证ACL
    • display acl all //查看设备上所有的ACL
    • display traffic-filter applied-record //查看设备上已被调用的ACL
    • 售后部ping服务器: request timeout, 无法与服务器通信.
    • 售后器ping其他设备, 正常通信.
    • 路由器R1 ping -a 192.168.1.254 192.168.3.1, request timeout, 无法通信.
    • 路由器R1 ping -a 192.168.12.1 192.168.3.1,request timeout, 可以通信.
    • 财务部ping服务器和其他设备都可通信.
  6. 思考:
    1. 能不能在R2的g0/0/0配置ACL过滤’财务部服务器’3.0/24网段的流量呢? 如果配置了,会发生什么情况?
    2. 能不能在R1上配置ACL呢?

总结:

  • 基本ACL只能匹配源IP地址, 过滤数据的效率非常高.
  • 基本ACL有一个默认的隐含的动作是”允许所有”.
  • 基本ACL尽量调用在距离”目标设备”最近的设备/接口上.

高级ACL

项目背景

  1. 为了增强企业内网安全, 实施业务隔离以及访问权限控制.
  2. 三个部门属于不同的IP地址网段.
  3. 售后仅仅能 ping 通 Server, 不能访问其他服务.
  4. 售后部可以访问行政部的所有设备的任何服务.
  5. 除了以上权限外, 售后部不能访问网络中的任何其他地方.

项目分析

不同部门之间存在特定业务流量控制, 所以用高级ACL

高级ACL可以精确区分流量, 尽量调用在距离源设备进的地方.

配置思路

  1. 配置设备IP, 路由条目, 确保不同网段互通
  2. 测试设备之间连通性, 当前所有设备均可通信
  3. 确定ACL设备
  4. 确定ACL接口
  5. 配置高级ACL
  6. 在R1连接PC1的接口入方向, 调用ACL
  7. 验证并测试ACL

配置命令

  • acl 3000
  • rule 10 permit tcp source 192.168.1.1 0.0.0.0 destination 192.168.3.1 0.0.0.0 destination-port eq 80 //允许IP地址为192.168.1.1的主机对 Server 的TCP 80 端口的访问数据通过.
  • rule 20 permit ip source 192.168.1.1 0.0.0.0 destination 192.168.2.0 0.0.0.255
  • rule 30 deny ip source 192.168.1.1 0 destination any

验证与测试ACL

  • display acl all //查看设备上的所有ACL
  • display traffic-filter applied-record //查看设备上已经被调用的ACL
  • PC1通过 http 客户端访问 server, 成功.
  • PC1通过 ping 访问 server, 失败.
  • PC1 ping PC2, 成功.
  • PC1 访问其他网段,失败

总结1

高级ACL匹配数据更加精确, 适合细分业务流量的管理控制.

高级ACL尽量调用在距离 源设备 近的设备/接口上.

高级ACL之ICMP

项目背景

售后部仅仅能 ping 通 server, 不能访问其他服务

售后部可以访问行政部的所有设备的任何服务

除了上述权限外, 售后部不能访问网络中的任何地方.

项目分析

不同部门之间存在特定业务流量控制, 所以使用高级ACL

高级AC可以精确区分流量, 尽量在距离源设备最近的地方调用.

配置思路

  1. 配置各设备IP地址, 路由条目
  2. 测试各设备连通性, 当前未做任何其他配置, 本网络中的所有设备均可通信.
  3. 确定部署ACL的设备
  4. 确定调用ACL的端口
  5. 配置高级ACL,精确匹配业务流量.
  6. 在R1与 售后部设备接口的入方向, 调用ACL
  7. 测试并验证ACL

配置命令

  • acl 3000
  • rule 10 permit icmp source 192.168.1.1 0 destination 192.168.3.1 0
  • rule 20 permit ip source 192.168.1.1 0 destination 192.168.2.0 0.0.0.255
  • rule 30 deny ip source 192.168.1.1 0 destination any
  • interface g0/0/0
  • traffic-filter inbound acl 3000

验证与测试ACL

  • display acl all
  • display traffic-filter applied-record //查看设备上已经被调用的ACL
  • PC1通过 http 客户端访问 server, 失败
  • PC1通过 ping 访问 server, 成功
  • PC1 ping PC2, 成功.
  • PC1 访问其他网段, 失败

总结2:

高级ACL匹配数据更加精准, 适合细分业务流量的管理控制.

高级ACL尽量调用在距离 源端口 最近的设备/接口上.

一个ACL中存在多个 条目 时, 数据的匹配顺序是按照 rule号 从小到大依次执行的.

在ACL条目匹配数据过程中, 如果有一个条目匹配成功, 后续的条目不再查看, 直接执行动作 ‘permit’ 或 ‘deny’ .

如果ACL中的所有条目, 都没有匹配成功, 则执行最后一个隐含条目:

  1. ACL最后一个隐含动作是 ‘拒绝所有’
  2. 但是用 traffic-filter 调用时, ACL默认行为是 ‘允许所有’

高级ACL值Telnet

项目背景

为了便于设备管理, 为设备开启远程管理功能, 登陆密码: HHHH

仅仅允许 192.168.1.254 远程登录 R2, 其他设备不可以.

拒绝R1 的任何 IP 地址远程登录 R3, 其他设备可以.

项目分析

针对远程登陆操作, 访问的都是设备 “远程登录虚拟接口”.

对于虚拟接口, 使用 ‘基本ACL’, 可实现 ‘远程登陆’过滤.

配置思路

  1. 配置IP地址, 路由条目
  2. 测试设备连通性, 当前状态下所有设备均可互相通信.
  3. 确定部署ACL的设备 — R2和R3.
  4. 确定部署ACL的接口 — R2和R3的 ‘远程访问’ 虚拟接口.
  5. 配置基本ACL, 仅仅匹配允许的 IP 地址即可.
  6. 在R2 和 R3 的 ‘远程登录’ 虚拟接口的入方向, 调用 ACL.
  7. 验证并测试ACL.

配置命令

配置R2和R3的远程管理功能

  1. R2
    • user-interface vty 0 4 //vty 是 Virtual Teletype Terminal 的缩写,即虚拟终端。它允许用户通过 Telnet 或 SSH 等协议远程登录到设备,进行配置和管理。0 4 表示虚拟终端的编号范围,从 0 到 4,共包含五个虚拟终端界面。这意味着最多可以有五个用户同时通过远程登录连接到设备。
    • authentication-mode password
      please configure the login password(maximum length 16): HHHH
  2. R3
    • user-interface vty 0 4
    • authentication-mode password
      please configure the login password(maximum length 16):HHHH

创建ACL

  1. R2
    • acl 2000
    • rule 10 permit source 192.168.1.254 0
  2. R3
    • acl 2000
    • rule 10 deny source 192.168.1.254 0
    • rule 20 deny source 192.168.12.1 0.0.0.0
    • rule 30 permit source any

调用ACL

  1. R2
    • user-interface vty 0 4
    • acl 2000 inbound
  2. R3
    • user-interface vty 0 4
    • acl 2000 inbound

验证与测试ACL

  1. [R2]display acl all
  2. [R3]display acl all
  3. <R1>telnet -a 192.168.1.254 192.168.12.2, 登陆成功
  4. <R1>telnet 192.168.12.2, 登录失败
  5. <R1>telnet 192.168.23.3, 登录失败
  6. <R1>telnet -a 192.168.1.254 192.168.13.1, 登录失败
  7. <R2>telnet 192.168.23.3, 登录成功

总结

ACL最后一个隐含动作是’拒绝所有’.

但是用traffic-filter 调用时, ACL的默认行为是 ‘允许所有’.

远程登录一个设备时, 设备使用 ‘虚拟接口’: vty 接口.

Comments

  1. kun
    iPhone AppleWebKit
    6 days ago
    2025-1-16 14:03:40

    (ノ°ο°)ノ

    来自中国
  2. Owner
    Windows Chrome
    6 days ago
    2025-1-17 2:31:42

    111

    来自广东

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next