Не удается правильно настроить “redirect-gateway” в этой сети OpenVPN и интернете.

Вопрос или проблема

У меня следующая структура сети:

https://i.sstatic.net/eFWWD.png

Все, что синего, это клиент VPN (кроме очевидного сервера)

С моей стороны клиента (которая находится в верхней части, где написано “Мой сайт”), если я включаю “redirect-gateway”, я могу получить доступ к туннелю (все адреса 10.10.10.x и 172.16.a.b), но не могу получить доступ к интернету/LAN. Без этого я не могу получить доступ к туннелю, но могу получить доступ к интернету.

Конфигурация сервера:

port 1194
proto udp
dev tun
ca keys/comp-ca/ca.crt
cert keys/comp-ca/comp-svr.crt
key keys/comp-ca/comp-svr.key
dh keys/comp-ca/dh2048.pem
server 10.10.10.1 255.255.255.0
crl-verify keys/comp-ca/crl.pem
ifconfig-pool-persist servers/compSVR/logs/ipp.txt
cipher AES-128-CBC
user root
group root
status servers/compSVR/logs/openvpn-status.log
log-append servers/compSVR/logs/openvpn.log
verb 2
mute 20
max-clients 200
management 127.0.0.1 7505
keepalive 10 120
client-config-dir /etc/openvpn/servers/compSVR/ccd
client-to-client
comp-lzo
persist-key
persist-tun
ccd-exclusive
push "route 192.168.2.0 255.255.255.0"
push "route 192.168.100.0 255.255.255.0"

Конфигурация клиента:

client
proto udp
dev tun
ca ca.crt
dh dh2048.pem
cert clientlocal.crt
key clientlocal.key
remote 192.168.100.200 1194
cipher AES-128-CBC
verb 2
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
float
resolv-retry infinite
nobind

ccd:

ifconfig-push 10.10.10.177 10.10.10.178
iroute 192.168.100.100 255.255.255.0
iroute 172.16.0.0 255.255.0.0
push "route 192.168.100.0 255.255.255.0"
push "route 172.16.0.0 255.255.0.0"

Также я знаю, что 192.168.100.200 – это локальный адрес, поэтому VPN бесполезен, но я подключаюсь к своему VPN-серверу, чтобы протестировать его локально.

Я хочу иметь возможность получать доступ как к туннелю (и его подсетям), так и к интернету одновременно. Как я уже упоминал, используя эту конфигурацию, как только я подключаюсь к серверу, я вижу только туннель. Я пытался проверить журналы, чтобы узнать, есть ли там что-то, что может дать мне подсказки, но ничего.

Мой клиент – это машина с Windows 7, а сервер – Ubuntu. Я не уверен, есть ли маршруты, которые мешают подключению к интернету.

Вот некоторые примеры маршрутов:

Без VPN:

0.0.0.0          0.0.0.0  192.168.100.100   192.168.100.73     10
        127.0.0.0        255.0.0.0      Связано         127.0.0.1    306
        127.0.0.1  255.255.255.255      Связано         127.0.0.1    306
  127.255.255.255  255.255.255.255      Связано         127.0.0.1    306
       172.16.0.0      255.255.0.0  192.168.100.100   192.168.100.73     12
     192.168.40.0    255.255.255.0      Связано      192.168.40.1    276
     192.168.40.1  255.255.255.255      Связано      192.168.40.1    276
   192.168.40.255  255.255.255.255      Связано      192.168.40.1    276
    192.168.100.0    255.255.255.0      Связано    192.168.100.73    266
   192.168.100.73  255.255.255.255      Связано    192.168.100.73    266
  192.168.100.255  255.255.255.255      Связано    192.168.100.73    266
    192.168.197.0    255.255.255.0      Связано     192.168.197.1    276
    192.168.197.1  255.255.255.255      Связано     192.168.197.1    276
  192.168.197.255  255.255.255.255      Связано     192.168.197.1    276
        224.0.0.0        240.0.0.0      Связано         127.0.0.1    306
        224.0.0.0        240.0.0.0      Связано      192.168.40.1    276
        224.0.0.0        240.0.0.0      Связано     192.168.197.1    276
        224.0.0.0        240.0.0.0      Связано    192.168.100.73    266
  255.255.255.255  255.255.255.255      Связано         127.0.0.1    306
  255.255.255.255  255.255.255.255      Связано      192.168.40.1    276
  255.255.255.255  255.255.255.255      Связано     192.168.197.1    276
  255.255.255.255  255.255.255.255      Связано    192.168.100.73    266

