diff --git a/public/uk/index.gmi b/public/uk/index.gmi index ee5cc78..a0f1665 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -16,7 +16,7 @@ ### Нотатки - +=> run-yggdrasil-without-root.gmi 2026-01-30 Запуск роутера Yggdrasil без root => gostcoin-on-fedora-linux.gmi 2026-01-29 Особливості запуску GOSTcoin на Fedora => openssl-provider-setup-on-fedora-using-gost-engine-example.gmi 2026-01-29 Підключення користувацьких алгоритмів OpenSSL на прикладі провайдера "GOST engine" => ufw-exception-for-multicast-peer-discovery.gmi 2026-01-26 Правило ufw для пошуку сусідніх пірів через мультикаст diff --git a/public/uk/run-yggdrasil-without-root.gmi b/public/uk/run-yggdrasil-without-root.gmi new file mode 100644 index 0000000..660f94f --- /dev/null +++ b/public/uk/run-yggdrasil-without-root.gmi @@ -0,0 +1,40 @@ +# Запуск роутера Yggdrasil без root + +Якось, на новому сервері Debian, було передвстановлено Yggdrasil з репозиторію. Оскільки сам я збираю роутер з сорсу і створюю для нього самопальний сервіс для root, тоді я випадково повалив собі конект давши права 0400 на файл конфігурації створений від рута. + +Поліз розбиратись і помітив, що користувач там yggdrasil: + +``` /usr/lib/systemd/system/yggdrasil.service +[Unit] +Description=yggdrasil +Wants=network-online.target +After=network-online.target + +[Service] +User=yggdrasil +Group=yggdrasil +ProtectHome=true +ProtectSystem=strict +NoNewPrivileges=true +RuntimeDirectory=yggdrasil +ReadWritePaths=/var/run/yggdrasil /run/yggdrasil +SyslogIdentifier=yggdrasil +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +ExecStartPre=+-/sbin/modprobe tun +ExecStart=/usr/sbin/yggdrasil -useconffile /etc/yggdrasil/yggdrasil.conf +ExecReload=/bin/kill -HUP $MAINPID +Restart=always +TimeoutStopSec=5 + +[Install] +WantedBy=multi-user.target +``` +=> https://github.com/yggdrasil-network/yggdrasil-go/blob/develop/contrib/systemd/yggdrasil.service.debian оригінал + +По суті, користувач root - потрібен роутерові лише для створення інтерфейсу tun. І як бачимо, надання привілеїв CAP_NET_ADMIN і CAP_NET_BIND_SERVICE - цілком вирішує цю проблему, хоча й не без недоліків: +=> https://github.com/yggdrasil-network/yggdrasil-go/issues/881#issuecomment-1010040413 + +Думаю спробувати, в т.ч. для Mycelium, бо мене тема пускання від рута давно параноїть і я просто вимикаю роутер, коли ним не користуюсь. + +P.S. збирання програм від рута - це ще одна дурнувата звичка, через що (ймовірно) я колись вхопив невловимий малварь, який благополучно здох тільки разом з сервером, своєю смертю.