Sie sind hier: Startseite / Benutzerinnen und Benutzer / Paul Riegel / Betriebssystem / LMDE / Installation LMDE 3 mit Verschlüsslung

Installation LMDE 3 mit Verschlüsslung

Installation von Linux Mint Debian Edition (LMDE) Version 3 in Verbindung mit verschlüsselten Partitionen (mit Ausnahme von /boot), die das gesamte Betriebssystem und eigenständige Partition von /home beheimaten

 

Erklärung

 

Linux Mint ist 2018 (und auch schon viele Jahre zuvor) nach den Angaben von DistroWatch das (fast) häufigste heruntergeladene Betriebssystem.

Das übliche Linux Mint basiert jedoch auf Ubuntu, was auch (nahezu) alle (Vorteile- und) Nachteile von Ubuntu mit sich bringt. Ergänzend dazu gibt es die spezielle sogenannte (Linux Mint) Debain Edition, bei welcher das nicht so direkt ist. Ein großes Manko ist die fehlende geführte Installation mit dem Verschlüsseln der Festplatten. Diese Anleitung soll eine Unterstützung zur Bewältigung dieses Vorgangs sein.

Es ist (voller Hoffnung) durch die Bereitstellung einer weiteren Option als alternatives Programm für die Installation Calamares absehbar, dass mittelfristig das nachfolgende "Rumgekrebse" obsolet wird. Im Übrigen gibt es auch aktuell schon Scripte, die zu einer Installation mit einer verschlüsselten Festplatte führen sollen, wobei jedoch keine Variante bei der Verwendung von LMDE 3 erfolgreich getestet wurden konnte.

Bewusst (komplex) stellt diese Anleitung das Verschlüsseln von mehreren Partitionen dar. Das ist nicht zwangsläufig. Auf das Erstellen, Verschlüsseln und Nutzen einer eigenständigen Partition für /home (Verzeichnis für die Daten der Benutzerinnen und Benutzer) kann verzichtet werden. Das gilt auch für das Erstellen einer Partition für die Auslagerung von Arbeitsspeicher (SWAP). Auch die erst einmal völlig unnötige Partition (hier nachfolgend als "backup" bezeichnet) braucht es nicht. Jedoch soll soll mit dieser Anleitung auch mit aufgezeigt werden was beispielsweise für den Fall des Nutzens von mehreren Partitionen möglich sein könnte. Das kann die Verwendung von weiterer Betriebssystemen oder weiterer Festplatten sein.

 

VariableBedeutung
/dev/sda
  • Bezeichnung der Festplatte als Gerät im Betriebssystem
  • Die Bezeichnung wird vom Betriebssystem vergeben.
root Label der 2. Partition der Festplatte für /
boot Label der 1. Partition der Festplatte für /boot
home Label der 3. Partition der Festplatte für /home
backup Label der 4. Partition der Festplatte, die erstmal nicht verwendet wird
Reee Bezeichnung für die entschlüsselte 2. Partition der Festplatte
andR Bezeichnung für die entschlüsselte 3. Partition der Festplatte
vg-Reee Bezeichnung der Volumengruppe für das Hauptsystem mit allen Dateien des Betriebssystems (mit Ausnahme von /boot)
vg-andR Bezeichnung der Volumengruppe für /home mit den Daten der Benutzerinnen und Benutzer
vg-Reee-swap Bezeichnung für das Volumen für die Auslagerung von Arbeitsspeicher
vg-Reee-system Bezeichnung für das Volumen für das Betriebssystem
vg-andR-home Bezeichnung für das Volumen mit den Daten der Benutzerinnen und Benutzer
lv-swap Bezeichnung für das Label des logischen Volumens für die Auslagerung von Arbeitsspeicher
lv-system Bezeichnung für das Label des logischen Volumens für das Betriebssystem
vg--Reee-lv--swap (sich dann ergebende) Bezeichnung für die Zuweisung des Volumens für die Auslagerung von Arbeitsspeicher
vg--Reee-lv--system (sich dann ergebende) Bezeichnung für die Zuweisung des Volumens für das Betreibssystem
vg--andR-lv--home (sich dann ergebende) Bezeichnung für die Zuweisung des Volumens mit den Daten der Benutzerinnen und Benutzer
/target
  • zu erstellendes Verzeichnis, um dorthin Partitionen einzuhängen wohin installiert werden soll
  • Die Bezeichnung wird vom Betriebssystem vergeben.

 

