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

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

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

firewalld можно легко настроить на блокировку входящего трафика, но как отметил Томас Вернер 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.

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

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

Примечание

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