Вопрос или проблема
Я использую решение “Access Server” от openVPN https://openvpn.net/as-docs/general.html на компьютере с Linux Ubuntu.
Моя конечная цель — подключить клиентов Windows, чтобы они могли использовать удаленный рабочий стол (Windows 10) для подключения друг к другу.
Я могу подключиться к серверу доступа OpenVPN с моих клиентов, но не могу заставить клиентов подключаться друг к другу.
Для упрощения мой тестовый сценарий включает только 2 клиента, клиент 1 и клиент 2. Моя цель — выполнить пинг LAN-адреса клиента 2 с клиента 1.
Клиенты — это компьютеры с Windows, а сервер (хостинг сервера доступа OpenVPN) — это компьютер с Linux Ubuntu.
Каждый клиент подключается к серверу OpenVPN удаленно через интернет WAN.
LAN IP-адреса компьютеров следующие:
client1 (LAN ip 192.168.1.5)
—>(интернет)
—>сервер доступа openVPN (LAN ip 193.169.10.10)
<— (интернет)
<—client2 (LAN ip 194.170.10.100)
Настройки моей панели администрирования openVPN:
- Отключен NAT и включена маршрутизация
- Разрешения для пользователя клиента 1 (из панели администрирования)
- Включен VPN-шлюз с подсетью на стороне клиента 192.168.1.0/24
- Разрешения для пользователя клиента 2 (из панели администрирования)
- Включен VPN-шлюз с подсетью на стороне клиента 194.170.10.0/24
Моя цель — выполнить пинг 194.170.10.100 (целевой клиент2) с клиента 1. Я не могу заставить это работать.
“ping 194.170.10.100” возвращает “Время запроса истекло / потеряно 100% пакетов”.
Любые советы или помощь будут приняты с благодарностью.
Спасибо
Ответ или решение
Конфигурация OpenVPN Access Server для подключения клиентов друг к другу – задача, требующая тщательной настройки и внимания к деталям. Ваш текущий сценарий предусматривает подключение двух клиентов, работающих на Windows, к OpenVPN Access Server, который установлен на компьютере под управлением Ubuntu. Основная цель – обеспечить возможность взаимодействия этих клиентов между собой через сеть, например, чтобы клиент 1 мог пинговать клиента 2. Давайте разберемся в теоретической части, предложим пример решения и примимся к конкретным шагам настройки.
Теория
OpenVPN Access Server действует как посредник, предоставляющий безопасный канал связи между подключенными клиентами. Ваша система, очевидно, настроена так, что оба клиента могут подключаться к серверу, но не могут взаимодействовать друг с другом. Это происходит из-за особенностей маршрутизации и сетевой конфигурации. Несмотря на то, что NAT отключен, необходимо убедиться, что маршруты правильно настроены и что все необходимые порты и разрешения учтены.
-
Маршрутизация: Когда NAT отключен и включена маршрутизация, пакеты между клиентами должны правильно маршрутизироваться через OpenVPN сервер. Это подразумевает, что сервер должен знать о клиентах подсетей и уметь пересылать пакеты между ними.
-
Файрволы: Возможная блокировка на стороне клиентов или сервера. Windows по умолчанию может блокировать ICMP (пинг) пакеты. Аналогично, файрвол на сервере Ubuntu может быть настроен на отказ приема или пересылки таких пакетов.
-
Конфигурация OpenVPN: Проверьте, что настройки соответствуют вашей топологии сети и поддерживают межклиентскую маршрутизацию. Включение функции
client-to-client
в серверной конфигурации, например, может помочь решению задачи.
Пример
Рассмотрим пример настройки конфигурационного файла OpenVPN, который поддерживает маршрутизацию между клиентами. В файле server.conf
(или другом конфигурационном файле OpenVPN) добавьте или измените следующие параметры:
client-to-client
Этот параметр позволяет OpenVPN серверу пересылать трафик между клиентами напрямую.
Кроме того, настройте файрвол, чтобы разрешить ICMP пакеты (необходимые для "ping") на обоих клиентах и сервере.
Применение
Давайте перейдем к конкретным шагам, которые помогут вам настроить OpenVPN Access Server для достижения поставленной цели.
-
Изменение конфигурации OpenVPN:
- Откройте ваш конфигурационный файл OpenVPN на Ubuntu сервере. Обычно он находится в
/etc/openvpn/server.conf
или в другом аналогичном месте. - Добавьте строку
client-to-client
.
- Откройте ваш конфигурационный файл OpenVPN на Ubuntu сервере. Обычно он находится в
-
Настройка маршрутов:
- Убедитесь, что сервер имеет маршруты к подсетям обоих клиентов. Например, вы можете использовать команды
ip route
для добавления необходимых маршрутов от имени администратора. - Пример команды для добавления маршрута:
ip route add 192.168.1.0/24 via 193.169.10.10 ip route add 194.170.10.0/24 via 193.169.10.10
- Проверьте, что маршрутизация включена на вашем сервере. Для этого убедитесь, что в файле
/etc/sysctl.conf
установленоnet.ipv4.ip_forward=1
.
- Убедитесь, что сервер имеет маршруты к подсетям обоих клиентов. Например, вы можете использовать команды
-
Настройка файрвола на Windows клиентах:
- Убедитесь, что ICMP протокол не заблокирован файрволом Windows. Перейдите в
Панель управления
>Система и безопасность
>Брандмауэр Windows Defender
>Дополнительные параметры
и создайте новое правило входных и выходных подключений для протокола ICMP.
- Убедитесь, что ICMP протокол не заблокирован файрволом Windows. Перейдите в
-
Перезапуск сервиса OpenVPN:
- После внесения изменений перезапустите OpenVPN сервер:
sudo systemctl restart openvpn@server
- После внесения изменений перезапустите OpenVPN сервер:
-
Тестирование:
- Попробуйте пинговать клиент 2 из клиент 1. Убедитесь, что оба клиента подключены к VPN и маршруты отображаются правильно с помощью команды
route print
на Windows.
- Попробуйте пинговать клиент 2 из клиент 1. Убедитесь, что оба клиента подключены к VPN и маршруты отображаются правильно с помощью команды
Заключение
После выполнения вышеперечисленных шагов клиенты вашей сети должны успешно пинговать друг друга через OpenVPN Access Server. Важно помнить о специфике межсетевых взаимодействий и учитывать маршрутизацию, настройку сетевых экранов и точность конфигурации OpenVPN. Надеемся, что эти рекомендации помогут вам в настройке. Если все настроено правильно, но проблема осталась, рекомендуется обратить внимание на журналы OpenVPN для диагностики ошибок и детального анализа сетевых проблем.