vor der Installation

 

Partitionierung der Festplatte

 

Ziel der exemplarischen Partition

 

Anzeigen der Partitionierung der Festplatte (nur zu demonstrativen Zwecken, damit zu erkennen ist, was nach der nachfolgenden Abhandlung erstellt werden soll)

fdisk -l /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00017ae0

Device Boot Start End Blocks Id System
/dev/sda1 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 106956799 52428800 83 Linux
/dev/sda3 106956800 541863935 217453568 83 Linux
/dev/sda4 541863936 976773119 217454592 83 Linux

 

Partitionierung mit grafischer Oberfläche

 

Für den Fall, dass das nicht so (oder so ähnlich) aussieht, so einfach GParted benutzen und entsprechend einrichten.

PartionFile SystemLabelSizeAnmerkung
New Partition #1 ext4 boot 2.00 GiB
New Partition #2 linux-swap swap 4.00 GiB nachfolgend nicht einbezogen (Auslagerung von Arbeitsspeicher erfolgt über die die 3. Partition)
New Partition #3 ext4 root Rest
New Partition #4 ext4 was auch immer Anteil vom Rest, wenn gewuenscht nachfolgend nicht einbezogen

 

Partitionierung über die Kommandozeile (als Alternative zur grafischen Oberfläche)

 

Alternativ kann selbstverständlich die Partionierung auch per Kommandozeile erfolgen.

 

Wer sich auf die Kommandozeile wagt, meint es oft ernst. Daher noch eine kleine Ergänzung.

Über die gesamte Festplatte können (sollten) pauschal Zufallszahlen geschrieben werden. (Kaffee und Kuchen für die Überbrückung der zu erwartenden nicht unerheblichen Wartezeit bietet sich an.)

dd if=/dev/urandom of=/dev/sda bs=2048 count=1

Statt 2048 würde bei einem PC auch 512 ausreichen. Schaden kann es jedoch nicht. (2048 ist eigentlich für Kisten von SUN kozipiert.)

 

Partionierung mit fdisk

 

Partionierung mit gdisk

 

Verschlüsslungen der Festplatten

 

Verschlüsseln der 2. Partition (root) der Festplatte

sudo cryptsetup -c aes-xts-plain64 -s 512 luksFormat /dev/sda2

 

Öffnen der 2. Partition (root) der Festplatte mit einer (selbst bestimmten) Bezeichnung Reee

sudo cryptsetup luksOpen /dev/sda2 Reee

 

Erstellen der Anbindung des physischen Volumens Reee

sudo pvcreate /dev/mapper/Reee

 

Erstellen und Anbinden einer Gruppe von Volumen vg-Reee an dem Volumen, welches an Reee angebunden ist

sudo vgcreate vg-Reee /dev/mapper/Reee

 

Erstellen eines logischen Volumens von 10 GB mit der Bezeichnung lv-swap in der virtuellen Gruppe vg-Reee

sudo lvcreate -L 10G -n lv-swap vg-Reee

Erzeugen des Systems für SWAP, wo vg--Reee-swap (Achtung: nicht vg-Reee-swap) angebunden ist

sudo mkswap /dev/mapper/vg--Reee-lv--swap

 

Erstellen eines logischen Volumens mit der 100%-igen Größe der verbliebenen Größe mit der Bezeichnung lv-system in der virtuellen Gruppe vg-Reee

sudo lvcreate -l 100%FREE -n lv-system vg-Reee

Erzeugen des Dateisystems EXT4, wo vg--Reee-system (Achtung: nicht vg-Reee-system) angebunden ist

sudo mkfs.btrfs /dev/mapper/vg--Reee-lv--system

 

 

Verschlüsseln der 3. Partition (home) der Festplatte

sudo cryptsetup -c aes-xts-plain64 -s 512 luksFormat /dev/sda3

 

Öffnen der 3. Partition (home) der Festplatte mit einer (selbst bestimmten) Bezeichnung andR

