настройка wireguard

set interfaces wireguard wg1 description
set interfaces wireguard wg1 address x.x.x.x/x
set interfaces wireguard wg1 peer to-wg0 address y.y.y.y
set interfaces wireguard wg1 peer to-wg0 allowed-ips z.z.z.z/z
set interfaces wireguard wg1 peer to-wg0 public-key публичный_ключ2
set interfaces wireguard wg1 peer to-wg0 port порт_подключения
set interfaces wireguard wg1 peer persistent-keepalive интервал
set interfaces wireguard wg1 private-key приватный_ключ1

где:

  • x.x.x.x/x - адрес внутри туннеля на нашей стороне
  • y.y.y.y - адрес к которому мы подключаемся для установки туннеля
  • z.z.z.z/z - сеть (может быть несколько) с которой разрешаются пакеты (маршруты при этом не прокидываются, в отличии от debian или других клиентов)
  • публичный_ключ2 - публичный ключ от закрытого ключа с другого конца (не от нашего!!!)
  • порт_подключения - порт, на который мы подключаемся к хосто y.y.y.y
  • интервал - интервал для поддержания туннеля, чтобы при обрыве он восстановился
  • приватный_ключ1 - закрытый ключ от нашего узла

Точно такая же настройка требуется на другой стороне, только там надо сгенерировать закрытый ключ и перекинуть туда наш открытый (сгенерированный на основе нашего закрытого ключа)

Генерирование ключа можно произвести на любой машине, где стоит wg, в том числе и на самом vyos. Для генерирования приватного ключа используется команда wg genkey Для генерирования публичного ключа из стандартного ввода вывода wg pubkey Для упрощения жизни можно сгенерировать закрытый ключ в файл (wg genkey > /tmp/priv.key) а затем вывести из него ключ в стандартный ввод-вывод и сгенерировать открытую часть (echo /tmp/priv.key | wg pubkey > /tmp/pub.key) Далее можно открытую часть закинуть на другую сторону, а закрытую использовать в своём конфиге.