vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Прикинул тут, что для того, чтобы удобно пользоваться wireguard мне нужен скрипт, который умеет следующее

  1. Добаить узел. Указывается hostname, скрипт назначает неиспользуемые ipv4 и ipv6 адреса, прописывает A и AAAA записи в соответствующую зону DNS на том же сервере, генерирует ключи и выдает готовый конфиг клиента, либо в виде текста, либо в виде qr-кода. Можно кроме hostname указать открытый ключ. Тогда вернут конфиг без приватного ключа. Типа сам сгенерил, сам и прописывай.
  2. Удалить узел. Указывается hostname, удаляется соответствующий раздел Peer из конфига, удаляются записи из DNS.
  3. Обновить ключ узла (на случай утраты/компрометации приватного ключа) - либо генерирует новую ключевую пару и выдает новый конфиг, идентичный предыдущему, за исключением PrivateKey, либо просто прописывает указанный открытый ключ

Upd По результатам чтения рекомендованного в комментах скрипта easy-wg-quick пришел к выводу что нужна еще команда инициализации сети, получающая на вход только те параметры, которые должны быть заданы админом, и создающая конфиг для сервера(хаба) и ключи для него же.

Все параметры, требуемые этому скрипту, но не специфицированные для самого wireguard, можно хранить в серверном конфиге в виде комментариев. Хотя надо посмотреть как отнесется wg к лишним секциям в конфиге. Может проигнорирует.

Таких параметров надо

  1. Способ обновления DNS - редактируем зону bind, конфиг dnsmasq dnsmasq, используем nsupdate для работы с зоной.
  2. Имя зоны. Нужно для nsupdate и dnsmasq. Впрочем bind не поплохеет от полных имен с точкой на конце.
  3. Путь к файлу зоны/конфигу dnsmasq
  4. Имя файла ключа для nsupdate (если используется он)
  5. Диапазон IP, в котором выделяются адреса для peer-ов.
  6. Диапазон IPv6, в котором выделяются адреса для peer-ов.
  7. Набор routes которые прописываются в PostUp команду клиентского конфига. С ментрикой явно большей, чем у дефлотногй dhcp.

Date: 2022-01-16 06:32 pm (UTC)
jno: (Default)
From: [personal profile] jno

Date: 2022-01-17 05:08 am (UTC)
jno: (Default)
From: [personal profile] jno
Ну, у нас в проде есть скрипты и более 500 loc на баше. Смысл — сокращение зависимостей.

Так-то для конфигов yaml рулит и педалит, да. См. тот же netplan.
Edited Date: 2022-01-17 05:10 am (UTC)

Date: 2022-01-17 08:00 am (UTC)
jno: (Default)
From: [personal profile] jno
ну, я просто пример популярной обёртки привёл.

и я бы предпочёл что-то более "декларативное", типа того же netplan'а.

а qrencode - он и в консоли рулит.

Date: 2022-01-17 09:12 am (UTC)
From: [personal profile] mdrt
netplan -- это просто удобный фронтенд для systemd-networkd (и, в меньшей степени, для NM)

Для ситуаций, когда конфиг более-менее статичен, он очень даже удобен. Я не поленился впилил туда поддержку WG и L2TP для networkd backend именно чтобы не разводить кучи файликов, и не иметь себе голову с networkd.

Разные задачи ...

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

February 2026

S M T W T F S
123 456 7
89 10 111213 14
1516171819 2021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 23rd, 2026 02:47 am
Powered by Dreamwidth Studios