Я запускаю 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
.