sudo cryptsetup luksOpen /dev/sda3 andR

 

Erstellen der Anbindung des physischen Volumens andR

sudo pvcreate /dev/mapper/andR

 

Erstellen und Anbinden einer Gruppe von Volumen vg-andR an dem Volumen, welches an andR angebunden ist

sudo vgcreate vg-andR /dev/mapper/andR

 

 

Erstellen eines logischen Volumens mit der 100%-igen Größe der restlichen Grüße in der virtuellen Gruppe vg-Reee

sudo lvcreate -l 100%FREE -n lv-home vg-andR

Erzeugen des Dateisystems EXT4, wo vg--andR-home (Achtung: nicht vg-andR-home) angebunden ist

sudo mkfs.btrfs /dev/mapper/vg--andR-lv--home

 

während der Installation

 

Partitionen der Festplatte manuell einhängen

 

Erstellen eines (des) Verzeichnisses, wohin die Partitionen einhängt werden sollen, um dorthin zu Installieren

sudo mkdir /target

 

Einhängen der Partitionen, wohin Installiert werden soll

sudo mount /dev/mapper/vg--Reee-lv--system /target
sudo mkdir /target/boot
sudo mount /dev/sda1 /target/boot
sudo mkdir /target/home
sudo mount /dev/mapper/vg--andR-lv--home /target/home

 

GRUB installieren lassen

 

bei der grafischen Oberfläche zur Installtion /dev/sdb auswählen

 

Betriebssystem installieren lassen

 

neues Betriebssystem einrichten

 

sudo chroot /target

 

Erstellen (Bearbeiten) der Datei fstab

nano /etc/fstab
/dev/sda1                      /boot    ext4    errors=remount-ro    0    2
/dev/mapper/vg--Reee-lv--swap none swap sw 0 0
/dev/mapper/vg--Reee-lv--system / btrfs defaults 0 1
/dev/mapper/vg--andR-lv--home /home btrfs defaults 0 2

 

Erstellen (Bearbeiten) der Datei crypttab

nano /etc/crypttab
Reee    /dev/sda2    none    luks
andR /dev/sda3 none luks

 

Alternativ kann zum Erstellen (Bearbeiten) der Datei crypttab beispielsweise auch die UUID von der jeweiligen Partition (/dev/sda2 und /dev/sda3) eingetragen werden.

Herausfinden der UUID

blkid /dev/sda2
blkid /dev/sda3

 

nano /etc/crypttab
Reee    UUID=1234567-1234-1234-1234-123456789abc    none    luks
andR UUID=1234567-1234-1234-1234-123456789abc none luks

 

just foo (for testing)!

echo "dm-crypt" >> /etc/modules
update-initramfs -u -k all
echo "aes" >> /etc/initramfs-tools/modules echo "aes_i586" >> /etc/initramfs-tools/modules echo "aes_x86_64" >> /etc/initramfs-tools/modules echo "aes_generic" >> /etc/initramfs-tools/modules echo "dm-crypt" >> /etc/initramfs-tools/modules echo "dm-mod" >> /etc/initramfs-tools/modules echo "sha256" >> /etc/initramfs-tools/modules echo "sha256_generic" >> /etc/initramfs-tools/modules echo "lrw" >> /etc/initramfs-tools/modules echo "xts" >> /etc/initramfs-tools/modules echo "crypto_blkcipher" >> /etc/initramfs-tools/modules echo "gf128mul" >> /etc/initramfs-tools/modules
update-initramfs -u -k all

 

GRUB angeben, wo sich / befindet

nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="kopt=root=/dev/mapper/vg--Reee-lv--system"

 

just foo (for testing)!

update-initramfs -u -k all

 

chroot verlassen

exit

 

nach der Installation

 

just foo (for testing)!

sync

just foo (for testing)!

sudo umount /target/home
sudo umount /target/boot
sudo umount /target
sudo lvchange -a n vgR
sudo cryptsetup luksClose R

 

Neustarten!

sudo reboot

 

zu jedem Betrieb

 

Passwort für die Verschlüsslung ändern

