Spec-Zone.ru › Ansible

Модуль 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 доступ.

Варианты:

  • false
  • true

filter_ipv6

boolean

добавлен в community.hrobot 1.8.0

Фильтровать ли также трафик IPv6.

Трафик IPv4 фильтруется всегда, фильтрацию трафика IPv6 необходимо включить явно.

Варианты:

  • false
  • true

hetzner_password

string / обязательный

Пароль пользователя веб-службы Robot.

hetzner_user

string / обязательный

Имя пользователя веб-службы Robot.

port

string

Порт коммутатора брандмауэра.

Варианты:

  • "main" ← (по умолчанию)
  • "kvm"

rate_limit_retry_timeout

integer

добавлен в community.hrobot 2.1.0

Время ожидания (в секундах) при получении ошибок превышения ограничения частоты запросов.

Укажите 0, чтобы отключить повторные попытки.

Укажите отрицательное значение, например -1, чтобы повторять попытки бесконечно.

По умолчанию: -1

rules

dictionary

Правила брандмауэра.

input

list / элементы=dictionary

Входящие правила брандмауэра.

action

string / обязательный

Действие при совпадении с правилом.

Варианты:

  • "accept"
  • "discard"

dst_ip

string

IP-адрес назначения или адрес подсети назначения.

Нотация CIDR.

dst_port

string

Порт назначения или диапазон портов.

ip_version

string

Версия интернет-протокола.

Не указывайте значение, чтобы фильтровать оба протокола. Обратите внимание: в этом случае нельзя указывать rules.input[].dst_ip, rules.input[].src_ip или rules.input[].protocol.

name

string

Имя правила брандмауэра.

Обратите внимание: Hetzner ограничивает набор символов, которые можно использовать в именах правил. В настоящее время допускаются только буквы a-z, A-Z, пробел и символы ., -, +, _ и @.

protocol

string

Протокол выше уровня IP.

src_ip

string

IP-адрес источника или адрес подсети источника.

Нотация CIDR.

src_port

string

Порт источника или диапазон портов.

tcp_flags

string

Флаги TCP или логическое сочетание флагов.

Hetzner поддерживает флаги syn, fin, rst, psh и urg.

Их можно комбинировать с помощью | (логическое ИЛИ) и & (логическое И).

Дополнительные сведения см. в документации.

output

list / элементы=dictionary

добавлен в community.hrobot 1.8.0

Исходящие правила брандмауэра.

action

string / обязательный

Действие при совпадении с правилом.

Варианты:

  • "accept"
  • "discard"

dst_ip

string

IP-адрес назначения или адрес подсети назначения.

Нотация CIDR.

dst_port

string

Порт назначения или диапазон портов.

ip_version

string

Версия интернет-протокола.

Не указывайте значение, чтобы фильтровать оба протокола. Обратите внимание: в этом случае нельзя указывать rules.output[].dst_ip, rules.output[].src_ip или rules.output[].protocol.

name

string

Имя правила брандмауэра.

Обратите внимание: Hetzner ограничивает набор символов, которые можно использовать в именах правил. В настоящее время допускаются только буквы a-z, A-Z, пробел и символы ., -, +, _ и @.

protocol

string

Протокол выше уровня IP.

src_ip

string

IP-адрес источника или адрес подсети источника.

Нотация CIDR.

src_port

string

Порт источника или диапазон портов.

tcp_flags

string

Флаги TCP или логическое сочетание флагов.

Hetzner поддерживает флаги syn, fin, rst, psh и urg.

Их можно комбинировать с помощью | (логическое ИЛИ) и & (логическое И).

Дополнительные сведения см. в документации.

server_ip

string

Основной IP-адрес сервера.

Необходимо указать ровно один из параметров server_ip и server_number.

Обратите внимание: Hetzner объявила устаревшим способ идентификации брандмауэра сервера по основному IP-адресу сервера. Поэтому использование этого параметра в любой момент в будущем может перестать работать. Вместо него используйте server_number.

server_number

integer

добавлен в community.hrobot 1.8.0

Номер сервера.

Необходимо указать ровно один из параметров server_ip и server_number.

state

string

Состояние брандмауэра.

Брандмауэр активен, если состояние равно present, и отключён, если состояние равно absent.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

timeout

integer

Время ожидания (в секундах) настройки брандмауэра.

По умолчанию: 180

update_timeout

integer

Время ожидания при настройке брандмауэра.

Обратите внимание: вызов API возвращается до того, как настройка брандмауэра будет успешно завершена.

По умолчанию: 30

wait_delay

integer

Задержка (в секундах) перед повторной проверкой настройки брандмауэра.

По умолчанию: 10

wait_for_configured

