====== Wireguard: настройка сервера ======
Почему Wireguard:
* Очень просто настраивается
* Очень быстрый, по тестам намного производительнее других решений
* Работает на большом количестве платформ
* Включен в ядро Linux
Что нужно:
* Сервер на базе Linux с белым (публичным) IP
===== Настройка сервера =====
Установка:
$ sudo apt install wireguard
Создаем ключи для сервера:
$ wg genkey | tee server-private.key | wg pubkey > server-public.key
Создаем ключи для клиентов:
$ wg genkey | tee client1-private.key | wg pubkey > client1-public.key
$ wg genkey | tee client2-private.key | wg pubkey > client2-public.key
Создаем файл настроек /etc/wireguard/wg0.conf, содержимое server-private.key и server-public.key нужно будет поместить внутрь:
[Interface]
Address = 10.10.10.1/24
ListenPort = 51820
PrivateKey = <содержимое server-private.key>
DNS = 1.1.1.1, 1.0.0.1
# SaveConfig = true
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
[Peer]
# client1
PublicKey = <содержимое client1-public>
AllowedIPs = 10.10.10.101/32
[Peer]
# client1
PublicKey = <содержимое client2-public>
AllowedIPs = 10.10.10.102/32
Разрешаем пересылку пакетов между интерфейсами, добавляем в /etc/sysctl.conf:
net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1
Для принятия изменений выполните:
$ sysctl -p /etc/sysctl.conf
Включаем запуск службы при загрузке сервера:
$ systemctl enable wg-quick@wg0.service
Запускаем сервер:
$ systemctl start wg-quick@wg0.service
или
$ sudo wg-quick up wg0
Проверяем статус:
$ wg show
===== Настройка клиента =====
Создаем для каждого пользовательского устройства файл конфигурации client1.conf:
[Interface]
Address = 10.10.10.101/24
PrivateKey = <Содержимое client1-private.key>
[Peer]
Endpoint = <Адрес сервера XXX.XXX.XXX.XXX>:51820
PublicKey = <Содержимое server-public.key>
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 30
Этот файл можно скопировать на клиента, а можно сделать QR-код (что ну очень удобно для мобильных устройств):
$ sudo apt install qrencode
$ qrencode -t ANSI < client1.conf
===== Калькулятор для настройки AllowedIPs =====
https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/
{{tag>wireguard vpn впн блокировки}}