Вопрос или проблема
У меня есть собственный VPS в разных регионах.
Я также использую их для VPN (использую пакет https://github.com/hwdsl2/setup-ipsec-vpn).
Можно ли задействовать эти пользовательские скрипты и просто использовать SSH-соединение для VPN.
Существует ли программное обеспечение для Windows и Android, в котором я могу ввести данные SSH и оно создаст VPN-соединение?
Примечание: я не ищу переадресацию портов / туннелирование SSH. Я хочу получить доступ в интернет через VPN-соединение.
Ответ или решение
Использование VPN через SSH на платформах Windows и Android может показаться необычным решением, поскольку эти технологии придерживаются разных целей. Тем не менее, с правильной конфигурацией, возможно добиться желаемого результата. Рассмотрим теоретическую основу, примеры и практическое применение этого подхода.
Теория
SSH (Secure Shell) изначально предназначен для безопасного доступа к удаленным серверам через незащищенные сети, в основном для управления серверами через командную строку. Однако SSH также может использоваться для туннелирования, что позволяет безопасно передавать сетевые данные через защищенное соединение. Это свойство стимулирует использование SSH как потенциальной основы для VPN.
VPN (Virtual Private Network), с другой стороны, предоставляет возможность расширения частных сетей через Интернет, обеспечивая шифрование данных и маскировку IP-адресов. Стандартные VPN протоколы, такие как IPSec, OpenVPN или WireGuard, более оптимизированы для передачи данных через VPN.
Однако, если цель — избавиться от сложной конфигурации VPN-скриптов и использовать SSH соединение для достижения функций, аналогичных VPN, необходимо понимать разницу в их работе. VPN-протоколы управляют маршрутизацией и доступом на уровне операционной системы, в то время как SSH обычно работает на уровне одного соединения или приложения. Но есть обходной путь: запуск SOCKS proxy через SSH.
Пример
Для реализации решения через SSH необходимо настроить SOCKS proxy на стороне вашего клиента SSH. Это можно сделать следующим образом:
-
ssh -D порт пользователь@хост: Эта команда создает динамический портовый пересылочный канал через SSH, который действует как локальный SOCKS proxy сервер.
-
Настройка клиента: На стороне клиента (будь то Windows или Android) вы настраиваете ваше устройство на работу через этот SOCKS proxy. Это требует от приложений поддержки прокси-серверов и настройку системного прокси.
Windows:
Используйте PuTTY или другой SSH клиент, поддерживающий динамическую переадресацию (например, OpenSSH для Windows). В PuTTY настройка производится через категорию "Connection -> SSH -> Tunnels". Установите порт для динамической переконфигурации, например, 1080, и активируйте туннель как тип "Dynamic".
Android:
На Android существует ряд SSH-клиентов, которые поддерживают динамическую перенаправку. Один из наиболее популярных — ConnectBot. Однако для полноценной работы с провайдером могут потребоваться дополнительные приложения (например, ProxyDroid для управления настройками прокси).
Применение
Давайте перейдем к практическому применению этого подхода:
-
Безопасность: Используя SSH, вы обеспечиваете шифрование данных. Однако защищены только приложения, которые используют настроенный SOCKS proxy.
-
Гибкость: SSH позволяет гибко выбирать соединения, которые будут проходить через прокси, однако требует дополнительной настройки ПО, которое отбросит использование системы в принципе.
-
Ограничения: Использование SOCKS proxy через SSH не полностью заменяет VPN по функциями. Сетевая маршрутизация за пределами приложения (например, DNS) потребует дополнительных шагов. Также возможно снижение производительности в связи с отстутвием аппаратной акклиерации в SSH-туннелях.
Для решения сложной задачи интеграции VPN через SSH в полном объеме возможно потребуется реализовать дополнительные настройки как на клиентской, так и на серверной стороне. При необходимости полного контроля над трафиком и всех функций VPN стоит рассмотреть готовые VPN-серверы или прокси-серверы, которые стабильно поддерживают такие функции.
Основная задача — настроить ваши устройства таким образом, чтобы приложения реально работали через установленный прокси. В Windows это настраивается через параметры сети и Интернет, а в Android через использование специализированных приложений для управления прокси.
Этот подход, хотя и не является традиционным решением, может служить временной альтернативой для пользователя с особыми требованиями и возможностями, предоставляющими исключительно выделенные ресурсы SSH-туннелирования.