别急着抄官方文档
上周帮一个客户救火。他们的 GlobalProtect 部署了三个月,用户天天骂,IT 团队快被逼疯。症状?连上了但啥也打不开,或者根本连不上。
我上去一看配置——标准的“照着文档抄”风格。门户、网关、证书全配了,但就是不好使。
这玩意儿我踩坑踩了五年,今天把那些官方文档不会告诉你的东西倒出来。
认证配置:别把鸡蛋放一个篮子里
证书 vs SAML vs LDAP
官方说“最佳实践是用公共 CA 签名的证书”。这话没错,但只说了一半。
看这个配置:
# 门户设置
set shared portal GlobalProtect-Portal authentication authentication-profile GP-Auth
set shared portal GlobalProtect-Portal authentication authentication-profile GP-Auth allow-list enable yes
# 认证配置文件
set shared authentication-profile GP-Auth method certificate
set shared authentication-profile GP-Auth method cloud-identity-engine
看到问题了吗?只配了证书。用户证书过期了怎么办?直接翻车。
我现在的做法是双因子认证——证书 + SAML。证书做第一层,SAML 做第二层。这样即使证书有问题,用户还能通过 SAML 登录。
认证超时陷阱
这玩意坑了我两次。默认的认证超时是 30 秒。如果你的 IdP 响应慢一点(比如 Azure AD 偶尔抽风),用户就看着“正在连接”转圈然后失败。
# 调大超时
set shared portal GlobalProtect-Portal agent auth-timeout 60
调到 60 秒,世界安静了。
隧道模式:官方说不要 split tunnel,但我偏要
Reddit 上有人说了句大实话:“Pan doesn’t recommend split tunnel, but i do when your users use their private devices.”
官方推荐全隧道(full tunnel),把用户所有流量都通过 VPN 走。安全吗?安全。但用户体验?烂到家。
特别是那些用私人设备的用户——他们想上 Netflix、看 YouTube,结果流量全走公司 VPN,延迟爆炸,IT 部门被骂成狗。
我一般这么配:
# 隧道设置 - 仅公司流量走 VPN
set shared gateway GlobalProtect-Gateway tunnel split-tunnel include-domains "*.corp.company.com"
set shared gateway GlobalProtect-Gateway tunnel split-tunnel include-domains "10.0.0.0/8"
set shared gateway GlobalProtect-Gateway tunnel split-tunnel exclude-domains "0.0.0.0/0"
关键点:include 列表要精准。别偷懒写个 0.0.0.0/0 再 exlude,那等于全隧道。
HIP 检测:别让 BYOD 变成 BYOD (Bring Your Own Disaster)
HIP (Host Information Profile) 是 GlobalProtect 最被低估的功能。
我见过一个客户的配置——所有设备都能连,包括个人笔记本上的盗版 Windows 7。结果呢?勒索病毒从 VPN 用户直接打进内网。
看看这个 HIP 配置:
# HIP 对象 - 必须安装防病毒
set shared hip-object Must-Have-AV criteria antivirus-product package-name "CrowdStrike Falcon"
set shared hip-object Must-Have-AV criteria antivirus-product package-name "Symantec Endpoint Protection"
set shared hip-object Must-Have-AV criteria antivirus-product package-version greater-equal "14.0"
# HIP 配置文件 - 不符合就隔离
set shared hip-profiles Block-No-AV match all
set shared hip-profiles Block-No-AV match hip-object Must-Have-AV
set shared hip-profiles Block-No-AV action deny
但别配太死。我见过有人配了“必须安装特定版本”,结果用户更新软件后版本号变了,直接被踢下线。
最佳实践:版本号用 greater-equal 而不是 equal,留点容错空间。
网关和门户:同一个接口?可以,但有代价
官方文档说:“If you configure a gateway and portal on the same interface, we recommend that you…”
说实话,小公司这么做没问题。但规模上来了,你会在日志里看到一堆 portal-gateway conflict 的报错。
我建议:
| 规模 | 配置方式 | 说明 |
|---|---|---|
| < 500 用户 | 同一接口 | 简单,维护成本低 |
| 500-2000 用户 | 分开接口 | 避免冲突,便于排错 |
| > 2000 用户 | 多网关集群 | 负载均衡 + 高可用 |
证书管理:公共 CA vs 内部 CA
这又是一个官方说一套、实际做一套的地方。
公共 CA 签名证书:贵,但省心。用户设备上不需要额外装根证书。
内部 CA 签名证书:免费,但要管理 PKI 基础设施。最坑的是——用户设备上必须装你的根证书,否则连不上。
我踩过最大的坑:内部 CA 根证书过期了,所有 VPN 用户同时掉线。那天我手机被打爆了。
现在我用 Let’s Encrypt。免费,自动续期,公共信任。配置起来也不复杂:
# 配置 ACME 自动续签
set shared certificate-profile GlobalProtect-Cert profile-type acme
set shared certificate-profile GlobalProtect-Cert acme email admin@company.com
set shared certificate-profile GlobalProtect-Cert acme domain vpn.company.com
那些没人告诉你的事
1. 连接失败?先看日志
用户说“连不上”,90% 的情况是 DNS 解析问题。GlobalProtect 对 DNS 极其敏感。
# 检查 DNS 解析
dig vpn.company.com
# 看客户端日志 (Windows)
%ProgramData%\PaloAltoNetworks\GlobalProtect\PanGPA\PanGPA.log
2. 别用默认端口
默认的 443 端口被各种扫描器盯着。换个端口,能挡住 90% 的自动化攻击。
set shared gateway GlobalProtect-Gateway portal port 8443
3. 用户设备上的 GlobalProtect 版本
用户设备上装的是旧版 GlobalProtect?等着出问题吧。新版本修复了无数连接相关的 bug。
# 强制更新客户端
set shared portal GlobalProtect-Portal agent upgrade-check-interval 60
set shared portal GlobalProtect-Portal agent force-upgrade yes
总结表:GlobalProtect 最佳实践速查
| 配置项 | 官方推荐 | 我的推荐 | 原因 |
|---|---|---|---|
| 认证方式 | 单因子 | 双因子 (证书 + SAML) | 单因子挂了就全挂 |
| 隧道模式 | 全隧道 | 分隧道 (精准 include) | 用户体验优先 |
| 证书来源 | 公共 CA | Let’s Encrypt | 免费 + 自动续签 |
| 网关/门户 | 同一接口 | 分开接口 (500+用户) | 避免冲突 |
| HIP 检测 | 可选 | 必须 | 防 BYOD 灾难 |
| 认证超时 | 30s | 60s | 给 IdP 留余量 |
| 升级策略 | 手动 | 强制 | 少接投诉电话 |
FAQ
GlobalProtect VPN 到底好不好用?
看你怎么配。配好了很稳,配砸了天天被骂。比 AnyConnect 好在和 Palo Alto 生态集成度高,坏在学习曲线陡。
怎么配置 GlobalProtect VPN?
三步走:门户配置(认证 + 客户端设置)→ 网关配置(隧道参数 + 安全策略)→ 证书配置。别跳步骤,跳一步后面翻车。
GlobalProtect 是用 SSL 还是 IPSec?
都支持。默认是 SSL (TLS),也可以切到 IPSec。我建议用 SSL,兼容性好,防火墙穿透更容易。
为什么 GlobalProtect 连接失败?
最常见的原因:DNS 解析失败、证书不信任、认证超时、客户端版本太旧。先看日志,别瞎猜。
最后说一句:GlobalProtect 这东西,配置文档写得跟天书似的。别照着文档一字不差地抄,理解每行配置在做什么,才是正道。