OpenVPN: Лише маршрутизувати певні IP-адреси через VPN?


44

У віддаленій приватній мережі є два сервери - файловий сервер і сервер баз даних (це обидва машини Win, якщо це має значення).

Файловий сервер має свої досить надійні механізми аутентифікації і дозволяє мені підключатися безпосередньо з віддаленого місця.

Сервер бази даних використовує просте ім’я користувача та пароль, тому для запобігання несанкціонованого доступу він заблокований до локальної мережі - зовнішній трафік заблокований.

Для доступу до сервера баз даних я використовую клієнт OpenVPN в Windows для підключення до VPN-сервера приватної мережі.

За замовчуванням OpenVPN маршрутизує всі мережеві пакети, призначені для віддаленої мережі, в якій проживає VPN-сервер, через VPN. На жаль, доступ до файлового сервера через VPN надзвичайно повільний!

Питання:

Як я можу налаштувати клієнт OpenVPN ТІЛЬКИ на трафік маршруту через VPN, призначений для однієї конкретної IP-адреси, а саме сервера бази даних ??


Це просто, дивіться тут, як це зробити superuser.com/a/178675/96461
Sameer

Відповіді:


49

Правильна конфігурація для OpenVpn:

route-nopull 
route 192.168.0.0 255.255.255.0

Ці записи належать до вашого файлу .ovpn і спрямовуватимуть весь трафік підмережі 192.168.0. * Через VPN.

Тільки для одного IP (192.168.0.1):

route-nopull 
route 192.168.0.1 255.255.255.255

Ми здебільшого володіємо англійською мовою і не обов’язково знаємо німецьку. Будь ласка, перекладіть свою відповідь.
gronostaj

1
+1. Це саме те, що мені було потрібно. Я використовую клієнтів ovpn на моєму Linux і, отже, ви відповіли, що мене просто врятували. Спасибі.
вбитоїблуцифера

Наприклад, просто www.facebook.com
Nicola Peluchetti

У моєму випадку маршрутизація одного ip через vpn, здається, працює нормально. Але при використанні маски підмережі це зовсім не працює. Будь-які ідеї чому?
працює.t

Я все ще не знаю відповіді на моє запитання (вище), але я провів певне розслідування і створив окрему тему про це: superuser.com/questions/854194/…
running.t

24

Цілі

  • Використовуйте звичайне підключення до Інтернету для всього інтернет-трафіку за замовчуванням, навіть коли підключений VPN.
  • Направляйте трафік на одну конкретну IP-адресу через VPN.

Кроки

  1. Натисніть Win+ Rта виконайте ncpa.cpl.

  2. Клацніть правою кнопкою миші з'єднання VPN та перейдіть до Властивості → Мережа .

  3. Виберіть Internet Protocol Version 4 і перейти до Властивості → Додатково ... .

  4. Зніміть прапорець Використовуйте шлюз за замовчуванням у віддаленій мережі та натисніть кнопку ОК .

  5. (необов’язково) Повторіть попередні кроки для Internet Protocol Version 6 .

  6. (Re) підключіться до VPN.

  7. Відкрийте командний рядок та виконайте route print -4.

  8. Знайдіть інтерфейс VPN у списку інтерфейсів та його шлюз в Активних маршрутах .

    У мене на машині:

    Interface List
     32...........................Super Free VPN
    
    [...]
    
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         On-link        10.6.6.127     31
             10.0.0.0        255.0.0.0        10.88.1.1      10.88.1.102     31
    

    Тут є шлюз VPN 10.88.1.1, оскільки його шлюз для 10.xxx.xxx.xxxблоку.

  9. Додайте стійкий маршрут, який буде доданий до активних маршрутів, коли є з'єднання з VPN:

    route -p add 23.22.135.169 10.88.1.1 if 32
    

    У цьому прикладі 23.22.135.169є IP-адреса whatismyip.org, 10.88.1.1це IP-шлюз і 32номер інтерфейсу.

  10. (необов’язково) Повторіть попередні кроки для route print -6.

  11. Перевірте налаштування.

    Якщо все вийшло, whatismyip.org та www.whatismyip.cx зараз відображатимуть різні IP-адреси.


1
Звичайно, є простіший спосіб?
Брайан Лейсі

1
Чи знаєте ви, як цього досягти за допомогою Linux (Ubuntu)?
Елін Й.

1
@ ЕлінЙ. якщо ви використовуєте Менеджер мереж, просто виберіть "Використовувати це з'єднання лише для ресурсів у цій мережі".
leif81

1
+1 ... але чи міг би це гольф?
Олів'є Дулак

11

До конфігурації клієнта OpenVPN додайте рядок типу:

route The.IP.To.Go 255.255.255.255

(Де The.IP.To.Go - IP, який ви хочете прокласти через VPN)

Це дає інструкції OpenVPN створити запис у таблиці маршрутизації вашої ОС.

Альтернативно, сервер OpenVPN можна зробити так, щоб "відсунути" цю конфігурацію маршрутизації до клієнтів, додавши до конфігурації сервера:

push "route The.IP.To.Go 255.255.255.255"

EDIT: Одне, що я пропустив, - переадресація всього трафіку за замовчуванням ... Це може бути відключено на сервері, або клієнти можуть обрати ігнорувати "штовхані" директиви (тому наш другий варіант "натискання" маршруту не буде працювати ) через:

route-nopull

-2
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>

Поясніть, будь ласка, що робить ця команда. Просто одна команда без пояснень не така корисна. Також перевірте форматування вашої публікації - всі <brackets>вони не видно, якщо вони не позначені як код.
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.