127 lines
3.4 KiB
Markdown
127 lines
3.4 KiB
Markdown
|
# Текстовая инструкция по настройке Wireguard
|
|||
|
|
|||
|
[видео: https://www.youtube.com/watch?v=5Aql0V-ta8A](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
|
|||
|
~~~
|
|||
|
|
|||
|
Вставляем вместо <privatekey> содержимое файла /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
|
|||
|
|
|||
|
~~~
|
|||
|
|
|||
|
Здесь <CLIENT-PRIVATE-KEY> заменяем на приватный ключ клиента, то есть содержимое файла /etc/wireguard/goloburdin_privatekey на сервере.
|
|||
|
<SERVER-PUBKEY> заменяем на публичный ключ сервера, то есть на содержимое файла /etc/wireguard/publickey на сервере. <SERVER-IP> заменяем на IP сервера.
|
|||
|
|
|||
|
## Что бы сделать частичную маршрутизацию:
|
|||
|
|
|||
|
Убрать DNS и изменить AllowedIPs на 10.0.0.0/24
|
|||
|
|
|||
|
## Теперь нам нужно перенести этот конфиг на смартфон:
|
|||
|
|
|||
|
~~~
|
|||
|
apt install qrencode
|
|||
|
~~~
|
|||
|
|
|||
|
И потом выбрать конфиг и сгенерировать из него QR код
|
|||
|
|
|||
|
~~~
|
|||
|
qrencode -t ansiutf8 < iphone.conf
|
|||
|
~~~
|
|||
|
|
|||
|
После этого в консоли мы увидим QR код и нам остается только отсканировать его через WireGuard на мобильном приложении.
|