boolean

Ожидать ли успешной настройки брандмауэра перед определением дальнейших действий и возвратом из модуля.

Если в данный момент выполняется настройка брандмауэра, API возвращает статус in progress. В этом случае модуль будет повторять запросы, пока статус не изменится на active или disabled.

Обратите внимание, что существует ограничение на количество запросов. Если необходимо выполнить несколько обновлений, может быть удобнее отключить ожидание и регулярно запрашивать состояние с помощью community.hrobot.firewall_info.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

action_group

Группа действий: community.hrobot.robot

добавлен в community.hrobot 1.6.0

Используйте group/community.hrobot.robot в module_defaults, чтобы задать значения по умолчанию для этого модуля.

check_mode

Поддержка: полная

Может выполняться в режиме check_mode и возвращать прогноз изменения состояния без изменения целевого объекта.

diff_mode

Поддержка: полная

В режиме различий возвращает сведения об изменениях (или о том, что, возможно, потребуется изменить в check_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 доступ.

Возвращается: при успешном выполнении

Пример: true

port

string

Порт коммутатора брандмауэра.

main или kvm.

Возвращается: при успешном выполнении

Пример: "main"

rules

dictionary

Правила брандмауэра.

Возвращается: при успешном выполнении

input

list / elements=dictionary

Правила входящего трафика брандмауэра.

Возвращается: при успешном выполнении

action

string

Действие при совпадении с правилом.

accept или discard.

Возвращается: при успешном выполнении

Возможные возвращаемые значения:

  • "accept"
  • "discard"

Пример: "accept"

dst_ip

string

IP-адрес назначения или адрес подсети.

Нотация CIDR.

Возвращается: при успешном выполнении

Пример: "1.2.3.4/32"

dst_port

string

Порт назначения или диапазон портов.

Возвращается: при успешном выполнении

Пример: "443"

ip_version

string

Версия интернет-протокола.

Если значение не задано, правило применяется и к IPv4, и к IPv6.

Возвращается: при успешном выполнении

Пример: "ipv4"

name

string

Название правила брандмауэра.

Возвращается: при успешном выполнении

Пример: "Allow HTTP access to server"

protocol

string

Протокол уровня выше IP.

Возвращается: при успешном выполнении

Пример: "tcp"

src_ip

string

IP-адрес источника или адрес подсети.

Нотация CIDR.

Возвращается: при успешном выполнении

src_port

string

Порт источника или диапазон портов.

Возвращается: при успешном выполнении

tcp_flags

string

Флаги TCP или их логическая комбинация.

Возвращается: при успешном выполнении

output

list / elements=dictionary

Правила исходящего трафика брандмауэра.

Возвращается: при успешном выполнении

action

string

Действие при совпадении с правилом.

accept или discard.

Возвращается: при успешном выполнении

Возможные возвращаемые значения:

  • "accept"
  • "discard"

Пример: "accept"

dst_ip

string

IP-адрес назначения или адрес подсети.

Нотация CIDR.

Возвращается: при успешном выполнении

Пример: "1.2.3.4/32"

dst_port

string

Порт назначения или диапазон портов.

Возвращается: при успешном выполнении

Пример: "443"

ip_version

string

Версия интернет-протокола.

Если значение не задано, правило применяется и к IPv4, и к IPv6.

Возвращается: при успешном выполнении

name

string

Название правила брандмауэра.

Возвращается: при успешном выполнении

Пример: "Allow HTTP access to server"

protocol

string

Протокол уровня выше IP.

Возвращается: при успешном выполнении

Пример: "tcp"

src_ip

string

IP-адрес источника или адрес подсети.

Нотация CIDR.

Возвращается: при успешном выполнении

src_port

string

Порт источника или диапазон портов.

Возвращается: при успешном выполнении

tcp_flags

string

Флаги TCP или их логическая комбинация.

Возвращается: при успешном выполнении

server_ip

string

Основной IP-адрес сервера.

Возвращается: при успешном выполнении

Пример: "1.2.3.4"

server_number

integer

Внутренний номер сервера в Hetzner.

Возвращается: при успешном выполнении

Пример: 12345

status

string

Состояние брандмауэра.

active или disabled.

Будет in process, если в данный момент брандмауэр обновляется, а wait_for_configured задано как false или timeout слишком малым значением.

Возвращается: при успешном выполнении

Пример: "active"

whitelist_hos

boolean

Имеют ли службы Hetzner доступ.

Прежнее название возвращаемого значения allowlist_hos; со временем оно будет удалено.

Возвращается: при успешном выполнении

Пример: true

Авторы

  • Felix Fontein (@felixfontein)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь (Hetzner Robot)
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API