GNU/Linux >> LINUX-Kenntnisse >  >> Linux

8 Best Practices mit sudo unter Linux – Do’s and Dont’s von sudo

Alle Linux-Benutzer dürften heutzutage mit sudo vertraut sein Befehl (steht für „Superuser do“). Wir müssen sudo populär machen, indem wir Benutzer dazu erzwingen, anstatt sie zu ermutigen, su zu verwenden, um Root-Rechte für die Ausführung von Verwaltungsaufgaben zu erhalten. Aber es gibt noch viel mehr, was Sie über sudo wissen müssen. Mit Hilfe von sudo können Sie Befehle ganz einfach als jeder andere Benutzer ausführen, nicht nur als Root-Benutzer! Wenn sudo nicht korrekt verwaltet wird, ist es fast noch schlimmer, als einfach Root-Anmeldeinformationen zu teilen, da es ein falsches Sicherheitsgefühl vermittelt. Sehen wir uns einige der Best Practices an, um den Systemzugriff mit sudo zu steuern und gleichzeitig Benutzern zu ermöglichen, produktiv zu sein. Machen Sie sich mit der Verwendung von sudo vertraut und befolgen Sie diese Best Practices, dann können Sie sich entspannen und jeden Bissen Ihres Sandwichs genießen.

Hinweis:Sie müssen das verwenden visudo Befehl zum Bearbeiten der Datei /etc/sudoers. Seien Sie vorsichtig beim Bearbeiten!

1. Benutzern mit sudo keinen unbegrenzten Zugriff gewähren

Konfigurieren Sie sudo nicht so, dass Benutzer zu root oder einem anderen Konto wechseln können. Versuchen Sie stattdessen, sudo so zu konfigurieren, dass Benutzer bestimmte Befehle als die Benutzer ausführen können, als die sie arbeiten müssen.

Zum Beispiel:Ein Benutzer muss eine Software installieren. Erlauben Sie ihnen, nur RPM oder APT oder YUM als Root auszuführen, ohne auch nur zum Root-Benutzer zu wechseln, wie unten gezeigt:

peter ALL =(ALL) PASSWD : /usr/bin/apt-get, /usr/bin/yum, /bin/rpm

Dies würde peter erlauben sudo apt-get, sudo yum und sudo rpm ohne Passwort ausführen, aber keine anderen Befehle zulassen!

2. Gewähren Sie einem sudo-Benutzer nicht ALLE Root-Rechte

Verwenden Sie nicht ALL, während Sie einem sudo-Benutzer Zugriffsberechtigungen erteilen. Dies ist einer der häufigsten Fehler, den Administratoren begehen würden. Dadurch können Benutzer den Befehl su verwenden, um sich selbst permanente Root-Privilegien zu gewähren, wodurch die Befehlsprotokollierungsfunktionen von sudo umgangen werden.

peter    ALL=(ALL:ALL) ALL

Ein besserer Weg ist, Zugriff auf bestimmte Programmdateien zu gewähren, zB für:Benutzer peter würde Zugriff auf alle Programmdateien in den Verzeichnissen /sbin/ und /usr/sbin erhalten, plus den Befehl /opt/oracle/check.pl.

Hinweis:Ein abschließender Schrägstrich (/) ist erforderlich, um einen Verzeichnisspeicherort anzugeben

peter ALL=(ALL) PASSWD: /sbin/, /usr/sbin, /opt/oracle/check.pl

3. Gewähren Sie Root-Berechtigungen keinen uneingeschränkten passwortlosen Zugriff

Stellen Sie sich zum Beispiel vor, ein Eindringling verschafft sich Zugriff auf ein Benutzerkonto, das passwortlosen sudo-Zugriff auf Root-Rechte hat. Er konnte Dinge tun, an die Sie nicht einmal denken konnten! Gewähren Sie einem Benutzer stattdessen Zugriff auf Root-Rechte mit Passwörtern (sein eigenes Passwort).

peter    ALL=(ALL) PASSWD:ALL

Dies würde dem Benutzer peter erlauben jedes Mal, wenn er sudo verwendet, um Root-Rechte zu erlangen, ein Passwort einzugeben.

4. Verwenden Sie die include-Direktive für bestimmte sudo-Konfigurationen

In Umgebungen großer Unternehmen ist es immer besser, zusätzlich zu lokalen Konfigurationen spezifische sudo-Konfigurationen basierend auf Anwendungen beizubehalten. Zum Beispiel:Wenn Sie denselben Satz von Anweisungen für die Verwaltung von Apache und MySQL einbinden möchten, können Sie dies in eine separate sudo.mysql aufteilen Datei und verwenden Sie eine include-Direktive, um sie aus der Haupt-sudoers-Datei aufzurufen.

