CYBERSECURITY, IDENTITÄTSMANAGEMENT UND MULTI-FAKTOR-AUTHENTIFIZIERUNG

HowTo: Installation von Linux/Windows im Dual-Boot Betrieb mit LUKS, Bitlocker und LVM

Lesezeit: 10 Minuten

Vorbereitungen

Damit wir starten können, benötigen wir eine Linux- sowie Windows ISO auf einem bootfähigen Stick. Wie man sich einen bootfähigen UEFI Stick baut, wird hier nicht beschrieben. Dazu gibt es bereits zahlreiche Anleitungen im Netz.
Als Linux nehme ich ein Ubuntu 18.04 und als Windows ein Windows 10 mit der Version 1803.

Partitionierung

Wir partitionieren unsere Festplatte nun so zurecht, wie wir es benötigen. Für eine UEFI Dual-Boot Linux/Windows Installation sind folgende Partitionen notwendig:

  • Boot,
  • EFI,
  • Verschlüsselte Linux Partition und
  • die Windows Partition.

Zusätzlich dann die jeweiligen LVM Partitionen, aber dazu dann weiteres unter dem Punkt „Logical Volume Manager“.

Wir booten nun unser Live Linux vom Stick und öffnen ein Terminal. Zur Partitionierung habe ich fdisk verwendet, welches ausschließlich Kommandozeilen basiert ist. Sie können dafür natürlich auch ein anderes Tool nutzen, z.B. gparted oder Ähnliches (siehe nochmals Disclaimer!).

Hier nun die Befehle mit zusätzlich dem Output:

root@ubuntu:~# fdisk /dev/sda

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): g
Created a new GPT disklabel (GUID: A267CBAB-3F64-3049-8920-FF38E72A5D67).

Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-500118158, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-500118158, default 500118158): +512M

Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB.

Command (m for help): n
Partition number (2-128, default 2):

First sector (1050624-500118158, default 1050624):
Last sector, +sectors or +size{K,M,G,T,P} (1050624-500118158, default 500118158): +512M

Created a new partition 2 of type 'Linux filesystem' and of size 512 MiB.

Command (m for help): n
Partition number (3-128, default 3):
First sector (2099200-500118158, default 2099200):
Last sector, +sectors or +size{K,M,G,T,P} (2099200-500118158, default 500118158): +110G

Created a new partition 3 of type 'Linux filesystem' and of size 110 GiB.

Command (m for help): n
Partition number (4-128, default 4):
First sector (232785920-500118158, default 232785920):
Last sector, +sectors or +size{K,M,G,T,P} (232785920-500118158, default 500118158):

Created a new partition 4 of type 'Linux filesystem' and of size 127.5 GiB.

Sollte am Ende nun so ausschauen:

Command (m for help): p
Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 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: gpt
Disk identifier: E423F5E8-1736-5342-9A13-2E28EB98EED4

Device         Start       End   Sectors   Size Type
/dev/sda1       2048   1050623   1048576   512M Linux filesystem
/dev/sda2    1050624   2099199   1048576   512M Linux filesystem
/dev/sda3    2099200 232785919 230686720   110G Linux filesystem
/dev/sda4  232785920 500118158 267332239 127.5G Linux filesystem

  • Wichtig! Für EFI brauchen wir den gpt Standard!
  • sda1 wird die Boot Partition mit 512MB
  • sda2 wird die EFI Partition mit ebenfalls 512MB
  • sda3 wird unsere mit LUKS verschlüsselte Linux Partition
  • sda4 wird unsere Windows Partition

LUKS

Nachdem nun die Festplatte grundlegend auf unsere Bedürfnisse partitioniert wurde, kümmern wir uns um unsere eigentliche Linux Partition. Als Verschlüsselung setze ich hiermit auf LUKS, darunterliegend finden sich dann die LVM-Partitionen.
Fangen wir mit der eigentlichen Verschlüsselung an:

root@ubuntu:~# cryptsetup luksFormat --cipher=aes-xts-plain64 --hash=sha512 --key-size=512 --verify-passphrase /dev/sda3

Parameter können natürlich auf die eigenen Bedürfnisse angepasst werden. Als Cipher-Suite habe ich aes-xts-plain64 gewählt, Hash sha512 und eine Schlüssellänge von 512Bits. Die Befehle und Parameter sind eigentlich selbsterklärend. sda3 soll meine Linux Partition werden (siehe Punkt Partitionierung). Nach dem Abschicken des Befehls muss erneut bestätigt werden, dass man gerne die Partition verschlüsseln möchte und es muss eine Passphrase zur Öffnung des verschlüsselten Laufwerks gewählt werden.

root@ubuntu:~# cryptsetup luksOpen /dev/sda3 sda3_crypt

Danach wird die verschlüsselte Partition mit der im vorherigen Befehl gesetzten Passphrase geöffnet.

Befehle LUKS

Logical Volume Manager (LVM)

Nach Öffnung unseres LUKS-Containers können wir nun LVM einrichten.
Zuerst erstellen wir ein Physical Volume:

root@ubuntu:~# pvcreate /dev/mapper/sda3_crypt

Danach folgt die Volume Group mit dem Namen vg-device. Die Benennung kann natürlich auch von diesem Beispiel hier abweichen!

root@ubuntu:~# vgcreate vg-device /dev/mapper/sda3_crypt

Nun können wir die einzelnen Logical-Volumes erstellen. Ich habe seit ich denken kann immer /root und /home voneinander getrennt. Natürlich kann man die Trennung noch weiter aufsplitten auf /srv, /usr usw. Je nachdem, wie man es braucht und wie die eigenen Anforderungen sind. Zusätzlich habe ich noch extra ein Logical Volume für Swap Ablagerungen.

root@ubuntu:~# lvcreate -n root -L 20G vg-device

root@ubuntu:~# lvcreate -n swap -L 16G vg-device

root@ubuntu:~# lvcreate -n home -l 75%FREE vg-device

  • -n wird benutzt, um das Volume zu labeln
  • -L wird verwendet, um einem Volume eine fest definierte Größe zu setzen
  • -l arbeitet variable, in meinem Fall wird 75% des noch freien Speicherplatzes für /home genutzt. Die übrigen 25% sind Reserve und kann ich im Nachhinein für Snapshots nutzen oder um variable on-the-fly meine Volumes zu vergrößern, wenn der Platz doch knapp werden sollte.

Mit lvs kann man sich ein Summary von seinen Logical Volumes anzeigen lassen.

Ausgabe Befehl lvs

Ein lsblk sollten nun ungefähr so ausschauen:

Ausgabe Befehl lsblk

Formatierung

Im letzten Schritt der Vorbereitungen müssen die Logical Volumes nun nur noch mit dem korrekten Filesystem bestückt werden. Dies erreichen wir entweder mit den klassichen mkfs.xxx Befehlen oder wir springen direkt zum Punkt Installation Linux, wo über die Grafische Oberfläche die Volumes formatiert werden können.

root@ubuntu:~# mkfs.ext2 /dev/sda1
root@ubuntu:~# mkfs.ext4 /dev/mapper/vg--device-root
root@ubuntu:~# mkfs.ext4 /dev/mapper/vg--device-home
root@ubuntu:~# mkswap /dev/mapper/vg--device-swap

  • Für die Boot Partition sda1 wurde ext2 als FS gewählt
  • Für vg–device-root ext4
  • Für vg–device-home genauso ext4
  • Für vg–device-swap muss logischerweise Swap genutzt werden.


Von |2018-11-26T15:49:24+00:0026. November, 2018 um 15:42 Uhr|KEYIDENTITY|Noch keine Kommentare

Über den Autor: