Root Partition der SCDard verschlüsseln

In diesem Tutorial wird gezeigt, wie man die Root-Partition de Raspberry Pi verschlüsseln kann.
Die folgenden Schritte können auch auf einem bereits eingerichteten System verwendet werden. Davor sollten jedoch alle vorhandenen Daten vollständig gesichert werden!

Die folgenden Schritte wurden erfolgreich und ohne Probleme auf mehreren Raspberry Pi Installationen getestet, trotzdem muss ich an dieser Stelle wieder darauf hinweisen, dass ich keinerlei Haftung für Hardwareschäden oder Datenverlust übernehme.

Ziel ist, dass bei jedem Boot das festgelegte Passwort eingegeben werden muss , um die Root Partition zu entschlüsseln.


Achtung! Nach einem Kernel Update muss sichergestellt sein, dass initramfs neu generiert werden muss, da ansonsten der nächste Boot Vorgang fehlschlägt.

# Schritt 1: Installation der Luks Abhängigkeiten
sudo apt-get update
sudo apt-get install cryptsetup lvm2 busybox
Sudo Neustart

# Schritt 2: config.txt anpassen
sudo nano /boot/config.txt
initramfs initramfs.gz folgt Kernel

# Schritt 3: Anpassung der cmdline.txt
sudo nano /boot/cmdline.txt
root = / dev / mapper / crypt cryptdevice = / dev / mmcblk0p2: crypt

# Schritt 4: Änderung in fstab
sudo nano / etc / fstab
/ dev / mapper / crypt / ext4, noatime 0 1

# Schritt 5: Anpassung der crypttab (Achtung! Tabulatoren verwenden, keine Leerzeichen!)
sudo nano / etc / crypttab
crypt / dev / mmcblk0p2 keine luks

# Erstellen Sie ein falsches luks-Dateisystem, um cryptsetup in initramsfs einzubinden
dd if = / dev / zero von = / tmp / fakeroot.img bs = 1M Zählwert = 20
cryptsetup luksFormat /tmp/fakeroot.img
JA Passwort Passwort
sudo cryptsetup luksOpen /tmp/fakeroot.img crypt
Sudo mkfs.ext4 / dev / mapper / crypt

# Initramfs erstellen. Prüfen Sie, ob Warnungen vorhanden sind, und stellen Sie außerdem sicher, dass Cryptsetup enthalten ist.
Sudo Mkinitramfs -o /boot/initramfs.gz
lsinitramfs /boot/initramfs.gz | grep cryptsetup

# Fahren Sie das Himbeer-Pi herunter und stecken Sie die SD-Karte in Ihren Linux-PC
sudo init 0

# Mounten Sie die 2. Partition mit Ihrem PC und sichern Sie die Daten
# TODO prüft, ob eine Rohkopie des Dateisystems auch funktioniert (siehe letzten Link unten)
sudo tar -czf rpibackup.tar.gz --eines-Dateisystem -C / media / user / sdcardroot /

# Öffnen Sie das Dienstprogramm gnome disks und löschen Sie die 2. Partition.
# Erstellen Sie eine neue luks + ext4-Partition mit dem Namen "crypt".

# Mounten Sie die neue verschlüsselte Partition und stellen Sie die Sicherung wieder her
sudo tar -xpf rpibackup.tar.gz -C / media / user / crypt /
Sync

# Booten Sie Ihre Himbeere und geben Sie Ihr Passwort beim Booten ein

Passwort über ssh eingeben

# Installieren Sie einen einfachen SSH-Server für die initramfs und generieren Sie ein spezielles Schlüsselpaar
sudo apt-get install dropbear
Sudo Mkinitramfs -o /boot/initramfs.gz

# Holen Sie sich den SSH-Schlüssel und speichern Sie ihn auf Ihrem Linux-PC in einer Datei "Schlüssel".
sudo cat /etc/initramfs-tools/root/.ssh/id_rsa

# Töten Sie Cryptroot, bevor Sie ssh starten
sudo nano /etc/initramfs-tools/root/.ssh/authorized_keys
# Add vor ssh-rsa (alles in einer Zeile!)
command = "/ scripts / local-top / cryptroot && kill -9` ps | grep -m 1 'cryptroot' | cut -d '' -f 3` && exit "

# Warten Sie, bis USB-Geräte (Ethernet) angezeigt werden. Andernfalls wird Dropbear beendet
sudo nano / usr / share / initramfs-tools / scripts / init-premount / dropbear
# Wechseln Sie zu folgendem
usbdelay = 1
echo "Warte auf $ usbdelay Sekunden, damit USB aufweckt"
Schlaf $ usbdelay
configure_networking &

# Regeneriere initramfs
Sudo Mkinitramfs -o /boot/initramfs.gz

# Aktuelle IP-Adresse beachten
ifconfig
Sudo Neustart

# Versuchen Sie, von einem anderen PC aus zu ssh
ssh root@192.168.178.100 -i Schlüssel

Verschiedenes

Wenn Sie andere verschlüsselte HDD-Dateien automatisch mounten möchten, können Sie das Kennwort jetzt sicher in der Himbeer-Pis-Wurzel speichern. Sie erhalten jedoch zunächst einen Fehler beim Speichern der Passphrase im Schlüsselbund (der Name org.freedesktop.secrets wurde nicht von Servicedateien bereitgestellt). So lösen Sie diese Installation:

sudo apt-get install gnome-keyring

Links

    https://www.offensive-security.com/kali-linux/raspberry-pi-luks-disk-encryption/
    https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=102103
    https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=130268
    http://paxswill.com/blog/2013/11/04/encrypted-raspberry-pi/
    https://gist.github.com/pezz/5310082
    https://github.com/raspberrypi/firmware/issues/608