Fedora 21: Firewalld (firewall-cmd) не ПОСТОЯННО назначает интерфейсы зонам?
Я установил Fedora на эту машину, которая является ИСКЛЮЧИТЕЛЬНО системой шлюза / брандмауэра.
После установки я побежалyum upgrade
', и так должно быть до самой последней Fedora 21 - я немного отстал специально (не Fedora 22), чтобы можно было решить любые проблемы (и теперь понимаю, МОЖЕТ, я должен был пойти на Fedora 20?!)...
Как только я его включил, я настроил два сетевых адаптера в коробке с их соответствующими IP-адресами, перезагрузил компьютер, подтвердил, что все в порядке, и начал настройку "брандмауэра". Сначала я побежал:
# firewall-cmd --list-all-zones
Я подтвердил, что имена интерфейсов, которые использует firewalld, соответствуют другим инструментам (в отличие от предыдущих версий Fedora, например, 19 - см. Запрашиваемую справку по отладке FC19 FirewallD: порты не перенаправляются)
Чтобы поместить интерфейсы в правильные зоны, я запустил:
firewall-cmd --permanent --zone=external --change-interface=enp2s0
firewall-cmd --permanent --zone=internal --change-interface=enp5s4
... и попытался настроить переадресацию портов и т. д. Есть несколько шагов, таких как открытие порта и переадресация. Однако ничего из этого не сработало. После некоторых копаний я нашел эту статью, датированную всего несколько дней назад, и решил, что она очень актуальна - http://www.certdepot.net/rhel7-get-started-firewalld/ - и последовал ее совету по редактированию. /etc/sysctl.conf
и добавить строку чтения net.ipv4.ip_forward=1
и активировать его с # sysctl -p
Однако, к сожалению, все на самом деле пошло "задом наперед"...
Ранее попытки подключения к перенаправленному порту зависали, но теперь они возвращались:
ssh: connect to host 167.101.97.2 port 6543: No route to host
Итак, я попытался восстановить все в нормальном состоянии, НЕ ДЕЛАЯ перенаправления портов и правки в sysctl.conf, но все НЕ вернулось к "оригиналу"!
Невероятно, но я перезагружался, когда все было установлено по умолчанию, просто установил состояние, как мог - за исключением тех изменений зоны; какой вред они могут сделать?! Но когда система снова заработала, ИНТЕРФЕЙСЫ ВЕРНУЛИСЬ В ЗОНУ ПО УМОЛЧАНИЮ!
Затем я попробовал все заново. Нету! Интерфейсы остаются в зоне "FedoraServer" после перезагрузки. Неважно, что я делаю. Я пробовал --permanent в нескольких разных позициях в командной строке. Каждый раз, когда ответом является "успех", и все же, каждый раз, когда результат таков, он не переживает перезагрузку, даже если это ЕДИНСТВЕННАЯ вещь, выполняемая в системе между перезагрузками.
... Этого достаточно, чтобы поколебать лояльность человека к его (иначе) любимому дистрибутиву Linux! ... Не дай мне сказать тебе, что я на самом деле думаю!
ОК, конечно, это было проверено; как это сделано? (ДА, я хотел бы знать о переадресации портов, но здесь я ТОЛЬКО спрашиваю об изменениях зоны для переживающих перезагрузку интерфейсов.)
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Итак, я понял, что МОЖЕТ, что это мешает NetworkManager, как это часто случалось в прошлом. Однако ни одно из моих усилий не было плодотворным. Первой попыткой было просто установить NM_CONTROLLED="no" в файлах интерфейсов в /etc/sysconfig/network-scripts
но это оставило систему без интерфейсов!
Затем мне пришлось вернуться в свое прошлое, чтобы вспомнить, что это был "network.service", который присутствовал ранее, и, к счастью, он уже был установлен. Итак, я побежал:
systemctl disable NetworkManager.service
systemctl enable network.service
И интерфейсы были тогда доступны. Однако после перезагрузки - И обеспечение необходимого firewall-cmd
команды были выполнены (см. выше) - к сожалению, это снова не сработало.
Затем я попытался изменить значения NM_CONTROLLED на "нет", но это тоже не сработало.
2 ответа
Я не уверен насчет команды firewalld, но вы можете изменить зону в файлах ifcfg в /etc/sysconfig/network-scripts
- редактировать ifcfg-enp2s0
а также ifcfg-enp5s4
и добавить ZONE=external
а также ZONE=internal
соответственно.
Другое решение в этом посте: не могу держать интерфейсы в назначенных зонах, Centos7
Проверено в моей среде и работает правильно