Vorbereitung Teilverschlüsselung

Achtung!

Das Verschlüsseln von Daten kann der Sicherheit bei der Wahrung der Privatsphäre oder sensibler Daten dienen, beinhaltet aber in der Konsequenz, dass eine eventuell zukünftig notwendige Datenrettung durch eine manuelle Entschlüsselung erschwert werden kann. Eine Entscheidung für oder gegen eine Datenverschlüsselung sollte daher nicht leichtfertig erfolgen. Empfohlen wird eine individuelle Nutzen-Risiko-Abwägung bezogen auf Anwendungsbereich, Computerkenntnisse des Nutzers oder ähnliche Faktoren, um die Gefahr eines späteren Datenverlusts zu minimieren.

Ohne ein sicheres Kennwort nutzt die stärkste Verschlüsselung nichts! Wie man Passwörter am besten wählt, steht hier: Sicherheits-Einmaleins/Passwörter

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Einen Editor mit Root-Rechten öffnen

  2. Ein Terminal öffnen

  3. Gerät mit Pseudozufallszahlen überschreiben

  4. Verschlüsselte Partitionen mit LUKS

Inhaltsverzeichnis
  1. Swap
  2. Temp-Ordner
  3. Locate

Bei einer Teilverschlüsselung wie z.B. nur des Home-Ordners, besteht immer die Möglichkeit, dass relevante Daten unverschlüsselt auf der Festplatte gespeichert werden. Auf die häufigsten Ursachen für eine unerwünschte Auslagerung wird hier eingegangen und Möglichkeiten beschrieben, dies zu verhindern.

Generell ist es besser, das ganze System zu verschlüsseln, da sonst immer die Gefahr besteht, dass durch irgendwelche Programme oder fehlerhafte Benutzeraktionen Daten in unverschlüsselten Bereichen landen.

Hinweis:

Alle folgenden Befehle benötigen Root-Rechte. Man sollte also entweder immer sudo vor das betreffende Kommando setzen oder mit sudo -s Root-Status erlangen!

Swap

In der Swap werden Teile des Arbeitsspeicher ausgelagert und bei Nutzung des Ruhezustand wird der gesamte Inhalt in dieser gesichert, sodass alle gerade verwendeten Daten samt Passwörtern unverschlüsselt auf der Festplatte abgelegt werden.

Für alle drei Varianten muss die laufende Swap ausgehängt werden, das geschieht mit diesem Befehl [2]:

swapoff -a 

Achtung!

Aus Sicherheitsgründen sollte die Swap-Partitionen unabhängig von der Wahl der folgenden Varianten ein mal mit Zufallszahlen überschrieben werden [3], da in dieser noch relevante Daten gespeichert sein könnten.

Deaktivierung

Am einfachsten ist es gar keine Swap-Partition zu verwenden, was bei Systemen mit 2GB-4GB und mehr Arbeitsspeicher kein Problem sein sollte, jedoch ist dann die Nutzung des Ruhezustandes nicht möglich. Dies sollte am besten schon bei der Installation berücksichtigt werden. Wurde das System bereits installiert lässt sich die Swap einfach deaktivieren, jedoch bliebe die Partition dann ungenutzt.

Um die Swap zu deaktivieren wird aus der Datei /etc/fstab die folgende Zeile entfernt [1]. Die drei Punkte sind ein Platzhalter für die Gerätebezeichnung.

... none swap sw 0 0

Mit den zwei Befehlen [2] wird der Ruhezustand im Kernel deaktiviert:

rm /etc/initramfs-tools/conf.d/resume
update-initramfs -u -k all 

Gnome-Nutzer können den Ruhezustand zusätzlich in der GUI deaktivieren.

Hinweis:

Dieser Befehl muss mit Anwenderrechten, also ohne sudo ausgeführt werden.

gconftool-2 -s -t bool /apps/gnome-power-manager/general/can_hibernate false 

Verschlüsselung

Sollte eine Swap benötigt werden, ist es auch möglich diese zu verschlüsseln. Da LUKS zum Verschlüsseln verwendet wird, müssen, falls noch nicht geschehen, die dort beschriebenen Vorbereitungen durchgeführt werden.

Ohne Ruhezustandsunterstützung

Achtung!

Bei diesem Verfahren wird bei jedem Start mindestens der Anfang der angegebene Partition überschrieben. Sollte sich durch einen Festplattenumbau oder eine Änderung der Biosoptionen die Festplattenbezeichnung ändern, wird ohne Rückfrage die besagte Partition auf der anderen Festplatte überschrieben. Aus diesem Grund sollte das Verfahren nur auf Computern eingesetzt werden, bei denen diese Gefahr nicht besteht.

Die einfachste Variante ist es die Swap mit einem zufälligen Passwort zu verschlüsseln. Der Vorteil ist, dass das System ohne extra Benutzerabfrage startet, jedoch funktioniert im Zuge dessen der Ruhezustand nicht.

Dazu wird die folgende Zeile in die Datei /etc/crypttab am Ende eingefügt [1], wobei <Partition> vorher gegen die entsprechende Swap-Bezeichnung ausgetauscht werden muss, z.B. sde9:

swap  /dev/<Partition>  /dev/urandom  swap,cipher=aes-xts-plain,size=256

In der Datei /etc/fstab muss die ursprüngliche Swap-Konfigurationszeile durch die folgende ersetzt werden [1]:

/dev/mapper/swap none swap sw 0 0

Mit den beiden folgenden Befehlen [2] wird der Ruhezustand im Kernel deaktiviert:

rm /etc/initramfs-tools/conf.d/resume
update-initramfs -u -k all  

Gnome-Nutzer können den Ruhezustand zusätzlich in der GUI deaktivieren.

Hinweis:

