Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Haftungsausschluss / Disclaimer

Basissystem – Installation – 2/6

In diesem Schritt erzeugen wir eine Container-Datei, die wir verschlüsseln und welche danach unser System beherbergt. Der Server ist eine gute Stunde mit dem Anlegen der Datei beschäftigt. In dieser Zeit erstellen wir zwei SSH-Schlüsel und basteln viele Passwörter zusammen…

## 2 ## Luks Container erstellen und einrichten

Nun verbinden wir uns wieder per SSH auf unseren Server.
Wir melden uns als Benutzer „root“ über den Port 55544 an.

dd if=/dev/urandom of=/data.bin bs=1M count=27000

Der Befehl dd (= „Disk Dump“) erzeugt uns eine Datei „data.bin“ (of= „Ziel“) und füllt sie mit 27.000 MB (bs = „Block Size“ | multipliziert mit „count“ | also 27.000 x 1 MB) Daten aus dem Zufallsgenerator (if= „Quelle“ | /dev/urandom = virtuelles Gerät, das Zufallszeichen ausgibt).

Dieser Vorgang dauert eine gute Stunde. 3.638 Sekunden bei meinem letzten Mal, um genau zu sein… Diese Zeit können wir jetzt sinnvoll nutzen :)

Passwörter bauen

Im Begleittext bauen wir uns nun alle Passwörter, die wir später brauchen.
Das Wichtigste davon ist das PW zum Entschlüsseln der Festplatte. Ich empfehle mindestens 256 Zeichen dafür zu verwenden. Das wären 8x 32er PWs. Maximal darf dieses Passwort 512 Zeichen lang sein, also 16x 32er PWs.
Den Rest der PWs würde ich 64-stellig machen. Also pro Zeile 2x 32er PWs verwenden.
Später brauchen wir dann noch einige Passwörter. E-Mail Zugang, WordPress, gesicherte Web-Bereiche, Datenbankbenutzer… Diese können dann ’normale‘ 32-stellige Passwörter sein. Das müsste als Minimum reichen.

Und immer daran denken: NIEMALS ein Passwort ZWEI MAL verwenden. Das sind alles einmal-Passwörter. Wird eins kompromittiert, sind die Anderen noch sicher…

SSH-Schlüssel erzeugen

Nachdem die Passwörter klar sind, bauen wir uns zwei SSH-Schlüssel mit je 8192 Bit. Die Schlüssel speichern wir im TrueCrypt-Volume unter „keys“, die Schlösser (der obere Teil) im Begleittext unten im „Anhang“.

Einen Schlüssel speichern wir ohne Passwort („rootcrypt“). Den verwenden wir, um uns als „root“ am Mini-Linux anzumelden, wenn der Server startet. Dort geben wir ausschließlich das PW zum Entschlüsseln der Festplatte ein. Da sich der SSH-Server zusammen mit dem Mini-System anschließend beendet, besteht keine Gefahr, dass sich jemand unbefugtes mit dem SSH-Schlüssel am Server anmelden kann, selbst, wenn er ihn erbeuten konnte. Der ’normale‘ SSH-Server des Basissystems kennt den „rootcrypt“-Schlüssel nicht.

Der zweite SSH-Schlüssel bekommt ein 64-stelliges Passwort und gehört dann dem neuen Benutzer, den wir später erstellen werden.

Wenn wir die Passwörter fertig gebaut und die beiden SSH-Schlüssel erzeugt und gespeichert haben, warten wir, bis die Datei auf dem Server fertig geschrieben wurde…

Luks Container

„Luks“ ist die Abkürzung von „Linux Unified Key Setup“. Es ist das Standardverfahren zur Verschlüsselung von Geräten unter Linux.

Mit folgendem Befehl legen wir unseren Container an:
cryptsetup -y -c aes-xts-plain -s 512 luksFormat /data.bin

