Модуль community.hrobot.firewall — управление брандмауэром выделенного сервера Hetzner
Примечание
Этот модуль входит в коллекцию community.hrobot (версия 2.7.2).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.hrobot. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.hrobot.firewall.
Краткое описание
- Управление брандмауэром выделенного сервера Hetzner.
- Обратите внимание: проверка идемпотентности для флагов TCP просто сравнивает строки и не пытается интерпретировать правила. В будущем это может измениться.
Требования
На хосте, выполняющем этот модуль, должны быть установлены следующие компоненты.
- ipaddress
Параметры
Параметр | Комментарии |
|---|---|
allowlist_hos псевдонимы: whitelist_hos boolean | Имеют ли службы Hetzner доступ. Варианты:
|
filter_ipv6 boolean добавлен в community.hrobot 1.8.0 | Фильтровать ли также трафик IPv6. Трафик IPv4 фильтруется всегда, фильтрацию трафика IPv6 необходимо включить явно. Варианты:
|
hetzner_password string / обязательный | Пароль пользователя веб-службы Robot. |
hetzner_user string / обязательный | Имя пользователя веб-службы Robot. |
port string | Порт коммутатора брандмауэра. Варианты:
|
rate_limit_retry_timeout integer добавлен в community.hrobot 2.1.0 | Время ожидания (в секундах) при получении ошибок превышения ограничения частоты запросов. Укажите Укажите отрицательное значение, например По умолчанию: |
rules dictionary | Правила брандмауэра. |
|
input list / элементы=dictionary |
Входящие правила брандмауэра. |
|
action string / обязательный |
Действие при совпадении с правилом. Варианты:
|
|
dst_ip string |
IP-адрес назначения или адрес подсети назначения. Нотация CIDR. |
|
dst_port string |
Порт назначения или диапазон портов. |
|
ip_version string |
Версия интернет-протокола. Не указывайте значение, чтобы фильтровать оба протокола. Обратите внимание: в этом случае нельзя указывать |
|
name string |
Имя правила брандмауэра. Обратите внимание: Hetzner ограничивает набор символов, которые можно использовать в именах правил. В настоящее время допускаются только буквы |
|
protocol string |
Протокол выше уровня IP. |
|
src_ip string |
IP-адрес источника или адрес подсети источника. Нотация CIDR. |
|
src_port string |
Порт источника или диапазон портов. |
|
tcp_flags string |
Флаги TCP или логическое сочетание флагов. Hetzner поддерживает флаги Их можно комбинировать с помощью Дополнительные сведения см. в документации. |
|
output list / элементы=dictionary добавлен в community.hrobot 1.8.0 |
Исходящие правила брандмауэра. |
|
action string / обязательный |
Действие при совпадении с правилом. Варианты:
|
|
dst_ip string |
IP-адрес назначения или адрес подсети назначения. Нотация CIDR. |
|
dst_port string |
Порт назначения или диапазон портов. |
|
ip_version string |
Версия интернет-протокола. Не указывайте значение, чтобы фильтровать оба протокола. Обратите внимание: в этом случае нельзя указывать |
|
name string |
Имя правила брандмауэра. Обратите внимание: Hetzner ограничивает набор символов, которые можно использовать в именах правил. В настоящее время допускаются только буквы |
|
protocol string |
Протокол выше уровня IP. |
|
src_ip string |
IP-адрес источника или адрес подсети источника. Нотация CIDR. |
|
src_port string |
Порт источника или диапазон портов. |
|
tcp_flags string |
Флаги TCP или логическое сочетание флагов. Hetzner поддерживает флаги Их можно комбинировать с помощью Дополнительные сведения см. в документации. |
server_ip string | Основной IP-адрес сервера. Необходимо указать ровно один из параметров Обратите внимание: Hetzner объявила устаревшим способ идентификации брандмауэра сервера по основному IP-адресу сервера. Поэтому использование этого параметра в любой момент в будущем может перестать работать. Вместо него используйте |
server_number integer добавлен в community.hrobot 1.8.0 | Номер сервера. Необходимо указать ровно один из параметров |
state string | Состояние брандмауэра. Брандмауэр активен, если состояние равно Варианты:
|
timeout integer | Время ожидания (в секундах) настройки брандмауэра. По умолчанию: |
update_timeout integer | Время ожидания при настройке брандмауэра. Обратите внимание: вызов API возвращается до того, как настройка брандмауэра будет успешно завершена. По умолчанию: |
wait_delay integer | Задержка (в секундах) перед повторной проверкой настройки брандмауэра. По умолчанию: |
wait_for_configured boolean | Ожидать ли успешной настройки брандмауэра перед определением дальнейших действий и возвратом из модуля. Если в данный момент выполняется настройка брандмауэра, API возвращает статус Обратите внимание, что существует ограничение на количество запросов. Если необходимо выполнить несколько обновлений, может быть удобнее отключить ожидание и регулярно запрашивать состояние с помощью community.hrobot.firewall_info. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группа действий: community.hrobot.robot добавлен в community.hrobot 1.6.0 | Используйте |
check_mode | Поддержка: полная | Может выполняться в режиме |
diff_mode | Поддержка: полная | В режиме различий возвращает сведения об изменениях (или о том, что, возможно, потребуется изменить в |
idempotent | Поддержка: полная | При повторном запуске с теми же аргументами вне режима проверки модуль сообщает об отсутствии изменений. Предполагается, что система, которой управляет модуль или состояние которой он запрашивает, не изменилась существенным образом. |
См. также
См. также
- Документация по брандмауэру
-
Документация Hetzner по брандмауэру без сохранения состояния для выделенных серверов.
- community.hrobot.firewall_info
-
Получение сведений о конфигурации брандмауэра.
Примеры
---
- name: Configure firewall for server with main IP 1.2.3.4
community.hrobot.firewall:
hetzner_user: foo
hetzner_password: bar
server_ip: 1.2.3.4
state: present
filter_ipv6: true
allowlist_hos: true
rules:
input:
- name: Allow ICMP protocol
# This is needed so you can ping your server
ip_version: ipv4
protocol: icmp
action: accept
# Note that it is not possible to disable ICMP for IPv6
# (https://robot.hetzner.com/doc/webservice/en.html#post-firewall-server-id)
- name: Allow responses to incoming TCP connections
protocol: tcp
dst_port: '32768-65535'
tcp_flags: ack
action: accept
- name: Allow restricted access from some known IPv4 addresses
# Allow everything to ports 20-23 from 4.3.2.1/24 (IPv4 only)
ip_version: ipv4
src_ip: 4.3.2.1/24
dst_port: '20-23'
action: accept
- name: Allow everything to port 443
dst_port: '443'
action: accept
- name: Drop everything else
action: discard
output:
- name: Accept everything
action: accept
register: result
- ansible.builtin.debug:
msg: "{{ result }}"
Возвращаемые значения
Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
firewall dictionary | Конфигурация брандмауэра. Возвращается: при успешном выполнении |
|
allowlist_hos boolean добавлено в community.hrobot 1.2.0 |
Имеют ли службы Hetzner доступ. Возвращается: при успешном выполнении Пример: |
|
port string |
Порт коммутатора брандмауэра.
Возвращается: при успешном выполнении Пример: |
|
rules dictionary |
Правила брандмауэра. Возвращается: при успешном выполнении |
|
input list / elements=dictionary |
Правила входящего трафика брандмауэра. Возвращается: при успешном выполнении |
|
action string |
Действие при совпадении с правилом.
Возвращается: при успешном выполнении Возможные возвращаемые значения:
Пример: |
|
dst_ip string |
IP-адрес назначения или адрес подсети. Нотация CIDR. Возвращается: при успешном выполнении Пример: |
|
dst_port string |
Порт назначения или диапазон портов. Возвращается: при успешном выполнении Пример: |
|
ip_version string |
Версия интернет-протокола. Если значение не задано, правило применяется и к IPv4, и к IPv6. Возвращается: при успешном выполнении Пример: |
|
name string |
Название правила брандмауэра. Возвращается: при успешном выполнении Пример: |
|
protocol string |
Протокол уровня выше IP. Возвращается: при успешном выполнении Пример: |
|
src_ip string |
IP-адрес источника или адрес подсети. Нотация CIDR. Возвращается: при успешном выполнении |
|
src_port string |
Порт источника или диапазон портов. Возвращается: при успешном выполнении |
|
tcp_flags string |
Флаги TCP или их логическая комбинация. Возвращается: при успешном выполнении |
|
output list / elements=dictionary |
Правила исходящего трафика брандмауэра. Возвращается: при успешном выполнении |
|
action string |
Действие при совпадении с правилом.
Возвращается: при успешном выполнении Возможные возвращаемые значения:
Пример: |
|
dst_ip string |
IP-адрес назначения или адрес подсети. Нотация CIDR. Возвращается: при успешном выполнении Пример: |
|
dst_port string |
Порт назначения или диапазон портов. Возвращается: при успешном выполнении Пример: |
|
ip_version string |
Версия интернет-протокола. Если значение не задано, правило применяется и к IPv4, и к IPv6. Возвращается: при успешном выполнении |
|
name string |
Название правила брандмауэра. Возвращается: при успешном выполнении Пример: |
|
protocol string |
Протокол уровня выше IP. Возвращается: при успешном выполнении Пример: |
|
src_ip string |
IP-адрес источника или адрес подсети. Нотация CIDR. Возвращается: при успешном выполнении |
|
src_port string |
Порт источника или диапазон портов. Возвращается: при успешном выполнении |
|
tcp_flags string |
Флаги TCP или их логическая комбинация. Возвращается: при успешном выполнении |
|
server_ip string |
Основной IP-адрес сервера. Возвращается: при успешном выполнении Пример: |
|
server_number integer |
Внутренний номер сервера в Hetzner. Возвращается: при успешном выполнении Пример: |
|
status string |
Состояние брандмауэра.
Будет Возвращается: при успешном выполнении Пример: |
|
whitelist_hos boolean |
Имеют ли службы Hetzner доступ. Прежнее название возвращаемого значения Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/hrobot/firewall_module.html