Назад | Перейти на главную страницу

Сервер OpenVPN не может пинговать клиентов

У меня установлен OpenVPN на сервере Debian. Клиенты могут подключаться, а клиенты могут пинговать и получать доступ к ресурсам (общие ресурсы Samba и интрасеть) на сервере.

Однако сервер не может пинговать клиента - он просто истекает.

Диаграмма

Client OpenVPN assigned IP: 10.67.15.26
   ↓ UDP on 1194
Internet
   ↓
Router port-forwards 1194 to server
   ↓ 
Server LAN IP: 10.67.5.1

Конфигурация сервера OpenVPN (соответствующие биты)

port 1194
proto udp
dev tun
server 10.67.15.0 255.255.255.0
push "route 10.67.5.0 255.255.255.0"

Таблица маршрутизации сервера

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.67.15.2      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.67.15.0      10.67.15.2      255.255.255.0   UG    0      0        0 tun0
10.67.5.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
0.0.0.0         10.67.5.254     0.0.0.0         UG    0      0        0 eth1

Брандмауэр сервера

Я временно отключил брандмауэр сервера, политики всех цепочек ПРИНЯТ и все флаги пересылки установлены:

1 : /proc/sys/net/ipv4/conf/all/forwarding
1 : /proc/sys/net/ipv4/conf/default/forwarding
1 : /proc/sys/net/ipv4/conf/lo/forwarding
1 : /proc/sys/net/ipv4/conf/eth1/forwarding
1 : /proc/sys/net/ipv4/conf/tun0/forwarding
1 : /proc/sys/net/ipv4/ip_forward

Тестовые случаи:

клиент: ping 10.67.5.1 работает, как и другие ресурсы.

сервер: ping 10.67.15.26 время вышло.

Сравнивая двух разных клиентов, я смог выявить и исправить 2 проблемы.

Проблема 1: маршрутизация

По какой-то причине (и я не уверен, что я решил эту проблему) таблица маршрутизации сервера постоянно забывала маршрут в / из своей локальной сети (10.67.5.0/24). Это приводило к тому, что весь исходящий трафик локальной сети проходил через его основной шлюз, который не направлялся в локальную сеть OpenVPN (10.67.15.0/24). Это приводило к сбою трафика из сети OpenVPN, предназначенной для LAN, на главном шлюзе; Таким образом, пинги были отправлены, но ответ был сброшен.

Редактировать: К сожалению, я не знаю, из-за чего этот маршрут был сброшен; как вы можете видеть, это было в таблице маршрутизации выше. Я попытался добавить команду маршрута в / etc / network / interfaces, но потом у меня получилось два повторяющихся идентичных маршрута, поэтому я снова удалил ее. Это был мой fwbuilder config, из-за которого этот маршрут был сброшен: при настройке адаптера eth1 я указал сетевую маску / 32 (т.е. хост) вместо / 24 (для локальной сети).

Тестируя клиент Debian, я смог понять это, после этого он работал, а клиент Windows 7 - нет.

Проблема 2: брандмауэр / конфигурация Windows 7

Было две проблемы с установкой Windows.

В Windows должен быть установлен частный профиль "Рабочий" для адаптера TAP.

Кредит для этого раздела принадлежит kalwi

Обновление от 11.06.2020

Вы можете изменить интерфейс на частный, используя следующие две команды PowerShell:

# this first one will let you see the available connections, 
# find the interface index of the one you would like to change
Get-NetConnectionProfile
Set-NetConnectionProfile -InterfaceIndex NN -NetworkCategory Private

В «Центре управления сетями и общим доступом» вы должны увидеть (как минимум) 2 «активные сети». У меня была беспроводная сеть, а затем «Неопознанная сеть». Последнее является устройством OpenVPN TAP, и на нем был значок скамейки в парке, что означало, что оно рассматривалось как общедоступное и ненадежное. Чтобы изменить это, вам необходимо добавить шлюз по умолчанию для адаптера.

Запустите терминал DOS / Cygwin как администратор. (Запустите Orb> найдите CMD> щелкните его правой кнопкой мыши> запустите от имени администратора).

Тогда сделай route print -4. Вы увидите список интерфейсов. Каждая строка начинается с числа, а справа вы увидите имя. Определите номер интерфейса для адаптера TAP-Win32. Моему было 17.

Теперь добавьте маршрут:

route -p add 0.0.0.0 mask 0.0.0.0 1.2.3.4 metric 500 if 17

Где 1.2.3.4 должен быть IP-адресом вашего шлюза OpenVPN (показанным в столбце Gateway в выходных данных предыдущей команды), а 17 должен быть номером вашего интерфейса TAP. В -p опция делает маршрут постоянным. Я сначала сделал это без этого, чтобы проверить. Это предполагает, что IP-адрес шлюза OpenVPN клиента не будет меняться между подключениями..

Как только вы это сделаете, должно появиться диалоговое окно с просьбой классифицировать новую сеть. выберите работай.

На этом этапе я мог отправлять трафик из локальной сети моей компании клиенту (проверено с помощью netcat), однако эхо-запросы все еще оставались без ответа.

Скажите Windows разрешить эхо-запросы (ICMPv4)

Запустите Orb> Брандмауэр Windows в режиме повышенной безопасности, затем перейдите к Правилам для входящих подключений и Новое правило ...

  • Пользовательское правило
  • Все программы
  • Протокол: ICMPv4
  • Разрешить соединение
  • Применить к личному профилю
  • Назови это.

Наконец пинги вернулись.