Как установить AmneziaWG 3.0 на Keenetic и не застрять на обычном WireGuard

39547
Как установить AmneziaWG 3.0 на Keenetic и не застрять на обычном WireGuard

С AmneziaWG 3.0 на Keenetic есть один неочевидный момент. Просто загрузить новый .conf в штатный WireGuard роутера недостаточно. Встроенная реализация Keenetic умеет работать с предыдущими поколениями AmneziaWG, но специфические параметры AWG 3.0 требуют либо отдельного модуля ядра версии 3.x, либо обработки через sing-box. Поэтому я бы не пытался вручную собирать конфигурацию в веб-интерфейсе Keenetic. Намного удобнее поставить AWG-Manager.

AWG-Manager работает поверх Entware, принимает обычные файлы .conf и ссылки vpn://, создаёт туннели, настраивает маршрутизацию и сразу показывает, какой вариант AmneziaWG реально запущен. Ниже я разберу установку по инструкции проекта, а затем отдельно покажу, что сделать именно для AmneziaWG 3.0.

Короткий дисклеймер. Материал предназначен для легальной настройки собственной сети. Соблюдайте законодательство своей страны, включая требования законодательства России. Не применяйте инструкции для несанкционированного доступа, слежки, взлома, нарушения правил сервисов или незаконного обхода установленных ограничений.

Что понадобится перед установкой

AWG-Manager рассчитан на KeeneticOS 4.x и 5.x и поддерживает архитектуры mipsel-3.4, mips-3.4 и aarch64-3.10. На практике большинство сравнительно новых производительных Keenetic используют ARM или MIPSLE.

Сначала я бы открыл веб-интерфейс Keenetic, перешёл в «Управление» → «Настройки системы» → «Изменить набор компонентов» и установил два компонента.

  • WireGuard нужен для сетевой интеграции.
  • OPKG нужен для запуска Entware и AWG-Manager.

Для классической установки Entware понадобится USB-накопитель. Лучше использовать ext4. На KeeneticOS 5.x при установленных компонентах поддержки файловой системы ext накопитель можно отформатировать прямо через веб-интерфейс роутера.

Перед изменениями я советую сохранить startup-config и резервную копию текущей конфигурации. Установка Entware сама по себе не должна ломать KeeneticOS, но резервная копия сильно упрощает жизнь, если что-то пойдёт не по плану.

Архитектуру роутера можно посмотреть через WebCLI командой

show version

Нас интересует значение arch. В общем случае соответствие выглядит так.

Процессор Архитектура Entware
EcoNet mips
MT7628, MT7621 mipsel
MT7622, MT7981, MT7988 aarch64

Ставим Entware и AWG-Manager

Если Entware уже работает, весь следующий этап с накопителем можно пропустить. Проверить проще всего по наличию каталога /opt и работоспособности команды opkg.

Для новой установки откройте WebCLI по адресу http://192.168.1.1/a. Если адрес локальной сети менялся, подставьте адрес своего роутера.

Сначала наберите

opkg disk

После команды нажмите Tab. Keenetic покажет доступные накопители. Затем укажите накопитель и установщик Entware для своей архитектуры.

Для MIPS

opkg disk <накопитель> https://bin.entware.net/mipssf-k3.4/installer/mips-installer.tar.gz

Для MIPSLE

opkg disk <накопитель> https://bin.entware.net/mipselsf-k3.4/installer/mipsel-installer.tar.gz

Для ARM64

opkg disk <накопитель> https://bin.entware.net/aarch64-k3.10/installer/aarch64-installer.tar.gz

Если Entware ставится во встроенную память поддерживаемого устройства, вместо имени USB-накопителя используется storage:.

Успешную установку можно проверить по журналу. В нём должна появиться строка примерно такого вида.

Opkg::Manager: /opt/etc/init.d/doinstall: [5/5] "Entware" installed!

Проверить журнал из консоли можно командой

show log | grep Opkg::Manager:

После появления Entware подключаемся к его SSH. Для типовой конфигурации используется пользователь root. Порт зависит от конфигурации роутера. В документации AWG-Manager для варианта с компонентом Keenetic SSH указан порт 222.

Из Windows PowerShell команда может выглядеть так.

ssh root@192.168.1.1 -p 222

На свежей установке Entware может использовать пароль keenetic. Если вход прошёл, пароль лучше сразу заменить.

passwd

Теперь ставим AWG-Manager. Разработчик рекомендует быстрый вариант.

opkg update
 wget -qO- http://repo.hoaxisr.ru/install.sh | sh

Скрипт сам определит архитектуру, подключит репозиторий, установит пакет и запустит службу. В конце появится адрес веб-панели. Обычно используется порт 2222.

AWG Manager: http://192.168.1.1:2222

Если порт занят, AWG-Manager выберет другой. Узнать фактическое значение можно так.

cat /opt/etc/awg-manager/settings.json

По умолчанию веб-панель может открываться без авторизации. Я бы сразу включил защиту в настройках AWG-Manager. После включения панель использует учётные данные администратора Keenetic.

Теперь главное, включаем именно AmneziaWG 3.0

На данном этапе AWG-Manager уже установлен, но наличие программы ещё не означает, что туннель работает по AWG 3.0. В AWG-Manager есть разные способы обработки AmneziaWG.

NativeWG использует встроенный WireGuard Keenetic. Такой вариант хорошо интегрирован с системой роутера, но полноценные параметры AWG 3.0 штатная реализация не получает. Документация AWG-Manager прямо указывает, что для AWG 3.0 в таком случае туннель фактически остаётся на возможностях AWG 2.0.

