Truecrypt mit Keyfiles und pam_exec automatisch mounten
Nachdem ich in im letzten Artikel kurz beschrieben habe, warum ich mich für truecrypt entschieden habe, möchte ich nun kurz zeigen, wie man mit Hilfe von pam_exec verschlüsselte Datenträger mit Schlüsseldateien einbindet.
Mein System is effektiv hat nur einen menschlichen Nutzer, daher wird im Folgenden nicht nach unterschiedlichen Nutzern unterschieden.
Ziel
Eine Zeile pro Datenträger der mit einer Schlüsseldatei mit Hilfe von pam_exec gemountet wird.
Die Integration mit pam_mount habe ich nicht in Betracht gezogen, weil mir keine Möglichkeit zum sicheren Identifizieren der Festplatten (siehe unten) ersichtlich war.
Vorgehensweise
- Verschlüsseln der Datenträger
- Identifizieren der Datenträger
- Einbindung mit pam_exec
- Tipps zum Debugging
1. Verschlüsseln des Datenträgers
Hier verweise ich auf Truecrypt im ArchLinux Wiki oder man nimmt einfach die GUI.
2. Identifizieren der Datenträger
Mittels blkid
erscheinen die verschlüsselten Datenträger leider nicht auf. Also muss man sie anders ermitteln. Da ich eine 2TB und eine 3TB Festplatte habe, musste ich gdisk
(fdisk für GPT) verwenden.
Weil ich gemischte Partitionstabellen habe (nach alter und neuer Bauart), sind die Identifizierungsnummern der Festplatten mit alter Partitionstablle mit gdisk
bei aufeinanderfolgenden Aufrufen nicht identisch:
Da ich nicht schon wieder die ganzen Daten kopieren wollte, musste ein Workaround her. Ich habe mich dann an die Seriennummern von Festplatten erinnert und mit hdparm
ermitteln können:
3. Einbindung mit pam_exec
Nun noch die Integration mit PAM.
Hierzu bitte ins Verzeichnis /etc/pam.d wechseln und die Datei login öffnen. Dort sehen wir, dass auf common-session verwiesen wird:
Dort stand bei mir bisher:
Bitte pam_exec nur als optional konfigurieren. Denn sollte etwas beim Anmelden schief gehen, würde man sich eventuell aussperren.
Das sieht dann so aus:
Aus Gründen der Darstellung liste ich <parameter> hier separat auf:
debug
allg. Flag für das Logging
log=/var/log/pam_exec.log
Skriptausgaben in diese Datei
mountTruecryptByGUID.sh
Skript zum Mounten (siehe unten)
backup_disk.key
Schlüsseldatei
Z1F1LF69
Seriennummer der Festplatte
1
Partitionsnummer z.B /dev/sda1
/backup
Mountpoint
Das Skript dazu sieht dann wie folgt aus:
Geschafft!
4. Tipps zum Debugging
- das
debug
Flag in der Konfiguration - mit dem Schalter
set -x
im Skript kann man beim Anmelden in jeder Konsole mitsudo su <Nutzername>
das Skript testen