Каждый, кто сталкивался с вопросом обхода блокировок таких сайтов, как Instagram, Facebook, OpenAI и других, к которым закрыт доступ в РФ, знает, что бесплатные VPN не всегда надежны. Платные VPN-сервисы тоже не всегда быстро работают, да и порой стоят не мало.
На мой взгляд, лучшее решение — это свой собственный VPN с возможностью создания неограниченного количества ключей (один ключ — одно устройство) и, как вы догадались, делать такой VPN я сегодня вас научу.
Создавать VPN мы будем через сервис Outline. Я использую его сам. Эта штука очень удобная и легко настраивается даже для новичка. Обо всем подробнее далее.
Для работы нам потребуется:
VPS сервер на Linux
Программа Outline Manager
Программа Outline Client
VPS сервер
Обычно я отдаю предпочтение VPS серверам на Ubuntu. Достаточно самого простого сервера, стоимостью от 400 рублей в месяц.
Outline Manager
Outline Manager нужен для подключения вашего VPS сервера к системе Outline. Через эту программу мы будем генерировать VPN ключи и управлять ими. Этот софт доступен для Linux, Windows и MacOS.
Outline Client
Outline Client нужен для использования VPN ключей. Работает на iOS, Android, Linux, Windows и MacOS. Важно помнить о правиле. Одновременно один ключ можно использовать на одном устройстве!
Теперь к пошаговой инструкции:
Загружаем Outline Manager (с официального сайта)
Запускаем программу
Нажимаем на «Добавить сервер»
Выбираем вариант "Настроить где угодно"
На следующем экране будет эта строка. Добавляем ее в буфер обмен (копируем)
Авторизация на VPS сервере
После покупки VPS сервера обычно доступен вариант авторизации через SSH. Будем считать, что это ваш случай.
Приступаем к авторизации:
Открываем командную строку
Вводим
ssh usernamen@host (ip адресс сервера)
yes
password
После входа вас поприветствует ваш Linux.
Далее нам нужно установить утилиту curl.
sudo apt install curl
Утилита curl нужна для корректной отправки запроса в Outline.
Теперь мы готовы к установке Outline. Вставляем скопированную строку из Outline Manager в терминал Ubuntu:
sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)"
Обратите внимание: при установке Outline могут потребоваться дополнительные пакеты. Следуйте инструкциям и вводите Y
для загрузки/установки дополнительных пакетов.
На выходе вы должны получить сообщение «CONGRATULATIONS! Your Outline server is up and running.» и, самое главное, строку, которую нужно скопировать и вставить в Outline Manager.
Копируем эту строку и вставляем в окно Outline Manager (скрин ниже).
Теперь вас перенаправит на окно управления ключами. Вот некоторые возможности:
Добавить новый ключ
Удалить ключ
Переименовать ключ
Задать ограничение трафика
Переименовать сервер и настроить его
Теперь давайте потестируем наш первый ключ.
Выбираем «Поделиться»
2. На следующем экране «Копировать ключ доступа»
Теперь нам остается вставить этот ключ в программу Outline Client. Ниже я буду показывать в Windows версии, но тот же принцип будет распространяться на любую другую платформу.
Открываем Outline Client
Вставляем ключ
Нажимаем «Добавить сервер»
Нажимаем на "Подключить"
Теперь проведем небольшой тест. Вот как меня видят в сети без Outline и с включенным собственным VPN.
Выводы
То, что я описал выше, доступно каждому. Однако взаимодействовать с Outline можно и программно. Например, существует полезная библиотека Python3, которая позволяет управлять ключами через стандартные запросы.
Это особенно удобно для создания телеграм-бота для продажи ключей (я уже разрабатывал такого, если интересно — пишите в личные сообщения, дам ссылку) или собственного веб-приложения для продажи ключей.
Пожалуйста, дайте обратную связь, если вам интересна тема программного взаимодействия с Outline. И не забудьте оставить отзыв, если информация, изложенная здесь, оказалась для вас полезной.
Всего доброго!
Комментарии (63)
GennPen
08.06.2024 11:18+1Вопросы:
Поддерживает ли IPv6? Если поддерживает, то через NAT или напрямую?
Чем он лучше того же WireGuard кроме как настройки? Я имею в виду, есть ли у него обфускация трафика, которая затруднит определение трафика: ВПН/неВПН.
Есть ли клиент для серверной Ubuntu?
MountainGoat
08.06.2024 11:18Это вроде голый OpenVPN.
GennPen
08.06.2024 11:18+1Погуглил, пишут, что на основе Shadowsocks.
MountainGoat
08.06.2024 11:18Тьфу, извините, с другим таким же попутал, ибо имя им - легион.
GennPen
08.06.2024 11:18Еще больше погуглил. Кратко говоря, Outline мимикрирует под обычный HTTPS трафик.
IPv6 родной клиент вроде как не поддерживает. Но можно подключаться через Shadowsocks клиент, который умеет в IPv6. Получается, подключаться можно и через консольный Shadowsocks клиент с Ubuntu.
Нужно пробовать на практике.
RoundRobin
08.06.2024 11:18Нет, он не мимикрирует под обычный HTTPS трафик. Для наблюдателя он выглядит как шифрованный поток данных. TLS-хэндшейка там вообще нет.
GennPen
08.06.2024 11:18И еще, кто пользуется клиентом для Андроида. У него есть исключения для определенных приложений, как в клиенте WireGuard?
Barnaby
08.06.2024 11:18Нет, но можно использовать обычный клиент для SS, там есть https://play.google.com/store/apps/details?id=com.github.shadowsocks
0mogol0
08.06.2024 11:18+3я не очень понял, а что за Outline? ну т.е.
Ригу брал, Казань брал...OpenVPN знаю, WireGuard, XTLS знаю. Про Outline первый раз слышу. Что у него под капотом? Если уже рассказывали, то может стоило бы дать ссылку на материал в начале, чтобы понять о чём собственно речь.Пока выглядит так, будто есть внешний центр сертификации, через который вы управляете выдачей ключей, и который при желании / наличии злой воли сможет в любую минуту их отозвать или выпустить свои. И всё это, вместо того, чтобы развернуть свой локальный ЦА, для полного контроля над сервером.
Dick_from_mountain
08.06.2024 11:18Использую Outline как Gui клиент под Линуксом для соединения с сервером Shadowsocks. Что он ещё умеет не в курсе, но с вышеупомянутым работает нормально.
ainoneko
08.06.2024 11:18Да, оказывается, год назад они починили (сломанный два года назад) клиент под Линукс (выпустили новый) :)
ZorkinRoman
08.06.2024 11:18+1Насколько такая штука безопасна? (Вопрос от дилетанта экспертам)
На примере openVPN - ты разворачиваешь open source проект самостоятельно, сам сертификаты выпускаешь и т.д. Как бы есть небольшая уверенность в том, что твои данные не утекут.
В случае outline, ты пользуешься тёмной коробочкой от Google. Тут тоже вроде open source, но слишком всё просто без твоего участия настраивается. Смущает))
MountainGoat
08.06.2024 11:18Для вас существуют рецепты для Ansible. Всё само и прямо перед глазами. Только Ansible с винды надо в WSL запускать.
ivantgam
08.06.2024 11:18+1Увы, Shadowsocks сейчас крайне легко блокируется ISP, поэтому подойдёт только для временной замены.
dyadyaSerezha
08.06.2024 11:18Да и цена сервера в 400р примерно равна цене за платный впн.
0mogol0
08.06.2024 11:18у платного впн есть как плюсы: всё настроят за тебя, плюс (по хорошему) сделают несколько серверов в разных локациях, так и минусы: активные игроки привлекают к себе внимание и становятся мишенью для блокировок.
Частный сервер - конечно может попасть под тотальную блокировку "по протоколу", но вероятность, что будут бездоказательно блокировать впн к какому-то серверу не слишком велика, пока не ввели одобрительный порядок создания впн.
yakvenalex Автор
08.06.2024 11:18VPS - это на перспективу скорее. На него можно не только VPN поставить, но и, например, тот же FastApi или бота повесить. Есть свои плюсы и минусы
ris58h
08.06.2024 11:18В 2 раза выше цены за платный VPN.
aspid-crazy
08.06.2024 11:18Я арендую за 1300 в год, так что с ценами всё по разному
ris58h
08.06.2024 11:18Где сейчас "с порога" такая цена?
aspid-crazy
08.06.2024 11:18aeza.net
У них были промо-тарифы в Стокгольме. Брал себе в марте, пару недель назад он еще был активен. Сейчас проверил - активация такого тарифа уже приостановлена. Продление вроде бы по той же цене.
Есть еще weasel.cloud - там получается 240 р. в месяц, при оплате на год вперед.
alexdora
08.06.2024 11:18+2Пока пользуемся SS, намеков на блоки нет даже в то время когда WG отваливался по всей России. Как залочат, будем решать.
Barma2012
08.06.2024 11:18Пока пользуемся SS
А что это, можно подробнее?
Anyuta1166
08.06.2024 11:18У вас ошибка выжившего. SS уже блокируется всеми мобильными операторами РФ. Правда, выборочно - по какой-то причине, не все подпадают под блокировку. Но от этого не легче.
iosuslov
08.06.2024 11:18+1Пользуюсь outline давно, также пользовался purevpn платным. Последний частенько умирает,т.к. попадает в баны какие-то. А аутлайн как работал, так и работает. Скорость медленная, это да. Но как правило достаточно с ним пройти какой-то барьер, а потом отключать и все будет качаться/смотреться/играться без него.
Ну и при выборе хостера учитывайте, что некоторые провайдеры уже в бане у многих приложений. Например, aws - с его виртуалок, например, чатгпт или эпик стор вас не пустят - будут просить выключить впн
pae174
08.06.2024 11:18ssh usernamen@host (ip адресс сервера)
yes
Вот так слепо yes и всё? Live dangerous?
yakvenalex Автор
08.06.2024 11:18В данном контексте yes - это разрешение на сохранение SSH ключа на компьютере. Решил не тратить на это время, так как там понятно будет из контекста (в командной строке будет все написано)
pae174
08.06.2024 11:18Если вы не проверили серверный ключ ssh перед тем, как нажимать этот вот yes, то вы открыли возможность для выполнения MitM атаки, что естественным образом делает всю затею с ssh бесполезной фигнёй. Успешно внедрившийся к вам MitM root может делать с вашей машиной всё, то захочет, в том числе может сделать вам любые блокировки чего угодно, сдампить ваш трафик, подсунуть вам в трафик разные прикольные штуки, да и вообще всё.
yakvenalex Автор
08.06.2024 11:18Любое первое подключение по SSH будет спрашивать об этом. Каким образом пойдет MitM при условии что подключение идет к своему собственному VPS?
MountainGoat
08.06.2024 11:18Как вы предлагаете проверить ключ у только что созданной VPS к которой впервые подключаетесь? Напомню, что если у злоумышленника нет публичного ключа вашего SSH key, то изобразить сервер он не сможет (почему и не стоит этим ключом где попало разбрасываться, и надо иметь разные ключи для ценных машин и одноразовых VPSок)
pae174
08.06.2024 11:18Как вы предлагаете проверить ключ у только что созданной VPS к которой впервые подключаетесь?
Обычно хостер дает возможность зайти на сервер не только через ssh но и через VNC. Заходите через VNC, логинитесь, делаете ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key, получаете слепок. Некоторые хостеры после развертывания виртуалки автоматически делают это за вас и потом пишут полученный слепок в панели управления виртуалкой.
если у злоумышленника нет публичного ключа вашего SSH key, то изобразить сервер он не сможет
Если вы не проверяете ключ своего сервера, то злоумышленнику он и не нужен вообще.
MountainGoat
08.06.2024 11:18А если не предоставляет - то никак. Из вашего получается, что большинство VPSок давно взломаны.
pae174
08.06.2024 11:18Большинство провайдеров VPSок как раз дают юзеру консоль сервера. Я за 15 лет наадминил несколько сотен серверов у разных провайдеров, у меня вообще все 100% позволяли получить слепок так или иначе, и у меня эти слепки потом хранятся наравне с паролями и клиентскими ключами на моей стороне.
Вообще если проводить параллели, то работа по ssh без проверки ключа это все равно что работа с вебсайтом, который защищен самоподписанным сертификатом. Это не очень хорошая идея если вам есть что терять.
NikaLapka
08.06.2024 11:18поздравляю, следующим шагом для вас будет открытие того факта, что а) есть бесплатный протон б) доступ к первому, пока не блокируется с любого российского хостера в) следствием из а) и б) будет что никакие xray, outline,... для этого не нужны
bITb2112
08.06.2024 11:18К сожалению, на данный момент нет ничего лучше, чем WireGuard. Скорость, производительность, простота настройки - на высоком уровне. Да и 400р/месяц звучит дорого для прокладки между устройством и свободным интернетом. Говорю как владелец VPN на WireGuard.
nidalee
08.06.2024 11:18+2К сожалению, на данный момент нет ничего лучше, чем WireGuard.
Он уже блокировался, его можно не заморачиваться поднимать: когда понадобится - не поможет.
Andy_U
08.06.2024 11:18После входа вас поприветствует ваш Linux.
Ага, пользователем root через SSH. Я только что с аналогичной дичью столкнулся. VPS в Нидерландах. Посмотрел на .ssh/authorized_keys. А там куча публичных ключей, видимо, сотрудников тех.поддержки. Причем, е-mail'ы, такие, русскоязычные. Думаю.
DMY
08.06.2024 11:18Действуете по инструкции, и получаете майнер работающий на вашем хостинге, буквально через несколько минут. Так что добавьте пару строчек про запрет подключений извне к докеру, а лучше на запрет всех подключений, кроме ssh (который хорошо бы ещё на нестандартный порт перенести) и самого ВПН сервера.
PS один ключ отлично может использоваться для нескольких одновременных подключений, это вам не WireGuard.
msokolanov
08.06.2024 11:18Здравствуйте!
Спасибо за вашу статью о создании собственного VPN. Информация действительно полезная, и я уверен, что многим читателям она пригодится.
Однако хочу обратить ваше внимание на возможное нарушение закона 149-ФЗ. В статье описывается способ обхода блокировок интернет-ресурсов, доступ к которым ограничен на территории Российской Федерации. Это может быть расценено как нарушение законодательства.
Закон 149-ФЗ, статья 15.1, пункт 5(1), предусматривает включение в реестр запрещённых ресурсов информации о способах обхода блокировок. Публикация такой информации может привести к юридическим последствиям как для автора, так и для платформы, на которой размещена статья.
Рекомендую проконсультироваться с юристом и рассмотреть возможность удаления или изменения статьи, чтобы избежать возможных проблем.
Благодарю за понимание и желаю успехов в вашей деятельности!
GennPen
08.06.2024 11:18+7Роскомнадзор, разлогинься.
Чем эта статья отличается от кучи других инструкций? Ну, даже на том же Дзене море статей на эту тематику.
Публикация такой информации может привести к юридическим последствиям как для автора
А можно вопрос: Каким образом это относится к автору? Его включат в реестр запрещённых ресурсов информации?
BasiC2k
08.06.2024 11:18Outline спокойно детектируется и блокируется. Хотя ещё полгода назад такой проблемы не было.
Pol1mus
Жесть.
https://amnezia.org/ru От сервера требуется только ssh. От клиента смартфон.
MountainGoat
От сервера требуется либо иметь докер в стандартной конфигурации, либо быть одного из нескольких дистрибутивов, для которых в программе есть сценарий, как его поставить.
А вот смартфон совсем не обязателен.
Pol1mus
Докер не требуется, в том смысле что он его сам поставит. Нужен только доступ через ssh. Комп и вот эти все ваши консольные приключения не нужны, достаточно телефона.
Kenya-West
Вы не поняли вопрос.
А если у меня нет телефона, в смысле, смартфона? В таком случае я не смогу воспользоваться Amnezia?
benjik
Поддерживаю. Плюс при использовании протокола amnezia wg скорость быстрее чем у outline
Kil1J0y
А ещё логи outline засрали систему полностью...
Долой outline
edik-petrof
Так это не беда конкретного приложения. Грамотно настроенный logrotate решит проблему нехватки дискового пространства из-за логов не только outline, но и nginx, apache, и множества других приложений, включая даже syslog. Что-то из этого включено в дефолтный конфиг, а что-то придется добавить вручную. А насчет долой - это надо смотреть насколько легко outline блокируется на уровне протокола в сравнении с конкурирующими решениями.
Kil1J0y
А его блочили.. ss в нем вышел не очень. +есть нюанс в плане безопасности, он подвержен mitm(если не подводит память из за работы только по ip)
RoundRobin
Там ss старой уязвимой версии. Но в РФ блокировали не сам SS протокол, а "все непонятное" (кроме протоколов из белого списка).
Dertefter
Ну outline в любом случае ставится проще