UFW: форсирует трафик через туннель OpenVPN / не пропускает трафик
У меня есть VPN-доступ с использованием OpenVPN и я пытаюсь создать безопасный компьютер, который не пропускает трафик через не-VPN интерфейсы. Используя брандмауэр UFW, я стараюсь добиться следующего:
- Разрешить доступ из локальной сети к веб-интерфейсу машины
- В противном случае разрешается только трафик на tun0 (интерфейс OpenVPN-Tunnel, если он установлен)
- Отклонить (или переслать?) Любой трафик через другие интерфейсы
В настоящее время я использую следующие правила (статус sudo ufw):
To Action From
-- ------ ----
192.168.42.11 9999/tcp ALLOW Anywhere # allow web-interface
Anywhere on tun0 ALLOW Anywhere # out only thru tun0
Anywhere ALLOW OUT Anywhere on tun0 # in only thru tun0
Моя проблема заключается в том, что машина изначально не может установить OpenVPN-соединение, так как разрешено только tun0, которое еще не установлено (проблема куриного яйца)
Как мне разрешить создание соединения OpenVPN и с этого момента заставить каждый пакет проходить через VPN-туннель?
1 ответ
Разрешить доступ приложению службы. В данный момент у меня нет доступного окна OpenVPN, но я думаю, что вы должны иметь возможность разрешить доступ с помощью такой команды, как:
UFW позволяют OpenVPN
Вы можете увидеть, можете ли вы использовать открытый VPN, запустив:
список приложений UFW
Который покажет те сервисные приложения, о которых знает ufw.
В случае отсутствия профиля OpenVPN вы можете попробовать использовать ufw, чтобы разрешить только исходящие соединения на этом интерфейсе с портом 1194 (или с любым портом, на котором сервер OpenVPN принимает соединения). Что-то вроде:
Судо UFW отказать любому sudo ufw разрешить 1194 / udp
(при условии стандартной настройки OpenVPN.)
Это не ограничило бы его только OpenVPN... но единственной возможностью утечки было бы что-то еще, использующее этот порт и UDP... и шансы на это довольно низки.
Чтобы обеспечить более безопасную фильтрацию портов, вам нужно использовать что-то более существенное, чем ufw. Я полагаю, что AppArmor или SELinux станут вашим следующим шагом, не прибегая к настоящему брандмауэру Layer 7.