WireGuard: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
Настраивать ваергарда в связке с systemd-networkd под Альтом даже проще, чем во многих других дистрибутивах.
Запускать ваергарда в связке с systemd-networkd под Альтом проще, чем во многих других дистрибутивах.
=Настройка=
Всего пара файлов:
#<code>/etc/systemd/network/wg.netdev</code>
#:<source lang="ini">
[NetDev]
Name        = wg
Kind        = wireguard
 
# Сервер
[WireGuard]
ListenPort  = 51820
PrivateKey  = <хэш той же длины, что и у публичного ключа>
 
# Клиент, которых может быть ощутимо больше одного
[WireGuardPeer]
AllowedIPs  = 192.168.123.78/32,192.168.2.0/24
PublicKey  = FFly+CQaj1E2uVvGe4KIAOKn9238rxS/IOVQ2+JYDzs=
</source>
#<code>/etc/systemd/network/wg.network</code>
#:<source lang="ini">
[Match]
Name        = wg
 
# Сеть, через которую можно как взаимодействовать с клиентами, так и им между собой
[Network]
Address    = 192.168.123.182/24
 
# Пример маршрутизации к одному из таких клиентов
[Route]
Destination = 192.168.1.0/24
Gateway    = 192.168.123.102
</source>
==Мониторинг==
==Мониторинг==
Для журналирования активности модуля достаточно создать [на «железе» / в виртуалке] либо [на хост-системе / на всех узлах кластера контейнеризации] с ваергардом юнит <code>/lib/systemd/system/wg-log.service</code> следующего содержания:
Для журналирования активности модуля достаточно создать [на «железе» / в виртуалке] либо [на хост-системе / на всех узлах кластера контейнеризации] с ваергардом юнит <code>/lib/systemd/system/wg-log.service</code> следующего содержания:

Версия от 03:19, 17 марта 2022

Запускать ваергарда в связке с systemd-networkd под Альтом проще, чем во многих других дистрибутивах.

Настройка

Всего пара файлов:

  1. /etc/systemd/network/wg.netdev
    [NetDev]
    Name        = wg
    Kind        = wireguard
    
    # Сервер
    [WireGuard]
    ListenPort  = 51820
    PrivateKey  = <хэш той же длины, что и у публичного ключа>
    
    # Клиент, которых может быть ощутимо больше одного
    [WireGuardPeer]
    AllowedIPs  = 192.168.123.78/32,192.168.2.0/24
    PublicKey   = FFly+CQaj1E2uVvGe4KIAOKn9238rxS/IOVQ2+JYDzs=
    
  2. /etc/systemd/network/wg.network
    [Match]
    Name        = wg
    
    # Сеть, через которую можно как взаимодействовать с клиентами, так и им между собой
    [Network]
    Address     = 192.168.123.182/24
    
    # Пример маршрутизации к одному из таких клиентов
    [Route]
    Destination = 192.168.1.0/24
    Gateway     = 192.168.123.102
    

Мониторинг

Для журналирования активности модуля достаточно создать [на «железе» / в виртуалке] либо [на хост-системе / на всех узлах кластера контейнеризации] с ваергардом юнит /lib/systemd/system/wg-log.service следующего содержания:

[Unit]
Description = WireGuard events logging
ConditionPathExists = /sys/kernel/debug/dynamic_debug/control
ConditionPathIsDirectory = /sys/module/wireguard
After = network.target systemd-modules-load.service

[Service]
Type = oneshot
RemainAfterExit = yes
ExecStart = echo module wireguard +p >/sys/kernel/debug/dynamic_debug/control

[Install]
WantedBy = multi-user.target

И запустить его навсегда командой # systemctl enable --now wg-log

Отслеживать текучку по journalctl -kf.