Назад | Перейти на главную страницу

правильная настройка firewalld

С тех пор, как я использовал Centos, я использовал iptables с настраиваемым скриптом брандмауэра для анализа правил. Но поскольку Centos 7 используется по умолчанию, firewalld. Что меня устраивает, пора двигаться дальше.

В любом случае, я думаю, что документация firewalld написана плохо и с несколькими примерами.

Итак, мой вопрос довольно прост, но я проиллюстрирую, чего я хочу достичь.

У меня есть сервер с двумя интерфейсами. Один интерфейс подключен к Интернету, а другой - к внутренней сети. Весь трафик на внутреннем интерфейсе разрешен, поэтому я добавил его в доверенную зону. Все идет нормально.

По умолчанию я считаю, что весь трафик блокируется, за исключением его служебных целей (в моем случае http, https). Для обслуживания и резервного копирования ssh должен быть открыт для нескольких IP-адресов.

Я думал использовать настраиваемую службу для создания правила для ssh, но это не работает, потому что службы не принимают исходный тег. Итак, как мне действовать? Я хотел бы создать файл, в котором я могу определить свои исключения (ssh для одного ip, http для всех и т. Д.), Чтобы я мог скопировать их на другие серверы.

Заранее спасибо!

У меня тоже недавно возникла эта проблема, но я смог добавить доступ к службам http и https. Но у меня была проблема с ограничением служб SSH адресом источника. Это моя работа.

Сначала добавьте интерфейс в публичную зону, затем

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --add-rich-rule='rule family="ipv4" source address="x.x.x.x" service name="ssh" log prefix="ssh" level="info" accept'
sudo firewall-cmd --reload

Адрес источника может быть диапазоном, просто укажите подсеть

Поскольку ssh не был добавлен для публичной зоны, по умолчанию он будет заблокирован. Богатое правило включит его только для этого исходного IP / диапазона.

Любое лучшее решение, пожалуйста, добавьте.

Я ответил на свой вопрос на

Использование Firewall-cmd для создания ограничений для адресов в centos 7

Я не знаю, «лучший» ли это способ сделать это, но я сделал это, добавив новую зону. Вы можете поместить адреса источника в зоны. Так что создайте зону управления и добавьте нужные адреса источников, службы и порты. Поскольку мне нужно делать это довольно часто, я просто сохраняю файл xml зоны и помещаю его на каждый новый сервер, который я запускаю.

Например. В каталоге / etc / firewalld / zone создайте файл с именем mgt.xml или как там вы хотите называть свою зону. Затем сделайте что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Management</short>
  <description>The services to manage the server and the ip addressees to manage it from.</description>
  <source address="2001:0DB8::/64"/>
  <source address="192.168.0.5"/>
  <service name="ssh"/>
  <port protocol="tcp" port="10000"/>
</zone>

Затем вам нужно будет перезапустить firewalld.

На самом деле я использую этот же метод для изменения других зон. Если вы поместите public.xml или drop.xml в ту же папку, вы переопределите настройки по умолчанию для этой зоны. У меня есть 4 файла xml, которые я загружаю в firewalld в рамках процедуры настройки любого нового сервера, чтобы дать мне безопасную отправную точку для брандмауэра.

Просто к вашему сведению, вы можете сделать все это с помощью firewall-cmd, но я обнаружил, что удаление файлов xml происходит быстрее при создании новых серверов.