Bootvorgang - Recovery Modus unterbinden
Donnerstag, 28. August 2008Der Bootloader Grub sollte nach der Installation abgesichert werden. Ubuntu bietet zudem nach einer Basisinstallation die Möglichkeit im sog. Recovery-Modus zu starten, was zur Folge hat das eine Rootshell ohne Passwortabfrage geöffnet wird. Jeder der physikalischen Zugang zu Ihrem Rechner hat, kann sich daher völlig frei im System bewegen, Programme installieren, Dateien löschen, oder verändern, etc.
Grub selbst bietet weiterhin eine Konsole, mit der sich die Einträge im Bootmenu verändern lassen. Dieser Zugang zur Grub-Konsole sollte daher ebenfalls abgesichert werden.
Sie können eine Passwort-Direktive zur Konfigurationsdatei von Grub hinzufügen.
Zunächst sollten Sie mittel des zu Grub gehörenden Befehls grub-md5-crypt ein verschlüsseltes Passwort erzeugen.
grub-md5-crypt Password: Retype password: $1$q6jIf$zguPFQEn.vQGMkXzBUcrN1
Im obigen Beispiel wird für das Passwort testnutzer der folgende verschlüsselte String erzeugt:
$1$q6jIf$zguPFQEn.vQGMkXzBUcrN1
Sie benötigen das erzeugte und verschlüsselte Passwort zur Konfiguration des Grub Bootloaders in der Datei
/boot/grub/menu.lst
Nachfolgend sehen Sie eine menu.lst, die exemplarisch eine typische Umgebung zeigt und zusätzlich kommentiert ist. Von mir auf Deutsch eingefügte Kommentare sind mit #>> gekennzeichnet.
# menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-doc/. ## default num # Set the default entry to the entry number NUM. Numbering starts from 0, and # You can specify 'saved' instead of a number. In this case, the default entry # is the entry saved with the command 'savedefault'. # WARNING: If you are using dmraid do not use 'savedefault' or your # array will desync and will not let you boot your system. # #>> Das zu startende Betriebssystem in der Liste #>> (Die Liste beginnt mit 0, in diesem Fall nehmen wir den zweiten Eintrag) default 1 ## timeout sec # Set a timeout, in SEC seconds, before automatically booting the default entry # (normally the first entry defined). # #>> Zeit bevor der per default gewählte Eintrag gestartet wird (in Sekunden) timeout 120 ## hiddenmenu # Hides the menu by default (press ESC to see the menu) # #>> Menu ausblenden (wird durch die Taste ESC angezeigt) #>> WARNUNG: Falls Sie einen kurzen timeout wählen kommen Sie evtl. #>> bei gleichzeitiger Nutzung von hiddenmenu nicht mehr #>> in Ihre Bootauswahl! hiddenmenu # Pretty colours #color cyan/blue white/blue # #>> Ein bischen buntcolor yellow/black red/black ## password ['--md5'] passwd # If used in the first section of a menu file, disable all interactive editing # control (menu entry editor and command-line) and entries protected by the # command 'lock' # e.g. password topsecret # password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/ # #>> Das durch grub-md5-crypt verschluesselte Passwort #>> In dieser Zeile wird durch das setzen des Passwortes ein Zugriff auf #>> die von Grub bereitgestellte Konsole/Editor unterbunden. #>> (Es wäre sonst u.a. möglich einen später folgenden lock Befehl zu umgehen) password --md5 $1$q6jIf$zguPFQEn.vQGMkXzBUcrN1 # # examples # # title Windows 95/98/NT/2000 # root (hd0,0) # makeactive # chainloader +1 # # title Linux # root (hd0,1) # kernel /vmlinuz root=/dev/hda2 ro # # # Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST ### BEGIN AUTOMAGIC KERNELS LIST ## lines between the AUTOMAGIC KERNELS LIST markers will be modified ## by the debian update-grub script except for the default options below ## DO NOT UNCOMMENT THEM, Just edit them to your needs ## ## Start Default Options ## ## default kernel options ## default kernel options for automagic boot options ## If you want special options for specific kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro ## kopt_2_6_8=root=/dev/hdc1 ro ## kopt_2_6_8_2_686=root=/dev/hdc2 ro # kopt=root=UUID=f38f ro ## Setup crashdump menu entries ## e.g. crashdump=1 # crashdump=0 ## default grub root device ## e.g. groot=(hd0,0) # groot=(hd0,1) ## should update-grub create alternative automagic boot options ## e.g. alternative=true ## alternative=false # alternative=true ## should update-grub lock alternative automagic boot options ## e.g. lockalternative=true ## lockalternative=false ##>> lockalternative eingeschaltet # lockalternative=true ## additional options to use with the default boot option, but not with the ## alternatives ## e.g. defoptions=vga=791 resume=/dev/hda5 # defoptions=quiet splash ## should update-grub lock old automagic boot options ## e.g. lockold=false ## lockold=true # lockold=false ## Xen hypervisor options to use with the default Xen boot option # xenhopt= ## Xen Linux kernel options to use with the default Xen boot option # xenkopt=console=tty0 ## altoption boot targets option ## multiple altoptions lines are allowed ## e.g. altoptions=(extra menu suffix) extra boot options ## altoptions=(recovery) single # altoptions=(recovery mode) single ## controls how many kernels should be put into the menu.lst ## only counts the first occurence of a kernel, not the ## alternative kernel options ## e.g. howmany=all ## howmany=7 # howmany=all ## should update-grub create memtest86 boot option ## e.g. memtest86=true ## memtest86=false # memtest86=true ## should update-grub adjust the value of the default booted system ## can be true or false # updatedefaultentry=false ## should update-grub add savedefault to the default options ## can be true or false # savedefault=false ## ## End Default Options ## ## #>> Die folgenden Zeilen sind etwas gekürzt und können abweichen. #>> Generell entsprechen die Einträge einer typischen Ubuntu 8.04 Installation title Virtual World Xen 3.2 / U 8.04.1, 2.6.24-19-xen root (hd0,1) kernel /boot/xen-3.2.gz module /boot/vmlinuz-2.6.24-19-xen root=UUID=f38f ro console=tty0 module /boot/initrd.img-2.6.24-19-xen quiet title Ubuntu 8.04.1, 2.6.24-19-generic root (hd0,1) kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=f38f ro quiet splash initrd /boot/initrd.img-2.6.24-19-generic quiet #>> ### Zusätzlicher Schutz ### #>> Ubuntu könnte im recovery-mode gestartet werden, daher erhält der #>> folgende Eintrag einen lock Befehl und Passwortschutz. title Ubuntu 2.6.24-19-generic (recovery mode) lock password --md5 $1$q6jIf$zguPFQEn.vQGMkXzBUcrN1 root (hd0,1) kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=f38f ro single initrd /boot/initrd.img-2.6.24-19-generic title Ubuntu Speichertest root (hd0,1) kernel /boot/memtest86+.bin quiet ### END DEBIAN AUTOMAGIC KERNELS LIST # This is a divider, added to separate the menu items below from the Debian # ones. title ___________________________________________________ root # This entry automatically added by the Debian installer for a non-linux OS # on /dev/sda1 # #>> Ein zusätzlich installiertes Windows (ggf. auch durch lock zu schützen) # title Microsoft Fenster 5.1 (beta) Media Center root (hd0,0) savedefault makeactive chainloader +1
Download:
menu.example.lst
Hinweis:
Bitte editieren Sie die entsprechende Datei auf Ihrem System, versuchen Sie nicht, die Beispieldatei auf Ihrem Computer zu verwenden. Die Datei enthält die UUID für das Dateisystem auf dem Rechner, auf dem Sie erzeugt wurde. Die UUID ist einmalig vom System vergeben und kann nicht ersetzt, oder durch die UUID anderer Rechner und Nutzer ausgetauscht werden.
Dieser Artikel bietet nur einen Beitrag zur Sicherheit. Bedenken Sie, dass Personen die Zugang zu Ihrem Rechner haben, weiterhin eine Live CD, oder ein anderes Betriebssystem von CD starten können.
Links:
http://wiki.ubuntuusers.de/UUID
