目录

简介

先决条件

要求

使用的组件

背景信息

配置

示例1.使用AnyConnect或VPN客户端的vpn-filter

示例2.使用L2L VPN连接的vpn-filter

VPN过滤器和每用户覆盖访问组

验证

故障排除

简介

本文档详细介绍VPN过滤器并适用于LAN到LAN(L2L)、Cisco VPN客户端和Cisco AnyConnect安全移动客户端。

过滤器由相关规则组成，这些规则基于源地址、目标地址和协议等条件，确定是否允许或拒绝通过安全设备的隧道传输数据包。您可以配置访问控制列表(ACL)以允许或拒绝各种类型的流量。可在组策略、用户名属性或动态访问策略(DAP)上配置过滤器。

DAP取代在用户名属性和组策略下配置的值。如果DAP未分配任何过滤器，用户名属性值将取代组策略值。

先决条件

要求

Cisco 建议您了解以下主题：

- L2L VPN隧道配置

- VPN客户端远程访问(RA)配置

- AnyConnect RA配置

使用的组件

本文档中的信息基于Cisco 5500-X系列自适应安全设备(ASA)版本9.1(2)。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

sysopt connection permit-vpn命令允许通过VPN隧道进入安全设备的所有流量绕过接口访问列表。组策略和每用户授权访问列表仍然适用于数据流。

vpn-filter应用于已解密流量退出隧道之后和在流量进入隧道之前对其进行预加密。用于vpn过滤器的ACL不应也用于接口访问组。

将vpn-filter应用于管理远程访问VPN客户端连接的组策略时，应该在ACL的src_ip位置配置客户端分配的IP地址，在ACL的dest_ip位置配置本地网络。将vpn-filter应用于管理L2L VPN连接的组策略时，应使用ACL的src_ip位置中的远程网络和ACL的dest_ip位置中的本地网络配置ACL。

配置

VPN过滤器必须在入站方向上配置，但规则仍然双向应用。增强功能CSCsf99428已打开以支持单向规则，但尚未计划/承诺实施。

示例1.使用AnyConnect或VPN客户端的vpn-filter

假设客户端分配的IP地址为10.10.10.1/24，本地网络为192.168.1.0/24。

此访问控制条目(ACE)允许AnyConnect客户端Telnet到本地网络：

access-list vpnfilt-ra permit tcp

10.10.10.1 255.255.255.255 192.168.1.0 255.255.255.0 eq 23

注意：ACE access-list vpnfilt-ra permit tcp 10.10.10.1 255.255.255.255 192.168.1.0 255.255.255.0 eq 23还允许本地网络在任何TCP端口（如果它使用源端口23）上发起到RA客户端的连接。

此ACE允许本地网络Telnet至AnyConnect客户端：

access-list vpnfilt-ra permit tcp 10.10.10.1 255.255.255.255

eq 23 192.168.1.0 255.255.255.0

注意：ACE access-list vpnfilt-ra permit tcp 10.10.10.1 255.255.255.255 eq 23 192.168.1.0 255.255.255.0还允许RA客户端在任何TCP端口（如果它使用源端口23）上发起到本地网络的连接。

警告：vpn-filter功能允许仅按入站方向过滤流量，并且自动编译出站规则。因此，当您创建Internet控制消息协议(ICMP)访问列表时，如果您想要定向过滤器，请不要在访问列表格式中指定ICMP类型。

示例2.使用L2L VPN连接的vpn-filter

假设远程网络为10.0.0.0/24，本地网络为192.168.1.0/24。

此ACE允许远程网络通过Telnet连接到本地网络：

access-list vpnfilt-l2l permit tcp 10.0.0.0 255.255.255.0 192.168.1.0

255.255.255.0 eq 23

注意：ACE access-list vpnfilt-l2l permit tcp 10.0.0.0 255.255.255.0 192.168.1.0 255.255.255.0 eq 23还允许本地网络在任何TCP端口（如果它使用源端口23）上发起到远程网络的连接。

此ACE允许本地网络Telnet到远程网络：

access-list vpnfilt-l2l permit tcp 10.0.0.0 255.255.255.0 eq 23

192.168.1.0 255.255.255.0

注意：ACE access-list vpnfilt-l2l permit tcp 10.0.0.0 255.255.255.0 eq 23 192.168.1.0 255.255.255.0还允许远程网络在任何TCP端口（如果它使用源端口23）上发起到本地网络的连接。

警告：vpn-filter功能允许仅按入站方向过滤流量，并且自动编译出站规则。因此，当您创建ICMP访问列表时，如果您想要定向过滤器，请不要在访问列表格式中指定ICMP类型。

VPN过滤器和每用户覆盖访问组

