Website-Suche

So schützen Sie den Einzelbenutzermodus in CentOS 7 mit einem Passwort


In einem unserer früheren Artikel haben wir beschrieben, wie man unter CentOS 7 im Einzelbenutzermodus startet. Dieser wird auch als „Wartungsmodus“ bezeichnet, in dem Linux nur eine Handvoll Dienste startet, um grundlegende Funktionen zu ermöglichen Ein einzelner Benutzer (normalerweise ein Superuser) führt bestimmte Verwaltungsaufgaben aus, z. B. die Verwendung von fsck zum Reparieren beschädigter Dateisysteme.

Im Einzelbenutzermodus führt das System eine Einzelbenutzer-Shell aus, in der Sie Befehle ohne Anmeldeinformationen (Benutzername und Passwort) ausführen können. Sie landen direkt in einer eingeschränkten Shell mit Zugriff auf das gesamte Dateisystem.

Dies stellt eine massive Sicherheitslücke dar, da Eindringlinge direkten Zugriff auf eine Shell (und möglicherweise Zugriff auf das gesamte Dateisystem) erhalten. Daher ist es wichtig, den Einzelbenutzermodus unter CentOS 7 mit einem Passwort zu schützen, wie unten erläutert.

In CentOS/RHEL 7 sind die Rettungs- und Notfallziele (die auch Einzelbenutzermodi sind) passwortgeschützt standardmäßig geschützt.

Wenn Sie beispielsweise versuchen, das Ziel (Runlevel) über systemd in rescue.target (auch emergency.target), werden Sie nach einem Root-Passwort gefragt, wie im folgenden Screenshot gezeigt.

systemctl isolate rescue.target
OR
systemctl isolate emergency.target

Wenn ein Eindringling jedoch physischen Zugriff auf einen Server hat, kann er oder sie einen Kernel zum Booten aus dem Grub-Menüelement auswählen, indem er die Taste e drückt, um die erste Startoption zu bearbeiten.

In der Kernelzeile, die mit “linux16“ beginnt, kann er/sie das Argument ro in “rw init=/sysroot/bin/sh ” ändern und booten Sie im Einzelbenutzermodus unter CentOS 7, ohne dass das System nach einem Root-Passwort fragt, selbst wenn die Zeile SINGLE=/sbin/sushell in SINGLE=/sbin/sulogin in der Datei /etc/sysconfig/init.

Die einzige Möglichkeit, den Einzelbenutzermodus in CentOS 7 mit einem Passwort zu schützen, besteht darin, GRUB mithilfe der folgenden Anweisungen mit einem Passwort zu schützen.

So schützen Sie Grub in CentOS 7 mit einem Passwort

Erstellen Sie zunächst wie gezeigt ein stark verschlüsseltes Passwort mit dem Dienstprogramm grub2-setpassword.

grub2-setpassword

Der Hash für das Passwort wird in /boot/grub2/user.cfg gespeichert und der Benutzer, d. h. „root“ ist in / definiert. boot/grub2/grub.cfg-Datei können Sie das Passwort wie gezeigt mit dem Befehl cat anzeigen.

cat /boot/grub2/user.cfg

Öffnen Sie nun die Datei /boot/grub2/grub.cfg und suchen Sie nach dem Boot-Eintrag, den Sie mit einem Passwort schützen möchten. Er beginnt mit menuentry. Sobald der Eintrag gefunden wurde, entfernen Sie den Parameter --unrestricted daraus.

Speichern Sie die Datei und schließen Sie sie. Versuchen Sie nun, das CentOS 7-System neu zu starten und die Starteinträge durch Drücken der Taste e zu ändern. Sie werden aufgefordert, die Anmeldeinformationen wie gezeigt einzugeben.

Das ist es. Sie haben Ihr CentOS 7 GRUB-Menü erfolgreich mit einem Passwort geschützt.