{"id":235,"date":"2018-09-29T15:56:42","date_gmt":"2018-09-29T13:56:42","guid":{"rendered":"https:\/\/freikaempfer.net\/b\/?p=235"},"modified":"2018-09-29T15:56:42","modified_gmt":"2018-09-29T13:56:42","slug":"linux-verschluesselung-von-datentraegern-mit-luks","status":"publish","type":"post","link":"https:\/\/freikaempfer.net\/b\/2018\/09\/29\/linux-verschluesselung-von-datentraegern-mit-luks\/","title":{"rendered":"Linux: Verschl\u00fcsselung von Datentr\u00e4gern mit LUKS"},"content":{"rendered":"<h6>Diese Anleitung wurde f\u00fcr die Linux-Distribution Xubuntu getestet, ist aber auf allen Ubuntu-Varianten und fast allen Linux-Distributionen anwendbar.<\/h6>\n<p>Um diese Anleitung nutzen zu k\u00f6nnen muss<\/p>\n<ul>\n<li>ein Terminal benutzt werden.<\/li>\n<\/ul>\n<p><strong>Achtung! Das Verschl\u00fcsseln eines Datentr\u00e4gers f\u00fchrt zum VOLLST\u00c4NDIGEN Verlust ALLER Daten auf dem betreffenden Datentr\u00e4ger. Die Daten werden auch nicht wiederherstellbar sein. Wenn irgendetwas (wichtiges) auf dem Datentr\u00e4ger ist, muss es VORHER gesichert werden.<br \/>\n<\/strong><\/p>\n<p><strong>Au\u00dferdem: Das Verschl\u00fcsseln eines Datentr\u00e4gers, welcher bereits genutzt wird (z.B. die Festplatte auf der das Betriebssystem l\u00e4uft) ist hiermit NICHT m\u00f6glich!<\/strong><\/p>\n<p><strong>Hinweis: Ein mit LUKS verschl\u00fcsselter Datentr\u00e4ger kann NICHT unter Windows verwendet werden.<\/strong><\/p>\n<p><!--more--><\/p>\n<p><strong>Bitte die Anleitung vorher ein Mal komplett durchlesen bevor ihr irgendetwas mit eurer Festplatte macht. Ich \u00fcbernehme keine Verantwortung daf\u00fcr, wenn etwas schief geht.<\/strong><\/p>\n<h2>0. Terminal \u00f6ffnen<\/h2>\n<p>Es gibt mehrere M\u00f6glichkeiten ein Terminal zu \u00f6ffnen. Ich bevorzuge den Shortkey. Unter (X)Ubuntu ist das <strong>Strg+Alt+T<\/strong>. Ein Terminal kann aber auch \u00fcber das Anwendungsmen\u00fc ge\u00f6ffnet werden. Unter Ubuntu k\u00f6nnt ihr oben links auf das Ubuntu-Logo klicken und dann im Suchfeld &#8222;Terminal&#8220; eingeben. Bei Xubuntu muss auf das Xfce-Logo geklickt werden und dann nach &#8222;Terminal&#8220; gesucht werden.<\/p>\n<h2>1. Datentr\u00e4ger identifizieren<\/h2>\n<p>Zun\u00e4chst muss der Datentr\u00e4ger identifiziert werden, damit nicht aus Versehen ein anderer Datentr\u00e4ger gel\u00f6scht und verschl\u00fcsselt wird. Soll ein externer Datentr\u00e4ger (z.B. USB-Stick, externe Festplatte, etc.) verschl\u00fcsselt werden, erstmal die Verbindung trennen aka (USB-)Kabel abziehen. Dann im Terminal den Befehl<\/p>\n<pre>sudo fdisk -l<\/pre>\n<p>eintippen. Ihr werden nach eurem Benutzer_innen-Passwort gefragt. Eingeben (es gibt keine visuelle Ausgabe, also keine *** oder so) und dann &#8218;Enter&#8216; dr\u00fccken. Als Ergebnis erhaltet ihr eine Liste von Datentr\u00e4gern die in etwa wie folgt aussieht:<\/p>\n<pre>Festplatte \/dev\/sda: 465,8 GiB, 500107862016 Bytes, 976773168 Sektoren\r\nEinheiten: Sektoren von 1 * 512 = 512 Bytes\r\nSektorgr\u00f6\u00dfe (logisch\/physikalisch): 512 Bytes \/ 512 Bytes\r\nE\/A-Gr\u00f6\u00dfe (minimal\/optimal): 512 Bytes \/ 512 Bytes\r\nFestplattenbezeichnungstyp: gpt\r\nFestplattenbezeichner: [\u2026]\r\n\r\nGer\u00e4t       Anfang      Ende  Sektoren  Gr\u00f6\u00dfe Typ\r\n\/dev\/sda1     2048    923647    921600   450M [\u2026]\r\n\/dev\/sda2   923648   1128447    204800   100M [\u2026]\r\n\/dev\/sda3  1128448   1161215     32768    16M [\u2026]\r\n\/dev\/sda4  1161216 976773119 975611904 465,2G [\u2026]<\/pre>\n<p>Jetzt die externe Festplatte wieder anschlie\u00dfen und den Befehl nochmal aufrufen. Es folgt ein Ergebnis \u00e4hnlich dem folgenden:<\/p>\n<pre>Festplatte \/dev\/sda: 465,8 GiB, 500107862016 Bytes, 976773168 Sektoren\r\nEinheiten: Sektoren von 1 * 512 = 512 Bytes\r\nSektorgr\u00f6\u00dfe (logisch\/physikalisch): 512 Bytes \/ 512 Bytes\r\nE\/A-Gr\u00f6\u00dfe (minimal\/optimal): 512 Bytes \/ 512 Bytes\r\nFestplattenbezeichnungstyp: gpt\r\nFestplattenbezeichner: [\u2026]\r\n\r\nGer\u00e4t       Anfang      Ende  Sektoren  Gr\u00f6\u00dfe Typ\r\n\/dev\/sda1     2048    923647    921600   450M [\u2026]\r\n\/dev\/sda2   923648   1128447    204800   100M [\u2026]\r\n\/dev\/sda3  1128448   1161215     32768    16M [\u2026]\r\n\/dev\/sda4  1161216 976773119 975611904 465,2G [\u2026]\r\n\r\nFestplatte \/dev\/sdb: 931,5 GiB, 1000204886016 Bytes, 1953525168 Sektoren\r\nEinheiten: Sektoren von 1 * 512 = 512 Bytes\r\nSektorgr\u00f6\u00dfe (logisch\/physikalisch): 512 Bytes \/ 4096 Bytes\r\nE\/A-Gr\u00f6\u00dfe (minimal\/optimal): 4096 Bytes \/ 4096 Bytes\r\nFestplattenbezeichnungstyp: gpt\r\nFestplattenbezeichner: [\u2026]\r\n\r\nGer\u00e4t       Anfang       Ende   Sektoren  Gr\u00f6\u00dfe Typ\r\n\/dev\/sdb1     2048    1050623    1048576   512M [\u2026]\r\n\/dev\/sdb2  1050624    2549759    1499136   732M [\u2026]\r\n\/dev\/sdb3  2549760 1953523711 1950973952 930,3G [\u2026]<\/pre>\n<p>Hier ist die Festplatte ausschlaggebend. In unserem Beispiel m\u00f6chten wir die Festplatte<\/p>\n<pre>\/dev\/sdb<\/pre>\n<p>verschl\u00fcsseln. Bei euch kann es auch eine andere Bezeichnung sein. Ihr m\u00fcsst einfach danach gucken, was neu dazu gekommen ist. Solltet ihr euch nicht sicher sein, k\u00f6nnt ihr die Festplattenbezeichner miteinander vergleichen. Dadurch k\u00f6nnt ihr euch sicher sein, das ihr auch die Festplatte w\u00e4hlt, die neu dazu gekommen ist nachdem ihr die externe Festplatte angeschlossen habt. Au\u00dferdem bitte beachten: Wenn ihr eine Festplatte mit z.B. 1 TB Speicherplatz habt, dann wird in der Liste nicht &#8222;1 TB&#8220; angezeigt, sondern (wie hier im Beispiel) &#8222;931,5 GiB&#8220;. Das liegt an der unterschiedlichen Umrechnung. Auf Datentr\u00e4gern wird der Speicherplatz in der Regel als Megabyte, Gigabyte, Terabyte, etc. angegeben bzw. aufgedruckt. Dabei sind 1.000 Kilobyte = 1 Megabyte, 1.000 Megabyte = 1 Gigabyte, 1.000 Gigabyte = 1 Terabyte. Das Betriebssystem rechnet aber mit Mebibyte, Gibibyte, Tebibyte, etc. Dabei sind 1.024 Kibibyte = 1 Mebibyte, 1.024 Mebibyte = 1 Gibibyte, 1.024 Gibibyte = 1 Tebibyte. Es &#8222;fehlt&#8220; also kein Speicherplatz, sondern es ist einfach in einer anderen Ma\u00dfeinheit angegeben.<\/p>\n<p>Die (externe) Festplatte muss ausgeh\u00e4ngt werden, falls sie (automatisch) eingeh\u00e4ngt wurde. In der Regel kann das erreicht werden, in dem im Dateimanager auf des &#8222;Auswerfen&#8220;-Symbol geklickt wird. Sollte dieses Symbol nicht sichtbar sein oder es nicht klappen, kann das ganze auch mit dem Terminal gemacht werden:<\/p>\n<pre>sudo umount \/media\/BENUTZER_IN\/FESTPLATTE\r\nsudo rmdir \/media\/BENUTZER_IN\/FESTPLATTE<\/pre>\n<p>Mit dem ersten Befehl wird die Festplatte ausgeh\u00e4ngt, mit dem zweiten der Ordner gel\u00f6scht durch den auf die Festplatte zugegriffen werden konnte. Hier muss BENUTZER_IN durch den eigenen Namen und FESTPLATTE durch den Namen der Festplatte ersetzt werden. Es kann auch sein, dass die Festplatte nicht unter \/media eingeh\u00e4ngt wurde. Um das herauszufinden, \u00f6ffnet die Festplatte und guckt in die Adresszeile des Dateimanagers. Diesen Pfad k\u00f6nnt ihr dann Copy+Pasten.<\/p>\n<h2>2. Datentr\u00e4ger mit zuf\u00e4lligen Daten \u00fcberschreiben (optional, aber empfohlen)<\/h2>\n<p>Es gibt mehrere gute Gr\u00fcnde, warum dieser Schritt durchgef\u00fchrt werden sollte. Bei neu gekauften, noch ungenutzten Datentr\u00e4gern ist der Speicher einheitlich. Es ist also leicht zu erkennen, wo (verschl\u00fcsselte) Daten abgespeichert sind und wo nicht. Dadurch k\u00f6nnen bei einer IT-forensichen Untersuchung[<a href=\"https:\/\/de.wikipedia.org\/wiki\/IT-Forensik\">1<\/a>] Daten effizienter angegriffen werden. Das \u00fcberschreiben mit zuf\u00e4lligen Daten ist also eine Art der Verschleierung. Wurde der Datentr\u00e4ger schon (h\u00e4ufiger) verwendet, werden die bisherigen Daten effektiv gel\u00f6scht, \u00fcberschrieben und so nicht-wiederherstellbar gemacht. Das \u00dcberschreiben ist nat\u00fcrlich nur ein kleiner Teil in der Verschl\u00fcsselung und ersetzt keinesfalls ein starkes Passwort.<\/p>\n<p>Zum \u00dcberschreiben mit zuf\u00e4lligen Daten ist folgende Befehlsfolge n\u00f6tig:<\/p>\n<pre>sudo sh -c 'cryptsetup -d \/dev\/urandom -c aes-xts-plain64 create delete \/dev\/sdb &amp;&amp; shred -vz \/dev\/mapper\/delete &amp;&amp; sync &amp;&amp; sleep 4 &amp;&amp; cryptsetup remove delete'<\/pre>\n<p>Zur kurzen Erl\u00e4uterung: Mit dieser Befehlsfolge wird das (virtuelle) Ger\u00e4t \/dev\/urandom [<a href=\"https:\/\/de.wikipedia.org\/wiki\/\/dev\/random\">2<\/a>] als Quelle f\u00fcr Zufallsdaten genutzt um die Festplatte \/dev\/sdb zu beschreiben. Danach werden diese Daten wieder gel\u00f6scht. Das ganze dauert zum Teil sehr lange. Es empfiehlt sich, den Prozess Abends zu starten und dann die Nacht durch laufen zu lassen. Bei meiner 4 TB gro\u00dfen Festplatte hat es ca. 30 Stunden gedauert bis alles fertig war. Das liegt daran, dass die Daten nicht nur ein Mal geschrieben werden. Es gibt insgesamt vier Durchl\u00e4ufe. Die ersten drei Druchl\u00e4ufe schreiben zuf\u00e4llige Daten und der vierte Durchlauf schreibt 0en. Das ist wichtig, um die vorherigen Daten wirklich zu zerst\u00f6ren.<\/p>\n<h2>3. Datentr\u00e4ger verschl\u00fcsseln<\/h2>\n<p>LUKS[<a href=\"https:\/\/de.wikipedia.org\/wiki\/Dm-crypt\">3<\/a>] ist die Abk\u00fcrzung f\u00fcr &#8222;Linux Unified Key Setup&#8220; und ist eine weitverbreitete und als sicher geltende Verschl\u00fcsselung. Das Prinzip ist, dass auf der Festplatte ein LUKS-Container erzeugt wird, welcher dann mit Daten gef\u00fcllt werden kann. Es ist quasi eine Box, in die Dinge getan werden k\u00f6nnen und die Box abgeschlossen werden kann. Ein solches Prinzip wird z.B. auch von VeraCrypt verwendet. Es ist mit LUKS auch m\u00f6glich, kleine Container beliebiger Gr\u00f6\u00dfe zu erzeugen und als Datei z.B. an eine E-Mail anzuh\u00e4nge. Aber das soll nicht Gegenstand dieser Anleitung sein.<\/p>\n<p>Um die Festplatte f\u00fcr LUKS zu formatieren wird der Befehl<\/p>\n<pre>sudo cryptsetup luksFormat \/dev\/sdb<\/pre>\n<p>gebraucht. Es w\u00e4re m\u00f6glich noch weitere Einstellungen anzugeben, aber die Standard-Einstellungen sind sicher.<\/p>\n<p>Ihr werdet nach einem Passwort f\u00fcr den neuen Container gefragt. Hier bitte folgendes beachten:<\/p>\n<ul>\n<li>Das Passwort ist der Zugang zur Festplatte. Ohne Passwort sind eure Daten verloren!<\/li>\n<li>W\u00e4hlt ein sicheres Passwort. Das bedeutet: mindestens 16 Zeichen (Buchstaben, Zahlen UND Sonderzeichen).<\/li>\n<li>KEINE Worte\/S\u00e4tze benutzen. Solche Passw\u00f6rter sind trotz guter L\u00e4nge leicht zu erraten durch Computer.<\/li>\n<li>Nutzt einen Passwortgenerator, welcher die St\u00e4rke des Passworts angibt (z.B. den Passwortmanager KeePassXC[<a href=\"https:\/\/keepassxc.org\/\">4<\/a>]).<\/li>\n<li>Schreibt das Passwort bitte nicht auf einen Zettel der neben dem Monitor, unter der Tastatur oder sonst wo leicht auffindbar liegt.<\/li>\n<li>Und nat\u00fcrlich: Das Passwort NIEMALS ver\u00f6ffentlichen oder weitergeben (auch nicht an vertrauensw\u00fcrdige Leute, es gibt bessere M\u00f6glichkeiten mehreren Leuten Zugang zu einem verschl\u00fcsselten Datentr\u00e4ger zu geben).<\/li>\n<\/ul>\n<p>Das verschl\u00fcsseln dauert wieder ein bisschen. Je nach Gr\u00f6\u00dfe der Festplatte.<\/p>\n<p>Wenn die Verschl\u00fcsselung fertig installiert ist, k\u00f6nnt ihr die Festplatte \u00f6ffnen, in dem ihr mit dem Befehl<\/p>\n<pre>sudo cryptsetup open \/dev\/sdb FESTPLATTE<\/pre>\n<p>den verschl\u00fcsselten Container \u00f6ffnet. Hierbei ist FESTPLATTE der bzw. ein Name f\u00fcr die Festplatte, der angegeben werden muss, damit ihr die Festplatte sp\u00e4ter finden k\u00f6nnt. Den Namen k\u00f6nnt ihr bei jedem \u00f6ffnen neu vergeben, es empfiehlt sicht aber einen Namen zu w\u00e4hlen und beizubehalten, da im n\u00e4chsten Schritt auch ein Name ben\u00f6tigt wird. Beim \u00d6ffnen werdet ihr nach dem Passwort gefragt.<\/p>\n<h2>4. Datentr\u00e4ger mit einem Dateisystem ausstatten<\/h2>\n<p>Ein Datentr\u00e4ger braucht ein Dateisystem damit auf ihm Daten abgelegt werden k\u00f6nnen. Da wir unter Linux arbeiten w\u00e4hlen wir das Dateisystem ext4. Mit dem Befehl<\/p>\n<pre>sudo mkfs.ext4 -L FESTPLATTE \/dev\/mapper\/FESTPLATTE<\/pre>\n<p>wird das Dateisystem ext4 auf die Festplatte FESTPLATTE installiert. Das Programm mkfs (=makefilesystem) akzeptiert die optionale Einstellung -L (=Label) um dem Dateisystem einen Namen zu geben. Dieser Name wird dann sp\u00e4ter vom Betriebssystem genutzt um die Festplatte f\u00fcr euch identifizierbar zu machen. Wie im vorherigen Schritt erw\u00e4hnt ist es sinnvoll f\u00fcr das \u00d6ffnen des Containers wie auch f\u00fcr das Dateisystem den selben Namen zu verwenden.<\/p>\n<p>Hinweis: Wenn ihr NICHT den selben Namen verwenden wollt, dann muss bei \/dev\/mapper\/FESTPLATTE der Name angegeben werden, den ihr beim \u00d6ffnen des Containers genutzt habt. Bei -L kann dann ein anderer Name angegeben werden.<\/p>\n<h2>5. Datentr\u00e4ger schlie\u00dfen<\/h2>\n<p>Wenn alles fertig ist und im LUKS-Container ein Dateisystem installiert werden konnte, kann der Container wieder geschlossen werden. Zum Schlie\u00dfen benutzt den Befehl<\/p>\n<pre>sudo cryptsetup close \/dev\/mapper\/FESTPLATTE<\/pre>\n<h2>6. Datentr\u00e4ger verwenden<\/h2>\n<p>Wenn ihr euren Dateimanager aufruft wird euch (wenn alles gut gelaufen ist) die Festplatte als bereit zum Einh\u00e4ngen angezeigt. In Ubuntu-Varianten steht links in der Leiste oft etwas wie &#8222;1,0 TB verschl\u00fcsselt&#8220; o.\u00e4. Dann einfach darauf klicken. Es \u00f6ffnet sich ein Fenster in dem ihr zur Passwort-Eingabe aufgefordert werdet. Ist das Passwort korrekt, wird die Festplatte ge\u00f6ffnet und eingeh\u00e4ngt. Danach k\u00f6nnt ihr die Festplatte genauso wie eine nicht-verschl\u00fcsselte verwenden.<\/p>\n<p><strong>Hinweis: Solange die Festplatte ge\u00f6ffnet ist, liegen ALLE darin enthaltenen Daten unverschl\u00fcsselt vor. Wenn ihr die Festplatte also nicht mehr braucht, schlie\u00dft sie wieder. Auch solltet ihr die Festplatte nicht einfach vom PC\/Laptop trennen ohne sie vorher zu schlie\u00dfen. Im schlimmsten Fall bedeutet das n\u00e4mlich Datenverlust (passiert nicht immer, aber mir ist das schon mehrmals passiert).<\/strong><\/p>\n<h2>Weiterf\u00fchrendes&#8230;<\/h2>\n<p>Eine verschl\u00fcsselte Festplatte kann statt mit einem Passwort auch mit einer sog. Keyfile ge\u00f6ffnet werden. Dabei handelt es sich um eine Datei die (1) das Passwort enth\u00e4lt oder (2) eine zuf\u00e4llige beliebig lange Zeichenfolge enth\u00e4lt oder (3) jede andere bin\u00e4re Datei (z.B. ein Bild) ist. Es empfiehlt sich aber, eine solche Key-File nur erg\u00e4nzend zu einem Passwort zu nutzen. Dadurch kann auf die verschl\u00fcsselte Festplatte auch dann zugegriffen werden, wenn die Keyfile verloren gegangen ist. Ob eine Keyfile verwendet werden sollte oder nicht h\u00e4ngt von der Situation ab. Je nach Typ der Keyfile und Anwendungsfall gibt es einen Gewinn an Sicherheit, keinen Gewinn oder sogar einen Verlust an Sicherheit. Auf das Hinzuf\u00fcgen und Nutzen einer Keyfile gehe ich hier aber nicht ein.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Diese Anleitung wurde f\u00fcr die Linux-Distribution Xubuntu getestet, ist aber auf allen Ubuntu-Varianten und fast allen Linux-Distributionen anwendbar. Um diese Anleitung nutzen zu k\u00f6nnen muss ein Terminal benutzt werden. Achtung! Das Verschl\u00fcsseln eines Datentr\u00e4gers f\u00fchrt zum VOLLST\u00c4NDIGEN Verlust ALLER Daten auf dem betreffenden Datentr\u00e4ger. Die Daten werden auch nicht wiederherstellbar sein. Wenn irgendetwas (wichtiges) auf [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[207],"tags":[],"_links":{"self":[{"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/posts\/235"}],"collection":[{"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":10,"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"predecessor-version":[{"id":245,"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/posts\/235\/revisions\/245"}],"wp:attachment":[{"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freikaempfer.net\/b\/wp-json\/wp\/v2\/tags?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}