VPN流量不按接口ACL过滤。可以使用no sysopt connection permit-vpn命令更改默认行为。在这种情况下，两个ACL可应用于用户流量：首先检查接口ACL，然后检查vpn-filter。

per-user-override关键字（仅用于入站ACL）允许下载用于用户授权的动态用户ACL，以便覆盖分配给接口的ACL。例如，如果接口ACL拒绝来自10.0.0.0的所有流量，但动态ACL允许来自10.0.0.0的所有流量，则动态ACL会覆盖该用户的接口ACL，并且允许流量。

示例(当未配置sysopt connection permit-vpn时):

- no per-user-override， no vpn-filter — 根据接口ACL匹配流量

- no per-user-override， vpn-filter — 首先根据接口ACL匹配流量，然后根据vpn-filter匹配流量

- per-user-override， vpn-filter — 流量仅与vpn-filter匹配

验证

使用本部分可确认配置能否正常运行。

思科 CLI 分析器（仅适用于注册客户）支持某些 show 命令。要查看对 show 命令输出的分析，请使用思科 CLI 分析器。

- show asp table filter [access-list <acl-name>] [hits]

要调试加速安全路径过滤表，请在特权EXEC模式下使用show asp table filter命令。将过滤器应用于VPN隧道后，过滤器规则将安装到过滤器表中。如果隧道指定了过滤器，则会在加密之前和解密之后检查过滤器表，以确定应该允许还是拒绝内部数据包。

USAGE

show asp table filter [access-list

] [hits]

SYNTAX <acl-name>      Show installed filter for access-list <acl-name>

hits            Show filter rules which have non-zero hits values

- clear asp table filter [access-list <acl-name>]

此命令清除ASP筛选器表条目的命中计数器。

USAGE

clear asp table filter [access-list

]

SYNTAX

<acl-name>      Clear hit counters only for specified access-list <acl-name>

故障排除

本部分提供了可用于对配置进行故障排除的信息。

思科 CLI 分析器（仅适用于注册客户）支持某些 show 命令。要查看对 show 命令输出的分析，请使用思科 CLI 分析器。

注意：使用 debug 命令之前，请参阅有关 Debug 命令的重要信息。

- debug acl filter

此命令启用VPN过滤器调试。它可用于帮助排除VPN过滤器到ASP过滤器表的安装/删除故障。对于示例1. vpn-filter with AnyConnect or VPN Client。

用户1连接时的调试输出：

ACL FILTER INFO: first reference to inbound filter vpnfilt-ra(2): Installing

rule into NP.

ACL FILTER INFO: first reference to outbound filter vpnfilt-ra(2): Installing

rule into NP.
用户2连接时的调试输出（在用户1和同一过滤器之后）：

ACL FILTER INFO: adding another reference to outbound filter vpnfilt-ra(2): refCnt=2

ACL FILTER INFO: adding another reference to inbound filter vpnfilt-ra(2): refCnt=2
用户2断开连接时的调试输出：

ACL FILTER INFO: removing a reference from inbound filter vpnfilt-ra(2): remaining

refCnt=1

ACL FILTER INFO: removing a reference from outbound filter vpnfilt-ra(2): remaining

refCnt=1
用户1断开连接时的调试输出：

ACL FILTER INFO: releasing last reference from inbound filter vpnfilt-ra(2): Removing

rule into NP.

ACL FILTER INFO: releasing last reference from outbound filter vpnfilt-ra(2): Removing

rule into NP.

- show asp table

以下是user1连接之前的show asp table filter输出。仅对IPv4和IPv6在传入和传出方向安装隐式拒绝规则。

Global Filter Table:

in  id=0xd616ef20, priority=11, domain=vpn-user, deny=true

hits=0, user_data=0xd613ea60, filter_id=0x0(-implicit deny-), protocol=0

src ip=0.0.0.0, mask=0.0.0.0, port=0

dst ip=0.0.0.0, mask=0.0.0.0, port=0

in  id=0xd616f420, priority=11, domain=vpn-user, deny=true

hits=0, user_data=0xd615ef70, filter_id=0x0(-implicit deny-), protocol=0

src ip=::/0, port=0

dst ip=::/0, port=0

out id=0xd616f1a0, priority=11, domain=vpn-user, deny=true

hits=0, user_data=0xd614d900, filter_id=0x0(-implicit deny-), protocol=0

src ip=0.0.0.0, mask=0.0.0.0, port=0

dst ip=0.0.0.0, mask=0.0.0.0, port=0

out id=0xd616f6d0, priority=11, domain=vpn-user, deny=true

hits=0, user_data=0xd6161638, filter_id=0x0(-implicit deny-), protocol=0

src ip=::/0, port=0

dst ip=::/0, port=0