Вопрос или проблема
Вот моя цель:
Я хочу, чтобы определённые порты/услуги были открыты для всех, а некоторые порты/услуги должны быть доступны только для определённого/доверенного IP. Ограниченные услуги должны восприниматься как закрытые (предпочтительно) или фильтруемые (при сканировании).
Вот что я придумал до сих пор:
- добавить публичные услуги в публичную зону, которая определяется с помощью eth0.
sudo firewall-cmd --zone=public --add-service=<service>
- добавить IP в другую зону и добавить ограниченные услуги там.
sudo firewall-cmd --zone=? --add-source=<trusted-IP>
+sudo firewall-cmd --zone=? --add-service=<service>
Вопросы:
- Я не уверен в различиях между стандартными зонами. Насколько я понимаю, доверенная зона разрешает доступ ко всем портам, что мне не нужно, а скорее рабочие/внутренние/домашние? Это просто разные названия или есть реальная разница? (В моих исследованиях всё объясняется одинаково…)
- Чтобы заставить ограниченные порты выглядеть закрытыми, нужно ли мне делать что-то ещё (например, изменить стандартную зону на dropped/blocked – и если да, то какой эффект это окажет на публичную зону)? Будет ли блокировка или сброс правильным решением?
Ответ или решение
Настройка Firewalld для публичных и ограниченных сервисов
В этой статье мы рассмотрим, как правильно настроить firewalld
, чтобы обеспечить доступ к определённым портам и сервисам для всех пользователей, а также ограничить доступ к другим (ограниченным) сервисам для определённых, доверенных IP-адресов. Это необходимо для повышения безопасности вашей сети и защиты критически важных ресурсов.
1. Основы зон в firewalld
Firewalld использует концепцию зон для управления правилами фильтрации трафика. Каждая зона имеет свои параметры и уровень безопасности. Основные зоны, которые следует учитывать:
- Public: Это зона для общедоступных сетей, где вы можете открывать определенные сервисы для всех.
- Trusted: Эта зона позволяет доступ ко всем сервисам от доверенных источников, что может быть небезопасно для вашего случая.
- Work и Home: Эти зоны предназначены для внутренних сетей и обычно имеют более высокую степень доверия.
В вашем случае целесообразно использовать зону Public
для общедоступных сервисов и создать отдельную зону, как Internal
, для ограниченных сервисов.
2. Открытие публичных сервисов
Для открытия публичных сервисов выполняем команды:
sudo firewall-cmd --zone=public --add-service=<service>
sudo firewall-cmd --runtime-to-permanent
Здесь <service>
— это имя сервиса (например, http
для веб-сервера).
3. Настройка ограниченных сервисов
Для добавления доверенного IP-адреса в другую зону выполните:
sudo firewall-cmd --zone=internal --add-source=<trusted-IP>
sudo firewall-cmd --zone=internal --add-service=<restricted-service>
sudo firewall-cmd --runtime-to-permanent
Где internal
— это зона, в которой будут находиться ваши ограниченные сервисы, <trusted-IP>
— это IP, которому вы хотите предоставить доступ, а <restricted-service>
— это сервисы, доступные только для этого IP.
4. Покрытие ограниченных портов
Чтобы сделать порты с ограничением видимыми как закрытые, можно изменить поведение по умолчанию:
- Block: заблокирует пакеты, не соответствующие правилам (отправляет
ICMP unreachable
). - Drop: игнорирует пакеты без уведомления, что делает эти порты «невидимыми» при сканировании.
Для установки зоны по умолчанию на drop
, выполните:
sudo firewall-cmd --set-target=drop
Это действие изменит поведение всей системы на все зоны, где пакеты, не попадающие под определённые правила (например, Public
и Internal
), будут автоматически сбрасываться или блокироваться. Учтите, что изменение зоны по умолчанию может повлиять на взаимодействие с другими сервисами и пользователями, поэтому будьте осторожны в этом отношении.
5. Полезные советы
- Проверка правил: Используйте команду
sudo firewall-cmd --list-all --zone=<zone>
для просмотра активных правил в каждой зоне. - Тестирование безопасности: После настройки обязательно протестируйте доступность открытых и закрытых сервисов с разных IP-адресов.
- Логи: Включите логирование для мониторинга активности и возможной атаки.
Заключение
Настройка firewalld
для управления публичными и ограниченными сервисами является мощным инструментом для управления безопасностью вашей системы. Используя зоны и правильные методы конфигурации, вы можете обеспечить доступ к важным ресурсам с минимальными рисками. Обязательно следите за обновлениями в безопасности и адаптируйте свои правила, исходя из изменяющихся требований.