39

В удаленной частной сети есть два сервера - файловый сервер и сервер базы данных (в случае необходимости это обе машины Win).

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

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

Чтобы получить доступ к серверу базы данных, я использую клиент OpenVPN в Windows для подключения к серверу VPN в частной сети.

По умолчанию OpenVPN направляет все сетевые пакеты, предназначенные для удаленной сети, в которой находится сервер VPN, через VPN. К сожалению, доступ к файловому серверу через VPN очень медленный!

Вопрос:

Как я могу настроить клиент OpenVPN ТОЛЬКО для маршрутизации трафика через VPN, которая предназначена для одного конкретного IP-адреса, а именно сервера базы данных?

4 ответа4

46

Правильная конфигурация для 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
24

цели

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

меры

  1. Нажмите Win + R и выполните ncpa.cpl .

  2. Щелкните правой кнопкой мыши по VPN-соединению и выберите Свойства → Сеть .

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

  4. Снимите флажок Использовать шлюз по умолчанию в удаленной сети и нажмите ОК .

  5. (необязательно) Повторите предыдущие шаги для Интернет-протокола версии 6 .

  6. (Пере) подключиться к вашему 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 - адреса в настоящее время.

10

В конфигурацию клиента OpenVPN добавьте строку вроде:

route The.IP.To.Go 255.255.255.255

(Где.IP.To.Go - это IP, который вы хотите направить через VPN)

Это указывает OpenVPN создать запись в таблице маршрутизации вашей ОС.

В качестве альтернативы, сервер OpenVPN может быть настроен на "передачу" этой конфигурации маршрутизации клиентам, добавив в конфигурацию сервера:

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

РЕДАКТИРОВАТЬ: Одна вещь, которую я пропустил адресации - пересылка по умолчанию всего трафика ... Это может быть либо отключено на сервере, либо клиенты могут игнорировать директивы "push" (так что наш второй вариант "проталкивать" маршрут не будет работать) с:

route no-pull
-1
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .