简介
本文档详细介绍VPN过滤器并适用于LAN到LAN(L2L)、Cisco VPN客户端和Cisco安全客户端。
先决条件
要求
Cisco 建议您了解以下主题:
- L2L VPN隧道配置
- VPN客户端远程访问(RA)配置
- AnyConnect RA配置
使用的组件
本文档中的信息基于Cisco 5500-X系列/Cisco Firepower系列自适应安全设备(ASA)版本9.1x。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
过滤器由相关规则组成,这些规则基于源地址、目标地址和协议等条件,确定是否允许或拒绝通过安全设备的隧道传输数据包。您可以配置访问控制列表(ACL),以允许或拒绝各种类型的流量。可在组策略、用户名属性或动态访问策略(DAP)上配置过滤器。
DAP会取代在用户名属性和组策略下配置的值。如果DAP未分配任何过滤器,则username属性值将取代组策略值。
sysopt connection permit-vpn命令允许通过VPN隧道进入安全设备的所有流量绕过接口访问列表。组策略和每用户授权访问列表仍然适用于数据流。
vpn-filter应用于已解密流量退出隧道之后和在流量进入隧道之前对其进行预加密。用于 vpn-filter 的 ACL 不得再用于接口访问组。
将vpn-filter应用于管理远程访问VPN客户端连接的组策略时,必须使用客户端分配的IP地址配置该ACL的src_ip位置和ACL的dest_ip位置的本地网络。将vpn-filter应用于管理L2L VPN连接的组策略时,ACL必须配置远程网络在ACL的src_ip位置,本地网络在ACL的dest_ip位置。
配置
VPN过滤器必须在入站方向上配置,但规则仍然双向应用。
示例1.使用SecureClient或VPN Client的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至安全客户端:
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匹配
验证
使用本部分可确认配置能否正常运行。
- 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>
故障排除
本部分提供了可用于对配置进行故障排除的信息。
注意:使用 debug 命令之前,请参阅有关 Debug 命令的重要信息。
- debug acl filter
此命令启用VPN过滤器调试。它可用于帮助排除VPN过滤器到ASP Filter表的安装/删除故障。对于示例1.使用AnyConnect或VPN客户端的vpn-filter。
用户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