Как настроить 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. Обновите листы заранее.

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

Или используем скрипт
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.

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети
Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

3.2 Настроим наш интерфейс

В General Settings нажмите на Generate new key pair. Запоминаем Public Key

В IP Addresses указываем 10.8.2.1/24 или другой CIDR

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

Listen Port любой от ~10000 - 65535. Я укажу 54444

Переходим в AmneziaWG Settings, заполняет headers, которые мы получили ранее.

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

Заходим в Firewall Settings. Создаем зону HomeVPN

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

Сохраняем настройки

3.3 Настройка Firewall

Перейдем в Network - Firewall
выбираем Homevpn - Изменить

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

Input меняем на accept
Allow forward to destination zones
выбираем lan и wan (если хотите выходить в интернет)
Allow forward from source zones выбираем lan

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

Сохраняем

Переходим в Port Forwards - Add.
Называем AllowHomeVPN
Протокол UDP
Source zone WAN
External port 54444
Destination Zone HomeVPN
Internal port 54444
Internal IP address - 10.8.2.1

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

Сохраняем и применяем

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

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети

Далее сохраняем, применяем настройки. И перезагружам интерфейс 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

Как настроить AmneziaWG (Amnezia Wireguard) сервер на OpenWRT для доступа к своей локальной сети
1
1
6 комментариев