Home NAS mit iSCSI – Format, Crypt und gut (Teil 3/3)

Teil I (hier) zeigte die Einrichtung des Servers inkl. iSCSI-Target.

Teil II (hier) zeigte die Einrichtung des Initiators – des Clients.

Teil III zeigt nun die restlichen Arbeiten – verschlüsseln der Platte, formatieren und den “luxuriösen” Zugriff darauf.

Verschlüsseln

Alleine um sich davor zu schützen, irgendwelche Daten aus versehen – z.B. wenn man eine alte Festplatte verkauft – an “unbefugte” weiter zu geben, sollte man seine Daten verschlüsseln. Daher habe ich die Daten auf meinem Laptop verschlüsselt und mache gleiches natürlich auch mit meinem Backup.

Unter Linux gibt es mehrere Möglichkeiten Festplatten, Partitionen oder auch nur Dateien zu verschlüsseln. Ich halte LUKS / Cryptsetup (Homepage) für eine der einfachsten Möglichkeiten.

Unter Ubuntu ist cryptsetup nicht in der Standardinstallation enthalten. Von daher muss das Paket installiert werden ->

apt-get install cryptsetup

Aus dem vorhergehenden Artikel sollten wir eine weitere Festplatte im System sehen. Beispielsweise /dev/sdb. Auf dieser Platte legen wir nun eine Partition an (/dev/sdb1) und verschlüsseln diese:

cryptsetup luksFormat /dev/sdb1

Nach Aufruf dieses Befehls wird nach einer Passphrase gefragt. Diese sollte – wie jedes Passwort – möglichst sicher gewählt werden. Mit Hilfe von LUKS / Cryptsetup werden die Daten während des Schreibens auf die Festplatte verschlüsselt, bzw. während des Lesens entschlüsselt. Dadurch dauert die Initiale Verschlüsselung nicht lange. Wirklich verschlüsselte Daten gelangen erst mit der Formatierung auf den Datenträger.

Formatieren

Die Passphrase für die Platte ist eingegeben. Nun muss die Platte ein Dateisystem bekommen damit wir damit arbeiten können. Dazu muss die Platte zuerst einmal per Luks “geöffnet” werden (wir haben bisher nur den Schlüssel angelegt).

cryptsetup luksOpen /dev/sdb1 SecureISCSI

Dieser Befehl fragt nun nach der Passphrase und legt – bei korrekter Eingabe – ein Device unter /dev/mapper mit Namen “SecureISCSI” an. Dieses ist dann das wirkliche Device, mit dem wir ganz normal arbeiten können.

mkfs.ext3 -L SecureISCSI /dev/mapper/SecureISCSI

Damit ist die Platte formatiert und kann gemountet / beschrieben werden.

Um das ganze zu vervollständigen: nach dem umounten kann das “entsicherte” Device (/dev/mapper/SecureISCSI) mit dem Befehl

cryptsetup luksClose /dev/mapper/SecureISCSI

wieder “verriegelt” werden.

Luxuriöser Zugriff

Was ich mittlerweile wirklich geil finde und vorher so gar nicht gewusst habe ist, wie man diese Festplatte nun unter Ubuntu nutzen kann.

Wenn ich meinen Laptop starte und mein Server ist verfügbar, werden mir die iSCSI Platten in Nautilus (Dateimanager) angezeigt (ich habe mehrere erzeugt). Die verschlüsselten Platten werden dabei als “290 GB verschlüsselt” angezeigt, die anderen mit ihrem Label (s. mkfs.ext3 -L …). Klickt man nun auf die “290 GB verschlüsselt”, so öffnet sich ein Dialog der mich nach der Passphrase fragt. Ich gebe die Passphrase ein und bekomme die Platte gemountet – mit ihrem Label, welches das System nun nach der Entschlüsselung erkannt hat. Ich kann direkt darauf zugreifen und beispielsweise per rsync meine Daten vom Laptop sichern.

fstab

Damit das ganze so einfach funktioniert, ist eine kleine Erweiterung der /etc/fstab notwendig. Macht man das ganze ohne diese Erweiterung, so wird man nach der Passphrase gefragt, zum mounten wird der Admin Zugriff abgefragt und als normaler User hat man dann keinen Zugriff sondern nur als root.

Um das zu umgehen trägt man in der fstab folgendes ein:

LABEL=SecureISCSI       /media/SecureISCSI      ext3      defaults,user,noauto  0 1

Damit ist der mountpoint bekannt und das wichtigste – es sind Optionen gesetzt. Die interessanteste dabei ist “user”, was so viel bedeutet wie “jeder Benutzer darf dieses Device auf diesem Mountpoint mounten und es auch wieder umounten”.

