RHEL7/CentOS7 показывает новое firewalld
сервис брандмауэра, который заменяет iptables service
(оба из которых используют iptables
инструмент для взаимодействия с Netfilter ядра внизу).
firewalld
может быть легко настроен на входящий трафик блока, но, как отмечено Thomas Woerner, 1,5 года назад "ограничивающим исходящий трафик, не возможно с firewalld простым способом в данный момент". И насколько я вижу, что ситуация не изменилась с тех пор. Или это имеет? Есть ли любой способ заблокировать исходящий трафик с firewalld
? Если не там какие-либо другие "стандартные" пути (на дистрибутиве RHEL7) блокирования исходящего трафика кроме ручного добавления правил через iptables
инструмент?
Я не нашел ни одной опции в этом красивом графическом интерфейсе, но это возможно через прямой интерфейс
Включить только исходящий порт 80:
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=80 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP
Это добавит его в постоянные правила, не правила времени выполнения.
Вам нужно будет перезагрузить постоянные правила, чтобы они стали правилами времени выполнения.
firewall-cmd --reload
для отображения постоянных правил
firewall-cmd --permanent --direct --get-all-rules
для отображения правил времени выполнения
firewall-cmd --direct --get-all-rules
Задав тот же вопрос сам и немного поработав, я собрал несколько хороших правил для ограничения исходящего трафика запросами HTTP / HTTPS и DNS:
Разрешить установленные соединения:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Разрешить HTTP:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT
Разрешить HTTPS:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 443 -j ACCEPT
Разрешить запросы DNS:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p udp --dport 53 -j ACCEPT
Запретить все остальное:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -j DROP
Может быть хорошей идеей сначала протестировать, опуская аргумент --permanent.
Я ни в коем случае не эксперт, но мне кажется, что это нормально работает :)
Относительно графического интерфейса пользователя; Я думаю, вы найдете это в разделе « Прямая конфигурация ». Чтобы получить к нему доступ, вы должны выбрать его в « View ». Я мог ошибаться.
Дополнительное примечание
Чтобы удалить правила; вы должны выйти, а затем снова войти.