From 19f725a9c61d230d73355d72b0ff45b3f9db0b08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=B0=B8=E6=B6=9B?= Date: Thu, 24 Apr 2025 11:39:17 +0800 Subject: [PATCH] 1 --- ...350\267\257\347\224\261\345\231\250acl.md" | 209 ++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 "32 \351\202\271\346\260\270\346\266\233/20250424 \350\267\257\347\224\261\345\231\250acl.md" diff --git "a/32 \351\202\271\346\260\270\346\266\233/20250424 \350\267\257\347\224\261\345\231\250acl.md" "b/32 \351\202\271\346\260\270\346\266\233/20250424 \350\267\257\347\224\261\345\231\250acl.md" new file mode 100644 index 0000000..a7ee18d --- /dev/null +++ "b/32 \351\202\271\346\260\270\346\266\233/20250424 \350\267\257\347\224\261\345\231\250acl.md" @@ -0,0 +1,209 @@ +## 一、基础概念 + +### 1. 定义 + +- **ACL(Access Control List)** 是思科设备中用于控制网络流量进出接口的规则集合,通过匹配数据包的**源 / 目的 IP、端口、协议类型**等特征,实现流量过滤与访问控制。 + +### 2. 核心功能 + +- **流量过滤**:允许 / 拒绝特定流量(如禁止恶意 IP 访问)。 +- **流量分类**:为 QoS、NAT 等策略提供匹配条件。 +- **区域隔离**:划分安全区域(如内外网),限制非法跨区域访问。 + +### 3. 工作原理 + +- **顺序匹配**:规则按配置顺序逐一匹配,匹配即执行动作(允许 / 拒绝),不再检查后续规则。 +- **隐含拒绝**:每个 ACL 末尾隐含 `deny any` 规则,未匹配规则的流量默认拒绝。 + +## 二、ACL 分类及特点 + +### 1. 标准 ACL(Standard ACL) + +- **匹配条件**:仅基于**源 IP 地址**过滤。 + +- 编号范围 + + : + + - IPv4:`1-99`(传统)、`1300-1999`(扩展编号)。 + +- 配置示例 + + ```bash + access-list 1 deny 192.168.1.0 0.0.0.255 # 拒绝源IP为192.168.1.0/24的流量 + access-list 1 permit any # 允许其他所有流量 + interface GigabitEthernet0/0 + ip access-group 1 in # 应用于接口入方向 + ``` + +- **局限性**:无法匹配目的 IP、端口等,适用于粗略过滤。 + +### 2. 扩展 ACL(Extended ACL) + +- **匹配条件**:基于**源 / 目的 IP、协议、端口号、TCP 标志位**等多维参数。 + +- 编号范围 + + : + + - IPv4:`100-199`(传统)、`2000-2699`(扩展编号)。 + +- 配置示例 + + ```bash + access-list 101 deny tcp any 172.16.1.0 0.0.0.255 eq 80 # 拒绝访问172.16.1.0/24的80端口(HTTP) + access-list 101 permit ip any any # 允许其他IP流量 + interface GigabitEthernet0/1 + ip access-group 101 out # 应用于接口出方向 + ``` + +- **优势**:精细控制流量,适用于复杂策略。 + +### 3. 命名 ACL(Named ACL) + +- **定义**:使用名称(如 `WEB_FILTER`)标识 ACL,支持标准 / 扩展功能,便于管理。 + +- 配置示例(扩展命名 ACL) + + ```bash + ip access-list extended WEB_FILTER # 创建扩展命名ACL + deny tcp any 10.0.0.0 0.0.255.255 eq 443 # 拒绝访问10.0.0.0/16的443端口(HTTPS) + permit ip any any + interface GigabitEthernet0/2 + ip access-group WEB_FILTER in # 应用命名ACL + ``` + +### 4. 其他类型 ACL + +- **动态 ACL**:基于用户认证动态生成规则,用于 VPN 场景。 +- **时间 ACL**:结合时间策略(如工作日 9:00-18:00)控制流量,需配置 NTP 同步。 +- **IPv6 ACL**:使用 `ipv6 access-list` 配置,支持匹配 IPv6 报头字段(如流标签)。 + +## 三、配置关键要点 + +### 1. 规则顺序与逻辑 + +- **原则**:**具体规则在前,通用规则在后**(如先拒绝特定 IP 的 SSH,再允许网段内其他 IP 的 SSH)。 + +- 示例 + + ```bash + access-list 102 deny tcp host 192.168.1.10 eq 22 any # 拒绝特定主机SSH + access-list 102 permit tcp 192.168.1.0 0.0.0.255 any eq 22 # 允许网段内其他主机SSH + ``` + +### 2. 通配符掩码(Wildcard Mask) + +- **作用**:定义 IP 匹配范围,`0` 表示必须匹配,`1` 表示任意值(与子网掩码逻辑相反)。 + +- 示例 + + : + + - `0.0.0.0`:精确匹配单个 IP(等价于 `host`)。 + - `255.255.255.255`:匹配任意 IP(等价于 `any`)。 + - `0.0.255.255`:匹配前两段固定的 IP(如 `192.168.0.0/16` 表示为 `192.168.0.0 0.0.255.255`)。 + +### 3. 应用方向(In/Out) + +- **入方向(in)**:在数据包进入接口时过滤,优先处理可减少资源消耗。 +- **出方向(out)**:在数据包离开接口前过滤,适用于源地址在外部的场景。 +- **注意**:同一接口同一协议(如 IPv4)只能应用一个 ACL,且不能同时应用于入 / 出方向。 + +### 4. 验证与调试命令 + +```bash +show access-lists [编号/名称] # 查看ACL配置及匹配统计 +show ip interface [接口名] # 查看接口应用的ACL +debug ip access-list # 调试ACL匹配过程(谨慎使用) +``` + +## 四、典型应用场景 + +### 1. 网络边界防护(防外部攻击) + +- **需求**:禁止外部主机主动连接内部服务器的 3389(远程桌面)端口,允许内部主机主动访问外网。 + +- 配置 + + : + + ```bash + access-list 102 permit tcp 192.168.1.0 0.0.0.255 any established # 允许内部已建立连接的响应流量 + access-list 102 deny tcp any any eq 3389 # 拒绝所有3389端口访问 + access-list 102 permit ip any any # 允许其他流量 + ``` + +### 2. VLAN 间访问控制 + +- **场景**:限制办公 VLAN(192.168.1.0/24)访问服务器 VLAN(10.0.0.0/24)的数据库端口(3306)。 + +- 配置 + + :在三层交换机 VLAN 接口应用 ACL: + + ```bash + access-list 103 deny tcp 192.168.1.0 0.0.0.255 10.0.0.0 0.0.0.255 eq 3306 + access-list 103 permit ip any any + interface Vlan10 # 办公VLAN接口 + ip access-group 103 out + ``` + +### 3. QoS 流量分类(优先视频流) + +- **需求**:通过 ACL 匹配 UDP 10000-20000 端口的视频流,分配更高带宽。 + +- 配置 + + ```bash + access-list 104 permit udp any any range 10000 20000 # 匹配视频流端口 + class-map VIDEO_CLASS + match access-group 104 + policy-map QOS_POLICY + class VIDEO_CLASS + bandwidth 500 # 分配500kbps带宽 + ``` + +## 五、常见错误与规避 + +### 1. 规则顺序错误 + +- **问题**:通用规则在前,导致具体规则失效(如先 `permit any` 再 `deny host`)。 +- **解决**:删除错误规则,按 “具体→通用” 顺序重新配置。 + +### 2. 通配符掩码错误 + +- **问题**:误将子网掩码当通配符(如 `192.168.1.0 255.255.255.0` 实际仅匹配 `192.168.1.0`)。 +- **解决**:确保通配符掩码与需求一致(如 / 24 网段用 `0.0.0.255`)。 + +### 3. 应用方向错误 + +- **问题**:在入方向过滤外部源地址的流量,导致内部合法连接被阻断。 +- **解决**:根据流量流向选择方向(限制外部访问内部→入方向;限制内部访问外部→出方向)。 + +## 六、扩展知识 + +### 1. 与其他技术结合 + +- **NAT**:ACL 可定义 NAT 转换的流量范围(如 `access-list 1 permit 192.168.1.0/24`)。 +- **防火墙**:与思科 Firepower 联动,实现更复杂的安全策略。 + +### 2. IPv6 ACL 特性 + +- **命令差异**:使用 `ipv6 access-list` 创建,匹配字段如 `source`、`destination`、`port`。 + +- 示例 + + ```bash + ipv6 access-list BLOCK_TELNET + deny tcp any any eq 23 # 拒绝IPv6环境下的Telnet访问 + permit ipv6 any any + ``` + + + + + +# 作业 + +![](https://gitee.com/zou-yongtao/image/raw/master/img/2025-04-24_113359.png) \ No newline at end of file -- Gitee