Как внести в белый / черный список определенные URL-адреса, чтобы не использовать VPN-соединение?
Примечание: оказалось, что наш сервер OpenVPN действительно настроен для раздельного туннелирования, но наши клиенты продвигают свои собственные шлюзы:
redirect-gateway def1 bypass-dhcp bypass-dns
Это было сделано как обходной путь для доступа к некоторым внутренним службам, которые в противном случае недоступны из внешнего мира. Более уместный вопрос: как правильно получить доступ к внутренним службам vpn без использования шлюза, который будет направлять весь трафик через VPN, хотя я думаю, что это уже совсем другой вопрос.
Я нахожусь в домашнем офисе, и хотя я установил стабильное VPN-соединение через Network Manager, его скорость очень ограничена. У меня дома подключение на 1 ГБит, а VPN-подключение на данный момент предлагает только 10 МБит.
Хотя некоторые службы должны проходить через VPN-соединение, большая часть трафика может обойти его, так как все, что делает VPN, - это только замедляет работу. (Я особенно интересуюсь общедоступными службами, интенсивно использующими данные, такими как загрузка изображений из официального центра докеров или реестра npm. Но просто для его настройки возьмем такую службу, как fast.com.)
Как я могу внести определенные веб-сайты в белый список для использования VPN-соединения или в черный список для других сайтов, которые не используют VPN-соединение?
3 ответа
Вот несколько альтернатив, которые можно попробовать:
- Не изменять шлюз по умолчанию:
изменение параметра "redirect-gateway" на redirect-private в вашей директиве config
- Только маршрутизировать трафик для VPN через VPN:
(работает, если сервер отправляет явные маршруты клиенту)
Установите флажок в разделе "Настройки VPN" -> IPV4 ->
"Использовать это соединение только для ресурсов в своей сети".
Если они отправляют явные маршруты, только этот трафик будет проходить через VPN.
- Вытолкнуть не-VPN-трафик за пределы туннеля:
Подключитесь к своей VPN, затем в терминале:
host www.sl.se # host you want outside tunnel
194.68.78.65 # the ip of the host above
sudo ip route add 194.68.78.65 dev eth0 # route traffic outside VPN
это направит трафик на www.sl.se за пределы VPN
- Проталкивать трафик VPN внутри туннеля от узла к узлу
Подключитесь к своей VPN, затем в терминале:
host your-vpn-onlyhost.com # host you want inside of tunnel
1.1.1.1.1 # the ip of the host above
sudo ip route add 1.1.1.1 dev tun0 # route traffic inside VPN
Во всех примерах предполагается, что имя интерфейса VPN - tun0, а имя вашей сетевой карты - eth0. И что DNS-имена можно восстановить в Интернете.
Обсудите это с людьми, которые настроили для вас VPN.
Это широко известно как разделенная маршрутизация, при которой VPN-туннель будет использоваться для ресурсов, находящихся внутри корпоративной сети, а шлюз по умолчанию будет использоваться для остальных. Обычно это проще, чем фильтровать по сервису. Обычно у корпорации есть какой- то внутренний план сети, который упрощает предоставление раздельной маршрутизации.
Вы должны проверить, разрешено ли это в вашей организации. Не все организации допускают раздельную маршрутизацию, потому что они, например, хотят предотвратить потерю данных в вашем трафике.
То, что вы хотите, называется раздельным туннелированием.
То, что вы можете сделать, зависит от типа пользователя на вашем клиентском компьютере. Если вы не являетесь пользователем sudoer, это должно быть исправлено одним из таких пользователей, обычно системным администратором.
Если вы являетесь специалистом по sudoer (и предполагаете, что ваша организация не возражает против внесения подобных изменений; это решать вам), вы можете следовать этому руководству.
Примечания:
Некоторые изменения произошли между 16.04 и 18.04, поэтому старые руководства могут быть неполными.
Я не знаю, были ли какие-либо изменения между 18.04 и 19.10, из-за которых руководство не работало.
Связанный:
Используйте OpenVPN только для одного приложения / услуги
https://dltj.org/article/openvpn-split-routing/ (с 2010 г.)