cheat-sheets/wireguard.md
2024-01-19 09:52:59 +03:00

3.4 KiB
Raw Permalink Blame History

Текстовая инструкция по настройке Wireguard

видео: https://www.youtube.com/watch?v=5Aql0V-ta8A

Обновляем сервер:

apt update && apt upgrade -y

Ставим wireguard:

apt install wireguard

Генерим ключи сервера:

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Проставляем права на приватный ключ:

chmod 600 /etc/wireguard/privatekey

Создаём конфиг сервера:

vim /etc/wireguard/wg0.conf

[Interface]
PrivateKey = <privatekey>
Address = 10.0.0.1/24
ListenPort = 51831
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Вставляем вместо содержимое файла /etc/wireguard/privatekey

Настраиваем IP форвардинг:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

Включаем systemd демон с wireguard:

systemctl enable wg-quick@wg0.service
systemctl start wg-quick@wg0.service
systemctl status wg-quick@wg0.service

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

wg genkey | tee /etc/wireguard/goloburdin_privatekey | wg pubkey | tee /etc/wireguard/goloburdin_publickey

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

vim /etc/wireguard/wg0.conf

[Peer]
PublicKey = <goloburdin_publickey>
AllowedIPs = 10.0.0.2/32

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

Перезагружаем systemd сервис с wireguard:

systemctl restart wg-quick@wg0
systemctl status wg-quick@wg0

Создание клиента:

На локальной машине (например, на ноутбуке) создаём текстовый файл с конфигом клиента:

vim goloburdin_wb.conf

Полная маршрутизация трафика:

[Interface]
PrivateKey = <CLIENT-PRIVATE-KEY>
Address = 10.0.0.2/32
DNS = 8.8.8.8

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

Здесь заменяем на приватный ключ клиента, то есть содержимое файла /etc/wireguard/goloburdin_privatekey на сервере. заменяем на публичный ключ сервера, то есть на содержимое файла /etc/wireguard/publickey на сервере. заменяем на IP сервера.

Что бы сделать частичную маршрутизацию:

Убрать DNS и изменить AllowedIPs на 10.0.0.0/24

Теперь нам нужно перенести этот конфиг на смартфон:

apt install qrencode

И потом выбрать конфиг и сгенерировать из него QR код

qrencode -t ansiutf8 < iphone.conf

После этого в консоли мы увидим QR код и нам остается только отсканировать его через WireGuard на мобильном приложении.