Palo Alto 下一代防火墙:从区域到安全策略的配置思路

Palo Alto 下一代防火墙:从区域到安全策略的配置思路

Palo Alto Networks 的下一代防火墙(NGFW)不只是开放或关闭端口。它会识别每个连接背后的应用、发起连接的用户以及连接内的内容,然后对这些内容分别应用策略。本文按你实际会遇到的顺序讲解配置:网络规划、首次访问、接口与区域、安全策略、NAT、安全配置文件、解密、远程接入以及监控。每个部分都配有图示或检查清单,让你在接触设备之前就能理解设计思路。

需要准备的东西

你需要了解基本的 IP 地址和子网划分,以及路由器和交换机的作用。如果已读过本站的 CCNA 级文章,会更容易理解。练习步骤需要实验环境或测试设备,至少需要厂商提供的实验镜像或模拟器。请只在你拥有或获准配置的设备上操作;没有书面计划和回滚方案时,不要更改生产环境的防火墙。

示意图

典型的部署:互联网连接到 untrust 区域,防火墙位于中间,trust 区域包含办公室局域网,DMZ 区域放置对外公开的服务器
典型的部署:互联网连接到 untrust 区域,防火墙位于中间,trust 区域包含办公室局域网,DMZ 区域放置对外公开的服务器

知识点 1: 下一代防火墙能做什么

传统防火墙根据源和目的 IP 地址以及端口号做决定。但现在许多应用,例如网页浏览器和视频通话,都使用 443 端口或其他常见端口,仅靠这些已经不够。NGFW 会读取流量本身,并根据流量是什么、由谁发出、携带什么内容来决定。

防火墙处理数据包的方式:App-ID、User-ID 和 Content-ID 与安全策略进行比对,然后执行配置文件
防火墙处理数据包的方式:App-ID、User-ID 和 Content-ID 与安全策略进行比对,然后执行配置文件

传统防火墙与 NGFW 的区别

只看端口的防火墙会放行所有 443 端口的流量。而 NGFW 可以允许浏览器访问新闻网站,同时阻止同样使用 443 端口的文件共享应用。这是因为它在第 7 层识别应用,而不是只相信端口号。

三个识别能力:App-ID、User-ID、Content-ID

App-ID 识别应用,例如某个视频通话应用,即使它隐藏在 HTTPS 中也能识别。User-ID 把 IP 地址映射到目录中的用户或用户组,因此规则可以写成“销售部”,而不必写成某个 IP 范围。Content-ID 检查数据载荷中的威胁、恶意文件、数据泄露以及 URL 分类。

在网络中的位置

防火墙通常位于互联网路由器和内部网络之间。跨区域的每个数据包都会经过它。如果放错位置,例如放在隐藏了真实源地址的 NAT 设备后面,User-ID 和日志的作用就会大打折扣。

知识点 2: 配置前先做规划

大多数防火墙问题源于设计不清晰,而不是设备本身。在打开 Web 界面之前,先写下要保护的网络、希望允许的流量,以及构建的顺序。

画出部署示意图

画出互联网链路、防火墙、内部局域网,以及放置公网服务器的 DMZ。给每个接口标注区域和 IP 地址。这样一张简单的图,是整个项目中最有用的文档,因为它能告诉你每条规则应该放在哪里。

编写 IP 与区域规划

对每个接口记录区域(例如 untrust、trust、dmz)、IP 地址和掩码、默认网关以及用途。把规划放在同一份文档中。以后要修改地址时,如果知道哪些规则和 NAT 条目依赖它,就会容易得多。

列出所需的流量

用通俗的语言写下每一条必要的流量,例如“员工可以通过网页和 HTTPS 访问互联网”“互联网只能通过 HTTPS 访问 Web 服务器”“分支机构通过 VPN 连接总部”。每一句都会成为一条安全规则,清单之外的一切都会被拒绝。

规划回滚

