Verschlüsselte Container

Da ich ein wunderbares HowTo gefunden habe muss ich zum Vorgehen keine weiteren Ausführungen machen, denke ich. Falls jemand Fragen hat sollten sie hier in den Kommentaren gepostet werden.

Mit dem Einverständnis von Aaron Spettl kopiere ich das HowTo nach hier. Redundanz schadet nie.

Die einzige Anpassung, die ich vornehme, ist das Dateisystem von ext2 auf ext4 zu aktualisieren.

Ziel:

Ein verschlüsselter Container, den man bei Bedarf in das Dateisystem einbindet. Dies soll ohne Neukompilieren des Kernels funktionieren und keine besonderen Pakete benötigen – sowie in meinem Fall auch unter Debian Testing lauffähig sein.

Pakete:

Wir installieren cryptsetup und loop-aes-utils.

1. Erstellen der Containerdatei

An einem beliebigen Ort legen wir die Datei an, die unsere Daten speichern soll – hier 10 GB groß (mit Zufallsdaten gefüllt):

dd if=/dev/urandom of=/home/user/daten.safe bs=1M count=10240

2. Loop-Device

Als root legen wir ein Device an, das einfach auf diese Datei verweist:

losetup /dev/loop0 /home/user/daten.safe

3. Verschlüsselung einrichten

Wir richten nun die Verschlüsselung (Standard: AES mit 256 Bit) auf diesem Device ein – dabei muss das Kennwort angegeben werden:

cryptsetup -y create datensafe /dev/loop0

4. Formatierung

Der Container ist nun im System unverschlüsselt unter /dev/mapper/datensafe vorhanden. Nun richten wir das Dateisystem ein (hier ext4):

mkfs.ext4 /dev/mapper/datensafe

5. Mount

Nach der Formatierung können wir das Device unter einem beliebigen Verzeichnis einhängen (das existieren muss):

mount -t ext4 /dev/mapper/datensafe /mnt/datensafe

Nun kann man auf /mnt/datensafe ganz normal arbeiten, also speziell auch Zugriffsberechtigungen (restriktiv) setzen.

6. Aushängen

umount funktioniert ganz normal, danach noch den Container schließen und das Loopdevice freigeben:

umount /mnt/datensafe/
cryptsetup remove datensafe
losetup -d /dev/loop0

Tipp: Automatisierung mit sudo

Der mount/umount-Prozess inklusive Öffnen/Schließen des Loopdevices und des Containers kann man in ein Skript packen (und auf einem Ubuntu-System dem User mit sudo die Rechte dafür geben).

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/sh
# datensafe_mount.sh
 
LOOPDEV=/dev/loop0
SAFE=/home/user/datensafe
CRYPTNAME=datensafe
MNT=/mnt/datensafe
FS=ext4
 
/sbin/losetup $LOOPDEV $SAFE
/sbin/cryptsetup create $CRYPTNAME $LOOPDEV
/bin/mount -t $FS /dev/mapper/$CRYPTNAME $MNT

und

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
# datensafe_umount.sh
 
LOOPDEV=/dev/loop0
SAFE=/home/user/datensafe
CRYPTNAME=datensafe
MNT=/mnt/datensafe
 
/bin/umount $MNT
/sbin/cryptsetup remove $CRYPTNAME
/sbin/losetup -d $LOOPDEV

Full-Disk-Encryption

Zu einer FDE kommt man heute mit jedem handelsüblichen Debian oder *buntu-System auf denkbar einfache Weise. Ich gehe davon aus, dass das auch bei den meisten anderen Standard-Distros so ist, kann das aber weder verifizieren noch falsifizieren.

Man startet die Installation, hangelt sich durch bis zum Partitionsmenü und stellt dann auf “Geführt, verwende vollständige Festplatte mit verschlüsseltem LVM” um. Danach folgt man den Anweisungen weiter, installiert das Grundsystem und fertig ist der Lack.

Zu einfach?

Richtig.

Für den Standardfall “eine Festplatte im Rechner verbaut und der Rechner ist ein Linux-Only-Gerät” reicht diese Vorgehensweise aus, man muss sich also dank der grandiosen Vorarbeit der Debian-Developers nicht mal mehr groß Gedanken darum machen.

