Spec-Zone.ru › Ansible

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

Примечание

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

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

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

Чтобы использовать модуль в плейбуке, укажите: 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

логический

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

Если значение равно true, модуль не является идемпотентным.

Варианты:

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

ip_version

строка

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

Варианты:

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

modprobe

путь

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

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

noflush

логический

Применяется для state=restored, в остальных случаях игнорируется.

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

Варианты:

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

path

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

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

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

state

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

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

Варианты:

  • "saved"
  • "restored"

table

строка

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

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

Варианты:

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

wait

целое число

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

Атрибуты

Атрибут

Поддержка

Описание

action

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

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

async

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

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

check_mode

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

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

diff_mode

Поддержка: нет

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

Примечания

Примечание

  • Механизм отката не является параметром модуля и зависит от атрибутов задачи. Чтобы включить его, модуль должен выполняться асинхронно, то есть для атрибута задачи 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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/iptables_state_module.html

Spec-Zone.ru

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