FlatKey.firewalld
ansible-firewalld-role
Permite configurar firewalld.
Opciones de configuración:
- zona predeterminada
- interfaz de una zona
- fuente de una zona
- reglas de servicio (con purga de reglas no definidas, si se desea)
- reglas de puerto
- reglas ricas
Requisitos
Probado solo en RHEL 7, CentOS 7 y Fedora 29.
Ansible 2.0 o superior
Variables de Rol
No es necesario usar todos estos bloques de variables, puedes usar solo las opciones de configuración que realmente necesites.
La siguiente variable se utiliza para definir la zona predeterminada de firewalld:
default_zone: (opcional, predeterminado: public)
Las siguientes variables se utilizan para definir qué interfaces se asignan a las zonas:
firewalld_zone_interfaces:
- name: (requerido, por ejemplo, public)
interfaces: (requerido, lista de interfaces, una o varias posibles)
Ejemplo:
firewalld_zone_interfaces:
- name: trusted
interfaces:
- eth1
- eth2
- name: public
interfaces:
- eth0
Las siguientes variables se utilizan para definir la fuente de una zona:
firewalld_zone_source:
public:
zone: (requerido, nombre de la zona)
source: (requerido, array de fuentes por ejemplo [ 192.168.1.1/24, 10.16.16.23 ])
state: (opcional, solo valores: enabled|disabled, predeterminado: enabled)
permanent: (opcional, solo valores: true|false, predeterminado: true)
immediate: (opcional, solo valores: true|false, predeterminado: true)
Las siguientes variables se utilizan para definir una regla de servicio:
firewalld_service_rules:
name:
service: (opcional, predeterminado: usar el nombre si el servicio no está definido)
state: (opcional, solo valores: enabled|disabled, predeterminado: enabled)
zone: (opcional, predeterminado: public)
permanent: (opcional, solo valores: true|false, predeterminado: true)
immediate: (opcional, solo valores: true|false, predeterminado: true)
Ejemplos:
firewalld_service_rules:
ssh:
state: enabled
zone: public
permanent: true
immediate: true
o
firewalld_service_rules:
ssh_trusted:
service: ssh
state: enabled
zone: trusted
ssh_public:
service: ssh
state: enabled
zone: public
Las siguientes variables se utilizan para purgar reglas de servicio y puertos activos no definidas:
firewalld_purge_services: (opcional, solo valores: true|false, predeterminado: false)
firewalld_purge_ports: (opcional, solo valores: true|false, predeterminado: false)
Las siguientes variables se utilizan para definir una regla de puerto:
firewalld_port_rules:
name:
port: (requerido, puerto o rango de puertos)
protocol: (opcional, solo valores: tcp|udp, predeterminado: tcp)
state: (opcional, solo valores: enabled|disabled, predeterminado: enabled)
zone: (opcional, predeterminado: public)
permanent: (opcional, solo valores: true|false, predeterminado: true)
immediate: (opcional, solo valores: true|false, predeterminado: true)
Las siguientes variables se utilizan para definir una regla rica:
firewalld_rich_rules:
name:
rule: (requerido, una regla completa en el lenguaje rico de firewalld)
state: (opcional, solo valores: enabled|disabled, predeterminado: enabled)
zone: (opcional, predeterminado: public)
permanent: (opcional, solo valores: true|false, predeterminado: true)
immediate: (opcional, solo valores: true|false, predeterminado: true)
La siguiente variable se utiliza para definir ipsets. Solo se admite el tipo hash:ip. NOTA: los ipsets creados fuera de esta variable no serán gestionados ni eliminados.
firewalld_ipsets:
- name: ejemplo1
entries:
- 192.168.0.1
- 192.168.0.5
- name: ejemplo2
entries:
- 192.168.0.7
- 192.168.0.11
Manejadores
Estos son los manejadores que se definen en este rol:
- reiniciar firewalld
Ejemplo de Playbook
- 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: ejemplo1
entries:
- 192.168.0.1
- 192.168.0.5
- name: ejemplo2
entries:
- 192.168.0.7
- 192.168.0.11
firewalld_purge_services: true
firewalld_purge_ports: true
Licencia
MIT
firewalld configuration through variables
ansible-galaxy install FlatKey.firewalld