1denwiki

если не мы, то не мы

Инструменты пользователя

Инструменты сайта


network:vpn:wireguard

Wireguard

Создание VPN подключения

Сервер: Debian (orange pi/raspberry pi) Клиент: мобильный телефон Android

  1. Получить белый IP-адрес у провайдера
  2. Открыть порт 51830 или любой другой на роутере, который будет использован при поднятии сервера WireGuard
  3. Зайти на *PI и обновить пакеты <code bash> apt update && apt upgrade -y </code>
  4. Установить WG <code bash> apt install -y wireguard </code>
  5. Перейти в директори /etc/wireguard и сгенерировать публичный и приватный ключ WG <code bash> wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey </code>
  6. Проверить сетевой интерфейс и использовать его в дальнейшей настройки <code bash> ip a (eth0 / wlan0 / etc.) </code>
  7. Создать файл конфигурацию командой vi /etc/wireguard/wg0.conf и указать настройки <code bash> [Interface] PrivateKey = <privatekey> Address = 10.0.0.1/24 ListenPort = 51830 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <interface> -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <interface> -j MASQUERADE </code>
  8. Настраиваем IP форвардинг: <code bash> echo «net.ipv4.ip_forward=1» » /etc/sysctl.conf sysctl -p </code>
  9. Настраиваем IP форвардинг: <code bash> echo «net.ipv4.ip_forward=1» » /etc/sysctl.conf sysctl -p </code>

10.Создаём ключи клиента:

wg genkey | tee /etc/wireguard/user_privatekey | wg pubkey | tee /etc/wireguard/user_publickey
  1. Добавляем в конфиг сервера клиента vi /etc/wireguard/wg0.conf: <code bash> [Peer]

PublicKey = <user_publickey> AllowedIPs = 10.0.0.2/32

Вместо <userpublickey> — заменяем на содержимое файла /etc/wireguard/userpublickey </code>

  1. Перезагружаем systemd сервис с wireguard: <code bash> systemctl enable wg-quick@wg0 systemctl restart wg-quick@wg0 systemctl status wg-quick@wg0 </code>
  2. На локальной машине (например, на ноутбуке) создаём текстовый файл с конфигом клиента vi user_wb.conf: <code bash> [Interface] PrivateKey = <CLIENT-PRIVATE-KEY> Address = 10.0.0.2/32 DNS = 8.8.8.8 (192.168.1.1)

[Peer] PublicKey = <SERVER-PUBKEY> Endpoint = <SERVER-IP>:51830 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 20 </code>

Здесь <CLIENT-PRIVATE-KEY> заменяем на приватный ключ клиента, то есть содержимое файла /etc/wireguard/user_privatekey на сервере. <SERVER-PUBKEY> заменяем на публичный ключ сервера, то есть на содержимое файла /etc/wireguard/publickey на сервере. <SERVER-IP> заменяем на IP сервера.

Полезные ссылки:

network/vpn/wireguard.txt · Последнее изменение: 2023/10/26 16:24 — igorkeks