菜鸟科技网

Cisco ACL命令如何配置与使用?

  1. ACL 的基本概念
  2. 标准 ACL
  3. 扩展 ACL
  4. 命名 ACL
  5. ACL 的应用与验证
  6. ACL 的最佳实践与注意事项

ACL 的基本概念

在进入命令之前,必须理解几个核心概念:

Cisco ACL命令如何配置与使用?-图1
(图片来源网络,侵删)
  • 作用:ACL 是一组规则的集合,用于匹配数据包的特定特征(如源/目标 IP 地址、协议、端口号等),并根据匹配结果决定是允许 (Permit) 还是拒绝 (Deny) 数据包通过。
  • 顺序:ACL 的规则是自上而下进行匹配的,一旦数据包与某条规则匹配,立即执行该规则的 permitdeny 动作,并停止后续规则的检查,规则的顺序至关重要。
  • 隐式拒绝:Cisco ACL 的末尾有一条“隐式拒绝”语句,这意味着如果一个数据包没有匹配到 ACL 中的任何一条 permit 规则,它就会被自动拒绝。
  • 入站 vs. 出站:ACL 可以应用在接口的入站出站方向。
    • 入站:在数据包进入接口后,被路由到路由器CPU进行路由决策之前,应用ACL进行过滤,这是效率更高的方式,因为不匹配的数据包会被立即丢弃,不消耗路由资源。
    • 出站:在数据包从路由器接口发送出去之前,应用ACL进行过滤。

标准 ACL

标准 ACL 只能根据源 IP 地址来过滤数据包,它通常用于控制来自某个特定网络或主机的访问。

配置命令

步骤 1:进入全局配置模式

Router> enable
Router# configure terminal
Router(config)#

步骤 2:创建标准 ACL 有两种方式:数字命名和名称命名。

  • 使用数字 (1-99)

    Cisco ACL命令如何配置与使用?-图2
    (图片来源网络,侵删)
    Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
    • access-list 1: 创建一个标准 ACL,编号为 1。
    • permit: 动作是允许。
    • 168.1.0 0.0.0.255: 源 IP 地址和通配符掩码。0.0.255 表示匹配 168.1.0168.1.255 的所有主机。
  • 使用名称(推荐,更易于管理)

    Router(config)# ip access-list standard MY-ACL-1
    Router(config-std-nacl)# permit 192.168.1.0 0.0.0.255
    • ip access-list standard MY-ACL-1: 创建一个名为 MY-ACL-1 的标准 ACL。
    • 后续的规则都在这个 ACL 的子配置模式下输入。

步骤 3:将 ACL 应用到接口 假设我们要阻止 168.1.0/24 网络访问 0.0.2,ACL 应该应用在靠近 168.1.0 网络的接口的入站方向。

Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip access-group 1 in  // 使用数字方式
# 或者
Router(config-if)# ip access-group MY-ACL-1 in // 使用名称方式
  • ip access-group: 将 ACL 应用到接口。
  • 1MY-ACL-1: ACL 的编号或名称。
  • in: 指定应用方向为入站,用 out 表示出站。

步骤 4:删除 ACL

# 从接口上移除 ACL
Router(config-if)# no ip access-group 1 in
# 删除整个 ACL(数字方式)
Router(config)# no access-list 1
# 删除整个 ACL(名称方式)
Router(config)# no ip access-list standard MY-ACL-1

扩展 ACL

扩展 ACL 功能更强大,可以根据源 IP 地址、目标 IP 地址、协议类型、源端口、目标端口等更详细的信息进行过滤,它通常被放置在靠近源地址的接口上,以尽早过滤掉不需要的流量。

Cisco ACL命令如何配置与使用?-图3
(图片来源网络,侵删)

配置命令

步骤 1:进入全局配置模式

Router(config)#

步骤 2:创建扩展 ACL 同样支持数字和名称。

  • 使用数字 (100-199, 2000-2699)

    Router(config)# access-list 101 permit tcp 192.168.1.0 0.0.0.255 10.0.0.2 0.0.0.0 eq 80
    • access-list 101: 创建扩展 ACL,编号为 101。
    • permit tcp: 允许 TCP 协议。
    • 168.1.0 0.0.0.255: 源 IP 地址范围。
    • 0.0.2 0.0.0.0: 目标 IP 地址(0.0.0 表示精确匹配 0.0.2)。
    • eq 80: 目标端口号等于 80 (HTTP)。
  • 使用名称(推荐)

    Router(config)# ip access-list extended WEB-ACCESS
    Router(config-ext-nacl)# permit tcp 192.168.1.0 0.0.0.255 host 10.0.0.2 eq 80
    • ip access-list extended WEB-ACCESS: 创建名为 WEB-ACCESS 的扩展 ACL。
    • host 10.0.0.2: 是 0.0.2 0.0.0.0 的简写,表示单个主机。

