Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот плагин является частью коллекции community.general (версия 2.0.1).

Для его установки используйте: ansible-galaxy collection install community.general.

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

Добавлена в версии 1.1.0: из community.general

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

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

Примечание

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

Требования

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

  • iptables
  • ip6tables

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
counters
boolean
    Варианты:
  • нет ←
  • да
Сохранить или восстановить значения всех счётчиков пакетов и байтов.
Когда true, модуль не является идемпотентным.
ip_version
string
    Варианты:
  • ipv4 ←
  • ipv6
Версия протокола IP, к которой должен быть применён этот модуль.
modprobe
путь
Укажите путь к программе modprobe, которая используется внутри iptables для загрузки модулей ядра.
По умолчанию проверяется /proc/sys/kernel/modprobe, чтобы определить путь к исполняемому файлу.
noflush
boolean
    Варианты:
  • нет ←
  • да
Для state=restored, игнорируется в противном случае.
Если false, восстановление правил iptables из файла очищает (удаляет) всё предыдущее содержимое соответствующих таблиц. Если true, предыдущие правила остаются без изменений (но политики обновляются, для всех встроенных цепочек).
path
путь / обязательно
Файл, в который должно быть сохранено состояние iptables.
Файл, из которого должно быть восстановлено состояние iptables.
state
string / обязательно
    Варианты:
  • saved
  • restored
Сохранить (в файл) или восстановить (из файла) состояние брандмауэра.
table
string
    Варианты:
  • filter
  • nat
  • mangle
  • raw
  • security
При state=restored, восстановить только указанную таблицу, даже если входной файл содержит другие таблицы. Ошибка, если указанная таблица не объявлена в файле.
При state=saved, ограничить вывод указанной таблицей. Если не указано, вывод включает все активные таблицы.
wait
целое число
Подождать N секунд для блокировки xtables, чтобы предотвратить мгновенную ошибку в случае одновременного выполнения нескольких экземпляров программы.

Примечания

Примечание

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

Примеры

# 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: yes
  changed_when: false
  register: iptables_state

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

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

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

Ключ Возвращаемое Описание
applied
boolean
всегда
Установлено или нет желаемое состояние успешно.

Пример:
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, которые важны для модуля при запуске.

Пример:
{ "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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/iptables_state_module.html

Spec-Zone.ru

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