Как добавить в белый/черный список определенные URL-адреса, чтобы не использовать VPN-подключение?

Как добавить в белый/черный список определенные URL-адреса, чтобы не использовать VPN-подключение?

Примечание: Оказывается, наш сервер OpenVPN действительно настроен на раздельное туннелирование, но наши клиенты используют собственные шлюзы:

redirect-gateway def1 bypass-dhcp bypass-dns

Это было сделано в качестве обходного пути для доступа к некоторым внутренним сервисам, которые в противном случае были бы недоступны из внешнего мира. Более правильный вопрос был бы: каков правильный способ доступа к внутренним сервисам vpn без проталкивания шлюза, который бы направлял весь трафик через VPN, хотя я думаю, что это довольнодругой вопрос сам по себе.


Я работаю в домашнем офисе, и хотя я настроил стабильное VPN-подключение через Network Manager, его скорость очень ограничена. У меня дома 1 Гбит-соединение, в то время как VPN-подключение на данный момент предлагает только 10 Мбит.

Хотя некоторым службам приходится проходить через VPN-соединение, большая часть трафика может спокойно обходить его, поскольку VPN будет только замедлять работу. (Я имею в виду, в частности, общедоступные службы с интенсивным использованием данных, такие как загрузка образов с официального Docker Hub или реестра npm. Но просто для настройки давайте возьмем такую ​​службу, как fast.com.)

Как добавить в белый список определенные сайты, чтобы им разрешили использовать VPN-подключение, или в черный список другие сайты, чтобы им запретили использовать VPN-подключение?

решение1

Обсудите это с людьми, которые настраивали для вас VPN.

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

Вам следует проверить, разрешено ли это в вашей организации. Не все организации разрешают раздельную маршрутизацию, поскольку они, например, хотят предотвратить потерю данных в вашем трафике.

решение2

Вот несколько альтернатив, которые можно попробовать:


  • Пропустить изменение шлюза по умолчанию:

изменение параметра «redirect-gateway» на redirect-private в директиве конфигурации


  • Направлять трафик для 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


  • Push-трафик 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 можно восстановить в Интернете.

решение3

То, что вам нужно, называется раздельным туннелированием.

Что вы можете сделать, зависит от типа пользователя, которым вы являетесь на клиентской машине. Если вы не sudoer, то это должен исправить один из таких пользователей, обычно системный администратор.

Если вы являетесь пользователем sudo (и предполагаете, что ваша организация не возражает против внесения подобных изменений; это уже ваше дело), ​​вы можете следоватьэто руководство.

Примечания:

  1. В период с 16.04 по 18.04 произошли некоторые изменения, поэтому старые руководства могут быть неполными.

  2. Я не знаю, были ли какие-либо изменения между 18.04 и 19.10, из-за которых руководство не работает.

Связанный:

Используйте OpenVPN только для одного приложения/сервиса

https://serverfault.com/questions/792118/openvpn-how-to-stop-public-traffic-routing-through-vpn-server

https://dltj.org/article/openvpn-split-routing/(с 2010 г.)

Связанный контент