ansible常用模块之 -- firewalld模块 – 使用防火墙管理任意端口/服务
firewalld模块 – 使用防火墙管理任意端口/服务
一、摘要
- 该模块允许在运行的或永久的防火墙规则中添加或删除服务和端口(TCP或UDP)
二、参数
参数 | 选项/默认值 | 描述 |
---|---|---|
icmp_block string | 要添加/删除到防火墙中的区域的ICMP块。 | |
icmp_block_inversion string | 启用/禁用防火墙中某个zone的ICMP块反转功能。 | |
immediate boolean | · no ← · yes | 如果将此配置设置为永久的,则应立即应用此配置。 |
interface string | 您要添加/删除到防火墙中的区域的接口。 | |
masquerade string | 向防火墙内的区域启用/禁用的伪装设置。 | |
offline boolean | · no · yes | 防火墙离线时是否运行此模块。 |
permanent boolean | · no · yes | 该配置是否在正在运行的防火墙配置中,或者在重新启动时仍然存在。 在Ansible 2.3中,永久操作可以在防火墙配置上操作,当它不运行时(需要防火墙>= 0.3.9)。 注意,如果这是no,则假定immediate是yes。 |
port string | 要添加/删除到防火墙的端口或端口范围的名称。 对于端口范围,必须采用PORT/PROTOCOL或PORT-PORT/PROTOCOL的形式。 | |
rich_rule string | 丰富的规则添加/删除/从防火墙。 | |
service string | 要添加/从防火墙中删除/删除的服务的名称 服务必须在firewall-cmd --get-services的输出中列出 | |
source string | 要从防火墙中添加/删除的源/网络 | |
state string required | · absent · disabled · enabled · present | 启用或禁用设置。 对于端口:该端口是否接受(启用)或拒绝(禁用)连接。 存在和不存在的状态只能在区域级别的操作中使用(即,当只设置了区域和状态时没有其他参数)。 |
timeout integer | Default:0 | 该规则在非永久性情况下应有效的时间 |
zone string | 要添加/移除/从中的防火墙区域。 注意,缺省区域可以在每个系统上配置,但public是上游的缺省区域。 可用的选项可以基于每个系统的配置进行扩展,这里列出的是“开箱即用”默认值。 可能的值包括block、dmz、drop、external、home、internal、public、trusted、work。 |
三、示例
- 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
# 使用富规则将端口443重定向到8443
- 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
官方文档:https://docs.ansible.com/ansible/2.9/modules/firewalld_module.html#firewalld-module