Edgerouter: Установка Wireguard

edgerouter, wireguard

Wireguard отличная альтернатива openvpn. А по части настройки так вообще на три головы впереди. Я использую wg для организации туннеля в домашнюю сеть.

Ставим wireguard

Идем на github и копируем ссылку на deb пакет в зависимости от прошивки и модели роутера. В моем случае это e50-v2-v1.0.20211208-v1.0.20210914.deb

user@ubnt:~$ curl -OL link-to-deb
user@ubnt:~$ sudo dpkg -i e50-v2-v1.0.20211208-v1.0.20210914.deb

Генерируем ключи:

wg genkey | tee /config/auth/wg.key | wg pubkey >  wg.public
Приватный ключ будет лежать в /config/auth/wg.key, публичный в текущей директории. Потом публичный ключ можно посмотреть командой sudo wg show

Настраиваем интерфейс на роутере:

configure
set interfaces wireguard wg0 address 192.168.5.1/24
set interfaces wireguard wg0 listen-port 51820
set interfaces wireguard wg0 route-allowed-ips true
set interfaces wireguard wg0 private-key /config/auth/wg.key

commit
save

Добавляем peer

В приложении Wireguard что на ios, что в macos, что в windows при добавлении нового туннеля ключи генерируются автоматом, нужно только скопировать:

Прописываем публичный ключ роутера, его ip и порт. Обязательно указываем ip адрес устройства, на котором настраиваем - он должен быть уникальным. Например, на телефоне 192.168.5.2, на макбуке 192.168.5.3 и т.д.
Пример конфига для macos и windows:

[Interface]
PrivateKey = приватный ключ пира
Address = 192.168.5.3/32

[Peer]
PublicKey = публичный ключ роутера
AllowedIPs = 192.168.5.0/24, 192.168.1.0/24 // указываем сети, в которые нужен доступ
Endpoint = ip:51820 //внешний адрес роутера
PersistentKeepalive = 15

Добавляем peer в конфиг роутера

configure
set interfaces wireguard wg0 peer публичный_ключ_пира1 allowed-ips 192.168.5.2/32
set interfaces wireguard wg0 peer публичный_ключ_пира2 allowed-ips 192.168.5.3/32
commit
save

Настраиваем файрвол

configure
set firewall name WAN_LOCAL rule 20 action accept
set firewall name WAN_LOCAL rule 20 protocol udp
set firewall name WAN_LOCAL rule 20 description 'WireGuard'
set firewall name WAN_LOCAL rule 20 destination port 51820
commit
save

Все, vpn настроен, доступ в домашнюю сеть есть как с телефона, так и с ноутбука.