Kernel использует отдельный модуль amneziawg. Для AmneziaWG 3.0 должен быть реально загружен модуль поколения 3.x. Начиная с AWG-Manager 2.16.4 программа проверяет загруженный модуль и только после успешной проверки показывает параметры AWG 3.0.

После импорта настоящего AWG 3.0 в разделе «Обфускация» должны появиться дополнительные поля.

  • HeaderProtectionKey
  • ContentPaddingAddition
  • RekeyAfterTime
  • RekeyTimeout
  • RejectAfterTime
  • KeepaliveTimeout
  • MaxHandshakeAttempts

Самый показательный параметр здесь HeaderProtectionKey. AWG 3.0 использует его для защиты заголовков WireGuard. Если AWG-Manager импортировал конфигурацию, но раздел AWG 3.0 не появился, я бы не считал настройку завершённой. Скорее всего, роутер использует старый модуль или NativeWG.

Важна и совместимость с сервером. HeaderProtectionKey клиента должен совпадать с сервером. AWG-Manager предупреждает, что при несовпадении туннель может формально подняться, но данные через него не пойдут. Нельзя также просто взять конфигурацию AWG 2.0 и дописать несколько параметров от AWG 3.0. Сервер и клиент должны поддерживать одну версию протокола.

Готовый файл AWG 3.0 импортируется обычным способом. На главной странице AWG-Manager выберите создание AmneziaWG-туннеля и загрузите .conf либо вставьте его содержимое. После создания включите туннель переключателем.

Если Kernel с модулем AWG 3.x на конкретном Keenetic недоступен, у AWG-Manager есть второй путь через sing-box. Такой вариант особенно полезен для AWG 3.0, поскольку не зависит от поддержки новых параметров штатным WireGuard Keenetic.

Откройте вкладку Sing-box. Если программа ещё не установлена, AWG-Manager покажет кнопку установки. После установки появится раздел WG endpoints. Создайте новый AWG3 endpoint и передайте исходный конфиг. Поддерживаются как JSON-конфигурации AWG 3.0, так и обычные файлы .conf.

Разница двух вариантов выглядит так.

Вариант Kernel AWG AWG3 через sing-box
Где обрабатывается трафик модуль amneziawg процесс sing-box
Что требуется модуль с поддержкой AWG 3.x установленный sing-box
Параметры AWG 3.0 можно видеть и менять в AWG-Manager берутся из импортированного конфига
Интеграция с Keenetic туннельный интерфейс выход маршрутизатора sing-box

Если нужен обычный интерфейс с максимально прямой интеграцией в Keenetic, я бы сначала пробовал Kernel. Если главная задача заключается именно в совместимости с конфигом AWG 3.0, а подходящего модуля ядра на роутере нет, вариант с sing-box выглядит практичнее.

Как проверить, что всё действительно работает

Зелёный статус туннеля ещё не доказывает, что пользовательский трафик проходит через него. AWG-Manager содержит отдельный раздел «Инструменты» → «Проверки». Там доступны проверка соединения, проверка внешнего IP и тест пропускной способности.

Я проверял бы настройку в таком порядке.

  1. Туннель имеет статус running.
  2. В карточке появляется актуальный handshake.
  3. Проверка соединения проходит успешно.
  4. Проверка IP показывает адрес сервера.
  5. Для Kernel-туннеля AWG 3.0 в настройках видны HeaderProtectionKey и остальные параметры третьей версии.

Если туннель запущен, но внешний IP не меняется, проблема часто связана не с AmneziaWG, а с маршрутизацией. Для отправки всего трафика через соединение откройте редактирование туннеля и включите «Маршрут по умолчанию». Для отдельных устройств и сайтов можно использовать политики и механизмы маршрутизации AWG-Manager.

Если статус становится broken, откройте «Инструменты» → «Журнал» и проверьте endpoint, ключи и параметры конфигурации. Для AWG 3.0 особенно внимательно сравните HeaderProtectionKey с серверным конфигом.

После обновления модуля ядра я бы перезагрузил роутер. AWG-Manager специально проверяет модуль, который уже загружен в память. Новый пакет может лежать на накопителе, пока ядро продолжает использовать старую версию. В таком состоянии секция AWG 3.0 не появится, хотя файлы вроде бы обновлены.

Сам AWG-Manager затем обновляется той же командой, которой устанавливался.

wget -qO- http://repo.hoaxisr.ru/install.sh | sh

Либо через OPKG.

opkg update
 opkg upgrade awg-manager

В итоге рабочая схема выглядит довольно просто. Ставим WireGuard и OPKG в Keenetic, разворачиваем Entware, устанавливаем AWG-Manager, импортируем конфигурацию и проверяем, чем именно обрабатывается соединение. Для настоящего AWG 3.0 выбираем Kernel только при наличии совместимого модуля 3.x. В остальных случаях используем AWG3 endpoint через sing-box.

Главная ошибка при такой настройке заключается в предположении, что любой импортированный файл AmneziaWG автоматически превращает штатный WireGuard Keenetic в AmneziaWG 3.0. Не превращает. Версию нужно проверять по реально используемому движку и доступным параметрам. Подробности установки и актуальные команды разработчик AWG-Manager поддерживает в своей инструкции, а различия штатной поддержки Keenetic можно сверить с документацией Amnezia.

Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
JATOBA
21.1011:00
Как обеспечить защиту ИБ-систем в регулируемых инфраструктурах?Security Vision и ГАЗИНФОРМСЕРВИС 21 октября на бесплатном вебинаре расскажут о совместном решении на базе сертифицированной СУБД Jatoba: от защиты данных до масштабирования и отказоустойчивости.Регистрация
18+. Реклама. Рекламодатель ООО «Интеллектуальная безопасность», ИНН 7719435412

Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com↗
АО «Позитив Текнолоджиз»