在第一次修改之前,保存配置的副本,并记下如何恢复。对会影响正在运行流量的更改,安排维护时间窗口,并通知会受影响的用户。

知识点 3: 首次访问与初始配置

新防火墙在能够保护任何东西之前,需要管理地址、安全的管理员账户,以及许可证和内容更新。不同 PAN-OS 版本的菜单名称有所不同,请以你所用版本的文档为准。

连接管理接口

用网线把电脑连接到管理口,并为电脑设置与管理接口位于同一网络中的 IP 地址。使用厂商指南中给出的地址打开 Web 界面。默认账户只使用一次,之后立即修改密码,并为每个人创建具名的管理员账户。

设置主机名、时间和 DNS

为设备设置清晰的主机名,例如 fw-hq-01。设置正确的时区和 NTP 服务器,因为日志和证书都依赖准确的时间。设置 DNS 服务器,使设备能够检查更新并解析域名。

许可证、更新与内容

激活已购买的订阅许可证,然后下载最新的软件版本,以及威胁、应用和 URL 数据库的更新。按照厂商推荐的顺序安装,并阅读版本说明。过期的威胁数据库是漏检攻击的常见原因。

限制谁能管理防火墙

只允许从专用管理子网进行管理访问,并在面向互联网的接口上关闭管理功能。使用强认证,在可能的情况下,管理员登录使用外部目录或双因素认证。

设备配置: 设置管理地址、时间和管理员账户

为防火墙设置名称、管理地址和网关、DNS 与 NTP 服务器以及时区。只允许管理子网进行管理访问,创建具名的 superuser,并附说明地提交。然后检查系统信息并下载最新的内容更新。

# PAN-OS CLI: first access, management settings and updates
configure
set deviceconfig system hostname fw-hq-01
set deviceconfig system ip-address 192.168.1.10 netmask 255.255.255.0 default-gateway 192.168.1.1
set deviceconfig system dns-setting servers primary 8.8.8.8
set deviceconfig system timezone Asia/Bangkok
set deviceconfig system ntp-servers primary-ntp-server ntp-server-addr pool.ntp.org
set deviceconfig system permitted-ip 192.168.1.0/24
set mgt-config users netadmin permissionrole superuser
set mgt-config users netadmin password
commit description "initial setup"
exit
# Operational mode: check and update content
show system info
request content upgrade check
request content upgrade download latest
request content upgrade install version latest

知识点 4: 接口、区域与路由

接口是带有 IP 地址的物理端口。区域是共享同一信任级别的接口的命名分组。安全策略是在区域之间编写的,而不是在接口之间,因此区域是防火墙设计中最重要的选择。

三层接口

为每个数据端口设置 IP 地址、掩码和一个虚拟路由器(virtual router),然后把端口分配到某个区域。虚拟路由器保存其所属接口的路由表。小型部署通常只需要一个虚拟路由器。

标准区域

常见设计使用三个区域。untrust 区域面向互联网,视为不可信。trust 区域放置内部用户,视为安全但不完全信任。DMZ 放置互联网需要访问的公网服务器,并与内网隔离,这样被攻破的服务器就不能随意访问 trust 区域。

去往互联网并返回的路由

设置指向互联网路由器的默认路由,并为位于其他路由器后面的内部网络添加静态路由或动态协议。确认返回流量有回程路由,因为防火墙会丢弃无法路由的流量。在添加任何策略之前,从各区域执行 ping 测试,可以确认路由是否正确。

区域保护

每个区域都可以设置保护选项,例如对洪泛和扫描的限制,在检查策略之前就阻止常见攻击。先在 untrust 区域启用,并在收紧之前通过日志观察是否有误报。

设备配置: 配置接口、区域和默认路由

为每个数据端口分配地址,把每个端口放入对应区域,并把所有端口加入虚拟路由器。默认路由把访问互联网的流量送往 ISP 网关。在编写任何安全规则之前,用 show routing route 和 ping 检查路由。

