关于 ACL
访问控制列表 (ACL) 通过一个或多个特征识别流量,包括源和目标 IP 地址、IP 协议、端口、EtherType 及其他参数,视 ACL 类型而定。ACL 可用于各种功能。ACL 由一个或多个访问控制条目 (ACE) 组成。
ACL 类型
ASA 使用以下类型的 ACL:
-
扩展 ACL - 扩展 ACL 是您将使用的主要类型。这些 ACL 用于访问规则以允许和拒绝通过设备的流量,并在许多功能中用于流量匹配,包括服务策略、AAA 规则、WCCP、僵尸网络流量过滤器、VPN 组和 DAP 策略。请参阅配置扩展 ACL。
-
EtherType ACL - EtherType ACL 仅适用于桥接组成员接口上的非 IP 第 2 层流量。可以使用这些规则,根据第 2 层数据包中的 EtherType 值允许或丢弃流量。通过 EtherType ACL,可以控制设备上的非 IP 流量。请参阅配置 EtherType ACL。
-
Webtype ACL - Webtype ACL 用于过滤无客户端 SSL VPN 流量。这些 ACL 可基于 URL 或目标地址拒绝访问。请参阅配置 Webtype ACL。
-
标准 ACL - 标准 ACL 只能基于目标地址识别流量。使用这种 ACL 的功能较少:路由映射和 VPN 过滤器。由于 VPN 过滤器还允许扩展访问列表,限制将标准 ACL 用于路由映射。请参阅配置标准 ACL。
下表列出 ACL 的一些常见用途及使用的类型。
ACL 用途 |
ACL 类型 |
说明 |
||
---|---|---|---|---|
控制 IP 流量的网络接入(路由和透明模式) |
扩展 |
ASA 不允许任何流量从较低安全性接口传送到较高安全性接口,除非流量经扩展 ACL 显式许可。在路由模式下,必须使用 ACL 来允许桥接组成员接口与同一个桥接组外部接口之间的流量。
|
||
识别 AAA 规则的流量 |
扩展 |
AAA 规则使用 ACL 识别流量。 |
||
为给定用户增强 IP 流量的网络接入控制 |
扩展,按用户从 AAA 服务器下载 |
可以配置 RADIUS 服务器来下载要应用于用户的动态 ACL,或者服务器可以发送 ASA 上已配置的 ACL 的名称。 |
||
VPN 访问和过滤 |
扩展 标准 |
用于远程访问和站点间 VPN 的组策略使用标准或扩展 ACL 进行过滤。远程访问 VPN 还将扩展 ACL 用于客户端防火墙配置和动态访问策略。 |
||
识别用于模块化策略框架的流量类映射的流量。 |
扩展 |
可使用 ACL 来识别类映射中的流量,该类映射用于支持模块化策略框架的功能。支持模块化策略框架的功能包括 TCP 和一般连接设置及检测。 |
||
对于桥接组成员接口,控制非 IP 流量的网络接入 |
EtherType |
可配置 ACL,以便基于属于桥接组成员的任何接口的 EtherType 来控制流量。 |
||
识别路由过滤和重分布 |
标准 扩展 |
各种路由协议将标准 ACL 用于 IPv4 地址(扩展 ACL 用于 IPv6 地址)的路由过滤和重分布(通过路由映射)。 |
||
无客户端 SSL VPN 过滤 |
Webtype |
可以配置 Webtype ACL 以过滤 URL 和目标。 |
ACL 名称
每个 ACL 都有一个名称或数字 ID,如 outside_in、OUTSIDE_IN 或 101。名称限于不超过 241 个字符。请考虑全部使用大写字母,以便在查看运行配置时更方便地查找名称。
制定一个可帮助您识别 ACL 的预期用途的命名约定。例如,ASDM 使用约定 interface-name_purpose_direction,如“outside_access_in”,用于在入站方向应用于“外部”接口的 ACL。
一般来说,ACL ID 为数字。标准 ACL 的范围曾为 1 - 99 或 1300 - 1999。扩展 ACL 的范围曾为 100-199 或 2000-2699。ASA 不会执行这些范围,但若要使用编号,您可能希望遵循这些规则,以便与运行 IOS 软件的路由器保持一致。
访问控制条目顺序
ACL 由一个或多个 ACE 组成。除非明确将 ACE 插入给定行,否则为给定 ACL 名称输入的每个 ACE 都将附加到 ACL 的末尾。
ACE 的顺序非常重要。当 ASA 决定转发数据包还是丢包时,ASA 会按条目的列出顺序对照每个 ACE 检测数据包。找到匹配项后,不再检查更多 ACE。
因此,如果将一条更具体的规则放在一条更通用的规则之后,则该更具体的规则可能永远不会被命中。例如,如果要允许网络 10.1.1.0/24,但要丢弃该子网上来自主机 10.1.1.15 的流量,则拒绝 10.1.1.15 的 ACE 必须排在允许 10.1.1.0/24 的 ACE 之前。如果允许 10.1.1.0/24 的 ACE 排在前面,则将允许 10.1.1.15,并且用以拒绝的 ACE 将永远不会被匹配。
在扩展 ACL 中,使用 access-list 命令上的 line number 参数将规则插入正确位置。使用 show access-list name 命令查看 ACL 条目及其行号以帮助确定要使用的正确行号。对于其他类型的 ACL,必须重新创建 ACL(或最好使用 ASDM)以更改 ACE 的顺序。
允许/拒绝与匹配/不匹配
访问控制条目“允许”或“拒绝”与规则匹配的流量。向用来决定允许流量通过 ASA 还是将其丢弃的功能应用 ACL(例如全局和接口访问规则)时,“允许”和“拒绝”是名副其实的“允许”和“拒绝”。
对于其他功能(例如服务策略规则),“允许”和“拒绝”实际上表示“匹配”或“不匹配”。在这些情况下,ACL 选择的是应接收该功能服务的流量,例如,应用检查或重定向到服务模块。“被拒绝的”流量即为不匹配 ACL 的流量,因而将不会接收该服务。
访问控制隐式拒绝
用于通过型访问规则的 ACL 在末尾有隐式拒绝语句。因此,对于那些应用于接口的流量控制 ACL,如果未明确允许某个类型的流量,则该流量将被丢弃。例如,如果除一个或多个特定地址以外,要允许所有用户通过 ASA 访问网络,则需要拒绝这些特定地址,再允许所有其他地址。
对于控制传入流量的管理(控制平面)ACL,接口的管理规则集末尾没有隐式拒绝。而是由正则访问控制规则对任何未匹配管理访问规则的连接进行评估。
对于用于为某项服务选择流量的 ACL,必须明确“允许”流量;对于该服务,任何未“被允许的”流量都不会被匹配接受服务;“被拒绝的”流量将绕过该服务。
对于 EtherType ACL,ACL 末尾处的隐式拒绝不会影响 IP 流量或 ARP 流量;例如,如果您允许 EtherType 8037,则 ACL 末尾处的隐式拒绝此时将不阻止您先前使用扩展 ACL 允许的任何 IP 流量(或者隐式允许的从较高安全性接口流向较低安全性接口的 IP 流量)。但是,如果通过 EtherType ACE 明确拒绝所有流量,则 IP 和 ARP 流量将被拒绝;仅仍然允许物理协议流量,如自动协商。
使用 NAT 时用于扩展 ACL 的 IP 地址
使用 NAT 或 PAT 时,您将转换地址或端口,通常是在内部和外部地址之间进行映射。如果需要创建适用于已转换的地址或端口的扩展 ACL,则需要确定是要使用实际(未转换)地址或端口,还是要使用已映射地址或端口。具体要求因功能而异。
使用实际地址和端口意味着,如果 NAT 配置更改,则无需更改 ACL。
使用实际 IP 地址的功能
以下命令和功能可以在 ACL 中使用实际 IP 地址,即使接口上所示的地址是映射地址:
-
访问规则(由 access-group 命令引用的扩展 ACL)
-
服务策略规则(模块化策略框架 match access-list 命令)
-
僵尸网络流量过滤器流量分类(dynamic-filter enable classify-list 命令)
-
AAA 规则(aaa ... match 命令)
-
WCCP(wccp redirect-list group-list 命令)
例如,如果已为内部服务器 (10.1.1.5) 配置 NAT,以使该服务器在外部拥有公共可路由的 IP 地址 209.165.201.5,则用于允许外部流量访问内部服务器的访问规则需要引用该服务器的真实 IP 地址 (10.1.1.5),而非映射地址 (209.165.201.5)。
hostname(config)# object network server1
hostname(config-network-object)# host 10.1.1.5
hostname(config-network-object)# nat (inside,outside) static 209.165.201.5
hostname(config)# access-list OUTSIDE extended permit tcp any host 10.1.1.5 eq www
hostname(config)# access-group OUTSIDE in interface outside
使用映射的 IP 地址的功能
以下功能使用 ACL,但是这些 ACL 使用接口上可见的映射值:
-
IPsec ACL
-
capture 命令 ACL
-
每用户 ACL
-
路由协议 ACL
-
所有其他功能 ACL。
基于时间的 ACE
可以将时间范围对象应用到扩展 ACE 和 Webtype ACE,以便规则仅在特定时期内处于活动状态。通过这些类型的规则,可以区分在一天中某些时间点可接受但在其他时间点不可接受的活动。例如,可以在工作时间内提供附加限制,而在下班后或在午餐时间则不限制。相反,基本上可以在非工作时间关闭网络。
您无法创建具有完全相同的协议、源、目标的基于时间的规则,以及不包含时间范围对象的规则服务条件。非基于时间的规则始终会覆盖重复的基于时间的规则,因为它们是冗余。
![]() 注 |
用户可能会在指定结束时间后遇到约 80 至 100 秒的延迟,以使 ACL 处于非活动状态。例如,如果指定的结束时间是 3:50,因为结束时间包含在内,所以将在 3:51:00 与 3:51:59 之间的任何时间点选取命令。选取命令后,ASA 将完成当前正在运行的所有任务,然后使用该命令来停用 ACL。 |