Amnezia - новый метод обхода блокировок через протокол AmneziaWG - 2023

Материал из Все о VPN, прокси и свободном интернете

(перенаправлено с «AmneziaWG»)

Amnezia - новый метод обхода блокировок через протокол AmneziaWG - 2023

AmneziaWG - новый протокол, созданный разработчиками AmneziaVPN основанный на wireguard + модифицированном клиенте AmneziaVPN. А именно в клиенте зашиты такие техники обхода:

- перед установкой соединения отправляет мусорные пакеты с рандомными данными
- сам пакет установки соединения тоже содержит некоторое кол-во мусорных байтов
- заголовки пакетов изменены.


AmneziaWG (AmneziaWireGuard) - это форк обычного WireGuard-Go с добавлением функций для обхода блокировок и снижения вероятности обнаружения протокола. Одной из ключевых особенностей AmneziaWG является обратная совместимость с WireGuard. Это означает, что при использовании AmneziaWG, если в конфигурации не указаны специфические параметры для обфускации протокола, он будет работать как стандартный WireGuard.
В чем особенность?
   Перед началом сессии клиент отправляет несколько пакетов со случайными данными (количество таких пакетов Jc и их минимальный и максимальный размер в байтах Jmin, Jmax задается в конфиге)
   Изменен заголовок пакета рукопожатия (Initiator to Responder), и ответного пакета (Responder to Initiator), эти значения также выставляются в конфиге (H1 и H2)
   Инит-пакеты рукопожатия дополнительно имеют мусор в начале данных,
   размеры определяются значениями S1 и S2. (по умолчанию инициирующий пакет рукопожатия имеет фиксированный размер (148 байт), после добавления мусора его размер будет равен 148 + длина случайных байтов).
   Изменен заголовок пакетов с данными и специальных пакетов “Under Load” - H4 и H3 соответственно.
Ещё раз подробно о новых настраиваемых полях:
   Jc (Junk packet count) - количество пакетов со случайными данными, которые отправляются перед началом сессии
   Jmin (Junk packet minimum size) - минимальный размер пакета для Junk packet. То есть все рандомно генерируемые пакеты будут иметь размер не меньше чем Jmin
   Jmax (Junk packet maximum size) - максимальный размер для Junk пакетов
   S1 (Init packet junk size) - размер случайных данных, которые будут добавлены к init пакету, размер которого изначально фиксированный
   S2 (Response packet junk size) - размер случайных данных, которые будут добавлены к ответу, размер которого изначально фиксированный
   H1 (Init packet magic header) - заголовок первого байта рукопожатия
   H2 (Response packet magic header) - заголовок первого байта ответа на рукопожатие
   H4 (Transport packet magic header) - заголовок пакета передаваемых данных
   H3 (Underload packet magic header) - заголовок пакета UnderLoad
Как вы можете догадаться, заголовки H1, H2, H3, H4 должны быть разными. Если выставить Jc, S1 и S2 в нули, то и мусора не будет.
Подтвержденной информации о блокировке AWG еще не поступало, сигнатуры у него нет, а для его блокировки нужно будет блокировать весь неопознанный UDP-трафик

Информация от разработчиков:

Стабильно, скорость достойная, просадки либо минимальные по скорости, либо их вообще нет, в РФ и некоторых других странах работает (более широкие тесты будут после полноценного релиза на всех платформах)

Скачать клиенты AmneziaVPN 4.0.8 - Pre-release (AmneziaVPN 4.0.8 with new UI and new VPN protocol AmneziaWG) под все ОС:

https://github.com/amnezia-vpn/amnezia-client/releases/tag/4.0.8

Новые версии клиентов - отслеживать можно тут

https://github.com/amnezia-vpn/amnezia-client/releases

Для Windows скачиваем и устанавливаем приложение:

https://github.com/amnezia-vpn/amnezia-client/releases/download/4.0.8/AmneziaVPN_4.0.8.5_x64.exe


На сервере должна стоять чистая ОС Ubuntu 20.04: После покупки заказа - Вам будет выдан root пароль и сам IP сервера.

Запускаем приложение и выбираем "У меня есть данные для подключения":

Далее нажимаем "Настроить Ваш сервер":

Далее вводим IP сервера, root логин и пароль от root --> Нажимаем "Продолжить":

Далее нажимаем "Настроить VPN самостоятельно - Выбрать VPN протокол" --> Нажимаем "Продолжить"::

Далее выбираем AMNEZIAWG протокол:

Оставляем порт без изменений в примере 55424 и нажимаем "Установить":

Ожидаем установку AMNEZIAWG, которая длится до 5 минут:

УСТАНОВКА ЗАВЕРШЕНА. Нажимаем Подключиться кнопку и проверяем свой новый IP через https://2ip.ru/ и скорость через https://www.speedtest.net/:

Результат:


На сервере будет установлен контейнер docker - amnezia-awg:

~# docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS          PORTS                                           NAMES
6407fd56beca   amnezia-awg   "dumb-init /opt/amne…"   44 seconds ago   Up 43 seconds   0.0.0.0:55424->55424/udp, :::55424->55424/udp   amnezia-awg

Удалить контейнер можно вручную по ssh командой с флагом -f (force):

# docker rm 6407fd56beca -f

Включить дебаг логи клиента AmneziaVPN можно через кнопку "Настройки" --> "Приложение":

Логирование --> Сохранить логи:

Сами логи будут писаться в файл

C:\Users\ВАШ_ЮЗЕР\AppData\Roaming\AmneziaVPN.ORG\AmneziaVPN\log\AmneziaVPN.log