Dieser Befehl muss mit Anwenderrechten, also ohne sudo ausgeführt werden.

gconftool-2 -s -t bool /apps/gnome-power-manager/general/can_hibernate false 

Mit Ruhezustandsunterstützung

Wird der Ruhezustand benötigt, muss bei jedem Start des Systems ein zusätzliches Passwort eingegeben werden.

Zuerst wird ein LUKS-Gerät erstellt und geöffnet [4] , wobei <Partition> vorher durch die entsprechende Swap-Partition ersetzt werden muss, z.B. sde9:

cryptsetup -c aes-xts-plain -s 256 luksFormat /dev/<Partition> 
cryptsetup luksOpen /dev/<Partition> swap
mkswap /dev/mapper/swap 

Danach muss die UUID der verschlüsselten Partition ermittelt werden.

blkid /dev/<Partition> 

Die folgende Zeile wird in die Datei /etc/crypttab am Ende eingefügt [1], wobei <VOLUME_ID> vorher durch die ermittelte UUID ersetzt werden muss:

swap UUID=<VOLUME_ID> none luks

Zusätzlich wird die diese Eingabe in die Datei /etc/initramfs-tools/conf.d/resume eingetragen [1].

RESUME=/dev/mapper/swap

Anschließend wird in der Datei /etc/fstab die ursprüngliche Swap-Konfigurationszeile durch die folgende ersetzt [1]:

/dev/mapper/swap none swap sw 0 0

Um die Startdateien zu aktualisieren, muss noch

update-initramfs -u -k all 

ausgeführt werden.

Experten-Info:

Um mit einer Passworteingabe während des Kernelstarts mehrere verschlüsselte Partitionen [4] freizuschalten kann die LUKS-Schlüsselableitung verwendet werden.

Damit könnte z.B. zusätzlich eine verschlüsselte Home-Partition geöffnet werden, was in Verbindung mit dem GDM-Autologin den Startvorgang auf eine Passwortabfrage reduzierte.

Temp-Ordner

Wie der Name schon sagt enthalten diese temporäre Dateien, welche von zahlreichen Programme erstellt werden und sich häufig aus Kopien von Dokumenten, Bildern und dergleichen zusammen setzen.

Zuerst werden mit diesen Befehlen die bestehenden Temp-Ordner geleert. Sollten Ordner nicht gelöscht werden können, ist das kein Problem.

Achtung!

Vor der Ausführung dieser Befehle sollten alle wichtigen Daten gespeichert und nicht benötigte Programme geschlossen werden!

rm -r /tmp /var/tmp
mkdir -m 1777 /tmp
ln -s /tmp /var/tmp 

Verlagerung in den Arbeitsspeicher

Es ist möglich die beiden Tempordner in den Arbeitsspeicher auszulagern, jedoch steht dafür maximal die Hälfte des Arbeitsspeichers zu Verfügung und somit ist der verfügbare Speicherplatz relativ gering. Normalerweise sollte dieser aber bei 1024 MB oder mehr RAM ausreichen und vielen Programme bieten eine Option zur Auswahl eines alternativen Tempverzeichnisses.

Um die temporären Dateien in den Arbeitsspeicher zu verlagern wird die folgende Zeile in die Datei /etc/fstab eingetragen [1]:

none  /tmp  tmpfs  defaults  0  0

Im Anschluss daran sollte das System direkt neu gestartet werden.

Verschlüsselung

Achtung!

Bei diesem Verfahren wird bei jedem Start mindestens der Anfang der angegebene Partition überschrieben. Sollte sich durch einen Festplattenumbau oder eine Änderung der Biosoptionen die Festplattenbezeichnung ändern, wird ohne Rückfrage die besagte Partition auf der anderen Festplatte überschrieben. Aus diesem Grund sollte das Verfahren nur auf Computern eingesetzt werden, bei denen diese Gefahr nicht besteht.

Alternativ ist es möglich die temporären Dateien auf einer mit einem zufälligen Passwort verschlüsselten Partition abzuspeichern, jedoch wird dazu eine separate Partition benötigt, die für nichts anderes verwendet werden kann.

Da LUKS zum Verschlüsseln eingesetzt wird, müssen, falls noch nicht geschehen, die dort beschriebenen Vorbereitungen durchgeführt werden.

Achtung!

Es ist aus Sicherheitsgründen empfehlenswert die Partitionen ein mal mit Zufallszahlen zu überschreiben, vor allen Dingen, wenn vorher auf diesen unverschlüsselte Daten gespeichert waren. [3] Ansonsten sind unter Umständen viele alte Daten nach dem Verschlüsseln noch auslesbar.

Die folgende Zeile wird in die Datei /etc/crypttab am Ende eingefügt [1], wobei <Partition> vorher durch die entsprechende Tmp-Partition ersetzt werden muss, z.B. sde8:

tmp /dev/<Partition>  /dev/urandom  tmp,cipher=aes-xts-plain,size=256

Anschließend wird in der Datei /etc/fstab diese Zeile eingetragen [1]:

/dev/mapper/tmp  /tmp  ext2  defaults  0  0

Im Anschluss daran sollte das System direkt neu gestartet werden.

Locate

Locate ist ein Programm, mit dessen Hilfe nach Dateien gesucht werden kann. Dazu wird eine Datenbank von Dateien und Ordnern angelegt, die regelmäßig vom System aktualisiert wird. Damit das nicht für verschlüsselte Bereiche geschieht, musst die Datei /etc/updatedb.conf [1] editiert werden, und zur Zeile PRUNEPATHS die verschlüsselten Verzeichnisse hinzugefügt werden, wie z.B. /home.

Im Falle des Beispiels sähe die Zeile dann wie folgt aus:

PRUNEPATHS="/tmp /var/spool /media /home"