Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин входит в коллекцию community.general (версия 1.3.2).

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

Для использования в книге задач укажите: 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
строка
    Варианты:
  • ipv4 ←
  • ipv6
Какая версия протокола IP должна применяться этим модулем.
modprobe
путь
Укажите путь к программе modprobe, которая используется внутри командами, связанными с iptables, для загрузки модулей ядра.
По умолчанию проверяется /proc/sys/kernel/modprobe, чтобы определить путь к исполняемому файлу.
noflush
boolean
    Варианты:
  • нет ←
  • да
Для state=restored, игнорируется в противном случае.
Если false, восстановление правил iptables из файла очищает (удаляет) все предыдущее содержимое соответствующей таблицы(ы). Если true, предыдущие правила остаются без изменений (но политики обновляются, для всех встроенных цепочек).
path
путь / обязательно
Файл, в который должно быть сохранено состояние iptables.
Файл, из которого должно быть восстановлено состояние iptables.
state
строка / обязательно
    Варианты:
  • сохранено
  • восстановлено
Должно ли состояние брандмауэра быть сохраненным (в файл) или восстановленным (из файла).
table
строка
    Варианты:
  • 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/iptables_state_module.html

Spec-Zone.ru

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