====== 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