Um das Passwort für die Festplattenverschlüsselung zu ändern, muss zunächst ein neues Passwort hinzugefügt werden. Es sind bis zu 8 Passphrasen parallel möglich.

sudo cryptsetup luksAddKey /dev/sda2

Das alte Passwort kann, muss aber nicht, entfernt werden.

sudo cryptsetup luksRemoveKey /dev/sda2

----

 

 

Anforderungen

Ziele

 

  • möglichst normal funktionsfähiger Betrieb von LMDE 3
  • möglichst umfangreiche und einfach zu handhabende Verschlüsslung vom Massenspeicher
  • möglichst umfangreiche und einfach zu handhabende Verwendung von Btrfs

 

 

Partitionierung und Verschlüsslung des Massenspeichers

durch die Installation von Debian

 

Um möglichst viel manuellen Aufwand und mögliche (auch schon kleine, jedoch) schwerwiegende Fehler zu vermeiden, verwenden wir das "professionelle" (funktionsumfangreiche und bewährte) Programm für die Installlation von Debian 9.

Alternativ kann selbstverständlich die Partitionierung, Verschlüsslung und Formatierung auch mit der Kommandozeile im Vorfeld der Installation erfolgen.

 

https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.5.0-amd64-netinst.iso

 

Wer sich auf die Kommandozeile wagt, meint es oft ernst. Daher noch eine kleine Ergänzung.

Über die gesamte Festplatte können (sollten) pauschal Zufallszahlen geschrieben werden. (Kaffee und Kuchen für die Überbrückung der zu erwartenden nicht unerheblichen Wartezeit bietet sich an.)

dd if=/dev/urandom of=/dev/sda bs=2048 count=1

Statt 2048 würde bei einem PC auch 512 ausreichen. Schaden kann es jedoch nicht. (2048 ist eigentlich für Kisten von SUN kozipiert.)

 

PartionFile SystemLabelSizeAnmerkung
New Partition #1 ext4 boot 2.00 GiB
New Partition #2 linux-swap swap 4.00 GiB nachfolgend nicht einbezogen (Auslagerung von Arbeitsspeicher erfolgt über die die 3. Partition)
New Partition #3 ext4 root Rest
New Partition #4 ext4 was auch immer Anteil vom Rest, wenn gewuenscht nachfolgend nicht einbezogen

 

vor der Installation

 

Ziel der exemplarischen Partition

 

Anzeigen der Partitionierung der Festplatte (nur zu demonstrativen Zwecken, damit zu erkennen ist, was nach der nachfolgenden Abhandlung erstellt werden soll)

fdisk -l /dev/sda

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x37b46235

Device     Boot  Start       End   Sectors   Size Id Type
/dev/sda1  *      2048    499711    497664   243M 83 Linux
/dev/sda2       501758 234440703 233938946 111.6G  5 Extended
/dev/sda5       501760 234440703 233938944 111.6G 83 Linux

 

Anbinden des (bereits) verschlüsselten Massenspeichers mit grafischer Oberfläche

 

https://wiki.gnome.org/Apps/Disks

 

 

Anbinden des (bereits) verschlüsselten Massenspeichers mit der Kommandozeile (als Alternative zur grafischen Oberfläche)

 

Partionierung mit fdisk

 

Partionierung mit gdisk


 

während der Installation

 

Partitionen der Festplatte manuell einhängen

 

Erstellen eines (des) Verzeichnisses, wohin die Partitionen einhängt werden sollen, um dorthin zu Installieren

sudo mkdir -p /target

 

Einhängen der Partitionen, wohin Installiert werden soll

sudo mount /dev/mapper/vg-root /target
sudo mkdir -p /target/boot
sudo mount /dev/sdb1 /target/boot
sudo btrfs subvolume create /target/home

 

Anzeigen lassen der Datei … der vorangegangenen Installation mit Debian

xed /target/etc/fstab
# <file system>                            <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/vg-root /               btrfs   defaults        0       0
UUID=1cf0109e-6ada-4cba-9793-502d9b2ffa64 /boot           ext2    defaults        0       2
/dev/mapper/vg-home /home           btrfs   defaults        0       0
/dev/mapper/vg-swap_1 none            swap    sw              0       0

 