Wenn man jetzt allerdings mehr als eine Platte hat und diese auch alle nutzen möchte, sieht das Ganze schon etwas schwieriger aus.

Dazu folgt man ebenfalls dem Standard-Installations-Menü bis zur Partitionierung und wählt dann “Manuell” aus.

Je nach Einsatzzweck ist zunächst das Software-RAID zu konfigurieren. Wenn man die Festplatten nicht redundant genutzt werden sollen sondern sämtlicher Speicherplatz ausgenutzt wird kann man sich das RAID sparen.

Dann konfiguriert man den LVM. Dabei steht LVM für Logical Volume Manager, der Link geht dabei zum sehr gut recherchierten und aufbereiteten Wikieintrag bei den Ubuntuusers. Das dort hinterlegte Wissen ist von hier ab als gegeben angenommen. Ich empfehle, alle nicht benutzten Partitionen zu einer LVG (Logical Volume Group), im Folgenden als lvg bezeichnet, zusammenzufassen und dort dann die Volumes anzulegen. Die wichtigen Volumes sind:

– lvg-boot, ca. 200MB bis 1GB, abhängig davon, wie viel Platz man zur Verfügung hat. Ich lasse bei meinen Systemen immer gern Luft nach oben, um für eventuelle Erweiterungen des Codes gerüstet zu sein.
– lvg-swap, sollte ca. doppelt so groß sein wie der Arbeitsspeicher.
– lvg-main, kann der verbleibende Rest des Speicherplatzes sein, falls keine separate /home-Partition angelegt werden soll. Hier finden wir später die /-Partition wieder.
– ggf. lvg-home, falls eine eigene /home-Partition angelegt wird.

Wenn die Volumes angelegt sind wird im Partitionsmenü der Punkt “Verschlüsselte Datenträger konfigurieren” aufgerufen. Hierbei werden alle Volumes außer lvg-boot ausgewählt. Die boot-Partition darf natürlich nicht verschlüsselt werden, sonst bekommt man eine hässliche Fehlermeldung und kann von vorn anfangen.

Die Installationsroutine geht jetzt ein Volume nach dem anderen durch und lässt die Einstellungen abnicken, mit denen die Verschlüsselung eingeleitet wird.

Achtung: Ubuntu setzt hier mehr auf Geschwindigkeit als auf Sicherheit und schlägt vor, die Daten auf den Platten nicht zu löschen. DAVON RATE ICH STRIKT AB! Wenn man größtmögliche Sicherheit haben will, lässt man die Daten überschreiben. Mehrfach. Dazu muss allerdings bei Ubuntu in besagtem Einstellungsmenü ausgewählt werden, dass man die Daten löschen möchte. Das passiert dann automatisch, kann allerdings abhängig von der Partitionsgröße und der Rechenpower eine Weile dauern.

Wenn man die Verschlüsselungs-Einstellungen hinter sich hat landet man wieder im Partitionsmenü. Hier werden jetzt die angelegten Volumes ausgewählt und mit Dateisystemen und Mountpoints versehen. lvg-boot bekommt ein ext3-Dateisystem und wird auf /boot eingehängt, lvg-swap_crypt wird als Auslagerungsspeicher verwendet, dadurch fällt der Mountpoint weg und lvg-main_crypt bekommt ein ext4-Dateisystem und wird auf / eingehängt.

Jetzt werden die Änderungen gespeichert und die Installation fortgesetzt. Ab hier läuft wieder alles nach Standard-Vorgehensweise und die Installationsroutine tut ihre Arbeit.

Wem das jetzt immer noch zu einfach war, dem lege ich diese Anleitung zur Installation eines verschlüsselten Linux Mint Debian Edition (LMDE) ans Herz.

Auch die exzellenten Artikel des Linux-Magazins bzw. des Linux-Users kann ich dazu sehr empfehlen, die Heftnummern reiche ich auf Wunsch gern nach.

Festplattenverschlüsselung – Wie?

