Dieser Artikel beschreibt, wie man einen Eintrag im Bootloader GRUB mit einem Passwort gegen einen nicht authorisierten Nutzer schützt.
Eines vorweg: Über den Sinn und Unsinn dieses Hindernisses für einen nichtauthorisierten Nutzer kann man diskutieren. Schließlich wird auch bei einem passwortgeschützten GRUB-Eintrag eine simple Live-CD ausreichen, um sich en passant am System vorbei hineinzubooten, um das System zu manipulieren oder Daten abzugreifen. Auch bei einem Diebstahl der Platte nutzt der Passwortschutz nichts. Der Passwortschutz eines GRUB-Eintrages kann aber da nützlich sein, wo kein physischer Zugriff auf Bootmedien (auch USB) besteht und einem unauthorisiertem Nutzer die Manipulation der Bootoptionen in GRUB verweigert wird. Unter dem Strich ist es wie mit einem 2 Meter hohen Gartenzaun. Viele potenzielle Eindringlinge können dadurch abgehalten werden, auf das Grundstück zu gelangen. Für den Profi ist diese Hürde nur eine Aufwärmübung.
Dieser Beitrag richtet sich an Nutzer, die notfalls in der Lage sind, einen evtl. auftretenden Fehler selbständig zu beheben, z.B. mit Hilfe einer Live-CD. Für einen evtl. eintretenden Datenverlust übernimmt der Autor keine Haftung. Das Beispiel demonstriert den verschlüsselten Eintrag eines GRUB (legacy) auf einem System Ubuntu Jaunty Jackalope. Andere Systeme/Versionen sollten ähnlich funktionieren.
Schritt 1: GRUB-Konsole öffnen
Die GRUB-Konsole wird mit Superuser-Rechten geöffnet…
sudo grub
Schritt 2: Passwort verschlüsseln
In der GRUB-Konsole gibt man nun den Befehl md5crypt ein und wird aufgefordert das zu verschlüsselnde Passwort einzugeben. GRUB spuckt darauf die verschlüsselte Sequenz des Passworts aus:
grub> md5crypt
Password: *********
Encrypted: $1$vyCgQ/$TtqzYTR1W6H5aE25VPiWO/
Vorsicht bei der Nutzung von Sonderzeichen! Wer hier Sonderzeichen wie “#” eingibt, bekommt später Probleme bei der Authentifizierung, da GRUB von einem amerikanischen Tastaturlayout ausgeht. Bitte auch beachten, dass das Passwort nur einmal abgefragt wird und nicht bestätigt werden muss. Wer hier die falsche Abzweigung nimmt, sperrt sich selber aus!
Schritt 3: GRUB-Eintrag in /boot/grub/menu.lst ändern
Die Verschlüsselung per Passwort kann für jeden einzelnen Eintrag seperat erfolgen. So kann man nur ausgewählte Einträge schützen (z.B. Rescue boot mode) und sogar verschiedene Passwörter verwenden. Mit Superuserrechten und seinem Lieblingseditor (hier: vi) öffnet man die Datei /boot/grub/menu.lst. Für Ubuntu:
sudo vi /boot/grub/menu.lst
Unter der Zeile “initrd” des zu schützenden Eintrages fügt man dann den mit rot hervorgehobenen Textbaustein ein (wobei natürlich die individuelle, durch md5crypt erzeugte Sequenz eingefügt werden muss). Nach der Änderung könnte der Eintrag dann so aussehen:
title Karmic Koala , kernel 2.6.26-2-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro quiet
initrd /boot/initrd.img-2.6.26-2-686
password --md5 $1$vyCgQ/$TtqzYTR1W6H5aE25VPiWO/
[UPDATE:] Bei manchen Betriebssystemen kann es passieren, dass im Zuge der Installation eines neuen Kernels der Eintrag in /boot/grub/menu.list überschrieben wird und der Passwortschutz damit flöten geht.
Schritt 4: Absicherung und Neustart
Bevor man diesen Schritt tut, sollte man sich sicher sein, dass man in der Lage ist, einen evtl. auftretenden Fehler beheben zu können, indem man sich z.B. mit einer Live-CD hineinbootet, um den GRUB-Eintrag entsprechend zu ändern. Evtl. sollte man in Erwägung ziehen, zunächst nicht alle Einträge zu verschlüsseln, um auch ohne CD Zugang zum System zu haben, um einen etwaigen Fehler zu korrigieren. Nach dem Neustart kann -zumindest über GRUB – das System über den entsprechenden Eintrag nur noch nach Eingabe des Passwortes gebootet werden. Ein englischsprachiges Howto inklusive einer Diskussion über den Sinn und die Grenzen des Passwortschutzes findet ihr hier.






