Абсолютно бесплатный VPN с бесплатного VPS

Phenix

Начинающий
Регистрация
Сообщения
17
Реакции
0
Думаю про VPN слышали все, и многим приходилось им пользоваться. При этом использование готового VPN, которым руководит какой - то неизвестный человек, не является хорошей идей. Тем более в России на данный момент пытаются блокировать, как сами VPN провайдеры (Windscribe, Proton и другие известные сервисы), так и сами протоколы.

VPN через SSH​

На данный момент DPI (Deep packet inspection) умеет блокировать не только конкретные ресурсы, но и протоколы обмена информацией. При этом есть протокол, который вряд ли заблокируют - SSH. Блокировка данного протокола невозможна без катастрофических последствий для всей инфраструктуры.

SSH
SSH (secure shell) - протокол для удалённого управления операционной системы на основе TCP. Похож на telnet, но все пакеты шифруются, что делает его безопасным.
SSH "из коробки" работает с шифрованием, поэтому мы можем не беспокоиться за безопасность своего трафика.

Существуют разные инструменты для реализации VPN через SSH, я остановлюсь на sshuttle. Преимущества sshuttle:

  • не требует ничего от сервера (просто запущенный ssh сервер)
  • Работает везде, в том числе OpenWRT и Windows (должно работать)
  • Поддерживает тунелирование DNS запросов

VPS​

Для того, чтобы поднять VPN для себя хватит любого самого дешёвого сервера с белым IP. Но мы хотим всё сделать бесплатно, поэтому отбрасываем этот вариант.

Есть Корейский goorm.io, который позволяет внутри докера запускать свой код на различных языках программирования. По сути repl.it, но goorm.io позволяет официально запускать ssh сервер из их контейнера, а следовательно предоставляет белый IP адрес.

Goorm.io​

Проходим простую регистрацию.

Кстати goorm.io пропускает для регистрации временные почты.
e944fe1ae21eacb646d086128f7e0404.png

Регистрация
Далее переходим в IDE, и создаём новый контейнер.
cb544882aa056157bf2b8566226b471a.png

На выбор есть 4 региона расположения сервера (точнее расположения амазоновского инстанса на котором будет запущен ваш контейнер). Нам нужно выбрать ближайший к нам, чтобы пинг был меньше (если вам конечно не принципиально в какой стране у вас будет VPN).
aed2dfdcd08c1adb8a822e3a3c9dd6ce.png

Пресет контейнера выбираем "blank". Можно ещё выбрать версию убунты в контейнере, правда выбор слишком скромный. Либо 18.04, либо 16.04.

Почему только LTS убунты
Arch is the best!
2be143b95906603003cb3b8a03535d9f.png

Жалко, что в пресете c PyTorch не выдаётся GPU...
Остальные настройки оставляем дефолтными. Создаём контейнер и через несколько секунд оказываемся в ide.
37a98c276e809700a3dc4256a9e47cb6.png

IDE
В верхнем меню выбираем Container -> SSH Configuration
66ac048ac6a062f602924ae4678b9c9f.png

Откроется модал в котором будет команда для подключения по SSH.
efa9e6baf462f095cd2dc26572df752e.png

Можно подключиться через терминал, чтобы автоматически добавить хост в доверенные.
6da9f22856e21f3f13aac32f5b37e406.png

Состояние контейнера сохраняется после его выключения. Поэтому для себя я создал ещё одного пользователя с удобным для меня паролем и подключаюсь через него.

SSHUTTLE

В GitHub репозитории есть команды для установки утилиты практически на любую операционную систему. Здесь приведу только пример для лучшего дистрибутива.

sudo pacman -S sshuttle
После установки выполним следующую команду:

sshuttle -r sshuser@IP:pORT -x IP 0/0 -v --dns
Вместо IP и PORT подставляете данные от своего контейнера. Сначала вам потребуется ввести пароль от вашего, локального root юзера, а затем пароль от пользователя запущенного контейнера.

Открываем любой определитель IP адреса и видим, то, что IPv4 изменился, а IPv6 - нет
1e2f1dfe223f325979cdca9a4fd83104.png

