FlatKey.firewalld
ansible-firewalld-role
Umożliwia konfigurację firewalld.
Opcje konfiguracji:
- domyślna strefa
- interfejs strefy
- źródło strefy
- reguły usług (z możliwością usunięcia nieokreślonych reguł, jeśli chcesz)
- reguły portów
- złożone reguły
Wymagania
Przetestowane tylko na RHEL 7, CentOS 7 i Fedora 29.
Ansible 2.0 lub wyższy
Zmienne roli
Nie musisz używać wszystkich tych bloków zmiennych, możesz użyć tylko tych opcji konfiguracyjnych, które naprawdę potrzebujesz.
Poniższa zmienna służy do zdefiniowania domyślnej strefy firewalld:
default_zone: (opcjonalne, domyślnie: public)
Poniższe zmienne służą do zdefiniowania, które interfejsy są przypisane do stref:
firewalld_zone_interfaces:
- name: (wymagane, np. public)
interfaces: (wymagane, lista interfejsów, jeden lub wiele możliwych)
Przykład:
firewalld_zone_interfaces:
- name: trusted
interfaces:
- eth1
- eth2
- name: public
interfaces:
- eth0
Poniższe zmienne służą do zdefiniowania źródła strefy:
firewalld_zone_source:
public:
zone: (wymagane, nazwa strefy)
source: (wymagane, tablica źródeł, np. [192.168.1.1/24, 10.16.16.23])
state: (opcjonalne, tylko wartości: enabled|disabled, domyślnie: enabled)
permanent: (opcjonalne, tylko wartości: true|false, domyślnie: true)
immediate: (opcjonalne, tylko wartości: true|false, domyślnie: true)
Poniższe zmienne służą do zdefiniowania reguły usługi:
firewalld_service_rules:
name:
service: (opcjonalne, domyślnie: użyj nazwy, jeśli usługa nie jest zdefiniowana)
state: (opcjonalne, tylko wartości: enabled|disabled, domyślnie: enabled)
zone: (opcjonalne, domyślnie: public)
permanent: (opcjonalne, tylko wartości: true|false, domyślnie: true)
immediate: (opcjonalne, tylko wartości: true|false, domyślnie: true)
Przykłady:
firewalld_service_rules:
ssh:
state: enabled
zone: public
permanent: true
immediate: true
lub
firewalld_service_rules:
ssh_trusted:
service: ssh
state: enabled
zone: trusted
ssh_public:
service: ssh
state: enabled
zone: public
Poniższe zmienne są używane do usuwania nieokreślonych aktywnych reguł usług i portów:
firewalld_purge_services: (opcjonalne, tylko wartości: true|false, domyślnie: false)
firewalld_purge_ports: (opcjonalne, tylko wartości: true|false, domyślnie: false)
Poniższe zmienne służą do zdefiniowania reguły portu:
firewalld_port_rules:
name:
port: (wymagane, port lub zakres portów)
protocol: (opcjonalne, tylko wartości: tcp|udp, domyślnie: tcp)
state: (opcjonalne, tylko wartości: enabled|disabled, domyślnie: enabled)
zone: (opcjonalne, domyślnie: public)
permanent: (opcjonalne, tylko wartości: true|false, domyślnie: true)
immediate: (opcjonalne, tylko wartości: true|false, domyślnie: true)
Poniższe zmienne służą do zdefiniowania złożonej reguły:
firewalld_rich_rules:
name:
rule: (wymagane, pełna reguła w języku złożonym firewalld)
state: (opcjonalne, tylko wartości: enabled|disabled, domyślnie: enabled)
zone: (opcjonalne, domyślnie: public)
permanent: (opcjonalne, tylko wartości: true|false, domyślnie: true)
immediate: (opcjonalne, tylko wartości: true|false, domyślnie: true)
Poniższa zmienna służy do zdefiniowania ipsets. Obsługiwany jest tylko typ hash:ip. UWAGA: ipsety utworzone poza tą zmienną nie będą zarządzane ani usuwane.
firewalld_ipsets:
- name: example1
entries:
- 192.168.0.1
- 192.168.0.5
- name: example2
entries:
- 192.168.0.7
- 192.168.0.11
Handlery
Oto handlery zdefiniowane w tej roli:
- ponowne uruchomienie firewalld
Przykład playbooka
- hosts: serwer
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
Licencja
MIT
firewalld configuration through variables
ansible-galaxy install FlatKey.firewalld