FlatKey.firewalld
ansible-firewalld-role
Erlaubt die Konfiguration von firewalld.
Konfigurationsoptionen:
- Standardzone
- Schnittstelle einer Zone
- Quelle einer Zone
- Dienstregeln (mit der Möglichkeit, nicht definierte Regeln zu löschen, falls gewünscht)
- Portregeln
- Erweiterte Regeln
Voraussetzungen
Getestet nur auf RHEL 7, CentOS 7 und Fedora 29.
Ansible 2.0 oder höher
Rollenvariablen
Es ist nicht notwendig, alle diese Variablenblöcke zu verwenden; du kannst nur die Konfigurationsoptionen nutzen, die du wirklich benötigst.
Die folgende Variable wird verwendet, um die Standardzone von firewalld zu definieren:
default_zone: (optional, Standard: public)
Die folgenden Variablen werden verwendet, um zu definieren, welche Schnittstellen den Zonen zugeordnet sind:
firewalld_zone_interfaces:
- name: (erforderlich, z.B. public)
interfaces: (erforderlich, Liste von Schnittstellen, eine oder mehrere möglich)
Beispiel:
firewalld_zone_interfaces:
- name: trusted
interfaces:
- eth1
- eth2
- name: public
interfaces:
- eth0
Die folgenden Variablen werden verwendet, um die Quelle einer Zone zu definieren:
firewalld_zone_source:
public:
zone: (erforderlich, Zonenname)
source: (erforderlich, Array von Quellen z.B. [192.168.1.1/24, 10.16.16.23])
state: (optional, nur Werte: enabled|disabled, Standard: enabled)
permanent: (optional, nur Werte: true|false, Standard: true)
immediate: (optional, nur Werte: true|false, Standard: true)
Die folgenden Variablen werden verwendet, um eine Dienstregel zu definieren:
firewalld_service_rules:
name:
service: (optional, Standard: benutze Name, falls Dienst nicht definiert)
state: (optional, nur Werte: enabled|disabled, Standard: enabled)
zone: (optional, Standard: public)
permanent: (optional, nur Werte: true|false, Standard: true)
immediate: (optional, nur Werte: true|false, Standard: true)
Beispiele:
firewalld_service_rules:
ssh:
state: enabled
zone: public
permanent: true
immediate: true
oder
firewalld_service_rules:
ssh_trusted:
service: ssh
state: enabled
zone: trusted
ssh_public:
service: ssh
state: enabled
zone: public
Die folgenden Variablen werden verwendet, um nicht definierte aktive Dienst- und Portregeln zu löschen:
firewalld_purge_services: (optional, nur Werte: true|false, Standard: false)
firewalld_purge_ports: (optional, nur Werte: true|false, Standard: false)
Die folgenden Variablen werden verwendet, um eine Portregel zu definieren:
firewalld_port_rules:
name:
port: (erforderlich, Port oder Portbereich)
protocol: (optional, nur Werte: tcp|udp, Standard: tcp)
state: (optional, nur Werte: enabled|disabled, Standard: enabled)
zone: (optional, Standard: public)
permanent: (optional, nur Werte: true|false, Standard: true)
immediate: (optional, nur Werte: true|false, Standard: true)
Die folgenden Variablen werden verwendet, um eine erweiterte Regel zu definieren:
firewalld_rich_rules:
name:
rule: (erforderlich, eine vollständige Regel in der rich-Sprache von firewalld)
state: (optional, nur Werte: enabled|disabled, Standard: enabled)
zone: (optional, Standard: public)
permanent: (optional, nur Werte: true|false, Standard: true)
immediate: (optional, nur Werte: true|false, Standard: true)
Die folgende Variable wird verwendet, um IP-Sets zu definieren. Nur der Typ hash:ip wird unterstützt. HINWEIS: IP-Sets, die außerhalb dieser Variablen erstellt werden, werden nicht verwaltet oder entfernt.
firewalld_ipsets:
- name: example1
entries:
- 192.168.0.1
- 192.168.0.5
- name: example2
entries:
- 192.168.0.7
- 192.168.0.11
Handler
Dies sind die Handler, die in dieser Rolle definiert sind:
- firewalld neu starten
Beispiel-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: 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
Lizenz
MIT
firewalld configuration through variables
ansible-galaxy install FlatKey.firewalld