Termine planen, Nachrichten austauschen, Kundendaten verwalten, am besten auch vom Smartphone aus. Das alles und noch viel mehr sollen moderne ... (mehr)

In die Praxis

Nach den kurzen Erläuterungen zur Funktionsweise folgen zwei Beispiele für den Einsatz von Pefs. Zunächst werden grundsätzliche Dinge gezeigt, während das zweite Beispiel erläutert, wie PAM und Pefs zusammenarbeiten. Zunächst muss das neue Dateisystem installiert werden. Wie bei FreeBSD üblich, geschieht das über den Ports-Tree im Abschnitt »sysutils/pefs-kmod« :

# portmaster -d sysutils/pefs-kmod

Wie weiter oben erwähnt, bieten einige CPUs einen Crypto-Kern, der die AES-Methode implementiert. Um diesen Crypto-Kern zu nutzen, ergänzt man die Datei »/boot/loader.conf« um folgende Zeile:

aesni_load="YES"

Für eine kurze Einführung in Pefs folgt eine kleine Demonstration. Dazu legt man sich im Homedirectory ein Verzeichnis an. Beispielsweise »~/Daten« :

$ mkdir ~/Daten

Als Root-User aktiviert man jetzt Pefs. Wenn das System-Flag »vfs.usermount« auf den Wert 1 gesetzt ist, darf auch der normale Benutzer den Mount-Befehl ausführen.

$ pefs mount ~/Daten ~/Daten

Solange keine Schlüssel definiert sind, wird das Verzeichnis im Read-Only-Modus gemountet. Es werden in diesem Fall die Dateien verschlüsselt angezeigt, aber ein Schreibzugriff ist nicht möglich. Für einen sinnvollen Betrieb ruft man das Kommando

$ pefs addkey ~/Daten

auf und gibt ein Passwort beziehungsweise einen Schlüssel ein. Überprüfen lassen sich die aktiven Schlüssel mit der folgenden Eingabe:

$ pefs showkeys ~/Daten
Keys:
0 1a6feeb9cf230d88 aes256-ctr

Die Ausgabe besagt, dass der erste Schlüssel – es wird von Null an hochgezählt – nach dem Crypto-Verfahren AES mit einer Schlüssellänge von 256 Bit erstellt wurde. Das AES-Verfahren ist die Standardeinstellung. Dies lässt sich ändern, indem man bei »pefs addkey« über den Parameter »-a« den gewünschten Algorithmus angibt. Eine Liste aller verfügbaren Algorithmen zeigt »pefs showalgs« .

Nachdem ein Passwort beziehungsweise ein Schlüssel vergeben wurde, geht es ans Testen. Dazu reicht es aus, eine Datei bei aktivem Pefs zu erzeugen:

$ echo "pefs ist super!" > ~/Daten/test.txt
$ ls -Al ~/Daten
total 1
-rw-r--r-- 1 juergen users 16 Oct 1 17:41test.txt
$ cat ~/Daten/test.txt
pefs ist super!

Das sieht gut aus. Wie sieht das Verzeichnis »~/Daten« aus, wenn Pefs nicht aktiv ist? Das lässt sich schnell zeigen:

$ pefs unmount ~/Daten
$ ls -Al ~/Daten
total 1
-rw-r--r-- 1 juergen users 16 Oct 1 17:41 .GG6eudxZGtOp6Ry_2Z3Sl+tq2VV3O81jq
$ hd ~/Daten/.GG6eudxZGtOp6Ry_2Z3Sl+tq2VV3O81jq
00000000 45 c6 7a fe fc 99 5c 38 fc d8 2d e0 56 c2 65 32 |E.z...\8..-.V.e |

Wie man leicht erkennt, sind sowohl der Dateiname »test.txt« als auch der Inhalt verschlüsselt dargestellt. Bei deaktiviertem Pefs erhält man somit keinen Einblick in die Daten. Es ist nicht einmal möglich, vom Dateinamen auf den Inhalt zu schließen.

PAM und Pefs

Das Pefs-System bringt im Gegensatz zu GELI auch PAM-Support mit. Das ermöglicht – wie im folgenden Beispiel beschrieben – die Verschlüsselung eines bereits vorhandenen Homedirectories. Dabei gilt es zu beachten, dass das Verzeichnis kein symbolischer Link ist, sondern einen realen Pfad darstellt, ansonsten weigert sich Pefs zu funktionieren. Um das zu vermeiden, korrigiert man die Angabe des Homedirectories manuell mit

#pw user mod $user -d $homedir

Im nächsten Schritt wird die verschlüsselte Dateisystemebene generiert und man vergibt ein Passwort als Masterpasswort:

#pefs addchain -fZ -a aes256-ctr $home
Enter parent key passphrase:
Reenter parent key passphrase:

Danach wird das Verzeichnis eingehängt und das Passwort vergeben, das später für die Authentifizierung verwendet werden soll.

#pefs mount $home $home
#pefs addkey -c $home
Enter passphrase:

Das hier einzugebende Passwort darf nicht mit dem in der User-Datenbank »/etc/passwd« identisch sein, sonst funktioniert das Login nicht mehr! Wenn es bis hierher keine Fehlermeldungen gab, dann erfolgt im nächsten Schritt die Integration in den PAM-Dienst von FreeBSD. Das verschafft den Vorteil, dass nach der erfolgreichen Authentifizierung das Pefs-System automatisch aktiviert wird. Das Pefs-Paket beinhaltet ein Modul, das in das PAM-System von FreeBSD eingebunden wird: »pam_pefs.so« . Damit das Modul die Möglichkeit hat, die gespeicherten Passwörter zur Authentifizierung heranzuziehen, muss man die Berechtigungen der Pefs-Datenbank anpassen:

#chown $user:$group $home/.pefs.db

Um das PAM-Modul zu aktivieren, trägt man es in die PAM-Konfiguration »/etc/pam.d/system« ein. Wenn ein grafischer Login-Manager wie KDM verwendet wird, muss »pam_pefs« in der gleichen Art und Weise eingetragen werden.

Als abschließenden Schritt muss man noch dafür sorgen, dass pefs initialisiert wird. Dazu schreibt man am besten in »/etc/rc.local« folgende Zeile

/usr/local/sbin/pefs mount $home $home

Dem produktiven Einsatz steht nach einem Systemneustart nichts mehr im Wege. Sobald das grafische Login KDM, GDM oder XDM erscheint, gibt man das für Pefs vergebene Passwort ein. Nach erfolgreichem Login erhält man seine Daten dechiffriert wieder.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021