Hallo Liste,
Ich habe ein unerwartetes verhalten bei der Software Splunk Universal Forwarder in Verbindung mit systemd und Capabilities. Bei der Installation der 9.0.x Version wird ein Systemd Service file angelegt.
[Unit] Description=Systemd service file for Splunk, generated by 'splunk enable boot-start' After=network-online.target Wants=network-online.target
[Service] -->schnipp<-- User=splunk Group=splunk NoNewPrivileges=yes AmbientCapabilities=CAP_DAC_READ_SEARCH -->schnipp<-- [Install] WantedBy=multi-user.target
Wenn er Dienst startet hat er durch CAP_DAC_READ_SEARCH Lesezugriff auf alle Dateien im Filesystem. Ob das gut oder schlecht ist lassen wir mal dahingestellt.
Wenn ich eine ältere Version (8.2.*) der Software installiere sind die Werte:
NoNewPrivileges=yes AmbientCapabilities=CAP_DAC_READ_SEARCH
per default nicht gesetzt. Wenn ich sie hinzufüge, ein systemctl daemon-reload ausführe kann die Software nicht auf Dateien zugreifen, auf welche der Technische Nutzer Leseberechtigung hat.
Das verwundert mich. Ich habe geprüft ob die capabilites wirklich beim Dienst ankommen - sieht erstmal gut aus:
[root@ip-10-53-1-118 local]# systemctl status SplunkForwarder |grep -i PID Main PID: 3527 (splunkd) └─3552 [splunkd pid=3527] splunkd --under-systemd --systemd-delegate=yes -p 8089 _internal_launch_under_systemd [process-runner] Jun 13 13:26:04 ip-10-53-1-118 splunk[3527]: 2023-06-13 13:26:04.083 +0000 splunkd started (build 4a20fb65aa78) pid=3527
[root@ip-10-53-1-118 local]# getpcaps 3527 3527: cap_dac_read_search=eip
Any hints? Für mich sieht ja fast so aus, als wenn das Setzen der Capability nicht ausrecht und die Software das noch aktiv unterstützen muss?!
Besten Gruss,
Andreas