- Вопрос или проблема
- Ответ или решение
- Ошибка связи клиента OpenVPN с локальной сетью (LAN): Возможные причины и решения
- 1. Проверьте настройку маршрутизации
- 2. Включите маршрутизацию IP
- 3. Проверьте настройки ACL и брандмауэра
- 4. Настройка клиентов OpenVPN
- 5. Проверка клиентского конфигурационного файла
- Заключение
Вопрос или проблема
Я использую FreshTomato 2023.5 и пытаюсь настроить сервер OpenVPN. Я могу сгенерировать конфигурацию клиента и заставить мой iPhone подключиться с помощью клиента openvpn. Я могу пинговать роутер FastTomato, но не могу пинговать или каким-либо образом получить доступ к машинам во внутренней локальной сети.
Следуя инструкциям, я не вижу, что настроено неправильно – я понял, что установка галочки “Push LAN0 (br0) to clients” позволит клиентам видеть машины в локальной сети. Я что-то упускаю в правилах?
Мой роутер FastTomato находится по адресу 192.168.10.1 – внутренняя локальная сеть 192.168.10.0/24, а адресное пространство VPN – 10.6.0.0/24.
Этот роутер также является шлюзом по умолчанию для моей локальной сети.
БАЗОВАЯ КОНФИГУРАЦИЯ:
РАСШИРЕННАЯ КОНФИГУРАЦИЯ:
Я также пытался установить опцию “Направить клиентов на перенаправление интернет-трафика”, но без успеха – я предполагаю, что это указывает клиенту отправлять весь интернет-трафик через VPN. Я предпочел бы направлять только трафик, предназначенный для локальной сети. Я полагаю, это называется разделенным туннелированием.
ЛОГ КЛИЕНТА (с публичными IP-адресами и DNS-именами, скрытыми)
[07 февр. 2024, 19:53:13] НАЧАТЬ СОЕДИНЕНИЕ
[07 февр. 2024, 19:53:13] ----- Запуск OpenVPN -----
OpenVPN core 3.8.3connect1 ios arm64 64-bit
[07 февр. 2024, 19:53:13] OpenVPN core 3.8.3connect1 ios arm64 64-bit
[07 февр. 2024, 19:53:13] Frame=512/2112/512 mssfix-ctrl=1250
[07 февр. 2024, 19:53:13] ПРИМЕТКА: Эта конфигурация содержит опции, которые не были использованы:
[07 февр. 2024, 19:53:13] Неподдерживаемая опция (игнорируется)
[07 февр. 2024, 19:53:13] 3 [ncp-ciphers] [CHACHA20-POLY1305:AES-128-GCM:AES-256-GCM:AES-128-CBC:AES-256-CB...]
[07 февр. 2024, 19:53:13] 11 [resolv-retry] [бесконечность]
[07 февр. 2024, 19:53:13] НЕИЗВЕСТНЫЕ/НЕПОДДЕРЖИВАЕМЫЕ ОПЦИИ
[07 февр. 2024, 19:53:13] 15 [status] [status]
[07 февр. 2024, 19:53:13] СОБЫТИЕ: РАЗРЕШЕНИЕ
[07 февр. 2024, 19:53:13] Связываемся с xxx.xxx.xxx.xxx:1194 через UDP
[07 февр. 2024, 19:53:13] СОБЫТИЕ: ОЖИДАНИЕ
[07 февр. 2024, 19:53:13] Подключаемся к [x.x.co.uk]:1194 (86.31.66.136) через UDP
[07 февр. 2024, 19:53:13] СОБЫТИЕ: ПОДКЛЮЧЕНИЕ
[07 февр. 2024, 19:53:13] Опции туннеля: V4, dev-type tun, link-mtu 1541, tun-mtu 1500, proto UDPv4, cipher BF-CBC, auth SHA1, keysize 128, key-method 2, tls-client
[07 февр. 2024, 19:53:13] Учетные данные: Имя пользователя/Пароль
[07 февр. 2024, 19:53:13] Отправляем информацию о пировом устройстве:
IV_VER=3.8.3connect1
IV_PLAT=ios
IV_NCP=2
IV_TCPNL=1
IV_PROTO=990
IV_MTU=1600
IV_CIPHERS=AES-128-CBC:AES-192-CBC:AES-256-CBC:AES-128-GCM:AES-192-GCM:AES-256-GCM:CHACHA20-POLY1305
IV_AUTO_SESS=1
IV_GUI_VER=net.openvpn.connect.ios_3.4.1-5463
IV_SSO=webauth, openurl, crtext
IV_BS64DL=1
[07 февр. 2024, 19:53:13] ВЕРИФИКАЦИЯ OK: depth=1, /C=GB/ST=Yorks/L=York/O=FreshTomato/OU=IT/CN=server, подпись: RSA-SHA256
[07 февр. 2024, 19:53:13] ВЕРИФИКАЦИЯ OK: depth=0, /C=GB/ST=Yorks/L=York/O=FreshTomato/OU=IT/CN=server, подпись: RSA-SHA256
[07 февр. 2024, 19:53:13] SSL Handshake: сертификат пирa: CN=server, RSA 2048 бит, шифр: TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=любой Au=любой Enc=CHACHA20/POLY1305(256) Mac=AEAD
[07 февр. 2024, 19:53:13] Сессия активна
[07 февр. 2024, 19:53:13] СОБЫТИЕ: ПОЛУЧИТЬ_КОНФИГ
[07 февр. 2024, 19:53:13] Отправляем PUSH_REQUEST на сервер...
[07 февр. 2024, 19:53:13] ОПЦИИ:
0 [route] [192.168.10.0] [255.255.255.0]
1 [dhcp-option] [DNS] [192.168.10.1]
2 [route-gateway] [10.6.0.1]
3 [topology] [subnet]
4 [ping] [15]
5 [ping-restart] [60]
6 [ifconfig] [10.6.0.2] [255.255.255.0]
7 [peer-id] [0]
8 [cipher] [CHACHA20-POLY1305]
[07 февр. 2024, 19:53:13] ОПЦИИ ПРОТОКОЛА:
шифр: CHACHA20-POLY1305
дайджест: НЕТ
ключевая деривация: OpenVPN PRF
сжатие: НЕТ
ID пира: 0
[07 февр. 2024, 19:53:13] СОБЫТИЕ: НАЗНАЧИТЬ_IP
[07 февр. 2024, 19:53:13] NIP: Подготовка сетевых настроек TUN
[07 февр. 2024, 19:53:13] NIP: Инициализация сетевых настроек TUN с конечной точкой: xxx.xxx.xxx.xxx
[07 февр. 2024, 19:53:13] NIP: Добавление IPv4-адреса в сетевые настройки 10.6.0.2/255.255.255.0
[07 февр. 2024, 19:53:13] NIP: Добавление включенного IPv4-маршрута 10.6.0.0/24
[07 февр. 2024, 19:53:13] NIP: Добавление включенного IPv4-маршрута 192.168.10.0/24
[07 февр. 2024, 19:53:13] NIP: Добавление DNS 192.168.10.1
[07 февр. 2024, 19:53:13] NIP: allowFamily(AF_INET, 1)
[07 февр. 2024, 19:53:13] NIP: allowFamily(AF_INET6, 1)
[07 февр. 2024, 19:53:13] NIP: Добавление совпадающего домена ALL
[07 февр. 2024, 19:53:13] NIP: Добавление конкретных маршрутов DNS:
[07 февр. 2024, 19:53:13] NIP: Добавление включенного IPv4-маршрута 192.168.10.1/32
[07 февр. 2024, 19:53:13] Подключено через NetworkExtensionTUN
[07 февр. 2024, 19:53:13] СОБЫТИЕ: ПОДКЛЮЧЕНО [email protected]:1194 (xxx.xxx.xxx.xxx) через /UDP на NetworkExtensionTUN/10.6.0.2/ gw=[/] mtu=(default)
КОНФИГАЦИЯ КЛИЕНТА (автоматически сгенерирована Tomato 2023.5)
remote x.x.x.x 1194
proto udp
dev tun
ncp-ciphers CHACHA20-POLY1305:AES-128-GCM:AES-256-GCM:AES-128-CBC:AES-256-CBC
client
remote-cert-tls server
; ca ca.pem
<ca>
... сертификаты здесь
та же проблема… 🙁
Есть ли решение?
Я могу пинговать роутер FastTomato, но не могу пинговать или каким-либо образом получить доступ к машинам во внутренней локальной сети.
Я не уверен, как вы установили сервер OpenVPN, но похоже, что вам не хватает IP-маршрутизации (со стороны сервера), так что эта команда должна это исправить:
echo 1 > /proc/sys/net/ipv4/ip_forward
Некоторый справочный материал: Что такое IP-маршрутизация и как ее включить в Linux?
Ответ или решение
Ошибка связи клиента OpenVPN с локальной сетью (LAN): Возможные причины и решения
Ваша проблема с отсутствием связи между клиентом OpenVPN и устройствами в локальной сети может быть вызвана несколькими факторами. Из описания видно, что клиент OpenVPN на iPhone успешно подключается к серверу, однако доступ к внутренней локальной сети невозможен. Давайте рассмотрим возможные причины и решения.
1. Проверьте настройку маршрутизации
Одна из наиболее распространенных причин отсутствия доступа к локальной сети — неправильные настройки маршрутизации на сервере OpenVPN или в клиентском файле конфигурации. Важно убедиться, что на стороне сервера правильно настроены маршруты, которые позволяют направлять трафик с VPN-сети (10.6.0.0/24) в локальную сеть (192.168.10.0/24).
- Проверьте настройки маршрутов на сервере: Убедитесь, что маршруты на сервере OpenVPN настроены таким образом, чтобы трафик из VPN подсети направлялся в LAN. В команде
route
проверьте, что существует маршрут до 192.168.10.0/24 через интерфейс VPN.
2. Включите маршрутизацию IP
Ошибки в маршрутизации могут также возникнуть из-за того, что на вашем маршрутизаторе FastTomato не включена маршрутизация IP.
-
Чтобы включить маршрутизацию IP на сервере, выполните следующую команду:
echo 1 > /proc/sys/net/ipv4/ip_forward
-
После этого убедитесь, что настройки остаются постоянными между перезагрузками. Для этого измените файл
/etc/sysctl.conf
и добавьте или раскомментируйте строку:net.ipv4.ip_forward=1
3. Проверьте настройки ACL и брандмауэра
Возможно, настройки брандмауэра на маршрутизаторе блокируют доступ к устройствам локальной сети.
- Проверьте правила брандмауэра FastTomato. Убедитесь, что правила не блокируют трафик между VPN и LAN, и разрешают ICMP-пакеты (ping) для проверки связи.
4. Настройка клиентов OpenVPN
Вы также упомянули опцию "Push LAN0 (br0) to clients", которая должна позволять клиентам видеть машины в локальной сети.
-
Убедитесь, что данная опция включена. Если это не помогает, попробуйте вручную добавить следующие строки в конфигурацию сервера OpenVPN:
push "route 192.168.10.0 255.255.255.0"
-
Это должно гарантировать, что клиенты OpenVPN получат маршрут к локальной сети.
5. Проверка клиентского конфигурационного файла
Некоторые опции могут быть игнорированы клиентом из-за проблем с совместимостью. Проверьте, не содержится ли в клиентском конфиге ошибок или неиспользуемых параметров, и удалите их. Убедитесь, что конфигурация содержит правильные параметры для работы с вашим сервером.
Заключение
Решение проблемы доступа клиента OpenVPN к локальной сети может потребовать проверки различных компонентов: маршрутизации, параметров брандмауэра и конфигураций как сервера, так и клиента. Следуя вышеуказанным шагам, вы сможете выявить и устранить возможные ошибки, что приведет к успешной установке соединения с внутренней сетью.