Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети
Как я пришел к этому.
Решив поиграть в игру по локальной сети мы столкнулись с тем, что Wireguard был недоступен для наших друзей с других стран. Поэтому требовался VPN протокол, который будет
а) Прост в настройке
б) Доступен в западных странах и Китае (предпочтительно)
в) Не требователен к железу, т.к. будет работать на роутере
Под эти цели подошел AmneziaWG.
Дисклеймер
Этот гайд не направлен на обход блокировок (Да и без сторонних утилит у вас не получится это сделать). VPN = Virtual Private Network и может использоваться не только для этих целей.
Требования
- 128MB оперативной памяти
- 32MB флешки
- Статический IP (Белый). Можно использовать natmapt из fantastic-packages.
- SSH клиент на PC
- Python3 на PC
- Доступ в интернет
1. Установка amneziawg-tools
Скачиваем с https://github.com/Slava-Shchipunov/awg-openwrt/releases 3 пакета: kmod-amneziawg, amneziawg-tools, luci-app-amneziawg для вашей архитектуры (в моем случае mediatek filogic) в данном порядке.
System - Software - Upload Package. Обновите листы заранее.
Или используем скрипт
sh <(wget -O - https://raw.githubusercontent.com/Slava-Shchipunov/awg-openwrt/refs/heads/master/amneziawg-install.sh)
Предварительно установите curl, wget
Перезагружаем роутер
2. Подготовка Header'ов для AmneziaWG
Качаем отсюда в релизах header-generator.py, запускаем его, получаем текстовый документ, сохраняем его.
3. Настройка AmneziaWG интерфейса
3.1. Создадим интерфейс AmneziaWG VPN.
Пройдем в: Network - Interfaces - Add new Interface. Назовем его: HomeVPN. Протокол AmneziaWG VPN.
3.2 Настроим наш интерфейс
В General Settings нажмите на Generate new key pair. Запоминаем Public Key
В IP Addresses указываем 10.8.2.1/24 или другой CIDR
Listen Port любой от ~10000 - 65535. Я укажу 54444
Переходим в AmneziaWG Settings, заполняет headers, которые мы получили ранее.
Заходим в Firewall Settings. Создаем зону HomeVPN
Сохраняем настройки
3.3 Настройка Firewall
Перейдем в Network - Firewall
выбираем Homevpn - Изменить
Input меняем на accept
Allow forward to destination zones выбираем lan и wan (если хотите выходить в интернет)
Allow forward from source zones выбираем lan
Сохраняем
Переходим в Port Forwards - Add.
Называем AllowHomeVPN
Протокол UDP
Source zone WAN
External port 54444
Destination Zone HomeVPN
Internal port 54444
Internal IP address - 10.8.2.1
Сохраняем и применяем
3.4 Создание Пиров
Переходим Network - Interfaces - Homevpn - Edit - Peers - Add Peer
Даем описание нашему Пиру
Нажимаем на Generate new key pair, запоминаем Private Key (нажав на *)
Нажимаем на Generate preshared key, запоминаем его (нажав на *)
Allowed IPs указываем любой ip в нашем диапазоне (в нашем случае 10.8.2.2 - 10.8.2.254). Рекомендую их по порядку давать. Я укажу 10.8.2.1/32. Маска /32 Показывает, что пир может использовать только этот IP адрес
Ставим галочку Route Allowed IPs
Далее сохраняем, применяем настройки. И перезагружам интерфейс HomeVPN
4. Настройка клиентов
Создаем файл awg0.conf.
Заменяем соответсвующие значения в примере
[Interface]
Address = <Ip, который вы дали в разделе Peers>/32 #10.8.2.2/32
DNS = <ip интерфейса> # 10.8.2.1
PrivateKey = <Приватный Ключ в разделе Peers>
Jc = 3
Jmin = 10
Jmax = 50
S1 = 34
S2 = 124
H1 = 459285302
H2 = 1179615010
H3 = 1831027371
H4 = 778595936
[Peer]
PublicKey = <Публичный ключ в разделе HomeVPN - General Settings>
PresharedKey = <PresharedKey в разделе Peers>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = <Ваш IP>:<Порт> # внешний IP роутера.Порт в примере 54444
PersistentKeepalive = 25
Вот что получилось у меня
[Interface]
Address = 10.8.2.2/32
DNS = 10.8.2.1
PrivateKey = YK+vDL7NUh5rPZQj6+nFiBrDjnHUGglltVJDGtC0g3c=
Jc = 24
Jmin = 694
Jmax = 934
S1 = 64
S2 = 49
H1 = 761546921
H2 = 1817895874
H3 = 471341646
H4 = 1487481836
[Peer]
PublicKey = Rw7vs08tul7h4lIqJTiigY29QDhE9ocuunufV1nlXhE=
PresharedKey = qZl6hUX4375Kb9JlHbB6ddq3D9Q2/mkS4IxPVLoNjr0=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = x.x.x.x:54444
PersistentKeepalive = 25
НЕ ЗАБУДЬТЕ УДАЛИТЬ ВСЕ, ЧТО ПОСЛЕ #
Сохраняем, можем импортировать в приложение AmneziaVPN на PC, AmneziaWG на Android