WireGuard-клієнт
Вступ
- Ця інструкція описує налаштування клієнта WireGuard у OpenWrt.
- Для налаштування сервера дивіться WireGuard-сервер, а для додаткових параметрів — WireGuard - lдодаткові можливості.
Цілі
Інструкції
1. Підготовка
Встановіть необхідні пакунки. Вкажіть параметри конфігурації для VPN-клієнта:
# Встановити пакунки opkg update opkg install wireguard-tools # Параметри конфігурації VPN_IF="vpn" VPN_SERV="АДРЕСА_СЕРВЕРА" VPN_PORT="51820" VPN_ADDR="192.168.9.2/24" VPN_ADDR6="fd00:9::2/64"
2. Керування ключами
Згенеруйте та обміняйтесь ключами між сервером і клієнтом:
# Генерація ключів umask go= wg genkey | tee wgserver.key | wg pubkey > wgserver.pub wg genkey | tee wgclient.key | wg pubkey > wgclient.pub wg genpsk > wgclient.psk # Приватний ключ клієнта VPN_KEY="$(cat wgclient.key)" # Попередньо розділений ключ (PSK) VPN_PSK="$(cat wgclient.psk)" # Публічний ключ сервера VPN_PUB="$(cat wgserver.pub)"
3. Брандмауер
Вважаємо VPN-мережу загальнодоступною. Призначаємо інтерфейс VPN до зони WAN для мінімізації налаштувань файрвола:
# Налаштування файрвола uci rename firewall.@zone[0]="lan" uci rename firewall.@zone[1]="wan" uci del_list firewall.wan.network="${VPN_IF}" uci add_list firewall.wan.network="${VPN_IF}" uci commit firewall service firewall restart
4. Мережа
Налаштуйте VPN-інтерфейс та пірів:
# Налаштування мережі uci -q delete network.${VPN_IF} uci set network.${VPN_IF}="interface" uci set network.${VPN_IF}.proto="wireguard" uci set network.${VPN_IF}.private_key="${VPN_KEY}" uci add_list network.${VPN_IF}.addresses="${VPN_ADDR}" uci add_list network.${VPN_IF}.addresses="${VPN_ADDR6}" # Додати пір (сервер) uci -q delete network.wgserver uci set network.wgserver="wireguard_${VPN_IF}" uci set network.wgserver.public_key="${VPN_PUB}" uci set network.wgserver.preshared_key="${VPN_PSK}" uci set network.wgserver.endpoint_host="${VPN_SERV}" uci set network.wgserver.endpoint_port="${VPN_PORT}" uci set network.wgserver.persistent_keepalive="25" uci set network.wgserver.route_allowed_ips="1" uci add_list network.wgserver.allowed_ips="0.0.0.0/0" uci add_list network.wgserver.allowed_ips="::/0" uci commit network service network restart
Вирішіть проблеми гонки (race conditions) та за потреби налаштуйте динамічне підключення.