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

Antwort per Email an