首页 > 其他分享 >Ansible `firewalld` 模块

Ansible `firewalld` 模块

时间:2024-08-27 14:25:51浏览次数:10  
标签:zone firewalld permanent Ansible 模块 规则 yes public

Ansible firewalld 模块

一、简介

  • 功能firewalld 模块用于管理 Linux 系统上的 firewalld 防火墙服务。firewalld 是一种动态管理防火墙的工具,它提供了对网络流量的更细粒度控制,支持区域(zones)和丰富的规则管理。
  • 使用场景:适用于需要动态管理防火墙规则的场景,如开放或关闭特定服务端口、添加或移除防火墙规则、配置防火墙区域等。

二、基本用法

2.1 语法

使用 firewalld 模块的基本命令格式:

ansible <pattern> -m firewalld -a "zone=<zone> service=<service> state=<state> permanent=<yes/no>"
  • <pattern>: 指定要操作的主机或主机组,例如 allwebservers
  • -m firewalld: 指定使用 firewalld 模块。
  • -a "...": 提供模块的参数,如区域、服务、状态、是否永久生效等。

2.2 示例

  • 在特定区域开放 HTTP 服务端口

    ansible all -m firewalld -a "zone=public service=http state=enabled permanent=yes"
    
    • 解释:在所有主机的 public 区域内永久启用 HTTP 服务(80端口)。
  • 在特定区域关闭 SSH 服务端口

    ansible all -m firewalld -a "zone=public service=ssh state=disabled permanent=yes"
    
    • 解释:在所有主机的 public 区域内永久禁用 SSH 服务(22端口)。
  • 添加自定义端口规则

    ansible all -m firewalld -a "zone=public port=8080/tcp state=enabled permanent=yes"
    
    • 解释:在所有主机的 public 区域内永久开放 TCP 8080 端口。

三、输出结果

执行 firewalld 模块后的典型输出示例:

localhost | CHANGED => {
    "changed": true,
    "msg": "Service 'http' added to zone 'public'"
}
  • CHANGED:表示防火墙规则发生了变化。
  • changed: 为 true 表示操作成功并且规则被修改。
  • msg:显示执行的具体操作和结果。

如果没有变化(例如规则已经存在或要删除的规则不存在),输出将类似于:

localhost | SUCCESS => {
    "changed": false,
    "msg": "Service 'http' is already in zone 'public'"
}
  • SUCCESS: 表示操作成功。
  • changed: 为 false 表示规则未被修改。

四、常见选项

4.1 zone

  • 功能:指定防火墙区域(zone)。firewalld 使用区域来定义不同网络接口的安全策略。常用的区域包括 publicprivateinternalexternal 等。

  • 用法

    ansible all -m firewalld -a "zone=public service=http state=enabled permanent=yes"
    
    • 解释:在所有主机的 public 区域内启用 HTTP 服务。

4.2 service

  • 功能:指定要管理的服务(service)。可以是预定义的服务名,如 httpsshdns 等。

  • 用法

    ansible all -m firewalld -a "zone=public service=dns state=enabled permanent=yes"
    
    • 解释:在所有主机的 public 区域内启用 DNS 服务。

4.3 port

  • 功能:指定要管理的端口及协议(如 80/tcp443/tcp)。

  • 用法

    ansible all -m firewalld -a "zone=public port=443/tcp state=enabled permanent=yes"
    
    • 解释:在所有主机的 public 区域内启用 TCP 443 端口(HTTPS)。

4.4 state

  • 功能:指定规则的状态。可以是 enabled(启用规则)或 disabled(禁用规则)。

  • 用法

    ansible all -m firewalld -a "zone=public service=ftp state=disabled permanent=yes"
    
    • 解释:在所有主机的 public 区域内禁用 FTP 服务。

4.5 permanent

  • 功能:指定规则是否永久生效。如果设置为 yes,规则将在系统重启后继续生效。默认为 no

  • 用法

    ansible all -m firewalld -a "zone=public port=3306/tcp state=enabled permanent=yes"
    
    • 解释:在所有主机的 public 区域内永久启用 TCP 3306 端口(MySQL)。

