Spec-Zone.ru › Ansible

Модуль community.hrobot.firewall – Управление брандмауэром выделенного сервера Hetzner

Примечание

Этот модуль является частью коллекции community.hrobot (версия 2.0.2).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.hrobot. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.

Для использования в playbook укажите: community.hrobot.firewall.

  • Описание
  • Требования
  • Параметры
  • Атрибуты
  • См. также
  • Примеры
  • Возвращаемые значения

Описание

  • Управление брандмауэром выделенного сервера Hetzner.
  • Обратите внимание, что проверка идемпотентности для флагов TCP просто сравнивает строки и не пытается интерпретировать правила. Это может измениться в будущем.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • ipaddress
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

allowlist_hos

псевдонимы: whitelist_hos

логический

Предоставлять ли Hetzner-сервисам доступ.

Варианты:

  • false
  • true

filter_ipv6

логический

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

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

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

Варианты:

  • false
  • true

hetzner_password

строка / обязательно

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

hetzner_user

строка / обязательно

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

port

строка

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

Варианты:

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

rules

словарь

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

input

список / элементы=словарь

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

action

строка / обязательно

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

Варианты:

  • "accept"
  • "discard"

dst_ip

строка

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

Нотация CIDR.

dst_port

строка

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

ip_version

строка

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

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

name

строка

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

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

protocol

строка

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

src_ip

строка

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

Нотация CIDR.

src_port

строка

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

tcp_flags

строка

Флаги TCP или логическое объединение флагов.

Поддерживаемые Hetzner флаги: syn, fin, rst, psh и urg.

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

См. документацию для получения дополнительной информации.

output

список / элементы=словарь

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

Правила выходного брандмауэра.

action

строка / обязательно

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

Варианты:

  • "accept"
  • "discard"

dst_ip

строка

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

Нотация CIDR.

dst_port

строка

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

ip_version

строка

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

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

имя

строка

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

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

протокол

строка

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

src_ip

строка

Адрес исходного IP-адреса или подсети.

Нотация CIDR.

src_порт

строка

Исходный порт или диапазон портов.

tcp_флаги

строка

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

Поддерживаемые Hetzner флаги — syn, fin, rst, psh и urg.

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

Дополнительную информацию см. в документации.

server_ip

строка

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

Должен быть указан ровно один из server_ip и server_number.

Обратите внимание, что Hetzner устарело идентификацию брандмауэра сервера по основному IP-адресу сервера. Использование этого параметра может в любое время перестать работать. Используйте server_number вместо этого.

server_номер

целое число

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

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

Должен быть указан ровно один из server_ip и server_number.

состояние

строка

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

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

Варианты:

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

таймаут

целое число

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

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

таймаут_обновления

целое число

Таймаут, используемый при настройке брандмауэра.

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

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

задержка_ожидания

целое число

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

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

ждать_настройки

логическое

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

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_режим

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

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

diff_режим

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

При работе в режиме diff будет возвращать подробности о том, что изменилось (или, возможно, требует изменения в check_mode).

См. также

См. также

Документация по брандмауэру

Документация 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

Конфигурация брандмауэра.

Возвращено: success

allowlist_hos

boolean

added in community.hrobot 1.2.0

Есть ли доступ у служб Hetzner.

Возвращено: success

Пример: true

port

string

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

main или kvm.

Возвращено: success

Пример: "main"

rules

dictionary

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

Возвращено: success

input

list / elements=dictionary

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

Возвращено: success

action

string

Действие, если правило соответствует.

accept или discard.

Возвращено: success

Может возвращать только:

  • "accept"
  • "discard"

Пример: "accept"

dst_ip

string

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

Нотация CIDR.

Возвращено: success

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

dst_port

string

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

Возвращено: success

Пример: "443"

ip_version

string

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

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

Возвращено: success

Пример: "ipv4"

name

string

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

Возвращено: success

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

protocol

string

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

Возвращено: success

Пример: "tcp"

src_ip

string

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

Нотация CIDR.

Возвращено: success

src_port

string

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

Возвращено: success

tcp_flags

string

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

Возвращено: success

output

list / elements=dictionary

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

Возвращено: success

action

string

Действие, если правило соответствует.

accept или discard.

Возвращено: success

Может возвращать только:

  • "accept"
  • "discard"

Пример: "accept"

dst_ip

string

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

Нотация CIDR.

Возвращено: success

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

dst_port

string

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

Возвращено: success

Пример: "443"

ip_version

string

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

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

Возвращаемое значение: success

name

string

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

Возвращаемое значение: success

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

protocol

string

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

Возвращаемое значение: success

Пример: "tcp"

src_ip

string

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

Нотация CIDR.

Возвращаемое значение: success

src_port

string

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

Возвращаемое значение: success

tcp_flags

string

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

Возвращаемое значение: success

server_ip

string

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

Возвращаемое значение: success

Пример: "1.2.3.4"

server_number

integer

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

Возвращаемое значение: success

Пример: 12345

status

string

Статус брандмауэра.

active или disabled.

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

Возвращаемое значение: success

Пример: "active"

whitelist_hos

boolean

Разрешен ли доступ к услугам Hetzner.

Старое название возвращаемого значения allowlist_hos, в конечном итоге будет удалено.

Возвращаемое значение: success

Пример: true

Авторы

  • Felix Fontein (@felixfontein)

Ссылки на сборки

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

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/hrobot/firewall_module.html

Spec-Zone.ru

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