# PAN-OS CLI: interfaces, zones, virtual router and default route
configure
set network interface ethernet ethernet1/1 layer3 ip 203.0.113.2/30
set network interface ethernet ethernet1/2 layer3 ip 10.10.10.1/24
set network interface ethernet ethernet1/3 layer3 ip 172.16.10.1/24
set zone untrust network layer3 ethernet1/1
set zone trust network layer3 ethernet1/2
set zone dmz network layer3 ethernet1/3
set network virtual-router default interface [ ethernet1/1 ethernet1/2 ethernet1/3 ]
set network virtual-router default routing-table ip static-route default-route destination 0.0.0.0/0 nexthop ip-address 203.0.113.1
commit
exit
# Operational mode: check interfaces and routes
show interface all
show routing route
ping source 10.10.10.1 host 8.8.8.8

知识点 5: 安全策略:规则、顺序与默认拒绝

安全策略是一个有序的规则列表。每条规则匹配源区域、目的区域、源和目的地址或用户、应用或服务,然后允许或拒绝流量。规则从上到下读取,第一条匹配的规则决定结果。

重要的规则字段

规则包括名称、源和目的区域、源和目的地址、用户、应用、服务(端口)以及动作,例如允许或拒绝。尽可能使用应用而不是端口。写着 'web-browsing' 的规则比写着 'TCP 80 and 443' 的规则更清晰也更安全。

规则顺序与默认规则

把最具体的规则放在前面,宽泛的规则放在后面。PAN-OS 在底部包含默认规则:允许同一区域内流量的 intrazone default,以及拒绝区域之间流量的 interzone default。由于 interzone default 会拒绝,你必须为区域之间需要的每一种流量明确添加允许规则。

先严格,再凭证据放宽

先从拒绝并记录日志的规则开始,检查日志以了解实际使用的流量,然后只针对已确认的流量编写允许规则。这可以防止常见错误,即因为规则是从别处复制来的而允许了过多的流量。

对允许的流量附加配置文件

允许规则可以为其放行的流量附加安全配置文件,例如防病毒和威胁防护。如果放行流量时没有配置文件,防火墙只能识别应用,却不检查内容,因此对于携带文件或网页内容的流量,应开启配置文件。

设备配置: 编写安全规则与默认拒绝

第一条规则允许办公室浏览网页,并记录每个会话。第二条规则允许互联网用户在 NAT 之后通过私有地址访问 DMZ 的 Web 服务器。interzone default 规则拒绝区域之间的其他所有流量。把最具体的规则移到最前面,然后用策略匹配测试来确认。

# PAN-OS CLI: security rules (order matters; the first match wins)
configure
set rulebase security rules allow-web-out from trust to untrust source 10.10.10.0/24 destination any application [ web-browsing ssl ] service application-default action allow log-end yes
set rulebase security rules allow-web-to-dmz from untrust to dmz source any destination 172.16.10.10 application web-browsing service application-default action allow log-end yes
set rulebase default-security-rules rules interzone-default log-end yes
move rulebase security rules allow-web-out top
commit
exit
# Operational mode: check which rule a flow would match
test security-policy-match from trust to untrust source 10.10.10.20 destination 8.8.8.8 protocol 6 destination-port 443

知识点 6: NAT:地址转换

NAT 在流量经过防火墙时改变其源地址或目的地址。外出的用户通常需要源 NAT 来共享公网地址。DMZ 中的服务器通常需要目的 NAT,以便外部用户通过公网地址访问它们。

办公室的源 NAT

动态源 NAT,通常称为 dynamic IP and port,让许多内部主机共享 untrust 接口的公网地址。创建从 trust 区域到 untrust 区域的 NAT 规则,并确保安全策略允许该流量。

公网服务器的目的 NAT

