Разрешить локальные соединения с VPN
Примечание: перекрестная публикация из Unix и Linux, поскольку на этот вопрос нет ответов.
У меня есть некоторые службы, работающие в качестве веб-серверов на моем ПК (например, Jupyter Notebook), которые перестают работать, когда я подключаюсь к своему VPN через их приложение (их служба поддержки подтвердила, что это так).
После запуска приложения VPN я вижу следующее:
$ sudo iptables --list INPUT --verbose
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
463 104K vpn_input all -- any any anywhere anywhere
Провайдер VPN на самом деле предложил добавить что-то вроде
ip route add table 220 192.168.1.0/24 dev tun0
в /etc/rc.local (tun0 - это интерфейс VPN). Я не очень понимаю эту команду, но я сделал это вместо этого:
$ sudo iptables --insert INPUT 1 --in-interface lo --jump ACCEPT
$ sudo iptables --list INPUT --verbose
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo any anywhere anywhere
1152 255K vpn_input all -- any any anywhere anywhere
Насколько я понимаю, эти правила состоят в том, что все локальные соединения принимаются, а все остальное происходит через правила VPN. Когда я это проверил, соединения с localhost начали работать, и мое соединение с внешним миром (протестированное с https://ipleak.net/), похоже, все еще проходило через VPN.
Мои вопросы:
- Это / правильный способ сделать это?
- Раскрывает ли это какие-либо уязвимости при использовании VPN (либо путем какой-либо утечки информации, либо путем создания дыр в безопасности, когда я подключен через общедоступную / общую сеть)?
система
- ОС: 4.15.0-38-generiC# 41 ~ 16.04.1-Ubuntu SMP x86_64 GNU / Linux
- iptables v1.6.0