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]
.