Установка Wireguard на Linux

https://youtu.be/5Aql0V-ta8A
https://t.me/t0digital/32

1. Установка пакетов

$ apt install -y wireguard qrencode

2. Настройка сервера

$ cd /etc/wireguard

2.1. Генерация privatekey и publickey для сервера

$ wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
$ chmod 600 privatekey

2.2. Создание конфига сервера

$ touch wg0.conf
[Interface]
PrivateKey = <server privatekey>
Address = 10.0.0.1/24
SaveConfig = false 
ListenPort = 51830
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

2.3. Форвардинг

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

2.4. Активация и включение сервера

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

3. Настройка клиента

3.1. Создание ключи клиента

$ wg genkey | tee /etc/wireguard/<clientname>_privatekey | wg pubkey | tee /etc/wireguard/<clientname>_publickey

3.2. Добавление в конфиг сервера клиента

....
....
 
[Peer]
PublicKey = <clientname_publickey>
AllowedIPs = 10.0.0.2/32

3.3. Перезапуск сервера

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

3.4 Создание конфига клиента

[Interface]
PrivateKey = <clientname_privatekey>
Address = 10.0.0.2/32
DNS = 8.8.8.8
 
[Peer]
PublicKey = <server publickey>
Endpoint = <SERVER-IP>:51830
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20

3.5 Генерация QR

qrencode -t ansiutf8 < clientname.conf
qrencode -t png -d 120 -o clientqr.png < clientname.conf