Нельзя подключиться по SSH к устройству за шлюзом через VPN-туннель

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

У меня возникли проблемы с подключением по SSH к виртуальной машине, работающей на другом ПК с Proxmox, из внешней сети через VPN-туннель.

Вот несколько подробностей:

  1. Я подключаюсь через беспроводную точку доступа.
  2. Я запускаю OpenVPN на шлюзе. Подсеть VPN — 192.168.8.X
  3. За шлюзом конечная точка находится по адресу 192.168.45.X.
  4. Маска подсети для обеих сетей — 255.255.0.0.
  5. VPN имеет правило пересылки для маршрутизации трафика с 192.168.8.0 на 192.168.45.0.
  6. Я могу достигать других устройств за шлюзом и успешно подключаться к ним по SSH.
  7. Я могу пинговать целевое устройство.
  8. TCP дамп на целевом устройстве показывает, что SSH-запросы приходят.
  9. ufw отключён, а iptables настроены на ACCEPT для INPUT, OUTPUT, FORWARD.
  10. ОС — Ubuntu Server 22.02

Странно, но я могу подключаться по SSH с точки доступа к целевому устройству, но не с устройства, подключенного к точке доступа.

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

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

  1. Проверка маршрутизации: Убедитесь, что на вашем клиентском устройстве, подключенном к точке доступа, правильно настроены маршруты для доступа к сети 192.168.45.X. Используйте команду route или ip route для проверки. Необходимо убедиться, что маршрут к сети 192.168.45.0 через VPN установлен.

  2. Настройки OpenVPN: Проверьте настройки конфигурации OpenVPN на шлюзе. Убедитесь, что директивы push "route 192.168.45.0 255.255.0.0" и redirect-gateway присутствуют и правильно настроены. Это даст возможность клиентам VPN маршрутизировать весь трафик через шлюз.

  3. Firewall на шлюзе: Несмотря на то, что вы упомянули, что iptables настроен на ACCEPT, стоит убедиться, что правила не блокируют трафик, пришедший из сети 192.168.8.0 в 192.168.45.0. Проверьте все возможные цепочки (INPUT, FORWARD, OUTPUT) и уберите потенциальные правила, которые могут блокировать данный трафик.

  4. Проверка SSH-доступа: Убедитесь, что служба SSH на целевом устройстве действительно слушает на порту 22. Для этого выполните sudo netstat -tuln | grep :22 и убедитесь, что она настроена на прослушивание на всех интерфейсах (0.0.0.0) или на конкретном адресе, который вы ожидаете.

  5. Логи SSH: Проверьте логи SSH на целевом устройстве для получения дополнительной информации о том, почему соединение отклоняется. Логи можно найти в /var/log/auth.log (или аналогичном), и они могут дать подсказки о причине.

  6. Проблема с MTU: Иногда проблемы с MTU могут вызывать сбои соединений VPN. Попробуйте установить MTU на VPN-клиенте на 1400 или 1300 (если он больше) и проверьте, решается ли проблема.

  7. Тестирование подключения: Попробуйте использовать другой SSH-клиент на вашем устройстве (например, PuTTY или другой) для тестирования подключения, а также проверьте, нет ли конфликта программного обеспечения (например, установленных брандмауэров или антивирусных программ), которые могут блокировать SSH-запросы.

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

Надеюсь, эти шаги помогут вам найти и устранить проблему с SSH-доступом к вашей виртуальной машине через VPN. Если у вас будут дополнительные вопросы, не стесняйтесь задавать их!

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

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