Исключения / особые случаи (например, FreeIPA)
Исключения / особые случаи (например, FreeIPA)#
Из-за правила “один IP адрес == одна зона firewalld” стандартные / дефолтные настройки плейбука для FreeIPA применить сложно / не удобно.
Для FreeIPA сделаны следующие исключения:
стандартная / дефолтная роль
all_hosts— не применяется;интерфейсу ens192 назначена роль
sf-freeipa(вместоsf-dropдля всех остальных);все зоны firewalld должны разрешать службы
freeipa-4, dns, ntp.
В плейбук setup_firewalld добавлены соответствующие исключения — но он
не добавит нужные службы в новые зоны, это должны делать мы сами!
Важно понимать: в отличие от всех других хостов, к FreeIPA разрешены
подключения из любых источников (к сервисам freeipa, dns, ntp). Считаю
это разумным компромиссом с учётом текущих ограничений firewalld.
Note
Для справки: более изящным и верным решением будет использовать параметр
nomatch для ipset sf-all-vdc, но в настоящий момент FirewallD не
поддерживает nomatch в ipset.
Пример для справки (если поддержку добавят):
зона
sf-all-vdcразрешает подключения с любого IP в текущем VDC;источник —
ipset sf-all-vdc-nets:
10.4.0.0/16
10.4.255.228/32 nomatch
10.4.255.138/32 nomatch
Две строки nomatch задают исключения из общей сети 10.4.0.0 (для jumphost
и zabbix-server), соответственно, мы можем задать для них отдельные зоны и
особые правила (и не нарушить принцип “один IP == одна зона”).