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

Ограничить все исходящие подключения к определенному интерфейсу и заблокировать, если они недоступны

Я запускаю Centos 7 на виртуальной машине (не думаю, что это имеет значение, но для контекста ...)

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

Как я могу разрешить возврат пакетов для существующих соединений, а также гарантировать, что новые соединения не будут устанавливаться из коробки, если только не через tun0?

Я посмотрел на этот вопрос iptables блокирует все исходящие соединения но это похоже на грубую силу ... Я использовал firewall-cmd и вывод для iptables -L -n -v многословен.

И наоборот, с Используйте специальный интерфейс для исходящих подключений (Ubuntu 9.04), Я не вижу, как это применить к centos.

Как я могу надежно гарантировать, что весь исходящий трафик либо установлен через tun0, либо не установлен вообще?

Это эффективно предотвратит любой исходящий (IPv4) трафик, кроме tun0.

iptables -F OUTPUT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -P OUTPUT DROP

Имейте в виду, что это предотвратит любой исходящий трафик на любой интерфейс, кроме tun0, который включает трафик DHCP, установленные туннели SSH или исходящие пакеты из установленного туннеля.

Аналогичным образом это можно применить к IPv6, используя ip6tables.