Разработчики sshuttle утверждают, что IPv6 поддерживается, но конкретно у меня - IPv6 не поменялся. К сожалению большинство сайтов определяют регион по IPv6, в том числе и DPI проверяет трафик, идущий через IPv6.


Но это можно исправить.

IPv6

Возможно есть более удобный способ исправить данную проблему. Моё решение - отключить IPv6 на стороне браузера, т.е. запретить ему использовать IPv6 в принципе.

Покажу, как это сделать на примере Firefox.
Открываем страницу about:config и в поиске вводим: network.dns.disableIPv6
и переключаем его на "true".
03cc785949b1f168d3592dd811e348d9.png
 

Phenix

Начинающий
Регистрация
Сообщения
17
Реакции
0
После перезапуска браузера видим, что всё работает
619c9f81bfd8f7aba1aa61eea37e6f92.png

Если всё ещё не работает
Если всё ещё не работает, то проверьте, не включен ли у вас QUIC (HTTP/3). QUIC использует UDP, а sshuttle не умеет работать с таким трафиком.
И все сайты заблокированные со стороны РФ, так же работают.

Бенчмарк​

Контейнер может работать 24/7, если у вас открыта вкладка в браузере с его ide. А в платной подписке его можно заставить работать всегда при любых условиях.
Но я не думаю, что кому - то нужен VPN, который работает постоянно, даже когда вы не у компьютера.

Для бесплатного VPN скорость достаточная. Важно, что она стабильная.
5eb05cbe5e84b321ac30391f7cbf7356.png

В самом контейнере около 650 мб/c

Выводы​

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

Меня полностью устраивает способ, который я изложил в этой статье (сейчас я только им и пользуюсь).

Касательно запуска OpenVPN и подобных. У goorm есть возможность пробрасывать порты.
f7174030567229d2ef5fc261f12011aa.png

Для теста пробросил 2 http порта
Времени протестировать OpenVPN не было. Он должен запустится и работать, но я не знаю, как к этому отнесётся администрация goorm. В правилах про VPN через из контейнеры я ничего не нашёл.
bf9c6cb234a06cfa81ee96226433fe62.png

Написано про прокси, но, как причина для блокировки "высокая нагрузка". Если будет время, то проверю OpenVPN.

Надеюсь, статья была интересная, а главное полезная.
 

Satine

Начинающий
Регистрация
Сообщения
15
Реакции
0
А я храню zip файл запароленный в гугл диске)
 

Petinen

Начинающий
Регистрация
Сообщения
14
Реакции
0
А чё у них адрес амазоновский? Амазон-то за свои впс деньги берёт! Напоминает бесплатный сыр...
 

KostoLOM

Начинающий
Регистрация
Сообщения
13
Реакции
0
"lanadelrayактриса" - и удачи хацкерам в подборе.
 

tarantul90

Начинающий
Регистрация
Сообщения
9
Реакции
0
Отдельная благодарность за то, что напомнил про этот сервис. Зашел, а у меня там оказывается уже год контейнер висит.
 

hunterr

Начинающий
Регистрация
Сообщения
3
Реакции
0
Что вообще-то незаконно. Впрочем, и блокировка провайдеров законного имеет мало
 

gimntut

Начинающий
Регистрация
Сообщения
7
Реакции
0
спасибо. хороший вариант в копилку. а как юзера дополнительно в контейнере заводить?
 

neal17801

Начинающий
Регистрация
Сообщения
11
Реакции
0
Есть хостеры в РФ, которые все еще предлагают VPS не в РФ. Оплачивать можно с карты российского банка, траффик от виртуалки в остальной мир не фильтруется.

ЗЫ: забавно когда из другой страны доступно все, что режется в РФ, но зато закрыто что-то другое...
 

Garena

Начинающий
Регистрация
Сообщения
9
Реакции
0
"Сначала вам потребуется ввести пароль от вашего, локального root юзера", подскажите, как узнать вот этот пароль?
 

Bogdan

Начинающий
Регистрация
Сообщения
16
Реакции
0
А не проще взять за несколько баксов в год vps и поставить там полноценный впн сервер? Lowendbox
 
Сверху