Moderiert von elendil:
Achtung: Diese Infos sind grösstenteils veraltet. Wenn der Wunsch nach einer Komplettverschlüsselung besteht, solltet Ihr Euer System mit der Alternate-CD komplett neu installieren und das System gleich bei der Installation verschlüsseln lassen.
WICHTIG: DIESEN ARTIKEL ERST EINMAL KOMPLETT LESEN UND VERSTEHEN! SICHERT EURE DATEN. ICH KANN NIX DAFÜR, WENN IHR EURE DATEN SCHREDDERT!!! Sollte etwas schief gehen, keine Panik. In 99% aller Fälle kann man es mit der LiveCD retten.
Das ist eine Aktualisierung von http://forum.ubuntuusers.de/topic/77588/. Da ich jetzt selbst geupdated hab, kann ich den Weg auch ziemlich genau beschreiben. Im Prinzip sind nur ein paar Schritte weggefallen. ☺
Ihr braucht:
- eine Ubuntu/Kubuntu CD
- einen Rechner, den Ihr verschlüsseln wollt
- ca. eine Stunde, je nach Umfang Eurer vorhandenen Daten
Ob ihr das System schon benutzt habt oder nicht spielt keine große Rolle, allerdings macht es die Sache etwas komplizierter.
1) Partitionieren
Startet von der LiveCD, ich habe hierzu die Kubuntu CD genommen. Wartet bis die Oberfläche da ist und richtet ggf. Euren Internetzugang ein. Wenn Ihr einen Router habt, braucht Ihr Euren Rechner nur an den selbigen zu hängen. So könnt Ihr das How-to nachschlagen und zusätzliche Software auf das System übertragen. Schaltet dann in den Paketquellen Universe frei. Wer nicht weiß wie das geht, sollte noch etwas mit Ubuntu warm werden und hier aufhören zu lesen. *g* Dann "apt-get update".
Wenn noch nix installiert ist, startet die installation, wählt Partitionen von Hand wählen und erzeugt 4 Partitionen:
- /boot (ca. 100 MB / ext2 / bei mir /dev/sda1)
- swap (1 GB bzw. das doppelte Eures Rams / swap / bei mir /dev/sda2)
- / (ca. 6 GB / ext3 / bei mir /dev/sda3)
- /home (Der Rest / ext3 / bei mir /dev/sda4)
Danach lasst Ihr die Installation laufen und wählt weiter mit der LiveCD arbeiten.
Wenn Ihr schon ein laufendes System habt, überspringt den Punkt und installiert gparted. Richtet damit Eure Partitionen ein, wie oben beschrieben. Am besten ist es, das ganze System auf einen anderen Rechner zu backupen oder auf eine externe Festplatte oder eine nicht gebrauchte Partition. Wenn Ihr einen zweiten Rechner habt, installiert z. B. openssh-server und zieht die Daten per fish Protokoll auf den anderen Rechner. Wenn Ihr neu installiert, braucht Ihr das alles nicht, weil Ihr die Daten einfach hin und her schieben könnten.
2.) Software installieren / Module laden
Werdet root mit sudo su. Die nächsten Aktionen brauchen fast alle root Rechte, das vereinfacht die Sache. Ladet zunächst die Module aes, dm-crypt, dm-mod mit modprobe nach und installiert cryptsetup.
modprobe aes modprobe dm-crypt modprobe dm-mod apt-get install cryptsetup
3.) Vorbereitungen
Legt zunächst drei neue Ordner an mit mkdir /media/{boot,home,root}. Wechselt in /media und mountet Eure Festplatten auf die Ordner, also
mount /dev/sda1 boot mount /dev/sda3 root mount /dev/sda4 home
kopiert jetzt (falls Ihr NICHT NEU INSTALLIERT habt) von root/boot auf das neue boot Laufwerk. Hängt das Verzeichnis aus und löscht die boot Ordner. Wir brauchen das später woanders nochmal.
cp -ax root/boot/* boot/* umount boot rm -fr boot root/boot
Jetzt sichert Ihr Euer root Laufwerk, z. B. in die Homepartition und hängt die root Partition aus.
mkdir home/root cp -ax root/* home/root umount root
4.) Verschlüsselung
Jetzt verschlüsseln wir das erste Laufwerk.
cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sda3
Tippt YES und vergebt ein Passwort. Denkt dran sichere Passwörter zu nehmen und verzichtet auf Sonderzeichen, die auf der englischen Tastatur woanders liegen, sonst bekommt Ihr Probleme beim booten. Das ist nur für das Passwort der Rootpartition wichtig. Bei der anderen könnt Ihr frei wählen. Wenn Ihr Euch unsicher seid, dann lasst die Sonderzeichen weg. ! funktioniert z. B. ohne Probleme. Müsst Ihr halt mal testen. Die Passwörter kann man ja hinterher problemlos ändern.
Öffnet das Laufwerk, formatiert es und hängt es wieder ein.
cryptsetup luksOpen /dev/sda3 root mkfs.ext3 /dev/mapper/root mount /dev/mapper/root root
kopiert die Daten zurück mit
cp -ax home/root/* root
Dann rm -fr home/root um die Daten zu löschen.
Das gleiche Spiel dann bei der Homepartition (ich kürz hier mal ab)
mkdir root/backup cp -ax home/* root/backup umount home cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sda4 cryptsetup luksOpen /dev/sda4 home mkfs.ext3 /dev/mapper/home mount /dev/mapper/home home cp -ax root/backup/* home rm -fr root/backup umount home
Eure Festplatten sind jetzt verschlüsselt nur würden beim Start nicht gebootet werden.
5) System zum booten vorbereiten
mkdir root/boot mount /dev/sda1 root/boot
und legt ein neues Wurzelverzeichnis fest
chroot root
Wenn auf dem Festplattensystem noch kein cryptsetup installiert ist, schaltet auch hier die Universequellen frei, und macht ein
apt-get update apt-get install cryptsetup
um das auf Euer Festplattensystem zu installieren. Das wird z. B. nach einer Neuinstallation der Fall sein.
Editiert jetzt /etc/initramfs-tools/modules
und fügt diese Zeilen hinzu
aes dm-crypt dm-mod sha256
Ändert jetzt eure /etc/fstab von (die UUID ist nur ein Beispiel)
# /dev/sda3 UUID=7153f497-1b66-476d-bb3b-85e3fe18b402 / ext3 defaults,errors=remount-ro 0 1
in
# /dev/sda3 # UUID=7153f497-1b66-476d-bb3b-85e3fe18b402 / ext3 defaults,errors=remount-ro 0 1 /dev/mapper/root / ext3 defaults,errors=remount-ro 0 1
Und für das Homeverzeichnis
# /dev/sda4 UUID=ab5f1dca-45c1-4c66-8cfb-e6ca84ec6650 /home ext3 defaults 0 2
in
# /dev/sda4 # UUID=ab5f1dca-45c1-4c66-8cfb-e6ca84ec6650 /home ext3 defaults 0 2 /dev/mapper/home /home ext3 defaults 0 0
Wenn Ihr das habt, dann editiert Eure /etc/crypttab und fügt diese Zeilen hinzu
root /dev/sda3 none luks,retry=1,cipher=aes-cbc-essiv:sha256 home /dev/sda4 none luks,retry=1,cipher=aes-cbc-essiv:sha256
Als letztes muss noch /boot/grub/menu.lst geändert werden und zwar an zwei stellen
# kopt=root=/dev/sda3 ro
in
# kopt=root=/dev/mapper/root ro
und
title Ubuntu, kernel 2.6.17-10-generic root (hd0,0) kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda3 ro quiet splash locale=de_DE initrd /boot/initrd.img-2.6.17-10-generic savedefault boot
in
title Ubuntu, kernel 2.6.17-10-generic root (hd0,0) kernel /vmlinuz-2.6.17-10-generic root=/dev/mapper/root ro quiet locale=de_DE initrd /initrd.img-2.6.17-10-generic savedefault boot
Wichtig ist, dass Splash weg ist und root auf die neue Partition zeigt. Das Kernelimage liegt jetzt auch nicht mehr in /boot, weil es ja nicht gemountet werden kann (das root Laufwerk fehlt ja). Bei Feisty waren der Pfad zum image an sich schon richtig, nur die Pfade zu root mussten geändert werden.
Danach macht Ihr ein
update-initramfs -u All
Dort kommen bei mir Fehlermeldung, weil er die Partition nicht laden kann und irgendwas von libdevmapper. Alles uninteressant, weil wir die Module schon von Hand eingefügt haben.
Ready for reboot, also exit, um chroot aufzuheben und reboot.
Beim booten erscheint zunächst Grub, gefolgt von Starting System. Dann kommt schon der erste Login. Ist dieser korrekt wird weiter geboot bis das home Laufwerk eingebunden wird. Dort müsst Ihr dann das zweite Passwort eingeben.
6) Absichern für die ganz Harten
Wenn das System bootet, könnt Ihr noch das Swaplaufwerk verschlüsseln.
In /etc/crypttab die Zeile
swap /dev/sda2 /dev/random swap,check=/bin/true
hinzufügen und in /etc/fstab die Swapzeilen ändern in
# /dev/sda2 /dev/mapper/swap none swap sw 0 0
Wenn Ihr die Partition schon benutzt habt, funktioniert das nicht auf Anhieb, also wieder mal Trick 17:
sudo su swapoff -a dd if=/dev/zero of=/dev/sda2 bs=1M count=1
Das erste MB des Laufwerks wird jetzt mit Nullen vollgeschrieben. Und es lässt sich prima einhängen mit /etc/init.d/cryptdisks start. Danach swapon und das Swaplaufwerk ist wieder da. ACHTUNG: Der Hibernate Modus funktioniert dann nicht mehr, weil sich bei jedem Starten das Passwort für die Swappartition ändern.
Wenn Ihr ganz sicher gehen wollt, könnt Ihr noch in /home und in / eine mit Nullen gefüllte Datei anlegen mit
dd if=/dev/zero of=/dummy.txt
bis die Festplatte voll ist. Die Datei ist wenn sie verschlüsselt ist, nicht von anderen Dateien auf der Festplatte zu unterscheiden. Danach könnt Ihr sie einfach wieder löschen. Alle unverschlüsselten Daten auf der Festplatte sind dann überschrieben.
Ich hab den Spaß jetzt auf 4 Rechnern durch und an sich kann nicht viel schief gehen. Meistens sind es irgendwelche Schritte, die man einfach im Eifer des Gefechts vergisst. Also von CD booten, Internet einrichten, nachsehen, was fehlte und die Schritte halt noch einmal durchführen. Mit chroot kann man halt so ziemlich alles irgendwie retten.
Und weil ich das immer wieder gefragt werde, mit genügend Rechenpower und Zeit kann man jede Verschlüsselung aushebeln. Aber selbst ein Earth Simulator braucht Jahre, wenn nicht Jahrzehnte, um eine 256 Bit Verschlüsselung zu knacken. Wenn Ihr gute Passwörter habt, kommt NIEMAND an die Daten. Der Nutzen Eure Daten zu entschlüsseln würde in keinem Verhältnis zum Aufwand stehen. Damit sind Eure Daten safe. Zu dem Thema kann ich Euch auch noch dieses Video empfehlen
http://video.google.de/videoplay?docid=-1550832407257277331
Viel Erfolg beim nachmachen und bei Fragen → fragen!