software:wireguard:wireguard-setup

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 [email protected]

Запускаем сервер:

$ systemctl start [email protected]

или

$ 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
  • software/wireguard/wireguard-setup.txt
  • Последнее изменение: 2022/09/11 22:48
  • 127.0.0.1