Не могу держать интерфейсы в назначенных зонах, Centos7
Я сталкивался с некоторым странным поведением межсетевых экранов, имеющих 3 интерфейса и при использовании правила постоянного назначения для интерфейса к зоне
после перезагрузки он возвращается в зону по умолчанию (которая всегда устанавливается как зона по умолчанию в firewalld)
firewall-cmd --permanent --zone=external --add-interface=eno16777736
или же
firewall-cmd --permanent --zone=internal --change-interface=eno16777736
похоже, они не работают....
4 ответа
Это ошибка, которую вы можете посетить: https://bugs.centos.org/view.php?id=7526
Я нашел только один способ исправить это в настоящее время
echo "ZONE=what_ever_zone_youd_like" >> /etc/sysconfig/network-scripts/ifcfg-eno16777736
firewall-cmd --complete-reload
systemctl restart firewalld.service
тогда проверь
firewall-cmd --list-all-zones
Я нашел, как решить аналогичную проблему с FirewallD, NetworkManager и Docker в CentOS 7.
Кажется, это проблема FirewallD, о которой я сообщал здесь, с решением для обхода проблемы, чтобы заставить его работать после перезагрузки: https://github.com/t-woerner/firewalld/issues/195
Я сталкивался с такими же проблемами раньше. В нашей инфраструктуре мы поняли, что иногда без причины NetworkManager
выкладывал из определенной зоны некоторые интерфейсы. (До этого момента мы настраивали зоны в файлах конфигурации интерфейсов)
Как очевидно, в производственной среде это просто НЕДОПУСТИМО.
Как нам удается решить эту проблему:
- Отключить NetworkManager
- Настройте деинтерфейсную зону в файле зоны под
/etc/firewalld/zones/*.xml
Синтаксис выглядит следующим образом:
<interface name="<interface_name>"/>
Теперь вы сможете
restart
/reload
Огненный мир без проблем
В противном случае, я подозреваю, что если вы настроите свою зону с помощью команды ниже и с Networkmanager
отключен и не работает он будет работать нормально
firewall-cmd --zone=<zone_name> --change-interface=<interface_name> --permanent
Когда система использует NetworkManager для обработки конфигурации интерфейса (на это может указывать пустой или отсутствующий/etc/sysconfig/network-scripts/*
записи каталога), попробуйте выполнить следующие шаги, чтобы настроить зону через систему конфигурации NetworkManager:
- убедитесь, что NetworkManager запущен:
systemctl status NetworkManager
$ systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running)
- если да, укажите «имя профиля» соединения (которое может отличаться от имен устройств ), используя:
$ nmcli
vvvvvvvvvvvvvvvvvv "profile name"
eth0: connected to Wired connection 1
"Red Hat Virtio"
ethernet (virtio_net),
- установите желаемую «ЗОНУ» с помощью
nmcli
используя имя профиля, пример:
$ nmcli connection modify "Wired connection 1" connection.zone ZONE
Смена зоны должна быть сразу видна черезfirewall-cmd --get-active-zones
и сохраняться при будущих перезагрузках.