步骤 3:将 ACL 应用到接口

Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip access-group 101 in
# 或者
Router(config-if)# ip access-group WEB-ACCESS in

其他常用协议和端口关键字:

  • eq: 等于 (e.g., eq 22 for SSH)
  • gt: 大于
  • lt: 小于
  • neq: 不等于
  • range: 范围 (e.g., range 1024 65535)
  • host: 单个主机 (e.g., host 192.168.1.1)
  • 协议: tcp, udp, icmp, ip

示例:拒绝 ping

ip access-list extended BLOCK-ICMP
deny icmp any any  // 拒绝所有 ICMP 流量 (ping)
permit ip any any  // 允许所有其他 IP 流量

命名 ACL

命名 ACL 是一种更现代的管理方式,它将 ACL 的编号替换为一个有意义的名称,无论是标准 ACL 还是扩展 ACL,都可以使用命名方式。

优点:

  • 易于识别SECURITY-FW-OUTBOUNDaccess-list 120 更容易理解。
  • 易于修改:可以直接通过名称添加、插入或删除规则,无需重新创建整个 ACL。

配置命令(已在标准/扩展 ACL 中展示,这里再强调一下)

# 创建标准命名 ACL
ip access-list standard ALLOW-SALES
permit 192.168.10.0 0.0.0.255
# 创建扩展命名 ACL
ip access-list extended DENY-TELNET
deny tcp any any eq 23
permit ip any any

ACL 的应用与验证

应用 ACL

# 进入接口
interface GigabitEthernet0/1
# 应用命名 ACL (出站方向)
ip access-group DENY-TELNET out
# 查看接口上应用的 ACL
do show ip interface GigabitEthernet0/1

输出中会显示 Outbound access list is DENY-TELNET

验证 ACL 配置

命令 1:查看所有 ACL 配置

Router# show access-lists

输出会显示所有 ACL 的规则,并显示每个规则的匹配次数。

Standard IP access list 1
    10 permit 192.168.1.0 (5 matches)
Extended IP access list DENY-TELNET
    10 deny tcp any any eq 23 (2 matches)
    20 permit ip any any (45 matches)

matches 字段非常重要,可以帮助你判断规则是否按预期在工作。

命令 2:查看特定 ACL

Router# show access-lists MY-ACL-1

命令 3:查看 ACL 统计信息

Router# show ip access-lists

这个命令和 show access-lists 在 IOS 中通常是等效的,但 show ip access-lists 更明确地指出了是查看 IP ACL。


ACL 的最佳实践与注意事项

  1. 最小权限原则:默认情况下,所有流量都是被允许的,应该先定义需要拒绝的流量,然后再定义需要允许的流量。
  2. 放置位置
    • 标准 ACL:尽量放在离目标地址最近的接口上,因为它只检查源地址,如果放在靠近源的地方,可能会错误地阻止所有去往其他地方的流量。
    • 扩展 ACL:尽量放在离源地址最近的接口上,这样可以尽早过滤掉不需要的流量,节省网络带宽和设备资源。
  3. 使用命名 ACL:对于复杂的 ACL,使用命名方式可以极大地提高可读性和可维护性。
  4. 注释:在复杂的 ACL 中,使用 remark 命令为每条规则添加注释,方便日后维护。
    Router(config-ext-nacl)# remark Deny access from Finance network to Server
    Router(config-ext-nacl)# deny ip 192.168.5.0 0.0.0.255 10.1.1.5 0.0.0.0
  5. 顺序至关重要:规则的顺序决定了匹配结果,将最具体的、最常用的规则放在前面。
  6. log 选项:可以在 permitdeny 后面加上 log 关键字,当匹配到该规则时,路由器会生成日志信息(需要配置日志服务器)。
    Router(config-ext-nacl)# deny tcp any any eq 23 log

希望这份详细的指南能帮助你全面掌握 Cisco ACL 的命令!

分享:
扫描分享到社交APP
上一篇
下一篇