FlatKey.firewalld
ansible-firewalld角色
允许您配置firewalld。
配置选项:
- 默认区域
- 区域接口
- 区域源
- 服务规则(可选择清除未定义规则)
- 端口规则
- 丰富规则
要求
仅在RHEL 7、CentOS 7和Fedora 29上测试过。
需要Ansible 2.0或更高版本。
角色变量
不必使用所有这些变量块,您可以只使用真正需要的配置选项。
以下变量用于定义firewalld的默认区域:
default_zone: (可选,默认值:public)
以下变量用于定义分配给区域的接口:
firewalld_zone_interfaces:
- name: (必填,例如:public)
interfaces: (必填,接口列表,可以是一个或多个)
示例:
firewalld_zone_interfaces:
- name: trusted
interfaces:
- eth1
- eth2
- name: public
interfaces:
- eth0
以下变量用于定义区域的源:
firewalld_zone_source:
public:
zone: (必填,区域名称)
source: (必填,源数组,例如:[192.168.1.1/24, 10.16.16.23])
state: (可选,仅值:enabled|disabled,默认值:enabled)
permanent: (可选,仅值:true|false,默认值:true)
immediate: (可选,仅值:true|false,默认值:true)
以下变量用于定义服务规则:
firewalld_service_rules:
name:
service: (可选,默认:如果未定义服务则使用名称)
state: (可选,仅值:enabled|disabled,默认值:enabled)
zone: (可选,默认:public)
permanent: (可选,仅值:true|false,默认值:true)
immediate: (可选,仅值:true|false,默认值:true)
示例:
firewalld_service_rules:
ssh:
state: enabled
zone: public
permanent: true
immediate: true
或
firewalld_service_rules:
ssh_trusted:
service: ssh
state: enabled
zone: trusted
ssh_public:
service: ssh
state: enabled
zone: public
以下变量用于清除未定义的活动服务和端口规则:
firewalld_purge_services: (可选,仅值:true|false,默认值:false)
firewalld_purge_ports: (可选,仅值:true|false,默认值:false)
以下变量用于定义端口规则:
firewalld_port_rules:
name:
port: (必填,端口或端口范围)
protocol: (可选,仅值:tcp|udp,默认值:tcp)
state: (可选,仅值:enabled|disabled,默认值:enabled)
zone: (可选,默认:public)
permanent: (可选,仅值:true|false,默认值:true)
immediate: (可选,仅值:true|false,默认值:true)
以下变量用于定义丰富规则:
firewalld_rich_rules:
name:
rule: (必填,firewalld丰富语言中的完整规则)
state: (可选,仅值:enabled|disabled,默认值:enabled)
zone: (可选,默认:public)
permanent: (可选,仅值:true|false,默认值:true)
immediate: (可选,仅值:true|false,默认值:true)
以下变量用于定义ipsets。仅支持hash:ip类型。 注意:在此变量外创建的ipsets将不会被管理或删除。
firewalld_ipsets:
- name: example1
entries:
- 192.168.0.1
- 192.168.0.5
- name: example2
entries:
- 192.168.0.7
- 192.168.0.11
处理程序
这些是此角色中定义的处理程序:
- 重启firewalld
示例剧本
- hosts: server
become: yes
become_user: root
become_method: su
roles:
- ansible-firewalld-role
vars:
default_zone: public
firewalld_zone_interfaces:
- name: trusted
interfaces:
- eth1
- eth2
- name: public
interfaces:
- eth0
firewalld_zone_source:
trusted:
zone: trusted
source:
- "192.168.1.0/24"
- "10.0.16.12"
state: enabled
permanent: true
immediate: true
firewalld_service_rules:
ssh:
state: enabled
zone: public
permanent: true
immediate: true
firewalld_port_rules:
smtp:
port: 25
protocol: tcp
state: enabled
zone: public
permanent: true
immediate: true
firewalld_rich_rules:
ftp_audit:
rule: 'rule service name="ftp" audit limit value="1/m" accept'
state: enabled
zone: public
permanent: true
immediate: true
firewalld_ipsets:
- name: example1
entries:
- 192.168.0.1
- 192.168.0.5
- name: example2
entries:
- 192.168.0.7
- 192.168.0.11
firewalld_purge_services: true
firewalld_purge_ports: true
许可证
MIT