firewalld
ansible-firewalld-role
Позволяет настраивать 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)
Следующая переменная используется для определения наборов ip. Поддерживается только тип hash:ip. ПРИМЕЧАНИЕ: наборы ip, созданные вне этой переменной, не будут управляться или удаляться.
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
firewalld configuration through variables
ansible-galaxy install FlatKey/ansible-firewalld-role