AmneziaVPN - делаем свой VPN-сервер без всяких знаний
Дисклеймер
Данная статья носит образовательных характер. Описанные действия используемые с целью обхода блокировок к информационным ресурсам могут караться действующим законодательством. Автор призывает не нарушать закон и использовать полученную информацию исключительно в образовательных целях.
AmneziaVPN - что это за зверь
В условиях затянувшейся информационной войны вялые попытки установить тоталитарный контроль за источниками поставки информации в глобальной сети Интернет обретают всё более продвинутые методики. Регулирующие органы, ответственные за контроль оборота информацией, разрабатывают новые подходы к идентификации и блокировке ресурсов, подпадающих под определение опасных, не рекомендованных информационных источников и так далее.
В связи с всё больше растущим ограничением в свободном получении и обмене информацией, активисты, выступающие за права свободного обмена и получения информацией, разрабатывают различные приложения и протоколы обхода средств защиты интернет-провайдеров.
Одним из решений, о котором я вам сегодня хотел бы рассказать - кросс-платформерное приложение AmneziaVPN.
На удивление, посмотрев в Telegram инфу по данной тулзе, не нашёл большого количества статей на счёт этой штуки, что очень зря.
И тут я не просто так решил начать именно с данной приложухи - ведь с помощью её вы сможете развернуть множество сервисов для обеспечения своей анонимности без знаний и навыков работы с Linux сервером. И это прекрасно.
Помимо этого AmneziaVPN поддерживает огромное количество VPN протоколов:
Кто хочет подробнее прочитать про VPN - можете изучить мою небольшую статью.
Если кратко: VPN - это установление зашифрованного соединения между вашим устройством и сервером, на котором установлен VPN-сервис. В зависимости от сервиса будет использоваться какой-то конкретный VPN протокол, а для его работы будет использоваться какое-то конкретное приложение, которое поддерживает установление VPN соединения по этому протоколу. После установки соединения к ресурсам, на которые мы хотим зайти, заходим не мы, а наш сервер, как бы выступая посредником. Короче, в статье читайте, описал там.
Обычно такое соединение нужно для доступа к внутренним сервисам корпоративной среды, но обыватели чаще используют эту технологию чтобы получать доступ ко всяким заблокированным порнушкам, а хакеры и исследователи - для анонимности, проведения сканирований и анализа заблокированных (и не только) ресурсов.
Делаем свой VPN-сервер
И так, первое с чего начнем - это традиционно с аренды VPS. Арендовываем Linux сервер, в моём случае Ubuntu 24.04:
В принципе вы можете найти дешёвый вариант за например 500 рублей в месяц и спокойно оплачивать сервак. А если поделитесь со своими товарищами и друзьями сервисом - можете поделить деньги на оплату и пользоваться им за сущие копейки, не боясь блокировки со стороны провайдера.
Теперь скачаем последнюю версию AmneziaVPN. Сделать это можно разными способами:
- С оф. сайта - но может быть заблочен в вашей стране.
- Воспользовавшись зеркалом - на случай если оф. сайт заблочен.
- Скачать с GitHub - там же можно глянуть исходники приложения.
P. S. кстати можете почитать документацию (возможно потребуется VPN который мы щас сделаем).
Я буду ставить приложение на Kali, так как с виндой и андроидом думаю всё и так понятно.
Распаковываем из архивов наш файл установщика:
И запускаем командой: ./AmneziaVPN_Linux_Installer.bin
В открывшемся установщике жмем далее и вводим пароль от нашего аккаунта:
После установки приложения вводим в терминале команду: AmneziaVPN
В открывшемся приложении жмем на кнопку начала и попадаем в главное меню:
- Вставить купленный ключ на доступ к уже готовым VPN серверам от AmneziaVPN
- Подключиться к бесплатным и платным (если мы вставили ключ) серверам
- Развернуть свой VPN-сервер (то чем мы сейчас и займемся)
- Восстановить конфигурацию из резервной копии - на случай если у нас уже есть готовый сервер, и мы хотим перенести root-доступ на другое устройство
- Подключиться к другому VPN-серверу, не AmneziaVPN - здесь мы можем подключиться прямо в этом приложении ко множеству других VPN-сервисов с помощью конфигурационного файла.
И так, выбираем третий пункт - Self-Hosted VPN:
Здесь нам нужно вбить данные, которые мы получили, когда арендовали VPS.
Если мы введем неверные данные, то нам выдаст ошибку:
Что ж, тут я решил пойти не стандартно, и вместо пользователя root создал отдельного пользователя vpn, добавив его в группу sudo. Вам этого делать не обязательно, просто вставьте данные которые вам пришли после аренды сервера.
После успешного подключения нам сразу предложат установить VPN-сервис:
- LOW - не проверял, вероятно установится что-то вроде OpenVPN сервера
- HIGH - здесь установится модифицированная версия WireGuard под названием AmneziaWG.
- Выбрать VPN протокол - вот на него то мы и нажимаем.
Здесь нам выпадает список всех доступных для установки VPN сервисов. Лично я рекомендую XRay и OpenVPN over Cloak как наиболее продвинутые технологии VPN, с имитацией живого web-трафика, защиты от активного зондирования.
Здесь можем выбрать свой порт, на который будет установлен данный контейнер. Я оставлю тот что мне предложила прога и нажму install
.
Теперь у нас пойдет процесс установки, а в терминале можно увидеть какие команды выполняются на сервере:
Наш эксперимент с другим пользователем провалился, выдав нам ошибку:
Это существенный недостаток, однако, давайте вернемся назад и укажем логин и пароль от root пользователя:
В этот раз у нас успешно запустился процесс установки, ждем окончания:
По окончании нас будет ждать такое окно:
Кнопка подключения подключит нас к VPN.
Кнопка поделиться даст нам возможность дать доступ нашим товарищам, при этом не давая доступ на администрирование сервером.
В настройках можем сделать резервную копию, а также доустановить другие сервисы на сервер
Для примера откроем первое окно Servers, выберем наш сервер и установим туда Tor сайт.
После установки можем зайти и получить ссылку на наш сайт в darknet:
Если что работает на WordPress. Заходим по ссылке и устанавливаем сайт:
В окне управления можем перезапустить наш сервер, удалить все сервисы со следами с нашего сервера, и удалить сервер из приложения (сам сервер останется):
Ну вот собственно и всё. VPN получен, остальные функции оставлю вам на самостоятельное изучение. Продукт годный и лично мне за его удобства очень понравился. Функции реализованы за счёт готовых docker контейнеров.
Тестируем на whoer.net наш vpn пока не добьемся желаемого результата. Для этого меняем доступные VPN-сервисы и VPS провайдеров, а также расположение сервера и настройку своей системы (или меняем систему в целом, например).
Выводы
AmneziaVPN отлично подойдет тем, кто не прошарен в IT сфере или просто не хочет особо заморачиваться с развертыванием столь обывательских инструментов.
Данное решение позволяет автоматизировано развернуть большое количество сервисов, однако не даёт возможности гибкой настройки и подключения к серверу не под root пользователем - что значительный минус.
Сервисы упакованы в docker контейнеры. Такая изоляция гарантирует дополнительную безопасность.
Как итог - годная штука для тех кто не силён в самостоятельном развертывании сервисов на Linux серверах, а также для тех, кто хочет изучить и быть может даже помочь в разработки подобных решений.