Блокировать исходящие соединения на RHEL7/CentOS7 с firewalld?

RHEL7/CentOS7 имеет новый firewalld служба межсетевого экрана, которая заменяет iptables service (оба из которых используют iptables инструмент для взаимодействия с Netfilter ядра ниже).

firewalld может быть легко настроен на блокировку входящего трафика, но, как отметил Томас Вёрнер 1,5 года назад, "ограничение исходящего трафика в firewalld простым способом на данный момент невозможно". И, насколько я понимаю, с тех пор ситуация не изменилась. Или есть? Есть ли способ заблокировать исходящий трафик с firewalld? Если нет, то существуют ли другие "стандартные" способы (в дистрибутиве RHEL7) блокировки исходящего трафика, кроме ручного добавления правил через iptables инструмент?

3 ответа

Решение

Я не нашел никакой опции в этом хорошем графическом интерфейсе, но это возможно через прямой интерфейс

Чтобы включить только исходящий порт 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.

Я ни в коем случае не эксперт, но мне кажется, это нормально работает:)

По поводу GUI; Я думаю, вы найдете это в разделе "Прямая настройка". Для доступа к нему вы должны выбрать его в "View". Я могу ошибаться.

Примечание

Удалить правила; Вы должны выйти, а затем снова войти.

Другие вопросы по тегам