Ich verwende eine Red Hat Enterprise 5 Linux-Box. Ich finde, wenn sich ein Benutzer in der Datei / etc / sudoers befindet. Wenn der Benutzer den Befehl mit sudo ausführt, führt der Benutzer diesen Befehl mit Root-Rechten aus (ohne das Root-Passwort zu kennen, muss der Benutzer sudo nur das eigene Passwort des Benutzers eingeben um einen Befehl mit sudo auszuführen). Ist das richtiges Verständnis?
- Wenn ja, ist es dann eine Sicherheitslücke? Da andere Benutzer als root mit Root-Rechten laufen könnten?
Danke im Voraus, George
linux
security
permissions
sudo
George2
quelle
quelle
bash
) ausführen kann, als root auszuführen , ist er nur root. Wenn Sie zulassen, dass Root-Befehle ausgeführt werden, die beliebige Dateien schreiben, ist er ohnehin root.Antworten:
Es ist keine Sicherheitslücke, zumindest nicht mehr als es
su
ist.sudo
Dies ist nur eine Möglichkeit für einen Administrator, einen schnellen Root-Zugriff ohne Verwendung einer Root-Shell zu erhalten (was gefährlich sein kann).sudo
Der Benutzer muss lediglich sein eigenes Passwort eingeben und gewährt ihm tatsächlich Root-Zugriff (Versuch$ sudo whoami
). Es sollte jedoch nicht jeder in der/etc/sudoers
Datei sein.Wenn Sie sich die
sudo
Manpage ansehen , erfahren Sie, wie Sie sichsudo
auf einige einfache Befehle beschränken können.Sie können beispielsweise nur zulassen, dass der Benutzer
bob
ausgeführt wird,$ sudo poweroff
ohne dass er dies zulässt$ sudo cat /etc/shadow
.Nein, es ist keine Sicherheitslücke, wenn Sie es richtig konfigurieren und verwenden. Wenn Sie nicht möchten, dass Ihre Benutzer eine Root-Shell haben, denken Sie daran, Befehle wie zu verbieten
$ sudo su
.quelle
sudoers
(oder zu Gruppen, die in aufgeführt sindsudoers
) erscheinen, können verwendensudo
. Wie gesagt, Sie können die Befehle einschränken, die sie möglicherweise sudo. Kurz gesagt: Alle Benutzer, die mindestens einen Befehl mit erhöhten Berechtigungen ausführen müssen, sollten sich in befinden/etc/sudoers
. Ob diese Leute nennen sind Admins oder nicht , ist bis zu Ihnen;)Wenn es eine Sicherheitslücke wäre, wäre sudo bereits abgeschafft worden. Es ist beabsichtigt, Sie können es so konfigurieren, dass das Kennwort des Benutzers, das Kennwort des Roots oder überhaupt kein Kennwort erforderlich ist.
Da es sowieso nur vom Root konfiguriert werden kann, gibt es keine Sicherheitslücke. Der Stamm konfiguriert, wer Zugriff darauf hat, wer für jeden Benutzer und für jede Gruppe welches Kennwort eingeben muss.
Zum letzten Teil: "Da andere Benutzer als root mit Root-Rechten ausgeführt werden könnten": Das ist der springende Punkt des sudo-Programms.
quelle
sudo
oder irgendetwas anderem spielt es keine Rolle), ist das Spiel sowieso schon vorbei .sudo ist sicher - sicher genug, dass einige Distributionen (Ubuntu) es verwenden und standardmäßig empfehlen können.
Wenn Sie einem Benutzer jedoch pauschale Sudo-Rechte erteilen, wird die Trennung zwischen diesem Konto und einem Root-Konto weitgehend aufgehoben. Wenn Sie dem Benutzer timmy beispielsweise pauschale Sudo-Rechte erteilen , wird das Timmy- Konto genauso privilegiert wie das Root- Konto. Jeder, der in das Konto von timmy einbricht, kann alles als root tun (in den meisten Fällen wird das Passwort von timmy benötigt).
Pro-Sudo-Argumente
Anti-Sudo-Argumente
Im Wesentlichen handelt es sich nur um zwei verschiedene Denkrichtungen, die beide gültig genug sind, um ganze Verteilungen zu haben, die ihren eigenen Ansatz unterstützen.
Ich bin mit dem Nicht-Sudo-Ansatz besser vertraut, vor allem, weil ich als Debian-Benutzer damit besser vertraut bin. Ich finde die Einfachheit, ein Root-Konto zu haben, über die Flexibilität von Sudo-Gewinnen für mich. Ich erlaube keine Root-Anmeldung per Fernzugriff (dh über SSH) und empfehle, dass dies auch niemand anderes tun sollte.
quelle
sudo ist sicher, weil:
Ein Root-Benutzer oder ein anderer sudo-fähiger Benutzer (der 'visudo' oder '$ EDITOR / etc / sudoers' ausführen kann) muss / etc / sudoers ändern, um die Berechtigungen zu erteilen.
Sie können genau einschränken und angeben, was eine Person mit Root-Rechten ausführen kann, wodurch es möglich ist, unterschiedliche Ebenen von Administratorbenutzern auf einem Server zu haben.
Als privilegierter Benutzer können Sie die vorhandene Datei / etc / sudoers anzeigen, um festzustellen, welche Benutzer über Berechtigungen verfügen.
Sie müssen das Root-Passwort nicht für ein Team von Administratoren freigeben.
Es wird vollständig erfasst, was mit dem Befehl sudo gemacht wird, und es wird ein klarer Prüfpfad bereitgestellt
quelle
Ich denke, es ist aus Sicherheitsgründen besser, als als root angemeldet zu sein, da es nicht bequem ist, Dinge als root zu tun. Es ist sicherlich besser für die Rechenschaftspflicht, die Teil der Sicherheit ist.
Sie müssen einschränken, wer es verwenden würde. Normalerweise beschränken Sie sich auf Personen, die das Root-Passwort sowieso kennen, obwohl es möglich ist, schicker zu werden und die Möglichkeiten bestimmter Personen einzuschränken.
Das Sicherheitsproblem, das mich stört, ist, dass ich nicht für jeden sudo-Befehl mein Passwort eingeben muss. Wenn ich ein paar weitere vom selben Terminal aus betrete, ohne dass viel Zeit vergeht, akzeptiert es den Sudo ohne das Passwort. Dies soll vermutlich verhindern, dass ich ständig mein Passwort eingebe, aber es ist denkbar, dass eine Bösewicht-Userland-Software dies ausnutzt. Ich weiß nicht genug, um das Risiko persönlich einzuschätzen.
quelle
Sudoer haben nicht automatisch Zugriff als Root. Sie haben als konfigurierter Benutzer Zugriff. Es ist möglich und korrekt, Benutzern Zugriff auf ausgeführte Tools als andere Nicht-Root-Benutzer zu gewähren.
Alle Benutzer, die Zugriff auf die Ausführung einer Shell oder eines Befehls haben, der Shell-Zugriff gewähren kann, sollten die Benutzer sein, denen Sie das Root-Kennwort anvertrauen würden. Mit sudo ist es möglich, ein System ohne Root-Passwort auszuführen. Alle Verwendungen von sudo werden protokolliert, was bei Befehlen, die als root ausgeführt werden, nicht der Fall ist.
Wie bereits erwähnt, ist es möglich, den Zugriff auf bestimmte Befehle zu beschränken. Das Beispiel sudoers verfügt über eine Reihe von Befehlssätzen, die Sie möglicherweise bestimmten Benutzern gewähren möchten, die Aufgaben ausführen müssen, für die Root-Berechtigungen erforderlich sind. Mit sudo ist es möglich, dies zuzulassen, ohne ihnen das Root-Passwort zu geben.
Jeder, der ein Skript oder einen Befehl mit Root-Rechten ausführen kann, die er ändern kann, hat effektiv Root-Zugriff erhalten. Sie müssen diesen Personen vertrauen oder ihnen keinen Zugriff gewähren.
Es gibt eine große Anzahl von Aufgaben, die Root-Zugriff erfordern. Mit sudo können Sie diese Aufgabe sicher an Sicherungsoperatoren, Webmaster usw. delegieren.
Sudo ist weitaus sicherer als die Alternativen. Wenn falsch konfiguriert oder nicht vertrauenswürdigen Benutzern ein falscher Zugriff gewährt wird, besteht ein Sicherheitsrisiko (Lücke).
quelle
Mit dem
sudo
Befehl kann ein Benutzer Befehle mit den Berechtigungen eines anderen Benutzers ausführen. Der andere Benutzer kannroot
oder es kann jemand anderes sein, aber die Standardeinstellung istroot
. Es wurde für diesen Zweck entwickelt, verfügt über viele Konfigurationsoptionen, mit denen sich die Dinge auf verschiedene Weise blockieren lassen, und wurde über viele Jahre von vielen Menschen überprüft. Es ist nicht für alle Sicherheitsprobleme geeignet, kann aber bei richtiger Anwendung ein äußerst nützliches Werkzeug sein. Wenn es jedoch nicht richtig verwendet wird, kann es mehr Probleme verursachen als es löst.quelle
Sudo ist nicht gut für die Sicherheit. Eine Software zur Delegierung von Berechtigungen soll dabei helfen, zu unterscheiden, wer was getan hat, und Aktivitäten zuverlässig zu protokollieren. Bei den meisten Sudo-Einstellungen kann das Aktivitätsprotokoll jedoch leicht gefälscht werden. Und die Verwendung des Systemkennworts des Benutzers bedeutet, dass jemand, der das Anmeldekennwort eines Benutzers stiehlt, auch sudo als dieser Benutzer ausführen kann, um schlechte Dinge zu tun. Auf UNIX / Linux-Plattformen ist es für jeden Systemadministrator sehr einfach, ein Skript im Hintergrund auszuführen, um das Kennwort eines anderen zu stehlen. Sysadmin kann auch einen Passwortwechsel durchführen, um das Konto des Opfers zu verwenden, um schlechte Dinge zu tun. Außerdem kann das Konto des Opfers verwendet werden, um sudo auszuführen, um durch die Aktualisierung der sudo-Zeitstempeldatei schlechte Dinge zu tun. Wenn das Protokoll besagt, dass A zu welchem Zeitpunkt etwas getan hat, ist dies möglicherweise nicht A. Es sind zusätzliche Untersuchungen erforderlich, um herauszufinden, was passiert ist, aber das kann der Fall sein nicht immer möglich sein.
quelle