Spec-Zone.ru › Ansible

Модуль community.general.iptables_state – Сохранение состояния iptables в файл или восстановление из файла

Примечание

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

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

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

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

Новое в community.general 1.1.0

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

Краткое описание

  • iptables используется для настройки, обслуживания и проверки таблиц правил фильтрации IP-пакетов в ядре Linux.
  • Этот модуль обрабатывает сохранение и/или загрузку правил. Это аналогично поведению команд iptables-save и iptables-restore (или ip6tables-save и ip6tables-restore для IPv6), которые этот модуль использует внутренне.
  • Изменение состояния брандмауэра удаленно может привести к потере доступа к хосту в случае ошибки в новом наборе правил. Этот модуль включает в себя функцию отката, чтобы избежать этого, сообщая хосту восстановить предыдущие правила, если cookie все еще существует после заданной задержки, и все это время сообщая контроллеру попытаться удалить этот cookie на хосте через новое соединение.

Примечание

Этот модуль имеет соответствующий плагин действия.

Требования

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

  • iptables
  • ip6tables

Параметры

Параметр

Комментарии

counters

boolean

Сохранить или восстановить значения всех счетчиков пакетов и байтов.

Когда true, модуль не является идемпотентным.

Варианты:

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

ip_version

string

К какой версии протокола IP должен применяться этот модуль.

Варианты:

  • "ipv4" ← (по умолчанию)
  • "ipv6"

modprobe

path

Укажите путь к программе modprobe, используемой внутри команд, связанных с iptables, для загрузки модулей ядра.

По умолчанию проверяется /proc/sys/kernel/modprobe для определения пути к исполняемому файлу.

noflush

boolean

Для state=restored, игнорируется в противном случае.

Если false, восстановление правил iptables из файла очищает (удаляет) все предыдущее содержимое соответствующей таблицы (таблиц). Если true, предыдущие правила остаются нетронутыми (но политики обновляются в любом случае, для всех встроенных цепочек).

Варианты:

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

path

path / required

Файл, в который должно быть сохранено состояние iptables.

Файл, из которого должно быть восстановлено состояние iptables.

state

string / required

Должно ли состояние брандмауэра быть сохранено (в файл) или восстановлено (из файла).

Варианты:

  • "saved"
  • "restored"

table

string

Когда state=restored, восстановить только указанную таблицу, даже если входной файл содержит другие таблицы. Возвращает ошибку, если указанная таблица не объявлена в файле.

Когда state=saved, ограничить вывод указанной таблицей. Если не указано, вывод включает все активные таблицы.

Варианты:

  • "filter"
  • "nat"
  • "mangle"
  • "raw"
  • "security"

wait

integer

Ожидать N секунд блокировки xtables, чтобы предотвратить мгновенный сбой в случае одновременного запуска нескольких экземпляров программы.

Атрибуты

Атрибут

Поддержка

Описание

action

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

Указывает, что есть соответствующий плагин действия, поэтому некоторые части параметров могут быть выполнены на контроллере.

async

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

Поддерживает использование с ключевым словом async.

check_mode

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

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

diff_mode

Поддержка: отсутствует

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

Примечания

Примечание

  • Функция отката не является модульным параметром и зависит от атрибутов задачи. Для её активации модуль должен выполняться асинхронно, т.е. установив атрибуты задачи poll в 0, и async в значение, меньшее или равное ANSIBLE_TIMEOUT. Если async больше, откат всё равно произойдёт, если это необходимо, но вы столкнётесь с таймаутом соединения вместо более релевантной информации, возвращаемой модулем после его сбоя.

Примеры

# This will apply to all loaded/active IPv4 tables.
- name: Save current state of the firewall in system file
  community.general.iptables_state:
    state: saved
    path: /etc/sysconfig/iptables

# This will apply only to IPv6 filter table.
- name: save current state of the firewall in system file
  community.general.iptables_state:
    ip_version: ipv6
    table: filter
    state: saved
    path: /etc/iptables/rules.v6

# This will load a state from a file, with a rollback in case of access loss
- name: restore firewall state from a file
  community.general.iptables_state:
    state: restored
    path: /run/iptables.apply
  async: "{{ ansible_timeout }}"
  poll: 0

# This will load new rules by appending them to the current ones
- name: restore firewall state from a file
  community.general.iptables_state:
    state: restored
    path: /run/iptables.apply
    noflush: true
  async: "{{ ansible_timeout }}"
  poll: 0

# This will only retrieve information
- name: get current state of the firewall
  community.general.iptables_state:
    state: saved
    path: /tmp/iptables
  check_mode: true
  changed_when: false
  register: iptables_state

- name: show current state of the firewall
  ansible.builtin.debug:
    var: iptables_state.initial_state

Значения возврата

Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:

Ключ

Описание

applied

логическое

Установлено ли желаемое состояние успешно.

Возвращается: всегда

Пример: true

initial_state

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

Текущее состояние брандмауэра при запуске модуля.

Возвращается: всегда

Пример: ["# Generated by xtables-save v1.8.2", "*filter", ":INPUT ACCEPT [0:0]", ":FORWARD ACCEPT [0:0]", ":OUTPUT ACCEPT [0:0]", "COMMIT", "# Completed"]

restored

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

Состояние, которое модуль восстановил, независимо от того, было ли оно применено в итоге.

Возвращается: всегда

Пример: ["# Generated by xtables-save v1.8.2", "*filter", ":INPUT DROP [0:0]", ":FORWARD DROP [0:0]", ":OUTPUT ACCEPT [0:0]", "-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT", "-A INPUT -m conntrack --ctstate INVALID -j DROP", "-A INPUT -i lo -j ACCEPT", "-A INPUT -p icmp -j ACCEPT", "-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT", "COMMIT", "# Completed"]

saved

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

Состояние iptables, сохранённое модулем.

Возвращается: всегда

Пример: ["# Generated by xtables-save v1.8.2", "*filter", ":INPUT ACCEPT [0:0]", ":FORWARD DROP [0:0]", ":OUTPUT ACCEPT [0:0]", "COMMIT", "# Completed"]

tables

словарь

iptables на системе до запуска модуля, разделенные по таблицам.

Если используется параметр table, включена только эта таблица.

Возвращается: всегда

Пример: {"filter": [":INPUT ACCEPT", ":FORWARD ACCEPT", ":OUTPUT ACCEPT", "-A INPUT -i lo -j ACCEPT", "-A INPUT -p icmp -j ACCEPT", "-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT", "-A INPUT -j REJECT --reject-with icmp-host-prohibited"], "nat": [":PREROUTING ACCEPT", ":INPUT ACCEPT", ":OUTPUT ACCEPT", ":POSTROUTING ACCEPT"]}

table

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

Политики и правила для всех цепочек указанной таблицы.

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

Авторы

  • quidame (@quidame)

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

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

© 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/general/iptables_state_module.html

Spec-Zone.ru

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