LoopAES

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der Security Sammlung.
Firewall Dienste absichern Verschlüsselung alphabetischer Security Index



Ich möchte hier einen kleinen Einblick in das Verschluesseln von Dateisystemen geben und vorallem die LoopAES Readme in ein angenehmeres Format bringen. Dabei hab ich mich aber auch an diesem Howto aus den Foren orientiert.

Inhaltsverzeichnis

[Bearbeiten] Benötigte Dinge:

  • Eine Knoppix-LiveCD fuer eure Arch.
  • Einen nach mgl. nicht mit Genkernel konfigurierten Kernel der 2.6er Reihe. (Die Anweisungen fuer 2.4 fuege ich spaeter an)
  • USE="crypt" muss gesetzt sein. Notfalls setzen und ein "emerge -avuDN world" ausfuehren. (Benötigt wird nur ein "emerge -av1 util-linux", aber sicher ist sicher)

[Bearbeiten] Vorbereitung:

Als naechstes solltet ihr ein Backup aller wichtiger Daten anlegen, die auf den zu cryptenden Platten sind. Am sinnvollsten ist es, die Platten vor dem Crypten 3-4 mal mit /dev/urandom zu ueberschreiben, um alle Daten die bisher drauf waren zu vernichten, was jedoch nicht unbedingt nötig ist.

/dev/urandom dauert sehr lange. da die Platte später ohnehin verschlüsselt wird, tut es ein Überschreiben mit Nullen mit /dev/zero auch.

Nun nurnoch die benötigten Dinge besorgen, und los gehts.

[Bearbeiten] Der Kernel:

Dieser muss wie folgt konfiguriert sein:

Device Drivers --->
   Block devices  --->
       <*> Loopback device support  
       <*>   Cryptoloop Support
Cryptographic options  --->
   <*>   AES cipher algorithms

Fuer ein verschluesseltes Root-Dateisystem noch dies aktivieren:

Device Drivers --->
   Block devices  --->
       <*> RAM disk support
       (16)  Default number of RAM disks
       (4096) Default RAM disk size (kbytes)
       [*]   Initial RAM disk (initrd) support
File systems  --->
   <*> Minix fs support 

Danach den kernel wie immer kompilieren und nach /boot kopieren. Danach neustarten oder sonstwie den neuen Kernel laden.

[Bearbeiten] Letzte Schritte

Darauf wie man util-linux remerged geh ich nun mal nicht ein, und gehe einfach davon aus, dass ihr das so hin bekommt. Als letztes solltet ihr noch das loopAES tar.bz2 irgendwo entpacken und auf der bash in die loopAES dir wechseln. Dort muesst ihr "make tests" tippen. Das ganze sollte als root geschehen.

# cd loop-AES-v3.1d/
# make clean
rm -f *.o *.ko *.orig *.rej *.mod.c patched-loop.[ch] test-file[1234]
rm -f -r test-dir1 tmp-d-kbuild
# make tests
...
*** Test results ok ***

Sollte das nicht so aussehen habt ihr ein problem und solltet das mit dem verschluesseln nicht weiter ausfuehren. Es kann durchaus hilfreich sein, das ganze nochmal ohne die Gentoowerkzeuge zu tun, sprich util-linux von hand zu bauen und loop als modul von hand zu basteln. Bei mir ist an dieser Stelle auch mehrfach ein Fehler aufgetreten, wozu ich aber bei Zeiten noch was schreiben werde.

[Bearbeiten] Was verschlüsseln?

Nun solltet ihr euch darueber klar werden, was ihr wie verschluesseln wollt.

  • Eine einzelne Datenpartition
  • Das gesamte Root-Dateisystem
  • Swap

Danach bleiben dann noch die verschiedenen Möglichkeiten, die Verschluesselung zu realisieren, wobei ich das spaeter ergaenzen werde. Es gilt generell, dass ihr AES256 durch AES128 ersetzen könnt, da 128bit theoretisch aehnlich sicher wie 256bit sind.

[Bearbeiten] Eine Partition

Wenn ihr eine einzelne Partition aus eurem dateisystem verschluesseln wollt, die nicht die dafuer wichtigen Programme enthaelt (/bin und /sbin), geht das relativ einfach. Als erstes sichergehen, dass das Backup funktioniert.

