firewalld — Управление произвольными портами/службами с помощью firewalld
Новое в версии 1.4.
Обзор
- Этот модуль позволяет добавлять или удалять службы и порты TCP или UDP в действующих или постоянных правилах firewalld.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- firewalld >= 0.2.11
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| immediate bool (добавлено в 1.9) |
| Должна ли эта конфигурация применяться немедленно, если она установлена как постоянная |
| interface (добавлено в 2.1) | Интерфейс, который необходимо добавить/удалить в зону firewalld | |
| masquerade (добавлено в 2.1) | Настройка маскирования, которую необходимо включить/отключить в зонах firewalld | |
| permanent | Должна ли эта конфигурация находиться в текущей конфигурации firewalld или сохраняться при перезагрузке. С версии Ansible 2.3, операции с постоянными параметрами могут работать с конфигурациями firewalld, когда он не запущен (требуется firewalld >= 3.0.9). (ПРИМЕЧАНИЕ: Если это значение ложно, предполагается, что значение immediate истинно.) | |
| port | Имя порта или диапазона портов для добавления/удаления в firewalld. Должно быть в формате PORT/PROTOCOL или PORT-PORT/PROTOCOL для диапазонов портов. | |
| rich_rule | Богатое правило для добавления/удаления в firewalld. | |
| service | Имя службы для добавления/удаления в firewalld — служба должна быть указана в выводе firewall-cmd --get-services. | |
| source (добавлено в 2.0) | Источник/сеть, которую необходимо добавить/удалить в firewalld | |
| state обязательно |
| Включить или отключить настройку. Для портов: Должен ли этот порт принимать (enabled) или отклонять (disabled) подключения. Состояния «present» и «absent» могут использоваться только в операциях на уровне зон (т.е. когда не заданы другие параметры, кроме zone и state). |
| timeout | Значение по умолчанию: 0 | Время действия правила при не постоянной настройке. |
| zone |
"system-default(public)" | Зона firewalld для добавления/удаления (ПРИМЕЧАНИЕ: зона по умолчанию может настраиваться для каждой системы, но «public» — значение по умолчанию из исходного кода. Доступные варианты могут быть расширены в зависимости от конфигураций на каждой системе, здесь указаны значения по умолчанию «из коробки»). |
Примечания
Примечание
- Не тестировалось на системах на базе Debian.
- Требуются python2 bindings для firewalld, которые могут быть не установлены по умолчанию.
- В дистрибутивах, где python2 bindings для firewalld недоступны (например, Fedora 28 и новее), необходимо установить ansible_python_interpreter для этих хостов на путь интерпретатора python3 и установить python3 bindings.
- Операции с зонами (создание, удаление) могут выполняться только с использованием параметров zone и state «present» или «absent». Обратите внимание, что операции с зонами должны быть явно постоянными. Это ограничение firewalld. Это также означает, что после добавления зоны, для которой требуется немедленное действие, необходимо перезагрузить firewalld. Модуль не позаботится об этом неявно, поскольку это отменит любые ранее выполненные немедленные действия, которые не были постоянными. Поэтому, если вам нужен немедленный доступ к новой зоне, рекомендуется перезагрузить firewalld сразу после того, как состояние зоны изменится, и прежде чем выполнять какие-либо другие немедленные, не постоянные действия в этой зоне.
Примеры
- firewalld:
service: https
permanent: true
state: enabled
- firewalld:
port: 8081/tcp
permanent: true
state: disabled
- firewalld:
port: 161-162/udp
permanent: true
state: enabled
- firewalld:
zone: dmz
service: http
permanent: true
state: enabled
- firewalld:
rich_rule: 'rule service name="ftp" audit limit value="1/m" accept'
permanent: true
state: enabled
- firewalld:
source: 192.0.2.0/24
zone: internal
state: enabled
- firewalld:
zone: trusted
interface: eth2
permanent: true
state: enabled
- firewalld:
masquerade: yes
state: enabled
permanent: true
zone: dmz
- firewalld:
zone: custom
state: present
permanent: true
- name: Redirect port 443 to 8443 with Rich Rule
firewalld:
rich_rule: rule family={{ item }} forward-port port=443 protocol=tcp to-port=8443
zone: public
permanent: true
immediate: true
state: enabled
with_items:
- ipv4
- ipv6
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимостью.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Поддержка и обслуживание модулей для получения дополнительной информации.
Список других модулей, поддерживаемых сообществом Ansible, см. здесь.
Автор
- Адам Миллер (@maxamillion)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/firewalld_module.html