WireGuard. Установка и настройка
Подготовка
На сервере и клиенте необходимо установить пакет wireguard и сгенерировать публичный и приватный ключи:
apt install wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
Конфигурация сервера
Форвардинг пакетов
В файл /etc/sysctl.conf необходимо добавить следующие строки:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
И подгрузить эти значения командой sysctl -p
Конфигурация WireGuard
В файл /etc/wireguard/<conn-name>.conf необходимо дописать следующее:
[Interface]
PrivateKey = <private-key>
Address = 172.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o <interface> -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o <interface> -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = <public-key>
AllowedIPs = 172.0.0.2/32
<public-key> - содержимое файла /etc/wireguard/publickey клиента
<private-key> - содержимое файла /etc/wireguard/privatekey сервера
<interface> - имя сетевого интерфейса
Включение WireGuard при запуске сервера
systemctl enable --now wg-quick@<conn-name>.service
Конфигурация клиента
Конфигурация WireGuard
В файл /etc/wireguard/<conn-name>.conf необходимо дописать следующее:
[Interface]
Address = 172.0.0.2/32
PrivateKey = <private-key>
DNS = 1.1.1.1
[Peer]
PublicKey = <public-key>
Endpoint = <server-addr>:51820
AllowedIPs = <allowed-ips>
<public-key> - содержимое файла /etc/wireguard/publickey сервера
<private-key> - содержимое файла /etc/wireguard/privatekey клиента
<server-addr> - публичный адрес сервера
<allowed-ips> - IP-адреса, соединения с которыми будут идти через WireGuard
Включение WireGuard при запуске клиента
systemctl enable --now wg-quick@<conn-name>.service
Примечание
На сервере должен быть открыт порт 51820/udp. Для добавления новых клиентов WireGuard необходимо в конфигурацию сервера добавлять блоки [Peer].