Я установил 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 на «нет», но это тоже не сработало.
Я не уверен, что команда firewalld делает это, но вы можете изменить зону в файлах ifcfg в /etc/sysconfig/network-scripts
- редактировать ifcfg-enp2s0
и ifcfg-enp5s4
и добавить ZONE=external
и ZONE=internal
соответственно.
Другое решение в этом посте: Не удается сохранить интерфейсы в назначенных зонах, Centos 7
Протестировано в моей среде и работает правильно