前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实用工具:如何将PaloAlto防火墙规则自动迁移到OCI防火墙

实用工具:如何将PaloAlto防火墙规则自动迁移到OCI防火墙

作者头像
FB客服
发布2023-05-12 14:41:00
4690
发布2023-05-12 14:41:00
举报
文章被收录于专栏:FreeBufFreeBuf

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。

点击此链接(https://realpython.com/installing-python/)在电脑上安装 python。

2. 所需包:代码需要几个Python包才能运行,在电脑中运行以下命令,确保包能安装成功:

代码语言:javascript
复制
pip install pandas xml ipaddress

3. Palo Alto 配置文件:脚本需要一个名为config.xml的 Palo Alto 配置文件,并放置在与脚本相同的目录中,要确保文件是放在这个目录下。

点击此链接(https://docs.paloaltonetworks.com/pan-os/9-1/pan-os-admin/firewall-administration/manage-configuration-backups/save-and-export-firewall-configurations),从防火墙导出 running-config.xml。

4. 访问 OCI 防火墙服务:有权访问 OCI 防火墙服务,并且应该具有创建 IP 地址、IP 地址列表和应用程序列表的必要权限。

点击此链接(https://docs.oracle.com/en-us/iaas/Content/network-firewall/iam-policy-reference.htm),了解访问所需的 IAM 策略 — OCI 网络防火墙。

5. OCI API 密钥:需要有一个 OCI API 密钥才能访问 OCI API,可以从 OCI 控制台生成 API 密钥对。

6. OCI 配置文件:需要一个 OCI 配置文件,其中包含租赁 OCID、用户 OCID 和 API 密钥的位置,可以按照OCI 文档中的说明创建配置文件。

7. OCI SDK:在系统上安装 OCI SDK,通过在电脑中运行以下命令来安装 SDK:

代码语言:javascript
复制
pip install oci

有关不同操作系统的 OCI CLI 安装的详细说明,请观看以下视频:

Linux:观看此视频(https://www.youtube.com/watch?v=bY3jQMMHxdw)

Windows:观看此视频(https://www.youtube.com/watch?v=rEHwcJdRf8M)

Mac:观看此视频(https://www.youtube.com/watch?v=0k2Lj0oMDK4)

注意:如果未安装 OCI CLI,则可以将该工具创建的 JSON 文件复制到 OCI Web CLI(在 OCI 控制台中可用),然后执行 OCI CLI 命令来更新防火墙策略。

下面是更新 IP 地址列表的命令,然后是应用程序列表和安全规则。

代码语言:javascript
复制
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.jsonoci network-firewall network-firewall-policy update --network-firewall-policy-id <ocid1.networkfirewallpolicy.oc1.ap-mumbai-1.xxxx> --application-lists file://Application-List.jsonoci 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。

代码语言:javascript
复制
Python3 PaloAlto-Migration.py(向右滑动,查看更多)

5. 脚本将提供转换、安装防火墙规则、退出脚本三种选项。

选择适当的选项来转换 PaloAlto 防火墙策略,参考如下。

代码语言:javascript
复制
Please use this tool to convert - Palo Alto Firewall rules to OCI Network Firewall rulesSelect an option:1. Convert rules2. Install rules to OCI Firewall3. Exit(向右滑动,查看更多)

第一次执行脚本时,选择选项 1,然后输出应如下所示。

代码语言:javascript
复制
代码语言:javascript
复制
Enter option number: 1Executing 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,输出将如下例所示:

代码语言:javascript
复制
Enter option number: 2Executing Python script B to install rules to OCI Firewall...Enter compartment OCID: ocid1.compartment.oc1..aaaaaaaa5nmydshoioxvnbqobahkt5yu7dz4hynywmea74ag4qeecydaiq6aEnter display name: PaloAlto-demoEnter profile name: DEFAULTWait 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 rules2. Install rules to OCI Firewall3. ExitEnter option number: 3Exiting...(向右滑动,查看更多)

成功运行脚本后,我们应该会看到在脚本运行的路径中创建了三个 JSON 文件(IP-Address-List.json、Applications-List.json 和 Security_Rules_v2.json),然后是脚本尝试在 OCI 防火墙中安装策略。

点击此处(https://github.com/karthikmani84/PaloAlto-Migration-Tool)下载脚本

重要提示

截至目前,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:

提供3个选项(1.转换规则;2.安装规则;3.退出)。

选项 1:执行 PA-Convert.py。

选项 2:执行 PA-Install.py。

选项 3:退出。

PA-Convert.py:

清理对象名称的功能是按照 OCI 网络防火墙喜欢的方式创建的。

Palo Alto Config.xml 文件已加载。

config.xml 中的 IP 地址对象、IP 地址组和 IP 范围详细信息将转换为 IP-Address.json。

具有端口/协议信息的服务对象和服务组将转换为 Apps-List.json。

security_rules.json 使用从 config.xml(安全规则部分)中提取的源、目标和应用程序创建。

将 IP-Address.json 和 Apps-List.json 与 security-rules.json 进行比较,将安全规则中不在其他两个 JSON 文件中的 IP 地址和应用程序导出到名为“missing_items.xlsx”的 Excel 工作表。

PA-Install.py:

阅读“missing_items.xlsx”并对 App-List.json 进行更正并创建 Application-List.json。

阅读“missing_items.xlsx”并对 IP-Address.json 进行更正并创建 IP-Address-List.json。

识别混合了基于 ICMP 和 TCP/UDP 的应用程序的安全规则。将它们创建为单独的规则,因为 OCI 防火墙不允许使用 ICMP 和非 ICMP 应用程序创建访问规则。然后创建 Security_Rules_v2.json。

最后,在 OCI 中创建防火墙策略并使用 OCI CLI 集成(如果可用!)推送 JSON 文件。

最后

防火墙规则迁移通常是我们准备更换现有防火墙时最耗时的步骤。本文介绍的这种工具可以帮助大家快速地完成,但是大家还是要仔细规划生产网络上的防火墙迁移。

参考来源

https://medium.com/oracledevs/how-to-automate-conversion-of-firewall-rules-from-paloalto-to-oci-network-firewall-acbecddd7345

精彩推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用此工具的前提条件
  • 用法
  • 重要提示
  • 已知的问题
  • 代码设计
  • 最后
  • 参考来源
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档