ansible firewalld 模块
概要
- 此模块允许在运行或永久防火墙规则中添加或删除服务和端口(TCP 或 UDP)。
- firewalld >= 0.2.11
参数
parameter(参数) | choices/default(选项) | comments(注解) |
---|
icmp_block | | 在防火墙中添加或者移除的ICMP块。 |
icmp_bolck_inversion | | 开启/关闭防火墙区域ICMP报文反转功能。 |
immediate | yes or no,默认no | 如果将此配置设置为永久性,则应立即应用此配置。 |
interface | | 在防火墙中添加或移除interface |
masquerade | | 在在防火墙中开启或关闭masquerade功能 |
offline | yes or no | 是否在防火墙离线时运行此模块。 |
permanent | yes or no | 该配置是否在运行的防火墙配置中,或者在重新启动时仍然存在。注意,如果这是no, immediate被假定为yes。 |
port | | 在防火墙中添加或移除端口名称或端口范围。端口范围必须为PORT/PROTOCOL或PORT-PORT/PROTOCOL格式。 |
rich_rule | | rich_rule添加或删除到防火墙 |
service | | 在防火墙中添加或移除服务名称该服务必须在firewall-cmd --get-services 的输出中列出。 |
source | | 在防火墙中添加或移除某个来源的网络 |
state | absent or disabled or enabled or present | 启用或禁用一项设置。对于端口:该端口是否接受(enabled)或拒绝(disabled)连接。状态的(present)和(absent)只能在区域级别操作中使用(即,当除了zone和state没有设置其他参数时)。 |
timeout | 默认0 | 该规则应在非永久性时生效的时间 |
zone | | 添加或移除的防火墙区域。注意,可以为每个系统配置默认的区域,可能的值有block , dmz , drop , external , home , internal , public , trusted , work ,public |
笔记
- 未在任何基于 Debian 的系统上测试。
- 需要firewalld的python2绑定,默认可能没有安装。
- 对于 python2 firewalld 绑定不可用的发行版(例如 Fedora 28 和更高版本),您必须将这些主机的 ansible_python_interpreter 设置为 python3 解释器路径并安装 python3 绑定。
- 区域事务(创建、删除)可以仅使用区域和状态参数“存在”或“不存在”来执行。请注意,区域事务必须明确地是永久性的。这是 firewalld 的一个限制。这也意味着您必须在添加要立即执行操作的区域后重新加载 firewalld。该模块不会隐含地为您处理此问题,因为这将撤消任何先前执行的非永久性立即操作。因此,如果您需要立即访问新创建的区域,建议您在区域创建返回并更改状态后立即重新加载 firewalld,然后再对该区域执行任何其他即时、非永久性操作。
例子
- firewalld:
service: https
permanent: yes
state: enabled
- firewalld:
port: 8081/tcp
permanent: yes
state: disabled
- firewalld:
port: 161-162/udp
permanent: yes
state: enabled
- firewalld:
zone: dmz
service: http
permanent: yes
state: enabled
- firewalld:
rich_rule: rule service name="ftp" audit limit value="1/m" accept
permanent: yes
state: enabled
- firewalld:
source: 192.0.2.0/24
zone: internal
state: enabled
- firewalld:
zone: trusted
interface: eth2
permanent: yes
state: enabled
- firewalld:
masquerade: yes
state: enabled
permanent: yes
zone: dmz
- firewalld:
zone: custom
state: present
permanent: yes
- firewalld:
zone: drop
state: present
permanent: yes
icmp_block_inversion: yes
- firewalld:
zone: drop
state: present
permanent: yes
icmp_block: echo-request
- name: Redirect port 443 to 8443 with Rich Rule
firewalld:
rich_rule: rule family=ipv4 forward-port port=443 protocol=tcp to-port=8443
zone: public
permanent: yes
immediate: yes
state: enabled