目的 NAT 把公网 IP 地址和端口映射到服务器的私有地址。例如,公网地址 203.0.113.10 的 443 端口可以映射到 DMZ 中 Web 服务器的私有地址。转换之后,安全策略必须允许流量到达私有地址,这是最容易让人困惑的地方之一。

检查顺序并测试

NAT 和安全策略都会影响流量,请根据所用版本的文档检查它们的处理顺序。每次修改 NAT 后,都要从两侧的真实客户端进行测试,并在流量日志中查看原始地址和转换后的地址。

设备配置: 设置源 NAT 与目的 NAT

出站规则把办公室地址转换为外部接口的地址。Web 服务器规则把公网地址 203.0.113.10 的 443 端口映射到 DMZ 服务器。上面的安全规则必须允许访问转换后的私有地址,因为策略是在转换之后检查的。

# PAN-OS CLI: source NAT for the office and destination NAT for the DMZ web server
configure
set rulebase nat rules outbound-to-internet from trust to untrust source any destination any service any nat-type ipv4 to-interface ethernet1/1 source-translation dynamic-ip-and-port interface-address interface ethernet1/1
set rulebase nat rules web-server-dnat from untrust to untrust source any destination 203.0.113.10 service service-https nat-type ipv4 to-interface ethernet1/1 destination-translation translated-address 172.16.10.10 translated-port 443
commit
exit
# Operational mode: check sessions and the translated addresses
show session all filter destination 203.0.113.10

知识点 7: 威胁防护、URL 过滤与解密

安全配置文件和解密是 NGFW 超越地址和端口的地方。它们检查连接内部的内容,但也需要仔细规划,以免破坏正常流量。

主要的安全配置文件

Antivirus 扫描文件中的已知恶意软件。Anti-spyware 阻止受感染主机发出的命令与控制(C2)流量。Vulnerability protection 阻止利用已知漏洞的尝试。URL filtering 阻止或提示某类网站。File blocking 阻止特定类型文件的下载或上传。先使用默认或最佳实践的配置文件,然后根据日志进行调整。

解密:检查加密流量

大多数网页流量都使用 TLS 加密,防火墙无法检查它读不到的内容。解密让防火墙充当受信任的一方,它向客户端出示自己签发的证书,这要求客户端信任防火墙的证书颁发机构。解密会引发隐私和法律问题,因此应与网络所有者共同决定哪些流量需要解密,并记录下这个决定。银行和医疗服务等流量通常会被排除在外。

证书与信任设置

要进行解密,防火墙需要一个内部客户端信任的 forward-trust 证书,并且必须处理那些拒绝被替换证书的固定证书(certificate pinning)应用。每条新的解密规则都要用你能控制的客户端进行测试,并为会出问题的应用准备一份排除列表。

知识点 8: 远程接入 VPN 与高可用性

真实部署中常会出现两项功能。远程接入让员工可以从家里或出差时连接,高可用性则让一台防火墙故障时网络仍能继续运行。

GlobalProtect VPN 概念

GlobalProtect 是 Palo Alto 防火墙的远程接入 VPN。门户告诉客户端应使用哪个网关,网关建立加密隧道。连接之后,用户处于与办公室相同策略的安全区域中,User-ID 还可以把会话与目录中的用户关联起来。请规划好远程客户端的 IP 地址池,使其不与内部网络重叠。

站点到站点 VPN

站点到站点的 IPsec 隧道用于连接两个办公地点。两端必须有相匹配的第一阶段和第二阶段设置、相同的预共享密钥或证书,以及覆盖正确网络的路由或代理 ID。隧道已经建立却不通流量,几乎总是某一端的路由或策略问题。

高可用性

一对防火墙可以以主备(active-passive)模式运行,即主用设备故障时备用设备接管;也可以以双活(active-active)模式运行,即两台都处理流量。两台设备通过专用链路同步配置和会话表。请在业务方知情的时间窗口中测试故障切换,因为配置不当的一对设备可能造成单台防火墙不会造成的中断。

知识点 9: 提交、日志与故障排查

