rudder-relayd.service: Ошибка на шаге NAMESPACE - Permission denied

Я пытаюсь использовать сервер руля на Debian buster на работе, веб-приложение работает нормально, но одна из служб руля не работает, и я не могу получать отчеты с других узлов:

● rudder-relayd.service - Rudder Relay Daemon
   Loaded: loaded (/usr/lib/systemd/system/rudder-relayd.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2021-05-19 09:21:32 CEST; 1min 28s ago
  Process: 32493 ExecStart=/opt/rudder/bin/rudder-relayd (code=exited, status=226/NAMESPACE)
 Main PID: 32493 (code=exited, status=226/NAMESPACE)

May 19 09:21:32 rudder-v3 systemd[1]: Started Rudder Relay Daemon.
May 19 09:21:32 rudder-v3 systemd[32493]: rudder-relayd.service: Failed to set up mount namespacing: Permission denied
May 19 09:21:32 rudder-v3 systemd[32493]: rudder-relayd.service: Failed at step NAMESPACE spawning /opt/rudder/bin/rudder-relayd: Permission denied
May 19 09:21:32 rudder-v3 systemd[1]: rudder-relayd.service: Main process exited, code=exited, status=226/NAMESPACE
May 19 09:21:32 rudder-v3 systemd[1]: rudder-relayd.service: Failed with result 'exit-code'.

My Debian buster - это контейнер (не непривилегированный контейнер) на сервере Proxmox, все работает обновлен, и я безуспешно изменил конфигурацию службы:

# vi /usr/lib/systemd/system/rudder-relayd.service
[Unit]
Description=Rudder Relay Daemon
After=network-online.target

[Service]
PrivateTmp=false
NoNewPrivileges=yes
PrivateDevices=false
ProtectControlGroups=false
ProtectKernelModules=false
ProtectSystem=false
ReadWritePaths=/var/rudder/reports /var/rudder/inventories /var/rudder/shared-files /var/rudder/cfengine-community/state
ExecStart=/opt/rudder/bin/rudder-relayd
ExecReload=/opt/rudder/bin/rudder relay reload
# Do not restart on known errors, which won't get fixed by themselves
RestartPreventExitStatus=2 3
User=rudder-relayd
Group=rudder

[Install]
RequiredBy=rudder-server.service
WantedBy=multi-user.target

Когда я выполняю "/ opt / rudder / bin / rudder-relayd", у меня нет никаких ошибок:

 INFO relayd: Starting rudder-relayd 6.2.7
 INFO relayd: Read configuration from "/opt/rudder/etc/relayd/"
 INFO relayd::data::node: Parsing nodes list from "/var/rudder/lib/relay/nodeslist.json"
 INFO relayd::api: Starting API on 127.0.0.1:3030
 INFO relayd::input::watch: Starting file watcher on "/var/rudder/reports/incoming"
 INFO relayd: Skipping inventory as it is disabled
 INFO relayd: Server started

И права каталога следующие:

# ls -al /opt/rudder/bin/
[..]
-rwxr-xr-x  1 root root 8429816 Nov 22  2017 rudder-relayd
[..]

Все остальные службы руля работают нормально, и я даже могу получить доступ к интерфейсу руля с помощью своей учетной записи администратора. Я смог принять ожидающие узлы, но мне кажется, что если служба реле руля отключена, я не могу получать отчеты о соответствии, и появляется следующее сообщение:

Error occured when contacting internal remote-run API to apply classes on Node 'root': (HTTP code 503)

Краткое изложение моих тестов:

  • Изменить реле руля .service конфигурация с добавлением только строк « PrivateTmp = false \ NoNewPrivileges = yes »;
  • Не изменять конфигурацию служебного файла напрямую, а заменять ее с помощью systemctl edit rudder-relayd.service
  • После каждого изменения этого файла я перезагружаю демон с помощью «systemctl daemon-reload» ;
  • Установите руль направления на другой контейнер с теми же параметрами (все та же ошибка), установите руль направления на непривилегированный контейнер (эта ошибка прекращается, но появляется другая, и я не хочу, чтобы это было решением);

Спасибо

3
задан 19 May 2021 в 10:50
2 ответа

Я думаю, вам следует включить режим вложения с lxc на хосте, я думаю, с помощью этой команды:

lxc config set <id> security.nesting true
4
ответ дан 28 July 2021 в 11:47

Вы можете попытаться отключить параметры защиты, основанные на пространствах имен, а именно ProtectSystem , ReadWritePaths и PrivateTmp .

2
ответ дан 28 July 2021 в 11:47

Теги

Похожие вопросы