Nachdem ich schon im letzten Artikel erklärt habe, warum die Verschlüsselung einer Festplatte so wichtig ist, komme ich heute endlich dazu, aufzuschreiben, wie man sein System nun absichert.

Die Verzögerung begründet sich in einer längeren Geschichte, in der unter anderem ein widerspenstiger Eee-PC, ein Campingurlaub und ein kaputter USB-Stick eine Rolle spielen. Dazu vielleicht in einem anderen Blogeintrag mehr.

Zunächst ist es wichtig, zwischen der Vollverschlüsselung (Full Disk Encryption, FDE) und einem so genannten Container zu unterscheiden.

Bei der Vollverschlüsselung wird, wie schon der Name sagt, die komplette Festplatte (bis auf die boot-Partition) verschlüsselt. Bei einem Container wird ein einzelner Ordner (oder auch eine ganze Partition, z.B. /home) verschlüsselt.

Die Container-Lösung ist immer dann sinnvoll, wenn man Daten möglichst sicher über ein unsicheres Medium transferieren will. Man erstellt einen Container, legt seine Daten dort ab und kopiert den Container in seinen Webspace, von wo aus zwar jeder die Daten herunterladen kann, aber nur diejenigen auch etwas damit anfangen können, die das Passwort dazu haben. Wichtig dabei ist: Wenn man Dateien in einen Container legt, kann es immer noch sein, dass Teile davon im Swap-Bereich verbleiben, wo sie dann von einem Angreifer gefunden werden könnten. Das heißt, dass Container per se weniger sicher sind als die FDE. Dennoch haben sie, wie oben bereits angeführt, ihre Berechtigung.

Auf der sicheren Seite, wenn es darum geht, seine eigenen Daten vor Unbefugten zu schützen ist man, wenn man sein System vollverschlüsselt.

ACHTUNG: Auch hier gilt, wie bei allen anderen Sicherheitssystemen auch: Sobald ein physischer Zugriff auf das System möglich ist, kann die Sicherheit nicht mehr gewährleistet werden. Wie man an diesem Beispiel sieht, muss man davon ausgehen, dass jeder Fremdzugriff das System kompromittiert. Mit einer FDE wäre der Geschäftsmann vermutlich besser gefahren, hätte sich aber im Zweifel nicht schützen können. Dennoch, so lange man es nicht mit Sicherheitsbehörden zu tun hat, die überdurchschnittlich viel Zeit und Geld haben, ist eine Vollverschlüsselung sinnvoll.

Der guten Ordnung halber trenne ich den Artikel hier in die Anleitung für FDE und die Anleitung für Container.

Kurztipp: Tooltipp im IceWM umplatzieren

Onli schreibt zum Tooltipp im IceWM folgendes:

Wenn ShowWorkspaceStatus an ist, wird in einer kleinen Nachricht der Name der aktuellen Arbeitsfläche angezeigt. Diese Nachricht liegt immer knapp über der Taskbar. Wird diese gar nicht angezeigt, z.B. weil ein Dock ihre Funktion übernimmt das von der Nachricht blöderweise fast verdeckt wird, bekommt man die Anzeige scheinbar nur dort weg, indem man die gesamte unsichtbare Taskbar per TaskBarAtTop=1 nach oben legt.

Da ich mich mit dem IceWM nicht wirklich auskenne, bedanke ich mich bei Onli, und übernehme ich das mal so wie es ist.

Lange nichts gehört …

Ihr habt hier lange nichts von mir gehört. Das liegt daran, dass ich momentan ziemlich eingespannt bin und mich mit diesem Thema beruflich extrem auseinandersetzen muss. Da fehlte mir in letzter Zeit Lust und mir fiel einfach kein passendes Thema ein. Markus hat ja in der Zwischenzeit schon fleißig Beiträge geschrieben. Aber ich verspreche, dass ich ab dem Herbst oder Winter mich hier wieder aktiv mit Themen beteiligen werde. Bis dahin wollte ich an dieser Stelle nur mal ein Lebenszeichen von mir geben. Damit ihr nicht glaubt, dass ich vom wahren Glauben abgewichen und zur Winzigweich-Fraktion übergelaufen bin