Es wird nicht ein Benutzer und eine Gruppe pro Anwendung, sondern pro Dienst erstellt. Das heißt, Programme, die von einem lokalen Benutzer ausgeführt werden, müssen nicht als anderer Benutzer als root installiert werden. Es sind Dämonen , Programme, die im Hintergrund ausgeführt werden und Anforderungen ausführen, die über das Netzwerk oder andere Kommunikationsmittel eingehen, die als dedizierter Benutzer ausgeführt werden sollten.
Der Dämon wird als dedizierter Benutzer ausgeführt, sodass der Schaden, den er anrichten kann, begrenzt ist, wenn er sich schlecht verhält (aufgrund eines Fehlers, der wahrscheinlich von einem Angreifer ausgelöst wird): Nur die Datendateien des Dämons sind betroffen (es sei denn, der Angreifer hat es geschafft, ein lokales Stammloch zu finden , was passieren kann). Beispielsweise wird der Datenbankdämon mysqld
als dedizierter Benutzer und Gruppe ausgeführt, mysql:mysql
und die Datendateien der Datenbank ( /var/lib/mysql/*
) gehören dazu mysql:mysql
.
Beachten Sie, dass die ausführbare Datei des Dämons und andere statische Daten und Konfigurationsdateien, die verwendet werden, aber nicht vom Dämon geändert werden sollten, nicht dem dedizierten Benutzer gehören dürfen. Sie sollten root:root
wie die meisten Programm- und Konfigurationsdateien Eigentum von sein . Der mysqld
Prozess hat kein geschäftliches Überschreiben /usr/sbin/mysqld
oder /etc/mysql/my.cnf
, daher dürfen diese Dateien nicht dem mysql
Benutzer gehören oder vom mysql
Benutzer oder der mysql
Gruppe beschreibbar sein. Wenn einige Dateien nur vom Dämon und vom Administrator gelesen werden müssen, sollten sie dem Benutzer root und der dedizierten Gruppe gehören und den Modus 0640 ( rw-r-----
) haben.
Eine spezielle Kategorie von ausführbaren Dateien, deren Eigentümer nicht sein kann root:root
, sind Programme, die von einem Benutzer aufgerufen werden, aber mit zusätzlichen Berechtigungen ausgeführt werden müssen. Diese ausführbaren Dateien müssen setuid root sein, wenn sie (zumindest teilweise) als root ausgeführt werden müssen. dann muss die ausführbare Datei den Modus 4755 ( rwsr-xr-x
) haben. Wenn das Programm zusätzliche Berechtigungen benötigt, jedoch nicht als Root, sollte das Programm auf setgid gesetzt werden, damit die zusätzlichen Berechtigungen über eine Gruppe und nicht über einen Benutzer erfolgen. Die ausführbare Datei hat dann den Modus 2755 ( rwxr-sr-x
). Es gibt zwei Gründe:
- Die ausführbare Datei sollte sich nicht selbst ändern dürfen. Wenn ein Benutzer eine Sicherheitsanfälligkeit ausnutzt, kann er möglicherweise die vom Programm verwendeten Datendateien ändern, jedoch kein Trojaner in die ausführbare Datei einfügen, um andere Benutzer anzugreifen, die das Programm ausführen .
- Die Datendatei der ausführbaren Datei gehört zur Gruppe. Ein setuid-Programm müsste zwischen dem realen Benutzer (dem Benutzer, der das Programm aufgerufen hat) wechseln, um mit dem Benutzer zu interagieren, und dem effektiven Benutzer (dem Benutzer, unter dem das Programm ausgeführt wird), um auf seine privaten Datendateien zuzugreifen (der Grund dafür) zusätzliche Privilegien haben). Ein setgid-Programm kann außerdem Benutzerdaten trennen, auf die nur die Gruppe zugreifen kann (z. B. indem Dateien des Benutzers in einem Verzeichnis gespeichert werden, auf das nur root und die Programmgruppe zugreifen können).
/usr/bin/at
ist im Besitz vondaemon/daemon
auf Ubuntuat
ist kein Daemon. Es istdaemon
so eingestellt, dass esatd
über private Dateien mit dem Dämon kommunizieren kann .Das Erstellen einer neuen Gruppe / eines neuen Benutzers für einen neu installierten Daemon verbessert die Sicherheit. Wenn der Serverprozess unter einem solchen Benutzer ausgeführt wird, ist er auf die Zugriffsrechte dieses Benutzers beschränkt. Im Vergleich: Wenn es als Root ausgeführt wird, kann es alles.
Dieser Unterschied ist wichtig, wenn Ihr Daemon falsch konfiguriert ist und / oder einen sicherheitsrelevanten Fehler enthält.
Ich bin mir nicht sicher, was Sie mit dem zweiten Teil Ihrer Frage meinen, dh dem Teil über das
/usr/local
Eigentum. Im Allgemeinen ist es nicht sinnvoll, dass derselbe Benutzer,X
unter dem ein Dämon aus Sicherheitsgründen ausgeführt wird, auch das Verzeichnis mit den Binärdateien besitzt (da er sie in diesem Fall im Falle eines Exploits ändern könnte). Auf das Verzeichnis mit den Datendateien, an denen der Dämon arbeitet, sollte jedoch zugegriffen werden können.X
Der einfachste Weg, dies zu konfigurieren, besteht darin,X
den Eigentümer der Datenverzeichnisse / -dateien festzulegen.Das Ausführen eines Daemons unter einem eigenen speziellen Benutzer ist nur eine Sicherheitstechnik, andere umfassen eine Art "Chrooting" oder die Verwendung eines MAC-Systems (obligatorisches Zugriffskontrollsystem) (z. B. SELinux).
quelle
Dies ist eine Sicherheitsüberlegung. Es begrenzt den Schaden, den jemand anrichten kann, der in eine Daemon-Anwendung einbricht. Benutzeranwendungen gehören normalerweise einer Standardbenutzer-ID wie z
root
.Wenn Ihr Webserver, Mailserver und Ihre Datenbank alle als derselbe Benutzer ausgeführt werden, können Sie diese leichter kompromittieren. Wenn einer von ihnen einen Fehler oder eine Fehlkonfiguration aufweist, die den Systemzugriff ermöglichen, kann dieser Zugriff verwendet werden, um auf alle drei Anwendungen zuzugreifen.
Wenn alle wie empfohlen über separate Konten verfügen, ist wahrscheinlich nur auf die gefährdete Anwendung zugegriffen. Während öffentliche Konfigurationsdetails des anderen gelesen werden können, ist es unwahrscheinlich, dass Änderungen vorgenommen werden können.
Bei vielen Daemons können Benutzer Dateien hochladen und herunterladen und ansonsten Dinge tun, die Sie nicht möchten, dass sie die Konfigurationen für andere Daemons ausführen können. Wenn jede Anwendung eine eigene Benutzer-ID und Gruppe hat, ist es einfacher, die Daemons zu sichern.
Mit einer daemon-spezifischen Gruppe ist es einfacher, Dateien und Verzeichnissen einen sicheren schreibgeschützten Zugriff für einen Daemon zu gewähren. Wenn die Datei oder das Verzeichnis einem anderen Benutzer gehört, aber zur Dämonengruppe gehört, ist sie normalerweise schreibgeschützt. Zugriffsberechtigungen können mit Tools wie find einfach überprüft und korrigiert werden.
quelle