Инструкция по настройке WireGuard VPN на роутерах Keenetic и подключение клиентов Windows и macOS

На официально сайте Keenetic размещена не самая удачная инструкция по настройке WireGuard VPN и скорее всего у вас возникнут трудности при попытке поднять собственный VPN сервер, работающий про протоколу WireGuard.
Несколько усложняет понимание настройки тот факт, что понятия "клиента" и "сервера", в данном случае, весьма условны. Поэтому будем считать WireGuard сервером устройство, которе ожидает подключение, то есть роутер Keenetic, а клиентом – компьютер или ноутбук под управлением Windows или macOS, который инициирует это самое подключение.
Установка компонента "WireGuard VPN" на роутере Keenetic
Для настройки защищенных туннелей по протоколу WireGuard в интернет-центре Keenetic нужно установить компонент системы "WireGuard VPN". Сделать это можно в веб-конфигураторе на странице "Общие настройки" в разделе "Обновления и компоненты".
В боковом меню веб-конфигуратора находите раздел "Управление" и выбираете пункт "Параметры системы". Откроется страничка общими настройками системы, где кликаете по кнопке "Изменить набор компонентов":

Ставите галочку напротив "WireGuard VPN":

После перезагрузки роутера у вас появится новый тип подключения "WireGuard" на странице "Другие подключения" (на скриншоте уже настроенное работающее соединение, у вас там пока пусто):

Настройка роутера Keenetic в качестве сервера WireGuard
Я не буду сегодня углубляться в теоретическую часть, потому предлагаю перейти непосредственно к настройке WireGuard "сервера". Тут важно заметить, что для работы WireGuard VPN, у сервера обязательно должен быть "белый" IP-адрес. Будет он статическим или динамическим, не принципиально, главное условие – "белый".
Для работы VPN туннеля будем использовать сеть 172.16.82.0/24 (специально взял такую же сеть, которая показана в примерах на сайте Keenetic, чтобы вам было проще разбираться, если надумаете изучать WireGuard самостоятельно).
Итак, приступим. Кликните по кнопке "Добавить подключение" и пропишите следующие настройки (ниже поясню что откуда взялось):

WireGuard-интерфейсу на сервере я дал имя "WGS", а клиентскому (пиру) "inetadm" (вы вправе назвать по-своему, просто небольшое пояснение, чтобы не было лишних вопросов).
Для каждого WireGuard-интерфейса (на роутере и на вашем компьютере) формируется два ключа шифрования — публичный и приватный и каждому из них присваивается свой внутренний IP-адрес устройства в VPN-туннеле.
Обратите внимание, что для роутера у меня указан адрес подсети 172.16.82.1/24, а в настройке пира (компьютер, с которого будет инициировано подключение) адрес конкретной машины из этой подсети 172.16.82.2/32. Кроме того, на стороне сервера WireGuard обязательно следует указывать номер порта, на который он будет принимать соединения (16631 порт снова взят из примера с сайта кинетика).
С помощью ключей осуществляется аутентификация участников (пиров) VPN соединения и шифрование трафика. В одном VPN-подключении можно создать несколько пиров для подключения к VPN-серверу с разных компьютеров. Публичный ключ пира, копируете в компьютера клиента (пара ключей создается автоматически при создании туннеля).
Осталось разрешить прохождение трафика для только что созданного WireGuard-интерфейса на роутере (у меня в примере "WGS"), чтобы клиенты могли попадать в локальную сеть. Для этого создайте следующее правило для сетевого экрана:

Подключение по протоколу Wireguard VPN из Windows и macOS
Ссылки на скачивание Wireguard VPN для Windows и Wireguard VPN для macOS.
Процесс настройки Wireguard соединения для macOS и Windows идентичен, потому все скрины будут с моего макбука. Клиентская настройка выглядит примерно так:

[Interface]
PrivateKey = приватный_ключ_клиента
Address = 172.16.82.2/32
[Peer]
PublicKey = публичный_ключ_сервера
AllowedIPs = 172.16.82.1/32, 192.168.100.0/24
Endpoint = ServerVGS.ddns.net:16631
Параметр `PrivateKey` с прописанным ключом у вас будет заполнен автоматически при добавлении туннеля.
Строка `Address = 172.16.82.2/32` прописывается вручную и соответствует внутреннему адресу клиента создаваемого туннеля.
Далее прописывается всё, что относится к серверу:
- В `PublicKey` копируете публичный ключ сервера;
- В параметре `AllowedIPs` перечисляете разрешенные IP-адреса (внутренний адрес сервера и адрес локальной сети роутера Keenetic);
- В `Endpoint` прописывается публичный "белый" IP-адрес или доменное имя VPN-сервера WireGuard и порт прослушивания, на котором сервер ждет подключение от клиента (у меня в примере прописано имя сервера, зарегистрированного в службе динамических доменных имен ServerVGS.ddns.net:16631)

Пожалуй, на этом буду заканчивать. Для подключения по протоколу WireGuard можно использовать не только компьютеры и ноутбуки, но и мобильные устройства на базе Android и iOS, а также объединять сети. Правда, в последнем случае, придется ещё настраивать маршрутизацию, но об этом как-нибудь в другой раз.



Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.