С “redirect-gateway”:

0.0.0.0          0.0.0.0     10.10.10.114     10.10.10.113     31
       10.10.10.0    255.255.255.0     10.10.10.114     10.10.10.113     31
     10.10.10.112  255.255.255.252      Связано      10.10.10.113    286
     10.10.10.113  255.255.255.255      Связано      10.10.10.113    286
     10.10.10.115  255.255.255.255      Связано      10.10.10.113    286
        127.0.0.0        255.0.0.0      Связано         127.0.0.1    306
        127.0.0.1  255.255.255.255      Связано         127.0.0.1    306
  127.255.255.255  255.255.255.255      Связано         127.0.0.1    306
       172.16.0.0      255.255.0.0  192.168.100.100   192.168.100.73     12
      192.168.2.0    255.255.255.0     10.10.10.114     10.10.10.113     31
     192.168.40.0    255.255.255.0      Связано      192.168.40.1    276
     192.168.40.1  255.255.255.255      Связано      192.168.40.1    276
   192.168.40.255  255.255.255.255      Связано      192.168.40.1    276
    192.168.100.0    255.255.255.0      Связано    192.168.100.73    266
   192.168.100.73  255.255.255.255      Связано    192.168.100.73    266
  192.168.100.200  255.255.255.255  192.168.100.100   192.168.100.73     11
  192.168.100.255  255.255.255.255      Связано    192.168.100.73    266
    192.168.197.0    255.255.255.0      Связано     192.168.197.1    276
    192.168.197.1  255.255.255.255      Связано     192.168.197.1    276
  192.168.197.255  255.255.255.255      Связано     192.168.197.1    276
        224.0.0.0        240.0.0.0      Связано         127.0.0.1    306
        224.0.0.0        240.0.0.0      Связано      10.10.10.113    286
        224.0.0.0        240.0.0.0      Связано      192.168.40.1    276
        224.0.0.0        240.0.0.0      Связано     192.168.197.1    276
        224.0.0.0        240.0.0.0      Связано    192.168.100.73    266
  255.255.255.255  255.255.255.255      Связано         127.0.0.1    306
  255.255.255.255  255.255.255.255      Связано      10.10.10.113    286
  255.255.255.255  255.255.255.255      Связано      192.168.40.1    276
  255.255.255.255  255.255.255.255      Связано     192.168.197.1    276
  255.255.255.255  255.255.255.255      Связано    192.168.100.73    266

Без “redirect-gateway”:

0.0.0.0          0.0.0.0  192.168.100.100   192.168.100.73     11
       10.10.10.0    255.255.255.0     10.10.10.114     10.10.10.113     31
     10.10.10.112  255.255.255.252      Связано      10.10.10.113    286
     10.10.10.113  255.255.255.255      Связано      10.10.10.113    286
     10.10.10.115  255.255.255.255      Связано      10.10.10.113    286
        127.0.0.0        255.0.0.0      Связано         127.0.0.1    306
        127.0.0.1  255.255.255.255      Связано         127.0.0.1    306
  127.255.255.255  255.255.255.255      Связано         127.0.0.1    306
       172.16.0.0      255.255.0.0  192.168.100.100   192.168.100.73     12
      192.168.2.0    255.255.255.0     10.10.10.114     10.10.10.113     31
     192.168.40.0    255.255.255.0      Связано      192.168.40.1    276
     192.168.40.1  255.255.255.255      Связано      192.168.40.1    276
   192.168.40.255  255.255.255.255      Связано      192.168.40.1    276
    192.168.100.0    255.255.255.0      Связано    192.168.100.73    266
   192.168.100.73  255.255.255.255      Связано    192.168.100.73    266
  192.168.100.255  255.255.255.255      Связано    192.168.100.73    266
    192.168.197.0    255.255.255.0      Связано     192.168.197.1    276
    192.168.197.1  255.255.255.255      Связано     192.168.197.1    276
  192.168.197.255  255.255.255.255      Связано     192.168.197.1    276
        224.0.0.0        240.0.0.0      Связано         127.0.0.1    306
        224.0.0.0        240.0.0.0      Связано      10.10.10.113    286
        224.0.0.0        240.0.0.0      Связано      192.168.40.1    276
        224.0.0.0        240.0.0.0      Связано     192.168.197.1    276
        224.0.0.0        240.0.0.0      Связано    192.168.100.73    266
  255.255.255.255  255.255.255.255      Связано         127.0.0.1    306
  255.255.255.255  255.255.255.255      Связано      10.10.10.113    286
  255.255.255.255  255.255.255.255      Связано      192.168.40.1    276
  255.255.255.255  255.255.255.255      Связано     192.168.197.1    276
  255.255.255.255  255.255.255.255      Связано    192.168.100.73    266

