ansible.posix.firewalld – Управление произвольными портами/службами с помощью firewalld
Примечание
Этот плагин входит в состав коллекции ansible.posix (версия 1.1.1).
Для его установки используйте: ansible-galaxy collection install ansible.posix.
Для использования в плейбуке укажите: ansible.posix.firewalld.
Обзор
- Этот модуль позволяет добавлять или удалять службы и порты (TCP или UDP) в правила firewalld, работающие или постоянные.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- firewalld >= 0.2.11
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| icmp_block строка | Блокировка ICMP, которую нужно добавить/удалить из зоны в firewalld. | |
| icmp_block_inversion строка | Включить/выключить инверсию блокировок ICMP для зоны в firewalld. | |
| immediate булево |
| Необходимо ли применить эту конфигурацию немедленно, если она установлена как постоянная. |
| interface строка | Интерфейс, который нужно добавить/удалить из зоны в firewalld. | |
| masquerade строка | Настройка маскирования, которую нужно включить/выключить для зон в firewalld. | |
| offline булево |
| Необходимо ли выполнить этот модуль даже когда firewalld недоступен. |
| permanent булево |
| Должна ли эта конфигурация быть в текущей конфигурации firewalld или сохраняться при перезагрузке. Начиная с Ansible 2.3, операции permanent могут работать с конфигурациями firewalld, когда он не запущен (требуется firewalld >= 3.0.9). Обратите внимание, что если это no, immediate предполагается yes. |
| port строка | Имя порта или диапазона портов для добавления/удаления из firewalld. Должен быть в формате PORT/PROTOCOL или PORT-PORT/PROTOCOL для диапазонов портов. | |
| rich_rule строка | Обогащенное правило для добавления/удаления из firewalld. | |
| service строка | Имя службы для добавления/удаления из firewalld. Служба должна быть в списке вывода firewall-cmd --get-services. | |
| source строка | Источник/сеть, которую нужно добавить/удалить из firewalld. | |
| state строка / обязательно |
| Включить или отключить настройку. Для портов: должен ли этот порт принимать (включен) или отклонять (выключен) подключения. Состояния present и absent могут использоваться только в операциях на уровне зон (т.е. когда не заданы другие параметры, кроме зоны и состояния). |
| timeout целое число | По умолчанию: 0 | Время действия правила, если оно не постоянное. |
| zone строка | Зона firewalld, для добавления/удаления. Обратите внимание, что зона по умолчанию может быть настроена на каждом сервере, но public является значением по умолчанию от разработчиков.Доступные варианты могут быть расширены в зависимости от конфигурации каждого сервера, здесь указаны значения по умолчанию по умолчанию. Возможные значения включают block, dmz, drop, external, home, internal, public, trusted, work. |
Примечания
Примечание
- Не тестировалось на системах на базе Debian.
- Требуются python2-bindings для firewalld, которые могут быть не установлены по умолчанию.
- Для дистрибутивов, где python2-bindings для firewalld недоступны (например, Fedora 28 и выше), необходимо установить ansible_python_interpreter для этих хостов на путь к интерпретатору python3 и установить python3-bindings.
- Транзакции зон (создание, удаление) могут выполняться с использованием только параметров zone и state «present» или «absent». Обратите внимание, что для транзакций зон обязательно должно быть указано permanent. Это ограничение firewalld. Это также означает, что вам придется перезагрузить firewalld после добавления зоны, на которой вы хотите выполнить немедленные действия. Модуль не будет выполнять это за вас неявно, так как это отменит любые ранее выполненные немедленные действия, которые не были постоянными. Поэтому, если вам требуется немедленный доступ к недавно созданной зоне, рекомендуется сразу же перезагрузить firewalld после возвращения зоны с изменённым состоянием и перед выполнением любых других немедленных, непостоянных действий в этой зоне.
Примеры
- name: permit traffic in default zone for https service
ansible.posix.firewalld:
service: https
permanent: yes
state: enabled
- name: do not permit traffic in default zone on port 8081/tcp
ansible.posix.firewalld:
port: 8081/tcp
permanent: yes
state: disabled
- ansible.posix.firewalld:
port: 161-162/udp
permanent: yes
state: enabled
- ansible.posix.firewalld:
zone: dmz
service: http
permanent: yes
state: enabled
- ansible.posix.firewalld:
rich_rule: rule service name="ftp" audit limit value="1/m" accept
permanent: yes
state: enabled
- ansible.posix.firewalld:
source: 192.0.2.0/24
zone: internal
state: enabled
- ansible.posix.firewalld:
zone: trusted
interface: eth2
permanent: yes
state: enabled
- ansible.posix.firewalld:
masquerade: yes
state: enabled
permanent: yes
zone: dmz
- ansible.posix.firewalld:
zone: custom
state: present
permanent: yes
- ansible.posix.firewalld:
zone: drop
state: enabled
permanent: yes
icmp_block_inversion: yes
- ansible.posix.firewalld:
zone: drop
state: enabled
permanent: yes
icmp_block: echo-request
- name: Redirect port 443 to 8443 with Rich Rule
ansible.posix.firewalld:
rich_rule: rule family=ipv4 forward-port port=443 protocol=tcp to-port=8443
zone: public
permanent: yes
immediate: yes
state: enabled
Авторы
- Adam Miller (@maxamillion)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/posix/firewalld_module.html