五、注意事项

  • 权限要求:更改防火墙规则需要具有适当的权限(通常是 root 权限),确保 Ansible 用户具备相应的 sudo 权限。
  • 服务重启:当使用 permanent=yes 时,需要重载 firewalld 服务才能使规则生效。可以使用 firewalld 模块中的 immediate=yes 选项自动重载防火墙配置。
  • 区域管理:不同的网络接口可以分配到不同的区域,确保将规则应用到正确的区域,以免影响网络流量的控制。
  • 服务或端口冲突:在添加或移除规则时,注意检查是否存在冲突的规则或端口,以免导致网络通信问题。

标签:zone,firewalld,permanent,Ansible,模块,规则,yes,public
From: https://blog.csdn.net/wushengT/article/details/141602074

相关文章

  • Python中configparser模块的基本用法
    configparser是Python标准库中的一个模块,用于处理配置文件。配置文件通常用于存储应用程序的配置信息,如数据库连接参数、日志级别设置等。configparser模块支持读取、写入和修改配置文件,这些文件通常采用类似INI格式的结构。配置文件格式配置文件一般以'.ini'作为扩展名......
  • 【python3.8安装报错】lmportError: DLL load failed while importing ft2font: 找不
    客户需求背景:安装python3.8无法运行,报错lmportError:DLLloadfailedwhileimportingft2font:找不到指定的模块 考虑兼容性问题这个问题首先需要考虑的是是否是python版本太高了,因为python3.9不支持win7,而python3.8版本对win7的兼容性也有一定的限制。解决:首先考......
  • 【Node】【6】模块系统
    Node.js的模块系统基于CommonJS规范,其中每个文件被视为一个独立的模块,可以通过require函数引入其他模块,也可以通过module.exports将模块的功能暴露给外部。CommonJS规范:使用require()函数来导入模块,使用module.exports或exports对象来导出模块。ESModules:使用i......
  • Node.Js基础——安装及模块
    一、什么是Node.Js?Node.js是一个开源和跨平台的JavaScript运行时环境。它让JavaScript可以脱离浏览器端,在服务器端运行,让javaScript可以开发后端程序,实现了大部分其他后端语言的功能。 Node.js建立在GoogleChromeV8JavaScript引擎之上,主要用于创建网络服务器-但......
  • 前端模块自动导入的插件
    前言开发中通常会有很多导入语句,如何确保一些通用的api和hook无需每次手动导入即可使用。<scriptsetuplang="ts">import{ref,reactive}from"vue"import{useRoute,useRouter}from"vue-router"import{login}from"./api/user"constcount=r......
  • 蓝桥杯单片机入门(6)—LED灯模块
    这回我们讲,蓝桥杯中LED模块1.点亮一颗LED灯    在写代码之前我们必须要先明确自己的目的,然后根据需求去写对应的代码功能。首先我们要实现点亮一颗LED灯,在此之前我们要先了解一下LED灯的工作原理,    首先我们看一下,LED灯的原理图,图中写LED1的地方就是LED灯,......
  • fail2ban: 使用firewalld的富规则rich rule
    一,fail2ban中的时间设置:m:分钟h:小时d:天w:周y:年 -1:永久二,安装:1,通过yum安装用yum安装:[root@blog~]#yuminstallfail2ban安装后查看状态:未启动[root@blog~]#systemctlstatusfail2ban.service○fail2ban.service-Fail2BanServiceLoaded:lo......
  • Ansible-playbook 应用梳理
    前面已经介绍过Ansible的安装配置及常见模块的使用--《Linux下使用Ansible处理批量操作》Palybook简介palybook是由一个或多个paly组成的列表,play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色。从根本上来讲,所谓task无非是调用ansible......
  • 什么是前端模块化
    面试中,关于打包工具的相关知识是非常常见的考题,无可避免的可能会被问到,为什么需要使用到打包工具、或前端工程化的实现,而要回答这些问题前,需要先了解的就是前端模块化。所以在本篇笔记中,会让大家了解前端模块化的演进和功用。文末有我帮助500多人拿到前端offer的文章!!!什么......
  • 超详细教程 | Hands-On 基于 Flagchip FC4150 MCAL-使用 GPT 模块定时喂狗
    简介    本文将详细介绍如何使用EB工具配置FlagchipFC4150MCAL使用GPT模块定时喂狗,并重点强调了配置GPT、WDG模块的过程以及对GPT、WDG模块的详细解释,关于mcu、port、dio、icu、adc、pwm模块可参考之前发布的博文。本次示例演示将会使用FTU4_CH0超......