Dann folgende dinge tun:

1. die Partition unmounten:

umount /dev/hdb1

2. Loopdevice anlegen. Dabei werdet ihr nach einem Passwort mit mindestens 20 Stellen gefragt:

losetup -e AES256 -T /dev/loop0 /dev/hdb1

3. Das bestehende Dateisystem verschluesseln (dauert je nach Größe der Partition einige Stunden):

dd if=/dev/hdb1 of=/dev/loop0 bs=64k conv=notrunc

4. /etc/fstab bearbeiten:

/dev/hdb1       /mnt/point   "fs"    defaults,user,rw,noauto,loop=/dev/loop0,encryption=AES256     0 0
oder fuer automatisches Mounten:
/dev/hdb1       /mnt/point   "fs"    defaults,user,rw,loop=/dev/loop0,encryption=AES256     0 1

5. mount -a

[Bearbeiten] Swap

Swap zu verschluesseln ist eigentlich nur sinnvoll, wenn man das restliche System auch verschluesselt. ;-)

swapverschlüsselung zu verwenden ist sinnvoll, wenn man vermeiden will, dass vertrauliche speicherinhalte (zb passwörter, verschlüsselte IM-kommunikation) auf die festplatte ausgelagert werden. swap-verschlüsselung ist damit die vorraussetzung für jede andere festplattenverschlüsselung (wenn man wert auf seine kryptokeys legt...). eine forensische auswertung des swap kann etliches über die letzte nutzung des systems aussagen.

Da die Daten eh bei jedem reboot verworfen werden, können wir Zufallsschlüssel nutzen und das Filesystem bei jedem Mounten neu erzeugen.

1. Swap deaktivieren:

swapoff -a 

2. /etc/fstab bearbeiten:

/dev/hda2   none   swap   sw,loop=/dev/loop6,encryption=AES256   0   0

3. Sicher das vernichten, was sich bisher auf der Partition tummelt.

dd if=/dev/urandom of=/dev/hda2 bs=64k conv=notrunc

4. Neuen Swapspace erstellen:

mkswap /dev/hda2

5. Swap aktivieren:

swapon -a

So, fertig. Have fun. :-)

[Bearbeiten] Das Root-Dateisystem

Hierfuer braucht ihr nun endlich die Knoppix-CD und ein paar Files aus der loopAES dir außer dem makefile. 1. dietlibc installieren, da diese fuer die initrd gebraucht wird.

emerge -av dev-libs/dietlibc

2. Im LoopAES Ordner das build-initrd.sh Script bearbeiten.

USEDEVFS=0
USEPIVOT=1
BOOTDEV=/dev/hda1 (bzw eure /boot Partition)
BOOTTYPE=ext2 (bzw das von euch gewaehlte Filesystem)
CRYPTROOT=/dev/hda3 (euer / )
ROOTTYPE=reiserfs (und das entsprechende Filesystem)
CIPHERTYPE=AES256 (128 oder 256bit fuer / ?)
USEGPGKEY=0 (klar, oder?)

3. Das Script ausfuehren:

sh build-initrd.sh

4. grub.conf bearbeiten:

title=Gentoo Linux 2.6.16
root (hd0,0) 
kernel /kernel-2.6.16 udev ro root=/dev/ram0 init=/linuxrc rootfstype=minix 
initrd /initrd.gz

5. /etc/fstab bearbeiten:

/dev/loop5		/		reiserfs	noatime		0 1

6. Rebooten und von der Knoppix-CD starten. Am besten mit "knoppix 2" in rc2 booten, und auf X verzichten.

7. Loopdevice erstellen und das Passwort angeben, welches mindestens 20 Stellen haben muss:

 losetup -e AES256 -T /dev/loop0 /dev/hda3

8. Filesystem crypten(dauert je nach Größe der Partition einige Stunden):

dd if=/dev/hda3 of=/dev/loop0 bs=64k conv=notrunc

9. U're done... rebooten und hoffen, dass man nach dem Passwort gefragt wird. Ein kleiner Tipp: Die Tastatur hat ein US-Layout, wenn ihr nach dem Kernelladen nach dem Passwort gefragt werdet, unter Knoppix jedoch in der Regel ein DE-Layout.

'Persönliche Werkzeuge