# FireGuard **Repository Path**: scorpio1975/fire-guard ## Basic Information - **Project Name**: FireGuard - **Description**: 提供了基于 Ansible 的 iptables 和 firewalld 配置管理工具,支持批量管理服务器防火墙规则 - **Primary Language**: YAML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-01-02 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FireGuard - Linux 防火墙配置工具 本项目提供了基于 Ansible 的 iptables 和 firewalld 配置管理工具,支持批量管理服务器防火墙规则。 ## 运行环境要求 - Ansible 2.9+ - Python 2.7+ / 3.6+ - CentOS 7+ / RHEL 7+ - 目标主机需要安装 iptables 或 firewalld ## 目录结构 ``` ./ ├── iptables/ │ ├── iptables_set.yml # iptables 主配置文件 │ ├── log.yml # 日志记录配置 │ └── vars/ │ ├── block_rules.yml # IP 黑名单配置 │ ├── ssh_rule.yml # SSH 访问规则配置 │ └── default_policies.yml # 默认策略配置 ├── firewalld/ │ ├── firewall.yml # firewalld 主配置文件 │ ├── log.yml # 日志记录配置 │ └── vars/ │ ├── block_rules.yml # IP 黑名单配置 │ └── ssh_rule.yml # SSH 访问规则配置 ``` ## 配置文件说明 ### SSH 规则配置 (ssh_rule.yml) ```yaml ssh_ports: "22" # SSH 端口号 ssh_networks: # 允许访问的网段 - "192.168.1.0/24" - "10.0.0.0/8" ``` ### IP 黑名单配置 (block_rules.yml) ```yaml block_rules: - ip: "192.168.1.100" # 指定 IP ports: # 需要封禁的端口列表 - "80" - "443" - ip: "192.168.1.150" # 不指定端口则完全封禁该 IP ``` ## 使用方法 ### iptables 版本 ```bash # 运行配置脚本 ansible-playbook iptables/iptables_set.yml # 可选功能: 1. 显示当前规则 2. 添加 SSH 规则 3. 保存规则配置 4. 重启 iptables 服务 5. 配置默认策略 6. 清理所有规则 7. 设置 INPUT 链默认策略为 DROP 8. 添加 IP 黑名单规则 ``` ### firewalld 版本 ```bash # 运行配置脚本 ansible-playbook firewalld/firewall.yml # 可选功能: 1. 添加 SSH 规则 2. 添加 IP 黑名单规则 3. 显示当前策略 4. 清理所有规则 5. 重新加载规则 ``` ## 日志记录 - iptables 日志位置: `/var/log/iptables_audit/` - firewalld 日志位置: `/var/log/firewall/` ## 注意事项 1. 在添加规则前请确保 SSH 访问规则已正确配置,避免被锁出服务器 2. 建议先在测试环境验证规则效果 3. 规则修改后需要保存或重载才能永久生效 4. 清理规则时会重置为默认配置,请谨慎操作 ## 常见问题处理 1. 如果执行后无法访问服务器: - 检查 SSH 规则是否正确配置 - 使用控制台登录服务器 - 执行清理规则操作 2. 规则未生效: - 检查规则是否已保存 - 重启防火墙服务 - 检查日志获取详细信息