#include /etc/sudo.mysql

5. Gewähren Sie Sudo-Zugriff eher Gruppen als einzelnen Benutzern

Zum Beispiel:Haben Sie eine Administratorgruppe mit Administratorrechten, die die Installation und Aktualisierung von Paketen verwaltet. Auf diese Weise ist es nicht erforderlich, die sudoers-Datei jedes Mal zu bearbeiten, wenn Sie einen neuen Benutzer hinzufügen/entfernen. Stellen Sie einfach sicher, dass Benutzer ordnungsgemäß verwaltet und der Administratorgruppe hinzugefügt/aus ihr entfernt werden.

%admin ALL=(ALL) ALL

Dies erlaubt Personen in der Gruppe admin um alle Befehle auszuführen.

6. Legen Sie ein angemessenes Zeitlimit für sudo

fest

Sudo verwendet die Zeitstempelfunktion, um zu wissen, wann der letzte Sudo-Befehl vom Benutzer ausgeführt wurde. Während dieses Zeitraums kann der Benutzer den Befehl erneut ausführen, ohne auch nur zur Eingabe des Kennworts (des eigenen Kennworts des Benutzers) aufgefordert zu werden. Standardmäßig merkt sich sudo Ihr Passwort für 15 Minuten. Sobald es abgelaufen ist, wird der Benutzer erneut zur Eingabe des Kennworts aufgefordert, um den Befehl erneut auszuführen. Wenn Sie den Standardwert ändern möchten, geben Sie einfach einen Eintrag in sudoers ein. Um beispielsweise den Zeitüberschreitungswert für alle Benutzer bei allen von ihm ausgeführten Befehlen auf 5 Minuten festzulegen, könnten Sie Folgendes verwenden:

Defaults timestamp_timeout=x

wobei x der Timeout-Ablauf in Minuten ist. Wenn Sie 0 (Null) angeben, werden Sie immer nach dem Passwort gefragt. Wenn Sie einen negativen Wert angeben, läuft das Timeout nie ab. Z.B. Standardmäßig timestamp_timeout=5

Wenn Sie für einen bestimmten Benutzer (Peter) festlegen müssen, fügen Sie einfach den folgenden Eintrag in die Sudoers-Datei ein:

Defaults:peter timestamp_timeout=5

Diese Funktion funktioniert nicht, wenn Sie NOPASSWD im Benutzereintrag in sudoers haben.

7. Sperren Sie den Pfad für Binärdateien mit der Anweisung secure_path in sudo

Eine bewährte Vorgehensweise besteht darin, Benutzer auf bestimmte Bereiche zu beschränken und so sicherzustellen, dass Benutzer keine Befehle außerhalb des sicheren_Pfads ausführen können. Verwenden Sie die folgende Direktive in sudoers und geben Sie den secure_path an :

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

8. Jede Sudo-Aktivität in einer separaten Datei protokollieren

Standardmäßig werden sudo-Befehle zusammen mit anderen Systemmeldungen in einer Protokolldatei protokolliert. Dies ist für Server nicht akzeptabel, da es eine Reihe von Benutzern geben würde. Konfigurieren Sie sudo so, dass es über eine eigene Protokolldatei verfügt, um einen einfachen Einblick in die Verwendung von sudo und die Aktivitäten der sudoer zu erhalten. Dies hilft natürlich auch dabei, fehlgeschlagene Sudo-Ereignisse im Auge zu behalten.

Defaults logfile=/var/log/sudo.log

Wenn Sie noch mehr haben, fügen Sie bitte die Kommentare unten hinzu.

Lesen Sie auch: Sichern Sie Ihren Webserver – 50 Best Practices, die Sie befolgen sollten


Linux
  1. So erstellen Sie einen Sudo-Benutzer in Rocky Linux 8

  2. Fügen Sie einen Linux-Benutzer mit Dokument-Root-Berechtigungen hinzu

  3. Best Practices für die Sicherheit von Linux-Servern

  4. Benutzerumgebungsvariablen Mit „su“ und „sudo“ unter Linux

  5. sudo-Befehlsbeispiele in Linux

So erstellen und konfigurieren Sie einen Sudo-Benutzer unter Arch Linux

Verstehen des Unterschieds zwischen dem Befehl sudo und su unter Linux

Erste Schritte mit GIT unter Linux

Hinzufügen, Löschen und Gewähren von Sudo-Berechtigungen für Benutzer in Alpine Linux

So führen Sie einen Alias ​​mit Sudo in Linux aus

11 Beste CAD-Software für Linux