Frage Was ist der sicherste Weg, um einem Benutzer Lesezugriff auf eine Protokolldatei zu ermöglichen?


Meine Anwendung benötigt Lesezugriff auf /var/log/messages, die zu Benutzer und Gruppe gehört root. Wie hoch ist die minimale Expositionsgrenze? /var/log/messages so kann meine Anwendung es lesen?

Momentan ist mein Plan, den Konzernbesitz von /var/log/messages zu einer neuen Gruppe hinzufügen und root und meinen Anwendungsbenutzer hinzufügen, aber dies würde auch der Anwendung Schreibrechte geben /var/log/messages.

Betriebssystem: Centos 5.5


19
2018-04-12 15:59


Ursprung




Antworten:


Keine Notwendigkeit, root zu der Gruppe hinzuzufügen, da es Zugriff über die Benutzer privs sowieso haben wird, geben Sie Gruppen gelesen zu welcher Gruppe Sie auch entscheiden. Denken Sie daran, die Änderungen auch mit logrotate vorzunehmen oder die Gruppenänderungen werden jeden Abend gelöscht.


6
2018-04-12 16:02



Wo befinden sich die Logrotate-Skripte? - gAMBOOKa
/etc/logrotate.d/ ist der Ordner für die herausgebrochenen Logrotate-Skripte. / var / log / messages befindet sich in /etc/logrotate.d/syslog. Sie müssten / var / log / messages in eine eigene Datei innerhalb von /etc/logrotate.conf verschieben und dann etwas wie 'create 0640 root new_group' verwenden, um die Datei korrekt zu erstellen. - rfelsburg
Sie müssten / var / log / messages in eine eigene Datei innerhalb von /etc/logrotate.d/ verschieben. - Massimo


Nur um ein wenig über die obigen Antworten zu erweitern, ist hier ein realer Anwendungsfall. Ich führe die Enterprise-Log-Analyse-Anwendung Splunk auf einer Redhat-Box. Es läuft unter der Splunk-Benutzer und Splunk-Gruppe. Dies verhindert, dass Splunk auf die Protokolle in / var / log zugreift, da sie nur von root (oder einem sudo admin) zugänglich sind.

Um schreibgeschützten Zugriff nur für Splunk zu erlauben, habe ich einige ACLs verwendet und logrotate modifiziert, um sie zu erhalten.

Sie können die ACL manuell mit festlegen

sudo setfacl -m g:splunk:rx /var/log/messages

Dies wird nicht beibehalten, da Logrotate die ACL-Einstellung nicht erneut anwendet. Daher habe ich für eine dauerhaftere Lösung eine Regel zum Logrotate hinzugefügt, um die ACL zurückzusetzen. Ich habe die Datei hinzugefügt ..

/etc/logrotate.d/Splunk_ACLs

mit

{
    postrotate
        /usr/bin/setfacl -m g:splunk:rx /var/log/cron
        /usr/bin/setfacl -m g:splunk:rx /var/log/maillog
        /usr/bin/setfacl -m g:splunk:rx /var/log/messages
        /usr/bin/setfacl -m g:splunk:rx /var/log/secure
        /usr/bin/setfacl -m g:splunk:rx /var/log/spooler
    endscript
}

Überprüfen Sie den ACL-Status einer Datei mit

$ getfacl /var/log/messages

Weitere Informationen zu ACLs finden Sie unter https://help.ubuntu.com/community/FilePermissionsACLs http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/


12
2018-06-01 09:42



auch gepostet, um Antworten zu teilen Antworten.Splunk.com/answers/4253/... - nick fox
Beachten Sie, dass für die Ausführung von Splunk keine Ausführungsberechtigung für Protokolldateien erforderlich ist. Lesen Sie einfach. - rojs
@nickfox Ist das der gesamte Inhalt von /etc/logrotate.d/Splunk_ACLs dass du dort gepostet hast? Sie müssen eigentlich keine Pfade für logrotate angeben, um das Postrotate-Bit zu verarbeiten? - Dale Anderson
Hmmm. Ich glaube nicht. Ich wollte die bestehenden Logrotate-Konfigurationen für Systemprotokolle nicht ändern und wollte sie auch nicht durch eigene ersetzen. Auf diese Weise existiert die benutzerdefinierte Modifikation für Splunk unabhängig voneinander. Erlauben Sie Ihnen, mit einem Paket oder Marionette etc. zu verteilen, für die /app.d/ Verzeichnisse sind. Natürlich könnte ich mich irren, das war vor über einem Jahr, seit ich das gemacht habe - nick fox


Ihr Plan ist akzeptabel und im "traditionellen" Unix-Berechtigungsschema ist der beste Weg zu gehen.
Eine andere Möglichkeit besteht darin, dass Syslog die interessierenden Nachrichten in eine andere Datei umleitet (wodurch verhindert wird, dass der App-Benutzer Zugriff auf sensible Daten erhält, die sich möglicherweise in der Datei befinden /var/log/messages).

Wenn Sie sich nicht an das traditionelle Berechtigungsschema von Benutzer / Gruppe / Andere gebunden fühlen möchten, können Sie es auch verwenden POSIX-ACLs (andere, möglicherweise bessere HowTos / Infos, die über Google verfügbar sind), um Ihrem App-Nutzer Lesezugriff zu gewähren /var/log/messages - Dies ist ein bisschen feinkörniger und riskiert nicht, versehentlich jemand anderen in die Gruppe der Anwendung zu versetzen und ihnen Zugriff auf Dinge zu geben, die sie nicht sehen können.


4
2018-04-12 16:07





Yip habe ich benutzt setfacl um dies zu tun, um Zugang zu den mail.log Datei für einen Kunden, nicht müssen Sie auch einen Befehl in der logrotate.conf Datei, um die ACL nach dem Drehen der Protokolle neu zu setzen, zB:

postrotate
         /usr/bin/setfacl -m o::r /var/log/mail.log  
endscript

Hinweis: Ich habe das gerade erst eingerichtet und habe es nicht getestet, aber obwohl es hier zurück posten würde, kann ich nicht sehen, warum es nicht funktioniert. Jemand korrigiert mich, wenn ich falsch liege.


2
2017-07-09 08:31





Sie können verwenden ACL dafür. Sie können bestimmte zusätzliche Zugriffsregeln für bestimmte Benutzer und Dateien festlegen.


0
2018-04-12 16:07





Sobald Sie Ihre ACL so konfiguriert haben, wie andere Leute gesagt haben, können Sie, anstatt alle Ihre ACL-Regeln in die Postrotate-Konfiguration zu setzen, logrotate verwenden, um copytruncate zu verwenden, anstatt jedes Mal eine neue Protokolldatei zu erstellen


-1
2018-06-08 19:27