mirror of
https://codeberg.org/postscriptum/devzone.org.ua.git
synced 2026-02-19 06:12:39 +00:00
add zapusk-routera-yggdrasil-bez-root.md
This commit is contained in:
parent
8dfb6e5840
commit
2ecd8244fa
1 changed files with 48 additions and 0 deletions
48
post/zapusk-routera-yggdrasil-bez-root.md
Normal file
48
post/zapusk-routera-yggdrasil-bez-root.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# Запуск роутера 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).
|
||||
|
||||
Для запобігання помилки прав доступа до розташування `/var/run`, також потрібно змінити стандартну адресу сокета, додавши згідно шляхів systemd теку `yggdrasil`:
|
||||
|
||||
``` /etc/yggdrasil/yggdrasil.conf
|
||||
AdminListen: unix:///var/run/yggdrasil/yggdrasil.sock
|
||||
```
|
||||
* [джерело](https://github.com/yggdrasil-network/yggdrasil-go/issues/1285#issuecomment-3418828172)
|
||||
|
||||
---
|
||||
|
||||
_Думаю зробити те само для Mycelium, бо мене тема пускання від рута давно параноїть і я просто вимикаю роутер, коли ним не користуюсь._
|
||||
|
||||
_P.S. збирання програм від рута - це ще одна дурнувата звичка, через що (ймовірно) я колись вхопив невловимий малварь, який благополучно здох тільки разом з сервером, своєю смертю._
|
||||
Loading…
Add table
Add a link
Reference in a new issue