Я думаю, что проблемы связаны с таблицей маршрутов (выше), которая передается в Windows.

Первая проблема заключается в том, что вы тестируете это на сегменте локальной сети 192.168.100.0/24 – это можно сделать, но вы сталкиваетесь с проблемами конфликтов адресов. Например, по умолчанию вы достигаете сервера 192.168.100.200 через устройство Ethernet, но как только вы настраиваете VPN, вы перенаправляете 192.168.100.0/24 в туннель с помощью push "route 192.168.100.0 255.255.255.0".

Вторая проблема заключается в том, что VPN-сервер может быть неправильно настроен для пересылки пакетов, которые приходят из VPN с redirect-gateway. Вот почему вы теряете доступ к локальному LAN и интернету – ваши пакеты поступают от клиента к серверу, но не пересылаются.

Спорим, что решение такое же, как здесь: OpenVPN не является шлюзом по умолчанию для всего трафика – прочитайте часть про sysctl и iptables и дайте нам знать, помогло ли это.

Ответ или решение

Решение проблемы с OpenVPN: Неправильная работа "redirect-gateway"

Введение

Проблема, о которой идет речь, связана с неправильной работой функции redirect-gateway в конфигурации OpenVPN. Подобные ситуации довольно распространены, особенно при локальном тестировании VPN-соединений. Данная статья поможет вам разобраться в проблемах настройки и предоставит рекомендации по их устранению.

Описание проблемы

Существует две основные проблемы:

  1. Конфликт адресов в локальной сети: При использовании сети 192.168.100.0/24 возникает конфликт с адресом сервера VPN (192.168.100.200). Когда вы применяете push "route 192.168.100.0 255.255.255.0", трафик, предназначенный для вашего локального сети, на самом деле отправляется через туннель. Это приводит к тому, что клиент не может получить доступ к интернету и локальной сети одновременно.

  2. Настройки маршрутизации и правила форвардинга: После активации redirect-gateway, маршруты, которые используются для отправки пакетов, могут стать неправильными, если VPN-сервер не настроен должным образом для их обработки. Трафик от клиента до сервера может достигать сервера, но не будет перенаправляться на интернет.

Рекомендации по настройке

  1. Изменить конфигурацию серверной части:

    • Проверьте, чтобы на сервере был включен IP-форвардинг. Для этого выполните:
      echo 1 > /proc/sys/net/ipv4/ip_forward
    • Для постоянного действия после перезагрузки, добавьте в файл /etc/sysctl.conf:
      net.ipv4.ip_forward = 1
    • Примените изменения:
      sysctl -p
  2. Настройки iptables:

    • Убедитесь, что у вас есть правила iptables, позволяющие маршрутизацию трафика. Например:
      iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
  3. Корректные маршруты на клиенте:

    • После подключения к VPN с redirect-gateway, проверьте таблицу маршрутов на клиенте. Для обеспечения доступа к интернету необходимо, чтобы маршрут 0.0.0.0/0 был направлен на интерфейс VPN, а маршруты для локальной сети корректно обрабатывались.
  4. Проверка логов:

    • Анализируйте логи как на стороне клиента, так и на сервере. Включите более высокий уровень логирования (например, verb 4), чтобы получить более подробную информацию о маршрутах и соединениях, которые проходят через OpenVPN.
  5. Тестирование:

    • После изменения конфигурации перезапустите сервис OpenVPN на сервере:
      systemctl restart openvpn@<имя вашего сервера>
    • Затем подключитесь к VPN и проверьте доступность интернет-ресурсов и локальных адресов, используя команду ping.

Заключение

Разбор конкретных настроек и переносится в конфигурацию OpenVPN поможет решить проблему с доступностью интернет и локальной сети по БП (базовой производительности). Следуя вышеуказанным рекомендациям, вы сможете добиться одновременного доступа к локальным ресурсам и интернету, используя OpenVPN и функцию redirect-gateway.

Если у вас возникли дополнительные вопросы или сложности, рекомендую обратиться к документации OpenVPN или сообществу специалистов для получения дальнейшей помощи.

Оцените материал
Добавить комментарий

Капча загружается...