Anzeigen lassen der Datei … der vorangegangenen Installation mit Debian

xed /target/etc/crypttab
sda5_crypt UUID=effb6007-c2c1-4f29-838f-30dd5b23304d none luks

 

Anzeigen lassen der Datei … der vorangegangenen Installation mit Debian

xed /target/etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

 

 

cp /target/etc/fstab /tmp/

cp /target/etc/crypttab /tmp/

cp /target/etc/default/grub /tmp/

 

 

GRUB installieren lassen

 

bei der grafischen Oberfläche zur Installtion /dev/sda auswählen

 

Betriebssystem installieren lassen

 

neues Betriebssystem einrichten

 

sudo chroot /target

 

Erstellen (Bearbeiten) der Datei fstab

nano /etc/fstab
/dev/sda1                     /boot    ext4     errors=remount-ro                                       0    2
/dev/mapper/lap--vg-swap_1 none swap defaults,noatime 0 2
/dev/mapper/lap--vg-root / btrfs subvol=@,defaults,noatime,space_cache,autodefrag 0 1
/dev/mapper/lap--vg-home /home btrfs subvol=@home,defaults,noatime,space_cache,autodefrag 0 2

 

Erstellen (Bearbeiten) der Datei fstab

nano /etc/fstab
/dev/mapper/lmde-root /               btrfs   subvol=@,defaults,noatime,space_cache,autodefrag        0    1
/dev/mapper/lmde-root /home           btrfs   subvol=@home,defaults,noatime,space_cache,autodefrag    0    2
UUID=d6c7bbfa-b43d-4198-8b71-68917a04b65d /boot           ext4    defaults        0       2
/dev/mapper/lmde-swap_1 none            swap    sw              0       0

 

Erstellen (Bearbeiten) der Datei crypttab

nano /etc/crypttab
sda5_crypt UUID=22dfae7a-3f5d-49d0-af01-0d49b1147f70 none luks

 

Alternativ kann zum Erstellen (Bearbeiten) der Datei crypttab beispielsweise auch die UUID von der jeweiligen Partition (/dev/sda2 und /dev/sda3) eingetragen werden.

Herausfinden der UUID

blkid /dev/sda2

 

nano /etc/crypttab
lap    UUID=1234567-1234-1234-1234-123456789abc    none    luks

 

just foo (for testing)!

echo "dm-crypt" >> /etc/modules
update-initramfs -u -k all
echo "aes" >> /etc/initramfs-tools/modules echo "aes_i586" >> /etc/initramfs-tools/modules echo "aes_x86_64" >> /etc/initramfs-tools/modules echo "aes_generic" >> /etc/initramfs-tools/modules echo "dm-crypt" >> /etc/initramfs-tools/modules echo "dm-mod" >> /etc/initramfs-tools/modules echo "sha256" >> /etc/initramfs-tools/modules echo "sha256_generic" >> /etc/initramfs-tools/modules echo "lrw" >> /etc/initramfs-tools/modules echo "xts" >> /etc/initramfs-tools/modules echo "crypto_blkcipher" >> /etc/initramfs-tools/modules echo "gf128mul" >> /etc/initramfs-tools/modules
update-initramfs -u -k all

 

GRUB angeben, wo sich / befindet

nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="kopt=root=/dev/mapper/lap--vg-root"

 

just foo (for testing)!

update-initramfs -u -k all

 

chroot verlassen

exit

 

nach der Installation

 

just foo (for testing)!

sync

just foo (for testing)!

sudo umount /target/home
sudo umount /target/boot
sudo umount /target
sudo lvchange -a n vgR
sudo cryptsetup luksClose R

 

Neustarten!

sudo reboot

 

zu jedem Betrieb

 

Passwort für die Verschlüsslung ändern

Um das Passwort für die Festplattenverschlüsselung zu ändern, muss zunächst ein neues Passwort hinzugefügt werden. Es sind bis zu 8 Passphrasen parallel möglich.

sudo cryptsetup luksAddKey /dev/sda2

Das alte Passwort kann, muss aber nicht, entfernt werden.

sudo cryptsetup luksRemoveKey /dev/sda2

 

 

Artikelaktionen

Versenden
Drucken