怎么利用Ansible自动化下发并核对上百台服务器的防火墙基线

星杰同学_5148

星杰同学_5148

2026-05-13

327人浏览

原创

ansible可免agent批量配置并核对百台服务器防火墙基线:通过ssh免密登录、主机组管理、playbook统一设置firewalld/iptables规则,并自动断言验证策略一致性,失败时精准定位违规主机与规则。

怎么利用ansible自动化下发并核对上百台服务器的防火墙基线

用 Ansible 自动化下发并核对上百台服务器的防火墙基线,核心在于“免 Agent、批量执行、结果可验证”。不需要在每台机器装客户端,只要 SSH 通、有 root 或 sudo 权限,就能统一配置 iptables/firewalld,并自动比对实际策略与预期是否一致。

准备环境:SSH 免密 + 主机分组

确保主控机可无密码登录所有目标服务器:

  • 生成密钥:ssh-keygen -t rsa -b 4096 -N ""
  • 批量分发公钥:for ip in $(cat servers.txt); do ssh-copy-id root@$ip; done
  • 编辑 /etc/ansible/hosts,按角色分组(例如):
      [firewall-servers]
      192.168.10.1
      192.168.10.2
      ...
      [all:vars]
      ansible_user=root
      ansible_ssh_private_key_file=/root/.ssh/id_rsa

定义防火墙基线:用 playbook 统一配置

编写 firewall-baseline.yml,明确允许/拒绝规则,适配不同系统:

Pic Copilot
Pic Copilot

Pic Copilot是阿里国际推出的面向电商卖家的 AI 商品图和营销设计工具。

下载
  • CentOS/RHEL 7+ 默认用 firewalld:
    - name: ensure firewalld is running<br>
      systemd:<br>
        name: firewalld<br>
        state: started<br>
        enabled: yes

    - name: set default zone to public<br>
      firewalld:<br>
        zone: public<br>
        permanent: yes<br>
        state: present

    - name: allow only ssh, http, https<br>
      firewalld:<br>
        port: "{{ item }}"<br>
        permanent: yes<br>
        state: enabled<br>
      loop:<br>
        - "22/tcp"<br>
        - "80/tcp"<br>
        - "443/tcp"
  • 如需兼容 iptables(如 CentOS 6 或定制场景),加条件判断:when: ansible_facts['distribution_major_version'] == "6"

自动核对:执行后立即验证策略一致性

下发不是终点,关键在确认每台机器是否真正生效:

  • 执行配置后追加验证任务:
    - name: get current firewalld rules<br>
      command: firewall-cmd --list-all --zone=public<br>
      register: current_rules

    - name: assert baseline matches<br>
      assert:<br>
        that:<br>
          - "'22/tcp' in current_rules.stdout"<br>
          - "'80/tcp' in current_rules.stdout"<br>
          - "'443/tcp' in current_rules.stdout"<br>
          - "'2222/tcp' not in current_rules.stdout"<br>
        msg: "Firewall policy mismatch on {{ inventory_hostname }}"
  • 失败时会中断并报错,输出具体哪台机器哪条规则不合规,便于快速定位

批量导出与差异分析(可选增强)

若需长期审计或生成报告,可把每台机器的当前策略拉回本地归档:

  • 用 fetch 模块保存原始输出:
    - name: fetch firewall config<br>
      fetch:<br>
        src: /dev/stdout<br>
        dest: "reports/firewall/{{ inventory_hostname }}.txt"<br>
        flat: yes<br>
      args:<br>
        executable: /bin/bash<br>
      command: firewall-cmd --list-all --zone=public
  • 后续可用脚本对比所有文件,或导入 Excel 做横向策略一致性检查

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2512

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

856

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

749

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2256

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4172

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

667

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 4.1万人学习