thomaschristory/panorama-super-cli

GitHub: thomaschristory/panorama-super-cli

一款面向 Palo Alto Panorama 的 CLI 工具,用于安全地查找、去重、合并和管理防火墙地址与服务对象,解决配置腐化问题。

Stars: 0 | Forks: 0

# panorama-super-cli (`psc`) [![PyPI](https://img.shields.io/pypi/v/panorama-super-cli.svg)](https://pypi.org/project/panorama-super-cli/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fcaae2df40003223.svg)](https://github.com/thomaschristory/panorama-super-cli/actions/workflows/test.yml) [![Docs](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/625a6abd8b003229.svg)](https://thomaschristory.github.io/panorama-super-cli/) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) **面向 Agent 友好的 Palo Alto Panorama 对象管理工具。** 查找 IP 的归属位置,排查重复的地址/服务对象,安全地合并它们(重写引用它们的每一个组和规则),执行命名规范,并审查对象的规范性——所有操作默认均为**dry-run(试运行)**,并提供 **PAN-OS `set`** 和 **JSON** 输出,满足人类和 Agent 的需求。 ``` $ psc --config panorama.xml find ip 10.0.0.10 $ psc --config panorama.xml dedup addresses $ psc --config panorama.xml dedup merge --keep h-web1 --into web-primary --apply ``` ## 为什么需要它 Panorama 的配置会逐渐腐化:同一个 `10.0.0.10` 最终可能会变成 `h-web1`、`web-primary` 和 `WEB_PRD_01`;服务会与已知端口重复;对象的生命周期会超过使用它们的规则。`psc` 提供了一种快速、可脚本化且**安全**的方式来查看和修复这些问题——既可以针对导出的配置进行离线操作,也可以直接对 Panorama 进行实时操作。 ## 安装说明 ``` uv tool install panorama-super-cli # recommended # 或 pipx install panorama-super-cli # 或 pip install panorama-super-cli ``` ## 指定配置的两种方式 - **离线**(无需凭据,绝对安全):`psc --config exported.xml `。从 Panorama 导出(使用 `scp export configuration ...` 或通过 GUI),然后在你的笔记本电脑上进行审查。 - **实时**:配置一个配置文件(`psc init`、`psc login`),`psc` 即可通过 [`pan-os-python`](https://github.com/PaloAltoNetworks/pan-os-python) 与 PAN-OS XML API 进行通信。读取操作是无风险的;写入操作仍需使用 `--apply`。 ## 功能说明 | 领域 | 命令 | | --- | --- | | **查找 / 解析** | `psc find ip `, `find ip -e ` (仅精确匹配), `find ip -f ips.txt`, `find object ` | | **重复项** | `psc dedup addresses`, `dedup services`, `dedup groups`, `dedup merge`, `dedup merge-group` | | **审查** | `psc audit overlaps` (重叠/包含的 CIDR 范围) | | **对象 CRUD** | `psc set address\|address-group\|service\|service-group\|tag ...` (通过 PAN-OS 验证进行创建/更新) | | **规则编辑** | `psc rule edit-member --rule R --field F --add/--remove M` (幂等) | | **下线** | `psc decommission ...` (引用安全的级联拆除) | | **命名** | `psc name suggest`, `name lint`, `name apply` (可选模板) | | **引用** | `psc refs ` (使用位置), `refs unused` | | **输出** | `--output json|set|table|yaml|csv|jsonl` | 请参阅[文档](https://thomaschristory.github.io/panorama-super-cli/)了解完整的操作界面、安全模型和 Agent 指南。 ## 安全模型 - **默认 Dry-run(试运行)。** 每个修改命令都会打印一个执行计划,除非你添加 `--apply`,否则不会进行任何更改直接退出。 - **感知副作用。** 合并或重命名对象会重写引用它的每个地址组、安全规则和 NAT 规则——跨越 `shared` 和 device-groups——否则将拒绝执行并告诉你原因。 - **`--debug`** 会将结构化日志流式传输到 stderr;stdout 保持整洁以供管道使用。 ## 对于 AI Agent `psc` 内置了 [Agent Skill](skills/panorama-super-cli/SKILL.md),并输出稳定的 JSON 封装和 exit-code 契约。只需传入 `--output json` 即可进行解析。请参阅[与 AI Agent 配合使用](https://thomaschristory.github.io/panorama-super-cli/guides/using-with-ai-agents/)。 ## 许可证 [Apache-2.0](LICENSE)。
标签:Docker 部署, Linux安全, Palo Alto, Python, 无后门, 网络调试, 网络运维, 网络防火墙, 自动化, 逆向工具