Wichtig ist hier auch, dass man dem Filesystem ein Label vergibt. Die iSCSI Platten müssen nicht immer den gleichen Gerätenamen (z.B. /dev/sdb) bekommen. Je nach dem ob beispielsweise ein USB Stick eingesteckt ist, kann es auch mal /dev/sd{c,d,e,f…} sein. Hat man jedoch ein Label vergeben, so spielt das eigentliche Device keine Rolle mehr. Alternativ könnte man auch mit der UUID arbeiten.

Ich hoffe dieser Artikel war recht interessant – über Feedback würde ich mich durchaus freuen ;-)

.

7 Responses to Home NAS mit iSCSI – Format, Crypt und gut (Teil 3/3)


  1. Eike:

    Das Einhängen in Nautilus funktioniert bei mir unter Lucid Lynx 32bit auch ohne der Modifikation des fstab.

    Ja, bei mir hatte das unter Lucid 64bit auch so sehr einfach funktioniert. Versuche das gleiche gerade mit Debian 6 (LMDE), leider ohne Erfolg. Ich kann mein iSCSI nur per Terminal und su mounten. Hat evt. jemand einen Rat/Tipp für mich?

    Hier meine gekürzte Vorgehensweise:
    1) su
    2) sudo gedit /etc/iscsi/iscsid.conf
    node.startup = automatic
    3) iscsiadm -m discovery -t st -p 192.168.0.42
    4) /etc/init.d/open-iscsi restart
    5) iscsiadm -m node –targetname [meinSCSI] –portal “192.168.0.42:3260″ –login

    Wie kann nun ein User (ohne su) das iSCSI mounten?

  2. Hallo, mir hat dein drei-teiliger Artikel sehr gefallen. Ich kannte vorher gar nicht die Vorteile von iSCSI. Ist es auch möglich unter Windows dieses System zu benutzen (iSCSI, RAID)? Gruß

    • Ronny

      Hallo,
      Danke!

      Windows kann iSCSI. Allerdings kann Windows wohl nicht mit LUKS umgehen – wenigstens soweit ich weiß. Vielleicht kannst Du unter Windows eine windowseigene verschlüsselung für das iSCSI Laufwerk nutzen !?! Da kenn ich mich nicht aus ;-)

  3. Eike

    Mich beunruhigt gerade die Tatsache das ich das Verschlüsselte Laufwerk welches auf Rechner A geöffnet ist auch auf Rechner B öffnen kann. Auf Rechner A kann ich dann weiter Dateien auf dem Laufwerk bearbeiten und auf Rechner B sehe ich anscheinend nur den Status der zum Zeitpunkt des Öffnens bestand.
    Hänge schließe ich nun die Verschlüsselung auf Rechner A und B und öffne sie erneut auf Rechner B habe ich den letzten Stand von A.

    Ich habe keine Ahnung ob das ein Feature von iSCSI ist, dass zwei Initiatoren zu gleichen Zeit auf das Gerät können. Sollte dem so sein wundert mich, dass es keine Fehlermeldung von dm-crypt / cryptsetup gibt.
    Das das öffnen eines verschlüsselten Datenträgers an zwei Orten zur Zeit nicht vorgesehen ist war mir zumindest von TrueCrypt bekannt – aber das es keine Fehlermeldung gegeben hat wundert mich. Könnte natürlich sein das dm-crypt da kein Problem mit hat. Weiter mag es daran liegen das ich das Öffnen/Schließen in Nautilus und nicht in der Bash gemacht habe.

    Zur Info: Habe das ganze an einem wertlosen Testtarget probiert und nicht am Produktivtarget.

  4. Achtung! Was ich hier sehe, erinnert mich mit Schrecken an meine eigenen Fehler mit cryptsetup. Ich hatte damals so wie du, meine Crypt-Partition auf /dev/sdc angelegt. Als ich dann Ubuntu neuinstallierte, war die Folge, dass es den Masterboot-Record und damit die Header-Information mit den Verschlüsselungsinformationen überschrieb. Folge: Daten konnten nur noch teilweise gerettet werden. Meine Empfehlung daher: Partitioniere /dev/sdb und lege eine /dev/sdb1 an. Auf /dev/sdb1 kannst du dann deine Crypt-Partition aufbauen. Sichere am Besten außerdem den Cryptheader.

    • Ronny

      Du hast natürlich Recht, auch wenn es hier in diesem Fall nicht so von Bedeutung ist. Da diese Platte als iSCSI an gereicht wird, besteht quasi nicht die Gefahr die Platte während der Installation zu beschädigen – einfach weil die Platte während einer Neuinstallation noch gar nicht sichtbar ist.
      Von der anderen Seite ist es wohl eher “Best Practice” wirklich zuerst einmal eine Partition anzulegen und dann mit dieser weiter zu arbeiten.

      Ich danke Dir für den Hinweis und aktualisiere das HowTo entsprechend.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>