У меня смешанная инфраструктура на основе Ubuntu 16.04 / Ubuntu 18.04, и я хотел бы установить и настроить firewalld
на хостах. Я собираюсь использовать для этого роль Ansible (у меня есть основанная на Vagrant настроить для тестирования роли Ansible).
Когда я запускаю Ansible playbooks, только что установленный firewalld
блокирует входящие соединения по умолчанию, хотя я никогда не указывал это явно:
[ 2161.574030] FINAL_REJECT: IN=enp0s8 OUT= MAC=08:00:27:f9:00:46:0a:00:27:00:00:00:08:00 SRC=172.16.137.1 DST=172.16.137.182 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=36677 DF PROTO=TCP SPT=35098 DPT=455 WINDOW=29200 RES=0x00 SYN URGP=0
[ 4717.718425] FINAL_REJECT: IN=enp0s8 OUT= MAC=08:00:27:f9:00:46:0a:00:27:00:00:00:08:00 SRC=172.16.137.1 DST=172.16.137.182 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=55673 DF PROTO=TCP SPT=47624 DPT=456 WINDOW=29200 RES=0x00 SYN URGP=0
[ 4719.682792] FINAL_REJECT: IN=enp0s8 OUT= MAC=08:00:27:f9:00:46:0a:00:27:00:00:00:08:00 SRC=172.16.137.1 DST=172.16.137.182 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=60255 DF PROTO=TCP SPT=43836 DPT=457 WINDOW=29200 RES=0x00 SYN URGP=0
[ 4721.358343] FINAL_REJECT: IN=enp0s8 OUT= MAC=08:00:27:f9:00:46:0a:00:27:00:00:00:08:00 SRC=172.16.137.1 DST=172.16.137.182 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=42733 DF PROTO=TCP SPT=51850 DPT=458 WINDOW=29200 RES=0x00 SYN URGP=0
Можно как-нибудь запустить firewalld
в разрешающем режиме затем настроить все, а затем применить конфигурацию одним выстрелом?
Недавно я преобразовал некоторые коробки Ubuntu из ufw в firewalld, и я использую исключительно Ansible, так что я тоже столкнулся с этим.
Во-первых, вы должны знать, что firewalld из коробки блокирует большую часть входящего трафика. В конфигурации по умолчанию в Ubuntu интерфейсы или источники не привязаны к какой-либо зоне, поэтому firewalld считает весь трафик частью public
зона. Эта зона разрешает только входящий трафик ответов ssh и DHCP-клиента.
Есть несколько способов справиться с этим.
В моих собственных сценариях и ролях Ansible я настраиваю правила firewalld вместе с каждой службой. Итак, у меня есть роль, которая устанавливает nginx, и эта роль также открывает службы http и https в firewalld. Итак, как только веб-сервер установлен и запущен, брандмауэр также готов к работе. Когда я перешел с ufw на firewalld, я просто повторно запустил всю playbook, и изменились только вещи ufw и firewalld.
Если вы выполняете одноразовую операцию и у вас есть много портов для открытия или другая сложная конфигурация, вы можете открыть порты в firewalld на пустой виртуальной машине, а затем получить полученный XML-файл для этой зоны из /etc/firewalld/zones
каталог. Тогда ты можешь copy:
этот файл в любую систему и перезапустите firewalld, чтобы он использовал соответствующую конфигурацию.