-y | fragt das Passwort zwei Mal ab und verweigert, wenn sie nicht gleich sind.
-c aes-xts-plain | -c wählt den Chiffrierungs-Algorithmus. „aes-xts-plain“ ist wohl im Moment das Mittel der Wahl. Bei Containern ab 2 TB müssen wir aes-xts-plain64 verwenden.
-s 512 | im XTS Modus (Chiffre) würden intern 256 Bit Schlüssel verwendet. Wir setzen die Schlüssellänge manuell auf 512 Bit hoch.
luksFormat | ist der Befehl, dass wir ein „Gerät“ mit Luks formatieren möchten.
/data.bin | das Ziel, das formatiert werden soll. Hier ist es unsere Datei „data.bin“.

An dieser Stelle werden wir gefragt, ob wir wirklich alles im Ziel überschreiben wollen. Dazu geben wir „YES“ ein (Großschreibung zählt!) und bestätigen mit „Enter“. Nun müssen wir noch das Passwort aus unserem Begleittext zwei Mal per Copy/Paste an unser System übergeben. Das Einrichten des Containers ist dann in ein paar Sekunden passiert.

Der Container ist erstellt. Jetzt müssen wir ihn öffnen:
cryptsetup luksOpen /data.bin lukslvm
Auch hier müssen wir das Passwort per Copy/Paste an das System übergeben.

Der Container ist offen. Nun füllen wir ihn mit Leben und legen darin unsere Partitionen an.
Ich wähle bei einer UltraVPS ’30‘ folgende Werte:

  • root – 3 GB | in der Root-Partition liegen das Basissystem, Konfigurationsdateien und Programme.
  • tmp – 1 GB | die „Temp“-Partition legen wir zur Sicherheit an. Läuft sie voll, kann sie unserem System nicht schaden.
  • var – 22 GB | „Variable“ ist für Datenbank-, Mail- und Webspeicher. Das ist quasi unsere ’nutzbare‘ Datenmenge.

Für die Einrichtung werden diese Befehle nacheinander benötigt. Im Begleittext ist auch eine „Kurzversion“, bei der alle Befehle in einer Zeile stehen. Damit geht es schneller :)

pvcreate /dev/mapper/lukslvm
Erstellen des LVM Containers.

vgcreate vg /dev/mapper/lukslvm
Erstellen der VolumeGroup „vg“, welche dann die drei logischen Partitionen beherbergen wird.

lvcreate -L 3G -n root vg
‚root‘ Partition anlegen.

lvcreate -L 22G -n var vg
‚var‘ Partition anlegen; Web-, Mail-, DB-Storage.

lvcreate -L 1G -n tmp vg
‚tmp‘ Partition anlegen.

An dieser Stelle gab es Probleme mit dem I/O, den ein Reboot behoben hat. Also starten wir unser System zur Vorsicht neu…

reboot

Nach dem Neustart verbinden wir uns wieder per SSH auf unseren Server.
Wir melden uns als Benutzer „root“ über den Port 55544 an.

Wir öffnen erneut den Luks-Container (Passwort bereithalten)
cryptsetup luksOpen /data.bin lukslvm

Nun lassen wir nach Volume-Groups suchen und binden diese dann ins System ein
vgscan
vgchange -ay

Dateisystem anlegen

Die drei Partitionen sind erstellt und bereit. Um mit ihnen arbeiten können, müssen wir aber noch für jede Partition ein Dateisystem erzeugen und formatieren. Das erledigen die folgenden drei mkfs-Befehle. Als Dateisystem wählen wir das unter Linux sehr verbreitete und stabile „ext4“.

mkfs.ext4 /dev/mapper/vg-root
mkfs.ext4 /dev/mapper/vg-var
mkfs.ext4 /dev/mapper/vg-tmp

Im nächsten Teil hängen wir diese Laufwerke ins System ein und klonen unser Linux!

Navigation

Vorheriger Artikel | Nächster Artikel
Basissystem Begleittext Download (Rechtsklick – „Ziel speichern unter…“)

Anzeige *

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.