(tested Ubuntu Karmic Koala 9.10 32-bit & Xubuntu Karmic Koala 9.10 64bit)
Servus miteinand,
aus den verschiedenen Anleitungen und Wikiartikeln habe ich eine weitere Schritt-für-Schritt Anleitung für die aktuelle Ubuntuversion mit Grub2 zusammengestellt.
Folgende Punkte sind möglicherweise vorab relevant für Euch:
Komplettverschlüsselung bis auf /boot mit cryptsetup von LIVE-CD
Karmic 32bit & 64bit funktioniert
Grub2
"normale" Partitionierung (im Gegensatz zum Wikiartikel mit LVM)
SWAP als Datei, statt Partition
Keyfile für die home-Partition
Man sollte natürlich das blutige Anfängerstadium bereits hinter sich gelassen haben und ansatzweise wissen, was man tut.
Existierende Daten werden NICHT verschlüsselt, sondern gelöscht!! Datensicherung VORHER....
1) Live-CD booten und Festplatten reinigen (optional):
/dev/sdX mit Nullen beschreiben:
sudo dd if=/dev/zero of=/dev/sdX bs=1M
/dev/sdX mit Zufallsdaten beschreiben:
sudo dd if=/dev/urandom of=/dev/sdX bs=20480
2) Partitionen erstellen
sudo apt-get install gparted cryptsetup sudo modprobe dm-crypt gksudo gparted
Z.B.:
sda1 /boot (150MB)
sda2 / (13GB - inkl. 1,5GB für eine SWAP-Datei)
sda3 /home (Rest)
3) Cryptdevices erstellen und ext3 formatieren - Festplatten/Partitionen dürfen nicht eingehängt sein, sonst kein Zugriff:
sudo cryptsetup -c aes-xts-essiv:sha256 -s 512 luksFormat /dev/sda2 sudo cryptsetup -c aes-xts-essiv:sha256 -s 512 luksFormat /dev/sda3 sudo cryptsetup luksOpen /dev/sda2 root sudo cryptsetup luksOpen /dev/sda3 home sudo mkfs.ext3 -m 1 /dev/mapper/root sudo mkfs.ext3 -m 1 /dev/mapper/home
(unterschiedliche UND sichere Passwörter verwenden, später wird ein Keyfile für home erstellt)
4) Ubuntu installieren - Manuelle Partitionierung:
/dev/sda1 ext3 formatieren und auf /boot mounten
/dev/mapper/root/ ext3 formatieren und auf / mounten
/dev/mapper/home/ ext3 formatieren und auf /home mounten
⇒ Installation - danach weiter im Livesystem!
5) Im Livesystem mittels chroot in das installierte System wechseln
(sicherstellen, dass im Live-System der Ordner "/mnt" existiert, der nicht benutzt wird - ansonsten sudo mkdir /mnt ; Es kann auch jeder andere leere, exisitierende Ordner sein ⇒ Befehle/Pfade anpassen):
mount
Zeigt nochmal an, wo die /dev/mapper/* gemountet sind; sollte es bei "mount /dev/mapper/root/ /mnt/" einen Fehler geben, geht man den Zwischenschritt gehen: "sudo umount /dev/mapper/root && sudo umount /dev/mapper/home", dann
sudo su cryptsetup luksOpen /dev/sda2 root #(=> sind normalerweise noch geöffnet, nur nach Neustart ins Live) cryptsetup luksOpen /dev/sda3 home #(=> sind normalerweise noch geöffnet, nur nach Neustart ins Live) mount /dev/mapper/root /mnt mount /dev/sda1 /mnt/boot mount /dev/mapper/home /mnt/home #(=> eigentlich unnötig, da nichts ins home geschrieben wird.*) mount -o bind /dev /mnt/dev mount -t proc proc /mnt/proc mount -t sysfs sys /mnt/sys cp /etc/resolv.conf /mnt/etc/resolv.conf chroot /mnt /bin/bash
Hier erfolgt eine kurze Prüfung der Mountbefehle: Im Livesystem Dateimanager öffnen und den Ordner /mnt checken. Müsste wie ein zweites System aussehen, prüfen, ob auch unter /mnt/boot entsprechende Systemdateien zu finden sind; (* Man könnte Dateien, die man im Livesystem erstellt hat, ins home kopieren, damit sie dort gleich verfügbar sind)
!!!! Alle Befehle müssen in dieser Shell ausgeführt werden! Sonst Kennzeichnung mit ** ⇒ zweites Terminal öffnen)!!!
sudo su apt-get update && apt-get upgrade && apt-get install cryptsetup gparted && modprobe dm-crypt
**Zweites Terminal um UUIDs in Erfahrung zu bringen
sudo blkid => beispielsweise /dev/sda1: UUID="12b520d2-b91f-4afd-9e1c-4a25a9044a75" TYPE="ext3" /dev/sda2: UUID="128400f7-3342-4e31-b676-9deb109c7bde" TYPE="crypto_LUKS" /dev/sda3: UUID="1c83e0f7-9f4d-40ea-b427-4fc67f4ef16f" TYPE="crypto_LUKS" /dev/mapper/root: UUID="6365328d-7e9c-4z71-9743-6213ff2ecf14" TYPE="ext3" /dev/mapper/home: UUID="09e1395c-fc85-4196-bN30-25214d753ad1" TYPE="ext3"
6) crypttab anpassen (wieder zurück im chroot-Terminal)
nano /etc/crypttab # <target name> <source device> <key file> <options> root UUID=128400f7-3342-4e31-b676-9deb109c7bde none luks,retry=1,cipher=aes-xts-essiv:sha256 home UUID=1c83e0f7-9f4d-40ea-b427-4fc67f4ef16f none luks,retry=1,cipher=aes-xts-essiv:sha256
UUIDs beziehen sich auch die /dev/sdax und nicht auf /dev/mapper! ciphers kommen vom obigen cryptsetup Befehl!
7) fstab prüfen und eventuell anpassen
nano /etc/fstab # <file system> <mount point> <type> <options> <dump> <pass> # /boot was on /dev/sda1 during installation UUID=12b520d2-b91f-4afd-9e1c-4a25a9044a75 /boot ext3 defaults 0 2 /dev/mapper/root / ext3 errors=remount-ro 0 1 /dev/mapper/home /home ext3 defaults 0 2
⇒ die automatisch generierten Einträge von "/" und "/home" werden mit den /dev/mapper entsprechend angepasst, falls dies nicht bereits automatisch erkannt wurde; /boot UUID bleibt
8) Bei mehreren Festplatten kann man noch prüfen, ob diese in der richtigen Reihenfolge erkannt/behandelt werden:
nano /boot/device.map (hd0) /dev/sda (hd1) /dev/sdb
9) initramfs updaten (heißt: Kernel wird upgedatet; -u =update; -k all =welche Kernel ⇒ all = alle)
update-initramfs -u -k all
10) GRUB2 anpassen ("quiet splash" entfernen, damit Passworteingabe erfolgen kann!)
nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" #in folgende Zeile umwandeln => GRUB_CMDLINE_LINUX_DEFAULT=""
update-grub2 update-initramfs -u -k all
11) chroot verlassen und LIVE System per reboot verlassen
exit reboot
⇒ Erst hier sollte die oben geöffnete Shell geschlossen werden!!
12) Neustart von Festplatte; mit rechter Shift-Taste kommt man ins Grub2 Menü; allerdings sollte der Bootvorgang bis zur LUKS Passworteingabe durchlaufen; Passwort für home KANN manchmal ein "Enter" vor der eigentlichen Passworteingabe benötigen.
13) Home mit keyfile öffnen: Prüfen, ob Ordner /etc/keys bereits existiert, dann
Keyfile mit Zufallsdaten erzeugen
sudo dd if=/dev/random of=/etc/keys/home.key bs=1 count=256
Keyfile zu home zufügen (sda3)
sudo cryptsetup luksAddKey /dev/sda3 /etc/keys/home.key
crypttab anpassen: "none" durch Pfad zu Keyfile ersetzen "/etc/keys/home.key"
sudo nano /etc/crypttab # <target name> <source device> <key file> <options> home UUID=1c83e0f7-9f4d-40ea-b427-4fc67f4ef16f /etc/keys/home.key luks,retry=1,cipher=aes-xts-essiv:sha256
Rechte für das Keyfile richtig setzen:
sudo chown root:root /etc/keys/home.key sudo chmod 400 /etc/keys/home.key
14) SWAP Speicher als Datei erstellen
Verzeichnis erstellen
sudo mkdir -p /var/cache/swap/
Datei mit Nullen erstellen, Größe count=1536 (1,5GB)
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=1536
Als SWAP formatieren
sudo mkswap /var/cache/swap/swap0
Dateibesitzer ist root, nun Dateirechte auf Lesen&Schreiben für root beschränken
sudo chmod 0600 /var/cache/swap/swap0
SWAP direkt einschalten, kein Neustart erforderlich
sudo swapon /var/cache/swap/swap0
SWAP permanent in das System einbinden; Zeile einfügen
sudo nano /etc/fstab /var/cache/swap/swap0 none swap sw 0 0
15) initramfs updaten
sudo update-initramfs -u -k all
ALLGEMEINES cryptsetup - device handling:
a) Schließen Sobald das enthaltene Dateisystem nicht mehr eingehängt ist oder anderweitig verwendet wird, kann das LUKS-Gerät wie folgt geschlossen werden:
cryptsetup luksClose <Name>
b) Passwörter verwalten LUKS bietet insgesamt acht Speicherplätze (genannt "Slot" 0-7) für änderbare Passwörter, die jeweils den Zugriff auf die Daten erlauben. Die belegten Speicherplätze und Headerinformationen lassen sich mittels dieses Befehl überprüfen:
cryptsetup luksDump <Gerät>
c) Passwort hinzufügen Zuerst das alte Passwort eingeben, dann das Neue.
cryptsetup luksAddKey <Gerät>
d) Passwort löschen Ein bekanntes Passwort kann ab Intrepid mit folgendem Befehl entfernt werden:
cryptsetup luksRemoveKey <Gerät>
Will man hingegen einen bestimmten Slot löschen, kann man dies mit folgendem Befehl tun:
cryptsetup luksKillSlot <Gerät> <Speicherplatz>
Alternativ muss in Dapper und Hardy wie folgt ein Slot entfernt werden:
cryptsetup luksDelKey <Gerät> <Speicherplatz>
e) Passwort ändern Zum Ändern eines Passworts wird zuerst das neue Passwort hinzugefügt und anschließend das alte entfernt.
Siehe auch viele Forenbeiträge und Wikiartikel: System verschlüsseln, LUKS
Natürlich habe ich mit diesem Tutorial das Rad nicht neu erfunden. Danke an alle, die hier schon fleißig Anleitungen und Artikel geschrieben habe, aus denen ich "das Beste" extrahiert habe und hier einfach nochmal zusammengefasst habe!!!
Viele Grüße
buddy