轻量级防火墙管理方案:iptables 脚本 + AI 辅助分析

📘 文档目的与功能

  在日常工作中,iptables 命令行操作不够直观,规则变更易遗忘备份,安全风险也难以快速识别。一些成熟的 AI 运维框架虽功能强大,但对重要业务而言,引入额外运行时环境会增加不必要的依赖和资源消耗,token 用量也不可控。

本文档记录了一套轻量级方案——iptables 管理脚本 + AI 辅助分析

  • 主脚本提供规则的查看、新增、删除、备份、回滚功能,操作直观,自动持久化
  • AI 脚本按需调用,进行安全评估和优化建议,不常驻运行,无额外负担

核心思路:该自动化的交给脚本,该判断的交给 AI,兼顾效率与安全。

一、环境准备
1. 系统要求
  • 操作系统:CentOS 7 / Ubuntu 22.04 LTS / Ubuntu 24.04 LTS
  • 权限:需要 root 权限运行
  • 网络:能正常访问外网(AI 分析需要调用 API)
  • AI Key:可选,准备好七牛 AI API Key(https://platform.qnaigc.com
2. 基础依赖安装
# Ubuntu 系统
apt install iptables iptables-persistent -y
AI 分析依赖(仅 Ubuntu,可选)
# apt install python3 python3-requests -y

# CentOS 7 系统
yum install iptables-services -y
二、脚本下载与安装
git clone https://gitee.com/cncsrf/firewall-manager.git
cd firewall-manager && bash firewall-manager.sh
三、主管理脚本功能
1. 主菜单

 

2. 查看规则

 

选择 1 查看当前所有防火墙规则,自动显示规则说明和安全检查结果。
=== 安全检查 ===
正在进行安全检查(可能需要几秒,请耐心等待)...
⚠️  注意:SSH 端口 22 对公网开放,建议限制来源IP或修改端口
   可使用功能2添加来源IP限制规则
⚠️  注意:没有发现默认拒绝规则(DROP/REJECT all)
   建议添加一条兜底规则: iptables -A INPUT -j DROP

发现 2 个优化建议
3. 新增规则

选择 2 新增规则,支持 TCP/UDP/TCP+UDP,可限制来源IP:

当前规则列表:

ID   目标   协议/端口   来源IP
--------------------------------------------------------
1    ACCEPT   tcp/22      0.0.0.0/0
2    ACCEPT   tcp/80      0.0.0.0/0
3    ACCEPT   tcp/443     0.0.0.0/0

请输入要删除的规则编号 (输入0取消): 2

即将删除规则 #2:
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
确认删除?(y/n): y
✓ 规则已删除
4. 备份管理

选择 4 进入备份管理子菜单:

  1. 查看备份列表
  2. 手动备份当前规则
  3. 回滚到指定备份
  4. 返回主菜单
四、AI 智能安全分析
1. 功能介绍

AI 分析脚本提供以下功能:

  • 自动获取当前 iptables 防火墙规则
  • 解析规则并进行基础安全评分(0-100分)
  • 检测常见安全风险(公网端口、数据库端口暴露等)
  • 调用 AI 深度分析,给出优化建议

运行后显示:

==================================================
🛡️  防火墙规则 AI 分析工具 v5
==================================================

📖 功能介绍
   • 自动获取当前 iptables 防火墙规则
   • 解析规则并进行基础安全评分
   • 检测常见安全风险(公网端口、默认策略等)
   • 调用 AI 智能分析,给出优化建议
2. API Key 配置(三种方式)

方式一:环境变量(推荐)

export QINIU_API_KEY="your-api-key"
python3 fw-ai-analyzer.py

方式二:配置文件
首次运行脚本时会自动提示配置,API Key 保存在 ~/.fw-ai-config(权限 600)。

方式三:交互配置
直接运行脚本,按提示输入 API Key 即可。