Настройка WireGuard
Для установки посмотрите
здесь название пакета для Вашего дистрибутива или ОС. В CentOS не забудьте про epel-release.
Создайте каталог
mkdir -p /etc/wireguard/
. Выполните
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey | tee /etc/wireguard/server_public.key
- эта команда сгенерирует ключи. Создайте файл
/etc/wireguard/wg0.conf
со следующим содержимым:
Код:
[Interface]
PrivateKey = содержимое файла server_private.key
Address = 10.10.0.1/24
ListenPort = 51820
SaveConfig = true
Для добавления клиента добавьте следующие строки в конец файла
wg0.conf
:
Код:
[Peer]
PublicKey = публичный ключ клиента (о нём ниже)
AllowedIPs = 10.10.0.2/32
Для каждого клиента свой блок Peer и свой адрес. Например, для другого клиента может быть использован адрес 10.10.0.3/32.
Для добавления клиента без перезапуска выполните следующую команду:
Код:
wg set wg0 peer публичный ключ клиента allowed-ips 10.10.0.2/32
Включите режим маскарадинга. Для iptables команды будут такими:
Код:
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o сетевой_интерфейс -j MASQUERADE-j ACCEPT
Для firewalld:
Код:
firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.10.0.1/24 masquerade' --permanent
firewall-cmd --reload
Обратите внимание: пул адресов 10.10.0.1/24 не должен быть занят другими приложениями. Если же занят, то используйте другой пул. То же самое про порт. Не забудьте открыть его.
Добавьте в /etc/sysctl.conf следующие строки:
Код:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
И примените эти значения:
sysctl -p
.
Установите права 600 для server_public.key и wg0.conf.
Запустите сервер:
Код:
systemctl start wg-quick@wg0
systemctl enable wg-quick@wg0
Если в Вашей системе нет systemd, используйте команды wg-quick up конфиг и wg-quick down конфиг.
Настройка клиента
Сгенерируйте клиентские ключи:
Код:
wg genkey | tee /etc/wireguard/client_private.key | wg pubkey | tee /etc/wireguard/client_public.key
Создайте конфигурационный файл клиента:
Код:
[Interface]
Address = 10.10.10.2/24
PrivateKey = содержимое файла client_private.key
[Peer]
PublicKey = содержимое файла server_public.key
AllowedIPs = 0.0.0.0/0
Endpoint = сервер:порт
PersistentKeepalive = 25
Address - пул адресов для VPN-клиента. Может быть любым.
Подключиться к серверу можно следующими способами:
- Через клиент с графической оболочкой
- Через NetworkManager (для него не требуется создание конфигурационного файла клиента, а все настройки вносятся непосредственно в нём)
- Через клиент WireGuard:
systemctl start wg-quick@конфиг
или wg-quick up конфиг
It's time to kick gum and chew ass. And i'm all out of ass.