AWS 上配置 Paloalto GlobalProtect
本篇文档介绍了在 AWS 上配置 Palo Alto GlobalProtect VPN 的完整流程。内容包括实例启动和初始化、防火墙接口配置、证书创建、认证方式设置、区域和地址池的建立、VPN 网关和门户的配置、客户端安装和连接测试、安全策略及 NAT 配置、保留客户端原始 IP 地址的 Ghost Pool 方法,以及主机信息收集(HIP)与授权许可的应用。
实验拓扑
![](https://img-blog.csdnimg.cn/img_convert/c13b31b4313d123c012bfcf7d10f8c7e.png)
一、AWS 启动 Paloalto 实例
实例启动较慢,大约需要 10 分钟才能通过SSH登录。这里选择PAYG
类型的实例(pay-as-you-go),实例启动后带有Paloalto的授权许可。
![](https://img-blog.csdnimg.cn/img_convert/a8609b722e382233a2c1141325c7e4a9.png)
实例设置两块网卡时,需要禁用自动分配公有 IP 功能。只有一块网卡时,才会自动分配公有 IP。
Paloalto 实例默认的第一个接口(索引标识为 0)是防火墙的管理接口,第二个网卡(索引标识为 1)是防火墙的 e1/1 接口。
我提前提前配置了安全组,放行当前公网 IP 的所有流量。管理接口需放行 SSH 和 HTTPS 流量,VPN 接口需放行面向互联网的 HTTPS 流量。
![](https://img-blog.csdnimg.cn/img_convert/56702650a3fcef56dad946aeca9829de.png)
添加第二个网络接口,默认为防火墙的e1/1数据接口。
![](https://img-blog.csdnimg.cn/img_convert/078e6146e24fe55be334fbe45b630922.png)
为防火墙实例分配两个弹性 IP 地址,管理接口的公网 IP 用于 SSH 和 HTTPS 登录配置,数据接口的公网 IP 用于 VPN 拨入。
![](https://img-blog.csdnimg.cn/img_convert/f49922049e53e4a31d29296bee66cc93.png)
二、Paloalto 实例初始化
使用用户名 admin
和密钥登录防火墙,然后修改 admin 的密码,并 commit
提交。
Welcome admin.
admin@PA-VM> configure
Entering configuration mode
[edit]
admin@PA-VM# set mgt-config users admin password
Enter password :
Confirm password :
[edit]
admin@PA-VM# commit
Commit job 2 is in progress. Use Ctrl+C to return to command prompt
.........55%75%98%..............100%
Configuration committed successfully
[edit]
admin@PA-VM#
设置防火墙 e1/1 数据接口,放行 ping、https 等管理流量,设置接口为 DHCP 自动获取 IP 地址,关联 default 虚拟路由器,关联到 untrust zone。
注意:生产环境中,VPN 拨入接口不要允许 HTTP、HTTPS、Telnet 或 SSH 协议,因为 VPN 接口面向互联网开放,可能造成安全隐患。
set network profiles interface-management-profile MgtProfile http yes
set network profiles interface-management-profile MgtProfile https yes
set network profiles interface-management-profile MgtProfile ssh yes
set network profiles interface-management-profile MgtProfile ping yes
set network interface ethernet ethernet1/1 layer3 interface-management-profile MgtProfile
set network interface ethernet ethernet1/1 layer3 dhcp-client
set network virtual-router default interface ethernet1/1
set zone untrust network layer3 ethernet1/1
commit
通过管理接口的公网 IP 登录防火墙。如果遇到浏览器证书报错或无法登录,尝试清空缓存重试或使用无痕窗口登录,使用初始化设置的密码。
![](https://img-blog.csdnimg.cn/img_convert/c9f31f6e3a97c903cb894436c6790a8b.png)
三、Paloalto 配置 GlobalProtect
3.1 Portal 与 Gateway
GlobalProtect Portal 提供集成设施的管理功能,为客户端提供配置信息,包括 Gateway 信息以及所需证书。此外,Portal 还提供 GlobalProtect 客户端软件下载页面。GlobalProtect Gateway 则与客户端之间建立加密隧道。
在大多数场景下,Portal 和 Gateway 都运行在同一台防火墙上。当公司在全国或者全球有多个数据中心,可以配置多个 Gateway,可以自动选择延迟最低的 Gateway节点作为流量转发。这个场景下,配置一个 Portal 作为客户端的初始连接点,并在不同数据中心配置多个 Gateway。客户端上的 GlobalProtect 首先会与 Portal 连接,获取配置文件并查看可用的 Gateway 节点,然后根据配置的优先级和延时自动选择合适的 Gateway 建立连接。
3.2 创建证书
在开始配置之前,以下是配置步骤的总结,以避免遗漏:
启动 AWS 上的 Paloalto PAYG 类型实例。
初始化 Paloalto 实例,设置 admin 密码,配置数据接口,并关联弹性 IP 地址。
证书配置:创建根证书并签发 VPN 证书,将根证书导入到客户端。
SSL 配置:设置 TLS 协议版本。
认证配置:创建本地用户和认证配置文件。
创建区域和 tunnel 接口:将接口加入区域,并创建 VPN 地址池。
创建 Gateway:指定服务接口,关联认证、隧道和地址池,配置隧道分割和 DNS 服务器。
创建 Portal:指定服务接口,关联认证并配置代理(指定 Gateway 和证书)。
下载并激活 GlobalProtect 客户端。
配置安全策略及 NAT:放行 VPN 区域的流量,并将流量源地址转换为防火墙的出接口地址。
测试:通过 Portal 下载客户端并连接,测试内网连通性。
测试 Ghost Pool 方式的连通性。
通过以上步骤,您可以在 AWS 环境中高效
在 “Device”-“证书管理”-“证书” 下,创建根证书,名称为 VPN-Root-CA
,勾选 “证书授权办法机构”,点击生成证书。
![](https://img-blog.csdnimg.cn/img_convert/45f40e7492ae08e5739ef717ab3b436c.png)
利用生成的根证书签发 VPN 证书,并在证书中添加 IP 属性,填写防火墙数据接口的公网 IP 地址。
![](https://img-blog.csdnimg.cn/img_convert/2477a18164b07c22fa27c5f128c93fe0.png)
导出根证书。
![](https://img-blog.csdnimg.cn/img_convert/2cf9221b24e395e590d785a693d71e04.png)
安装根证书到个人电脑。
![](https://img-blog.csdnimg.cn/img_convert/790f896b1395dc5fc64bf8e7eeba16af.png)
导入到“受信任的根证书颁发机构”中。
![](https://img-blog.csdnimg.cn/img_convert/4f5006013fc91670ea084d07cd08ae13.png)
创建 SSL/TLS 服务配置文件,调用创建的 VPN 证书,设置 TLS 协商的最低版本为 TLSv1.1 以上,禁用 TLSv1.0。
![](https://img-blog.csdnimg.cn/img_convert/f82a9996002d3ba8a3f3a166ce75f525.png)
3.3 认证方式
创建本地用户用于 VPN 拨号认证。
![](https://img-blog.csdnimg.cn/img_convert/d01c64f1bbf0c94d089d0546f1b93027.png)
创建认证配置文件,名称为 gp_vpn_auth_profile
。
![](https://img-blog.csdnimg.cn/img_convert/7e6f15799b1d0e7f45c0f82e937b8774.png)
在 “高级” 设置中只允许创建的用户认证。
![](https://img-blog.csdnimg.cn/img_convert/a5fd60201cdcbee6ebcfb09cbee361f8.png)
3.4 创建区域、tunnel接口、地址池
在 “Network”-“区域” 下,创建一个新的区域,名称为 GP-VPN
,类型为第三层,后续的 tunnel 接口会加入该区域。
勾选 “启用用户标识”,即 User-ID,在用户认证后,将用户与 IP 地址映射到防火墙中,便于监控和控制网络流量。
![](https://img-blog.csdnimg.cn/img_convert/b27a5abfa036b875aaf841cc22e86db9.png)
创建 tunnel 接口,指定用户 VPN 流量通过 tunnel 接口进入。
![](https://img-blog.csdnimg.cn/img_convert/27af8757a89803b3607bafa75da5d3a8.png)
创建 VPN 地址池,拨号后分配给客户端。
![](https://img-blog.csdnimg.cn/img_convert/43b1350f0bec1355338e735772b21623.png)
3.5 创建VPN Gateway
在 “Network”-“GlobalProtect”-“网关”-“常规” 下,创建名称为 GP_VPN_GW
的网关,关联 e1/1 接口,勾选记录 SSL 握手成功的日志。
![](https://img-blog.csdnimg.cn/img_convert/5e78b0b43062540e28e27dfc444bcc0f.png)
在 “Network”-“GlobalProtect”-“网关”-“身份验证” 下,调用前面创建的 SSL/TLS 配置文件。添加 “客户端身份验证”,名称为 gp_vpn_gw_client
,调用前面创建的身份验证配置文件。
![](https://img-blog.csdnimg.cn/img_convert/ce4a0f72fa7eaddd102c1823f1c981f6.png)
配置 “代理”-“隧道设置”,启用 “隧道模式”,调用前面创建的隧道接口 tunnel.1
,取消勾选 “启用 IPsec”,使用 TLS 加密。除非需要动态路由,否则隧道接口上不需要 IP 地址。
![](https://img-blog.csdnimg.cn/img_convert/f09dd3980b774508ac3f971bf8365ade.png)
配置 “代理”-“客户端设置”,添加配置文件,名称为 gp_client_config
。
![](https://img-blog.csdnimg.cn/img_convert/5c06a8a75bafdfefc615ec02cf60b7ad.png)
选择 “IP 池”,调用前面创建的 VPN 地址池,地址范围为 192.168.1.0/24。
![](https://img-blog.csdnimg.cn/img_convert/fc09953e8c16f49db858ae77f22c31d0.png)
配置隧道分割,即只有当客户端去往 172.31.0.0/16 网段时,流量才会进入 VPN 通道。
![](https://img-blog.csdnimg.cn/img_convert/8b831f71614c8c075e9b75c848d6f15f.png)
配置推送的 DNS 服务器,客户端拨号后,在客户端上会有去往 DNS 服务器的主机路由,DNS 流量会经过 VPN 隧道。
![](https://img-blog.csdnimg.cn/img_convert/1faae18d60fcc1b805051303e54904c3.png)
这里可以设置VPN客户端的超时时间等配置。
![](https://img-blog.csdnimg.cn/img_convert/783484555dcaf18f56e989e1cc3da3be.png)
3.6 创建VPN portals
创建 GlobalProtect 门户(Portal),配置名称为 gp_vpn_portal
,关联 e1/1 接口。
![](https://img-blog.csdnimg.cn/img_convert/1895d750b8e0b5ca5288ef2764cb13fd.png)
配置身份验证,调用前面创建的 SSL/TLS 配置文件,创建客户端身份验证,依然调用前面创建的身份验证配置文件。
![](https://img-blog.csdnimg.cn/img_convert/9ea27c36ed7c83a32c5e8091a523d51b.png)
配置 “代理”,创建 Agent 配置文件。
![](https://img-blog.csdnimg.cn/img_convert/8dcaf3f1a9ac9b0a65ebd973fab0426d.png)
在 “外部” 设置中,配置外部网关,用户拨入时首先联系 Portal,由 Portal 分配可用的网关。如果有多个网关,可以根据 IP 地址段和国家设置网关优先级。
![](https://img-blog.csdnimg.cn/img_convert/5291628f253b551541898e480ad6bbb4.png)
在 “代理” 下,添加关联前面创建的根证书。
![](https://img-blog.csdnimg.cn/img_convert/4871cb5b4957396e64439478038eff8d.png)
3.7 下载激活 GlobalProtect
下载最新版本的GlobalProtect客户端。
![](https://img-blog.csdnimg.cn/img_convert/3c597a2e435c8f0bccaa8929ce12c3ee.png)
激活GlobalProtect客户端。
![](https://img-blog.csdnimg.cn/img_convert/3d989d9279637c8dd299d63812710aed.png)
四、安全策略及NAT配置
在 “Policies”-“安全” 下,创建新的安全规则,名称为 GP_VPN_To_Any
。
![](https://img-blog.csdnimg.cn/img_convert/097bb51784f0dd125da283638227f9b4.png)
源限制为 GP-VPN 区域的 VPN 地址池
![](https://img-blog.csdnimg.cn/img_convert/7fbb492ffab858a510205a521bc06790.png)
目的去往 any。
![](https://img-blog.csdnimg.cn/img_convert/f67ce5443221490f7b7544f72fa639bf.png)
查看放行的安全策略。
![](https://img-blog.csdnimg.cn/img_convert/52bd1af83d28bceef9e2d41b66623a75.png)
配置 NAT,将来自 VPN 地址池的源 IP 地址转换为防火墙 e1/1 出接口地址。
![](https://img-blog.csdnimg.cn/img_convert/72af7b5f411a7cd78aa86b0a74079abb.png)
定义原始数据包,来自 GP-VPN
区域,目标区域为 untrust
,源地址为 VPN 地址池。
![](https://img-blog.csdnimg.cn/img_convert/b5f9dbd4528928db35f6527681a311c6.png)
配置转换后的数据包,将源地址动态转换为防火墙的 e1/1 接口地址。
![](https://img-blog.csdnimg.cn/img_convert/d99d260e7234fee4fe61b94b20590116.png)
查看PAT配置。
![](https://img-blog.csdnimg.cn/img_convert/d6636c8667d0548d1d7e2255ccd52194.png)
提交配置。
![](https://img-blog.csdnimg.cn/img_convert/674d20a4f334ec966b0f413807335f5a.png)
五、测试
在浏览器地址栏输入防火墙的数据接口公网 IP 地址,访问 Paloalto GlobalProtect Portal 页面。输入防火墙配置的本地用户名和密码。
![](https://img-blog.csdnimg.cn/img_convert/44c7cae38b0c853c3e6e3c3668d93f34.png)
下载对应的GlobalProtect客户端。
![](https://img-blog.csdnimg.cn/img_convert/125a967a595673c2d5b7d24d25be872d.png)
安装 GlobalProtect 客户端后,输入防火墙的公网 IP 地址,进行 VPN 拨入。
![](https://img-blog.csdnimg.cn/img_convert/e152d4a43f9b6ba90013961cd144a5ac.png)
输入用户名和密码。
![](https://img-blog.csdnimg.cn/img_convert/d7f04f71444e12d2947c6abca9477900.png)
拨入后,查看“设置”。
![](https://img-blog.csdnimg.cn/img_convert/d71d082b07b6d649933b92301e39d7dd.png)
查看连接状态。
![](https://img-blog.csdnimg.cn/img_convert/69ab1fe8d4ba47f43a0b7e9a73b73c09.png)
在 Paloalto 防火墙所在 VPC 新建一个 EC2,模拟内部服务器,查看内网地址。
![](https://img-blog.csdnimg.cn/img_convert/1c949ab4507c8be1841cf1b12445d83a.png)
VPN 拨号后,ping 测试内部地址。
![](https://img-blog.csdnimg.cn/img_convert/5b9e12bed607aca6dffa803cf40108b2.png)
在防火墙上查看 ping 流量。
![](https://img-blog.csdnimg.cn/img_convert/eb639114c729a21264d459a7a00573f0.png)
查看 GlobalProtect 的拨号记录。
![](https://img-blog.csdnimg.cn/img_convert/da52ba3f424746f7d81fd8f9c6f95068.png)
在客户端上查看路由表,去往 DNS 服务器的主机路由和去往 172.31.0.0/16 网段的流量通过 192.168.1.1。
C:\>route print
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
8.8.8.8 255.255.255.255 在链路上 192.168.1.1 1
114.114.114.114 255.255.255.255 在链路上 192.168.1.1 1
172.31.0.0 255.255.0.0 在链路上 192.168.1.1 1
172.31.255.255 255.255.255.255 在链路上 192.168.1.1 257
192.168.1.1 255.255.255.255 在链路上 192.168.1.1 257
255.255.255.255 255.255.255.255 在链路上 192.168.1.1 257
查看客户端的网卡信息,拨号后创建虚拟网卡,去往 VPN 的流量会送到该网卡进行加密封装。
![](https://img-blog.csdnimg.cn/img_convert/7b316350e51873a12f8cf4fa394e3b99.png)
抓包这个虚拟网卡的流量,可以看到加密前的流量。
![](https://img-blog.csdnimg.cn/img_convert/0e40a108f8af6de537438b37b733b598.png)
抓包本地连接的出口网卡,只能看到TLS加密流量。
![](https://img-blog.csdnimg.cn/img_convert/631185c106bed983899286eab7a979f9.png)
六、Ghost Pool 保留客户端原始IP地址
防火墙使用 NAT 转换客户端的源 IP 地址,是快速解决路由问题的方法,但后台服务器无法看到客户端的原始 IP 地址,只能看到防火墙的地址。为了让后端服务器查看到原始客户端 IP 地址,可以通过配置路由解决 VPN 路由问题。这种方式称为 “Ghost Pool”。
客户端分配地址为 192.168.1.0/24,在 AWS 上需要解决服务器到该网段的流量送到 Paloalto 防火墙的 e1/1 数据口。因为客户端地址池网段在 AWS VPC 中并不存在,所以称这种方式为 “Ghost Pool”。
在后端服务器所在子网的路由表中,添加去往 192.168.1.0/24 网段的流量,指向防火墙的 e1/1 接口。
![](https://img-blog.csdnimg.cn/img_convert/4625bb1a959f82b7d408a8f8db6681bb.png)
因为Paloalto防火墙需要转发流量,所以需要关闭“源/目标检查”。使用NAT方式时,不用关闭这个特性。
![](https://img-blog.csdnimg.cn/img_convert/cb675a250ee3fe62ae71980f8619b5df.png)
停止检测“源/目标检查”。
![](https://img-blog.csdnimg.cn/img_convert/1ebb8503ad5bdcb30f4cd21c5d92471c.png)
禁用防火墙上的NAT配置。
![](https://img-blog.csdnimg.cn/img_convert/7727be8b0b1dd0d0a13dbc64def08bf5.png)
客户端 ping 后端服务器测试,当禁用 NAT 并 commit 后,客户端无法与后端服务器通信。当添加路由和关闭“源/目标检查”后,又可以进行连通。
![](https://img-blog.csdnimg.cn/img_convert/dd91964a47f7f72727b6993a59cb7e24.png)
七、主机信息收集(HIP)与授权许可
在 AWS 上启动 EC2 时选择 PAYG
(pay-as-you-go)类型的实例,实例启动后带有 Paloalto 的授权许可。查看许可,如果选择 BYOL(Bring-Your-Own-License),则需自行导入 License。
![](https://img-blog.csdnimg.cn/img_convert/6fe0ab7e947b9fda62582468ca861382.png)
VPN 拨入时,根据客户端状态进行授权,需要使用 HIP(Host Information Profile)Checks 功能。启用 Gateway 功能的防火墙需对应许可,以下列出哪些功能需要 Gateway License。
想要检测主机的HIP信息,需要先在Object中定义HIP对象。
![](https://img-blog.csdnimg.cn/img_convert/f9044ba294f7def19db1c10b34fe6166.png)
然后在“网关”-“代理”-“HIP通知”中调用。
![](https://img-blog.csdnimg.cn/img_convert/50ff53247237a4fc718cec4166aba440.png)
八、文档链接
-
Paloalto GlobalProtect Docs:https://docs.paloaltonetworks.com/globalprotect/10-1/globalprotect-admin/globalprotect-overview/about-the-globalprotect-components -
Palo Alto Global Protect VPN Configuration Example:https://www.packetswitch.co.uk/palo-alto-global-protect-vpn-configuration-example/