====== pam_panic ======
pam_panic ist ein Softwareprojekt, welches unter mindestens zwei verschiedene Linux-Distributionen getestet wurde. Es wurde auf dem [[https://media.ccc.de/v/35c3chaoswest-26-pampanic-a-linux-authentication-module-for-people-in-distress|35C3]] präsentiert.
===== Idee =====
Das Ziel ist, Daten in einer verschlüsselten LUKS-Partition zu zerstören, sobald man ein bestimmtes Passwort oder ein bestimmten USB-Stick am bereits kryptogaphisch geöffneten System eingibt; wie zum Beispiel bei einem Login-Screen oder Screensaver.
Es soll im Falle einer Bedrohung helfen, mögliche wichtige Daten, wie Zugangsschlüssel oder Passwörter zu vernichten. (Oder halt ein ganzes System, wenn wir gerade dabei sind.)
===== Rechtliche Voraussetzung =====
Man sollte sich im Rechtsstaat befinden und sicher sein, dass von exekutiver Seite keine Spiegelung der Festplatte erstellt worden ist.
===== Systemvoraussetzung =====
Ein Linux, welches eine Partition enthält, die mit LUKS verschlüsselt wurde. Ubuntu-Systeme bieten dies beim Installieren an.
Wenn man eines der folgenden Systeme benutzt, existiert dafür ein fertiges Paket, was man sich installieren kann:
* [[https://aur.archlinux.org/packages/pam_panic|Arch Linux (AUR)]]
* [[https://launchpad.net/~bandie/+archive/ubuntu/pampanic|Ubuntu (Launchpad)]]
===== Bau des Paketes =====
Falls dein Betriebssystem nicht dabei ist und es dennoch ausprobieren/verwenden möchtest, muss es für das Betriebssystem gebaut werden.
Wenn du ein altes Ubuntu Xenial benutzt, siehe dir [[https://github.com/pampanic/pam_panic/wiki/Building-from-source-with-Ubuntu-Xenial-(if-you-really-want-it)|das hier]] an.
Allgemein gesprochen gibt es folgende Abhängigkeiten:
* git
* automake
* autoconf
* make
* m4
* fakeroot
* which
* gcc
* groff
* gettext
* gawk
* pam (developer, auch libpam0g-dev)
* cryptsetup
* dialog
Wer schon mal Dinge gebaut hat, für denen ist diese Liste kaum eine Überraschung.
"dialog" wird für das Konfigurationsmenü gebraucht.
Mit einem
git clone https://git.chaospott.de/Bandie/pam_panic
holen wir uns das Projekt.
Anschließend gehen wir mit ''cd pam_panic'' in das Projekt rein und führen dieses in der Reihenfolge aus:
autoreconf -i
./configure
make
sudo make install
===== Konfiguration =====
In der Kommandozeile führt man ''sudo pam_panic_config'' auf.
Dieses Menü erstellt eine gültige pam_panic-Konfiguration.
Dabei stellt es dich vor die Wahl, ob du ein Passwort oder ein USB-Stick einrichten möchtest. Die USB-Sticks müssen GPT-formatiert sein.
Anschließend muss pam_panic noch in das gegebene System durch includes in anderen Dateien der /etc/pam.d erfolgen. Man beachte dabei die Hinweise des Konfigurationsprogramms.
Ein Beispiel für xscreensaver:
#%PAM-1.0
auth include pampanic
account include pampanic
auth include system-auth
account include system-auth
Nachdem man dieses hinzugefügt hat, ist pam_panic sofort aktiv.
In der obigen Beispiel-Konfiguration bedeutet das, dass xscreensaver zu erst nach dem pam_panic USB-Gerät oder Passwort fragen wird, bevor es das normale Benutzerpasswort verlangt.
===== Tipp: Zusätzliche Sicherheit durch Memory-Poisoning =====
Man kann den Kernel anweisen bei einem Herunterfahren bzw. Neustart den Speicher mit random-Daten zu überschreiben.
Dazu fügt man in ''/etc/default/grub'' dem Parameter ''GRUB_CMDLINE_LINUX'' folgendes an:
GRUB_CMDLINE_LINUX="[...] page_poison=on slub_debug=P"
Anschließend sollte die Config von GRUB neu erzeugt werden:
sudo grub-mkconfig -o /boot/grub/grub.cfg