防火墙有一份你编辑的候选(candidate)配置,以及一份正在生效的运行(running)配置。在提交之前,你做的任何修改都不会影响流量。提交之后,日志和内置工具会显示更改是否有效。

候选配置、运行配置与提交

修改会写入候选配置。提交(commit)使其生效,你可以在提交之前预览更改。在进行大的修改之前,先保存一份命名的配置,以便出现问题时回滚。提交时写清楚说明,使审计日志能够解释每一次更改。

流量日志与威胁日志

流量日志显示每个会话的源、目的、应用、用户、规则名称和动作。威胁日志显示与安全配置文件匹配的记录。当用户说某个网站被阻止时,用其 IP 搜索流量日志,找到匹配的规则,然后检查是规则、配置文件还是 URL 分类导致了阻止。

故障排查顺序

按照流量经过的顺序检查:链路是否正常,路由是否存在,NAT 是否正确,是否匹配了某条安全规则,配置文件是否阻止了它。CLI 中的 test 命令可以显示某个流量会匹配哪条规则,数据包捕获则显示每个接口上发出和到达的内容。

监控与报告

对严重威胁、失败的 VPN 隧道和接口错误,使用仪表板、定期报告和告警。日志需要定期查看,而不只是在出问题时才看,因为大多数攻击在造成损害之前就已经在日志中留下了痕迹。

设备配置: 安全地保存、提交与回滚

提交之前先查看待生效的差异,保存一个具名版本,并附上可在审计日志中显示的说明后再提交。如果某次修改导致流量中断,就加载已保存的版本并再次提交。阅读流量日志,确认规则实际允许和拒绝了什么。

# PAN-OS CLI: review changes, save a named configuration, commit with a description, roll back
configure
show config diff
save config to before-web-change
commit description "allow web from office, NAT for the DMZ web server"
exit
# Later, if the change causes a problem: load the saved version, check it, then commit
configure
load config from before-web-change
commit description "rollback: web change"
exit
# Operational mode: read the logs
show log traffic
提交模型:更改先写入候选(candidate)配置并经过检查,只有在提交后才会生效
提交模型:更改先写入候选(candidate)配置并经过检查,只有在提交后才会生效

在实验室中练习

防火墙技能来自动手实践,因此请搭建一个小型实验环境,包含三个网络:互联网侧、办公室局域网,以及带有 Web 服务器的 DMZ。如有厂商提供的实验镜像或模拟器,请使用它们,并按顺序完成以下步骤。

1. 画出部署示意图,并为三个网络编写 IP 与区域规划。

2. 设置管理访问,修改默认密码,并创建具名的管理员账户。

3. 配置三个接口,把每个接口分配到对应区域,并添加默认路由以及通往内部网络的路由。

4. 在添加任何安全策略之前,从每个区域 ping 测试连通性。

5. 添加一条允许办公室通过网页访问互联网的规则,并为其他所有流量设置默认拒绝。

6. 添加目的 NAT,使 untrust 一侧可以访问 DMZ 中的 Web 服务器,并添加相应的安全规则。

7. 为允许规则附加威胁防护配置文件,然后检查日志中的匹配情况。

8. 提交配置,测试每条流量,并恢复到已保存的配置,以确认回滚可以正常工作。

下一步

完成配置后,请练习基于策略的故障排查,直到你能在几分钟内找到被阻止的流量。然后学习 GlobalProtect 与站点到站点 VPN,再学习高可用性。每次提交都要做好变更记录。大多数故障来自未被记录的变更,而不是某一条错误的规则。

总结

Palo Alto NGFW 识别的是应用、用户和内容,而不只是端口和地址。良好的配置从部署示意图、区域与 IP 规划以及所需流量清单开始。接着是管理设置、接口与区域、带有明确放行规则的有序安全策略、面向外部和公网服务器的 NAT,以及用于检查的配置文件。审慎地提交,阅读日志,并始终保留回滚方案。