很多企业运维人员在配置VPN对接后经常遇到连通性异常、业务访问丢包的问题,很多时候排查时反复核对VPN参数却忽略了防火墙规则的联动影响,本文结合主流企业级防火墙的实际运维场景,梳理VPN与防火墙规则故障定位思路的全流程实操方法,帮运维人员跳过无效试错环节,快速定位根因。

运维人员在机房内开展VPN隧道连通性前置校验工作
第一步:先做VPN隧道基础连通性的前置校验
很多运维排查故障第一反应去改防火墙策略,反而跳过了隧道本身的状态校验,以主流企业级USG系列防火墙为例,登录Web管理后台之后先查看IPsec VPN的隧道监控页面,确认两端的SA协商状态是否正常,要是SA未建立,故障根因大概率和防火墙规则无关,优先排查感兴趣流的匹配、科学上网两端预共享密钥、IKE协商模式的一致性。
如果是SSL VPN场景,先确认VPN用户的接入认证已经通过,用户侧能正常拿到分配的虚拟IP地址,再去排查后续的规则联动问题,这一步的验证标准很简单,在防火墙后台ping对端VPN网关的公网地址,确认公网连通性正常,就可以排除基础链路问题,进入规则相关的故障定位环节。
第二步:校验VPN区域与安全域的放行规则匹配
很多新手运维最容易踩的坑,就是配置完VPN隧道之后,没有在防火墙上单独放通VPN所属安全域的访问权限,常规企业防火墙默认的安全策略是拒绝所有跨域访问的,比如IPsec VPN的对端业务网段属于untrust区域,内网业务区属于trust区域,要是没有配置允许untrust的VPN网段访问trust业务网段的策略,哪怕隧道协商成功也完全无法传输业务流量。
这里要注意区分VPN虚拟接口绑定的安全域和公网物理接口的安全域差异,部分品牌的防火墙默认会把IPsec VPN的隧道接口划分到单独的ipsec区域,需要单独配置该区域和内网域的互访规则,不能直接套用普通公网用户的访问策略,验证的时候可以在防火墙后台开启对应VPN网段的流量日志,尝试从VPN对端发起访问,要是日志直接命中deny的默认策略,就说明是安全域规则缺失导致的故障。
还有一个常见误区是很多运维会把VPN网段加到地址转换的排除列表里,却忘了配置对应的放行策略,导致流量刚做完NAT豁免就被默认策略拦截,排查时不要只看NAT配置是否正确,要同步核对对应流量方向的安全策略优先级。
第三步:排查VPN规则和防火墙会话机制的冲突问题
部分场景下VPN隧道能正常协商,安全策略也配置了全放通,但是业务访问还是断断续续,这时候就要排查防火墙的会话保持、长连接超时规则和VPN流量的适配问题,比如部分SSL VPN的远程办公用户访问内网的数据库业务,科学上网连接建立后长时间没有报文交互,防火墙的默认会话超时时间短于业务的心跳间隔,就会主动把VPN的会话断开,导致业务异常中断。
这一步的验证方法是在防火墙的会话表页面,过滤VPN用户的虚拟IP地址对应的会话条目,观察访问业务IP的会话是否会在没有人工操作的情况下被主动清除,如果会话的剩余存活时间远低于业务要求的长连接保活时间,就需要单独针对VPN网段调整对应服务的会话超时参数。
还有一类常见故障是防火墙开启了状态检测的ASPF规则,对VPN传输的FTP、H.323这类动态端口协议做严格的报文校验,而VPN隧道封装后的报文头部特征和普通公网流量不一样,会被ASPF规则误拦截,这时候只需要针对VPN所属安全域关闭对应协议的ASPF检测,就能恢复业务访问。
第四步:验证VPN路由和防火墙策略的路径一致性
很多多出口防火墙的场景下,运维配置VPN的时候把隧道绑定在A出口的公网接口,但是内网回程到VPN对端网段的路由指向了B出口,流量匹配不到对应的VPN感兴趣流,就会直接从B出口转发到公网,导致业务不通,这时候哪怕所有安全规则都配置正确,流量也无法走VPN隧道传输。
这一步的校验方式是在防火墙上执行路由跟踪,指定源地址为内网业务服务器的IP,目的地址为VPN对端的业务IP,查看流量的下一跳是否指向VPN隧道接口,要是路由跟踪结果显示流量从公网接口直接转发,就说明路由配置错误,需要添加指向VPN对端网段的静态路由,树莓下一跳绑定到对应的VPN隧道接口。
最后排查完成所有配置之后,树莓不要直接让业务用户测试,先在防火墙后台用VPN网段的虚拟IP作为源地址,ping内网或者对端的业务地址,确认流量能正常匹配放行策略、会话建立成功,再逐步放开业务访问权限,避免大范围影响正常办公网络。


