{"id":489,"date":"2009-05-26T10:00:00","date_gmt":"2009-05-26T08:00:00","guid":{"rendered":"http:\/\/www.butschek.de\/?p=489"},"modified":"2012-03-11T12:33:19","modified_gmt":"2012-03-11T11:33:19","slug":"partition-verschlusseln-mit-luks","status":"publish","type":"post","link":"https:\/\/www.butschek.de\/2009\/05\/26\/partition-verschlusseln-mit-luks\/","title":{"rendered":"Partition verschl\u00fcsseln mit LUKS"},"content":{"rendered":"

\"\"<\/a>Mit dm-crypt \/ LUKS<\/a> lassen sich unter Linux Festplatten oder Partitionen verschl\u00fcsseln. Die Details sind auf Wikipedia<\/a> zu finden, dieser Artikel soll zeigen, wie einfach es einsetzbar ist.<\/p>\n

Wir gehen von einer normalen Debian Lenny installation aus. Ich habe sda in 3 Partitionen unterteilt: Swap (2 GB), Root-FS (10 GB) und \/home (Rest). Die dritte Partition werde ich verschl\u00fcsseln.<\/p>\n

Zuerst installieren wir die Software und laden das n\u00f6tige Kernel-Modul. Dies ist beim Einrichten einmalig manuell n\u00f6tig, beim sp\u00e4teren \u00d6ffnen des Containers wird das Modul automatisch geladen:<\/p>\n

apt-get install cryptsetup\r\nmodprobe<\/a> dm_crypt<\/pre>\n

Nun starten wir die Einrichtung:<\/p>\n

cryptsetup<\/a> luksFormat \/dev\/sda3<\/pre>\n

Mit luksOpen \u00f6ffnen wir den verschl\u00fcsselten Bereich. Dadurch entsteht ein neues Ger\u00e4t namens \/dev\/mapper\/{name} welches das „ge\u00f6ffnete“ \/dev\/sda3 repr\u00e4sentiert, jedoch in nichtverschl\u00fcsselter Form. Wir benutzen also k\u00fcnftig \/dev\/mapper\/{name}, wobei alles, was wir dorthin speichern transparant verschl\u00fcsselt und nach \/dev\/sda3 geschrieben wird.<\/p>\n

cryptsetup luksOpen \/dev\/sda3 private<\/pre>\n

Wir haben der Partition also nun den Ger\u00e4tenamen ‚privat‘ gegeben, daher finden wir unsere lesbare „Partition“ nun unter \/dev\/mapper\/private. Nun formatieren wir die Partition:<\/p>\n

mkfs.xfs<\/a> -L sda3-priv \/dev\/mapper\/private<\/pre>\n

Fertig, schon kann die Partition gemountet und genutzt werden:<\/p>\n

mount \/dev\/mapper\/private \/home<\/pre>\n

Was ich an dieser Stelle gerne empfehle ist das vollst\u00e4ndige \u00dcberschreiben der Festplatte. Beim luksFormat wird der Bereich n\u00e4mlich nicht \u00fcberschrieben, es wird nur der leere Index angelegt. Die zuvor unverschl\u00fcsselt gespeicherten Daten sind also noch rekonstruierbar.<\/p>\n

Das „Ausnullen“ (\u00dcberschreiben mit lauter 0x00 Bytes) vermeide ich hier, da ein Angreifer sonst verschl\u00fcsselte und unverschl\u00fcsselte Daten gro\u00dfer Teile der Platte kennen k\u00f6nnte und somit gezielt nach dem Schl\u00fcssel suchen k\u00f6nnte. Daher benutze ich hier \/dev\/urandom:<\/p>\n

dd<\/a> if=\/dev\/urandom of=\/home\/fillup.dat bs=1M\r\nrm \/home\/fillup.dat<\/pre>\n

Eine interessante Sache \u00fcbrigens: Das F\u00fcllen mit Zufallsdaten k\u00f6nnte theoretisch auch vor dem luksFormat direkt auf \/dev\/sda3 erfolgen, man k\u00f6nnte sogar annehmen, dass dies schneller geht, weil die Zufalldaten dann nicht verschl\u00fcsselt geschrieben werden m\u00fc\u00dften. Da die Verschl\u00fcsselung jedoch die Entropie der Zufallszahlen ganz vewaltig in die H\u00f6he treibt, geht das Erzeugen von Zufallszahlen beim \u00dcberschreiben des gecrypteten Bereiches in der Tat schneller als beim \u00dcberschreiben der Platte sda3.<\/p>\n

Meine Messwerte:<\/p>\n\n\n\n\n
\u00dcberschreiben von \/dev\/sda mit \/dev\/urandom:<\/td>\n5.4 MBit\/s<\/td>\n<\/tr>\n
Datei im XFS-Dateisystem von \/dev\/urandom anlegen, welches als \/dev\/mapper\/private eingeh\u00e4ngt ist und die Daten beim Schreiben auf \/dev\/sda verschl\u00fcsselt:<\/td>\n6.0 MBit\/s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

So, um die Partition nach dem Entmounten wieder zu „schlie\u00dfen“, also das Mapper Device wieder zu entfernen, damit nicht mehr auf die Daten zugegriffen werden kann, wird das Kommando luksClose genutzt:<\/p>\n

umount \/dev\/mapper\/private\r\ncryptsetup luksClose private<\/pre>\n

Durch einen Reboot ist das Laufwerk \u00fcbrigens auch geschlossen, wenn also jemand mit lokalen Zugang zum PC kein Passwort hat, wird er k\u00fcnftig keine Daten aus \/home mehr auf dem Rechner finden, denn selbst ein Reboot mit init=\/bin\/bash ist nun wirkungslos.<\/p>\n

Fertig ist das streng geheime Home-Verzeichnis – was \u00fcbrigend auch mit jedem anderen Verzeichnis klappt – zumindest solange es kein System-Verzeichnis ist, welches zum Booten schon ben\u00f6tigt wird.<\/p>\n

TIPP:<\/strong> Ein Blick ins Manual von cryptsetup<\/a> ist \u00fcbrigens sehr zu empfehlen. Hier wied auch verraten, wie man mit den luks*Key Kommandos mehrere Passw\u00f6rter anlegen (z.B. f\u00fcr mehrere Leute, jeder hat SEIN Passwort) oder wie man mit Key-Files (z.B. auf dem USB-Stick) arbeiten kann. Auch Scripting ist dank isLuks und luksUUID problemlos m\u00f6glich…<\/p>\n","protected":false},"excerpt":{"rendered":"

Mit dm-crypt \/ LUKS lassen sich unter Linux Festplatten oder Partitionen verschl\u00fcsseln. Die Details sind auf Wikipedia zu finden, dieser Artikel soll zeigen, wie einfach es einsetzbar ist. Wir gehen von einer normalen Debian Lenny installation aus. Ich habe sda in 3 Partitionen unterteilt: Swap (2 GB), Root-FS (10 GB) und \/home (Rest). Die dritte […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,5],"tags":[21,22,45,48,66,68,77],"_links":{"self":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/489"}],"collection":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/comments?post=489"}],"version-history":[{"count":2,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/489\/revisions"}],"predecessor-version":[{"id":753,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/489\/revisions\/753"}],"wp:attachment":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/media?parent=489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/categories?post=489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/tags?post=489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}