Настройка vpn wireguard на примере маршрутизатора openwrt в роли сервера и macos в роли клиента
Ожидает приглашения
Сервер OpenWrt
Установить пакет wireguard
Минимальная установка
opkg update
opkg install wireguardДополнительно можно установить модули для luci
opkg install luci-app-wireguardСоздать private и public ключи
wg genkey | tee wg.key | wg pubkey > wg.pubДополнительно можно сгенерировать preshared ключ
wg genpsk > wg.pskНастроить сетевой интерфейс
Редактировать файл
vim /etc/config/networkГде Wireguard название интерфейса
config interface 'wireguard'
option proto 'wireguard'
option private_key '<PrivateKey>'
option listen_port '1234'
list addresses '10.8.0.1/24'Настроить peer
Опция preshared_key не обязательная
config wireguard_wireguard
option route_allowed_ips '1'
option persistent_keepalive '25'
option public_key '<PublicKey>'
option preshared_key '<PresharedKey>'
list allowed_ips '10.8.0.2/32'Перезапустить сервис network
/etc/init.d/network restartНастроить firewall
Редактировать файл
vim /etc/config/firewallОткрыть порт 1234
config rule
option target 'ACCEPT'
option src 'wan'
option proto 'udp'
option dest_port '1234'
option name 'Allow-WireGuard'
option family 'ipv4'Занести интерфейс Wireguard в зону lan и включить опицию Masquerading
Без опции Masquerading на клиенте не будет доступен интернет и все что находиться за tap0 интерфейсом (в моем случае есть openvpn bridge с tap0 интерфейсом)
config zone
option name 'lan'
option network 'lan openvpn wireguard'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option masq '1'Перезапустить сервис firewall
/etc/init.d/firewall restartКлиент MacOs
Установить приложение
Установить приложение WireGuard из App Store
Пример конфигурации
Опция PresharedKey зависит от настроек сервера
[Interface]
PrivateKey = <PrivateKey>
Address = 10.8.0.2/32
DNS = <ip>
[Peer]
PublicKey = <PublicKey>
PresharedKey = <PresharedKey>
AllowedIPs = 0.0.0.0/0
Endpoint = <ip>:1234