Oracle Cloud Infrastructure Network Firewall 是下一代托管网络防火墙,入侵检测和预防服务(IDPS)适用于由Palo Alto Networks提供支持的Oracle Cloud Infrastructure (OCI) 虚拟云网络 (VCN)。
如果你一直使用PaloAlto 防火墙,并计划迁移到 Oracle Cloud Infrastructure (OCI) 网络防火墙,那么就需要将现有的防火墙规则转换为 OCI Network Firewall 策略。
如何使用自动化工具将防火墙规则从 PaloAlto 防火墙迁移至OCI 网络防火墙?在本文中,我将给大家答案。
1.Python:在系统上安装 Python 3。
点击此链接在电脑上安装 python。
2. 所需包:代码需要几个Python包才能运行,在电脑中运行以下命令,确保包能安装成功:
pip install pandas xml ipaddress
3. Palo Alto 配置文件:脚本需要一个名为config.xml
的 Palo Alto 配置文件,并放置在与脚本相同的目录中,要确保文件是放在这个目录下。
点击此链接,从防火墙导出 running-config.xml。
4. 访问 OCI 防火墙服务:有权访问 OCI 防火墙服务,并且应该具有创建 IP 地址、IP 地址列表和应用程序列表的必要权限。
点击此链接,了解访问所需的 IAM 策略 — OCI 网络防火墙。
5. OCI API 密钥:需要有一个 OCI API 密钥才能访问 OCI API,可以从 OCI 控制台生成 API 密钥对。
6. OCI 配置文件:需要一个 OCI 配置文件,其中包含租赁 OCID、用户 OCID 和 API 密钥的位置,可以按照OCI 文档中的说明创建配置文件。
7. OCI SDK:在系统上安装 OCI SDK,通过在电脑中运行以下命令来安装 SDK:
pip install oci
有关不同操作系统的 OCI CLI 安装的详细说明,请观看以下视频:
注意:如果未安装 OCI CLI,则可以将该工具创建的 JSON 文件复制到 OCI Web CLI(在 OCI 控制台中可用),然后执行 OCI CLI 命令来更新防火墙策略。
下面是更新 IP 地址列表的命令,然后是应用程序列表和安全规则。
oci network-firewall network-firewall-policy update --network-firewall-policy-id <ocid1.networkfirewallpolicy.oc1.ap-mumbai-1.xxxx> --ip-address-lists file://IP-Address-List.json oci network-firewall network-firewall-policy update --network-firewall-policy-id <ocid1.networkfirewallpolicy.oc1.ap-mumbai-1.xxxx> --application-lists file://Application-List.json oci network-firewall network-firewall-policy update --network-firewall-policy-id <ocid1.networkfirewallpolicy.oc1.ap-mumbai-1.xxxx> --security-rules file://security_rules_v2.json
使用“PaloAlto-Migration.py”脚本转换 PaloAlto 防火墙策略,请按照以下步骤操作:
1.在 Mac 或 Windows 计算机上打开终端或命令提示符。
2.使用“cd”命令导航到“PaloAlto-Migration.py”脚本所在的目录。
3.将 PaloAlto 防火墙备份 (running-config.xml) 文件移动到与脚本相同的文件夹中,将文件重命名为 config.xml。然后在 cmd 行/终端中,使用“cd”命令导航到该文件夹。
4.在终端或命令提示符中键入“python3 PaloAlto-Migration.py”,然后按 Enter。
Python3 PaloAlto-Migration.py
5. 脚本将提供转换、安装防火墙规则、退出脚本三种选项。
选择适当的选项来转换 PaloAlto 防火墙策略,参考如下。
Please use this tool to convert - Palo Alto Firewall rules to OCI Network Firewall rules Select an option: 1. Convert rules 2. Install rules to OCI Firewall 3. Exit
第一次执行脚本时,选择选项 1,然后输出应如下所示。
Enter option number: 1 Executing Python script A to convert rules... Coversion Done!! Review the missing_items.xlsx , update the IP-Address or Service columns without fail!
a) PaloAlto 防火墙允许管理员在安全规则中输入 IP 地址,而无需创建 IP 地址对象。但是对于OCI防火墙来说,这些对象需要先创建,然后才能在安全规则中使用。
b) 此外,PaloAlto 防火墙允许管理员在安全规则中使用 App-ID。但是,如果使用此类 App-ID,它们将不会自动添加到 OCI Application-List.json 中。
因此,该脚本会生成一个名为“missing_items.xlsx”的 Excel 工作表,需要管理员手动输入丢失对象的详细信息。
点击下面的演示视频了解如何运行此工具:
验证“missing_items.xlsx”表并输入所需的详细信息后,继续执行选项 2,输出将如下例所示:
Enter option number: 2 Executing Python script B to install rules to OCI Firewall... Enter compartment OCID: ocid1.compartment.oc1..aaaaaaaa5nmydshoioxvnbqobahkt5yu7dz4hynywmea74ag4qeecydaiq6a Enter display name: PaloAlto-demo Enter profile name: DEFAULT Wait while your new firewall policy is getting created : { "opc-work-request-id": "ocid1.networkfirewallworkrequest.oc1.ap-hyderabad-1.amaaaaaadrm45caaxmzpl6fh6pr4n5cc3rh4zr23vwiio7f2q4thdphimi3q" } Wait while your IP-Address-List is getting updated.. { "opc-work-request-id": "ocid1.networkfirewallworkrequest.oc1.ap-hyderabad-1.amaaaaaadrm45caanq73khkk6sfk6zbf3ynisgx725cs5uthdhqly4j4hxqq" } Wait while your Application-List is getting updated.. { "opc-work-request-id": "ocid1.networkfirewallworkrequest.oc1.ap-hyderabad-1.amaaaaaadrm45caayphi6lii7dxdbn5k36bitxciauurzpdsjs5xuqsw7nuq" } Wait while your Security-rules are getting updated.. Select an option: 1. Convert rules 2. Install rules to OCI Firewall 3. Exit Enter option number: 3 Exiting...
成功运行脚本后,我们应该会看到在脚本运行的路径中创建了三个 JSON 文件(IP-Address-List.json、Applications-List.json 和 Security_Rules_v2.json),然后是脚本尝试在 OCI 防火墙中安装策略。
点击此处下载脚本
截至目前,OCI 网络防火墙的 GUI(图形用户界面)限制用户创建超过 25 个对象,例如 IP 地址列表、应用程序列表和 URL 列表。不过OCI Firewall 产品团队正在努力去除这一限制。
此脚本使用 API 来创建迁移规则所需的其他对象。我已成功迁移包含多达 300 条安全规则和 600 个对象(包括 IP 地址和应用程序)的规则。如果你的规则库比这个大,转换它们应该不是问题。但是,在 OCI 防火墙上安装它们时可能会遇到错误。
在这种情况下,可以向 OCI 网络防火墙团队反馈,请求协助。
1.此工具使用来自 PaloAlto 防火墙的 XML 文件作为输入。如果它们的 XML 格式发生变化,则意味着需要更改此代码的某些部分。
2.此版本的代码仅关注防火墙访问规则。PBR(基于路由的策略/基于策略的路由)不会作为此代码的一部分导出。
3.如果还想查看 PaloAlto 防火墙和 OCI 网络防火墙中使用的功能。OCI 的本地防火墙非常精简,预计不会充当 NAT、VPN、代理或路由设备。此类功能,当你选择使用 OCI Network Firewall 时,将迁移到其他原生服务。因此,这些规则不会一起迁移。
4.“missing_items.xlsx”将列出 IP 地址和应用程序列表中缺少的 IP 地址对象名称和服务对象名称。这些详细信息必须在 Excel 中手动捕获。该代码不对输入进行任何格式检查。如果输入的 IP 地址或服务详细信息不正确,将无法安装。
PaloAlto-Migration.py:
PA-Convert.py:
PA-Install.py:
防火墙规则迁移通常是我们准备更换现有防火墙时最耗时的步骤。本文介绍的这种工具可以帮助大家快速地完成,但是大家还是要仔细规划生产网络上的防火墙迁移。
https://medium.com/oracledevs/how-to-automate-conversion-of-firewall-rules-from-paloalto-to-oci-network-firewall-acbecddd7345