cheat-sheets/wireguard.md
2024-01-09 16:27:16 +03:00

127 lines
3.4 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Текстовая инструкция по настройке 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 на мобильном приложении.