ferm
Управление Ferm / iptables
Эта роль управляет iptables с помощью скрипта ferm.
Так как очень сложно написать универсальный шаблон для iptables, эта роль просто переносит определенные пользователем конфигурационные фрагменты ferm на сервер и генерирует набор правил с использованием iptables.
Требования
- ansible: 2.1
- Redhat/CentOS: EPEL
- Ubuntu: репозиторий multiverse
Переменные роли
Переменные в зависимости от ОС
Некоторые переменные зависят от операционной системы. Эти переменные находятся в файлах vars/os-<OS>.yml
.
Универсальные переменные
ferm_directory
: каталог конфигурации ferm, по умолчанию /etc/fermferm_service_state
: нужно ли запускать fermferm_service_enabled
: нужно ли включать ferm в последовательность загрузки
Правила файрвола
ferm_rules_directory
: где искать файлы правил файрвола, по умолчанию – каталог шаблонов плейбукаferm_net_mngt
: список сетей управления, по умолчанию разрешены любыеferm_domains
: какую версию IP использовать для генерации правил, по умолчанию IPv4 и IPv6ferm_rules
: список правил для применения. по умолчанию разрешены только SSH и ICMP
Сила шаблонизатора и движка ferm позволяет генерировать правила для IPv4 и IPv6. Основная работа по написанию правил все еще лежит на вас, но вам это полностью под контролем.
Пример
Переменные хоста/группы
ferm_rules_directory: {{ playbook_dir }}/files/ferm
ferm_rules:
- vars
- default_rules
- connection_tracking
- input_icmp
- management
- service_zabbix-agent
В этом случае вам следует создать следующие файлы
{{ playbook_dir }}/files/ferm/rules/vars.conf.j2
{{ playbook_dir }}/files/ferm/rules/default_rules.conf.j2
...
Вы должны переопределить ferm_rules
в group_var или host_vars для каждой группы или сервера по мере необходимости.
Плейбук
Например, переменные ferm
в ваших group_vars/all
могут выглядеть так:
- hosts: ferm
roles:
- hudecof.ferm
Зависимости
Нет
Лицензия
BSD
Информация об авторе
Питер Гудек
ansible-galaxy install hudecof/ansible_ferm