Jail-Pool

Nachdem die Grundinstallation fertig ist kann man sich um den Jail-Pool kümmern.

Die Schlüssel dazu sollten wir sicher ablegen (als root):

mkdir /root/keys
chmod go-rwx /root/keys

Schlüssel erzeugen:

dd if=/dev/random of=/root/keys/jail.key bs=256k count=1

Jetzt die Platten verschlüsseln (pro Festplatte nutze ich auch ein anderes Passwort…):

geli init -K /root/keys/jail.key -s 4096 -l 256 /dev/gpt/jail0
geli init -K /root/keys/jail.key -s 4096 -l 256 /dev/gpt/jail1

Die Platten einhängen:

geli attach -k /root/keys/jail.key /dev/gpt/jail0
geli attach -k /root/keys/jail.key /dev/gpt/jail1

Und nun den Pool erstellen:

zpool create -m none jail mirror gpt/jail0.eli gpt/jail1.eli

zfs set compression=lz4 jail
zfs set checksum=fletcher4 jail

zfs create -o mountpoint=/usr/jails jail/root
zfs create jail/root/flavours
zfs create jail/root/basejail

Warning

/root/keys ist in einem unverschlüsselten Bereich.

Die Schlüssel dort nicht einfach liegen lassen - da war die ganze Plattenverschlüsselung umsonst, wenn einem der Server aus dem Rack geschraubt wird.

Am besten ein offsite Backup machen (USB-Stick im Tresor oder so), und dann die Schlüssel löschen.

Note

Zum automatischen Entsperren des Jail-Pools habe ich mir ein eigenes RC-Script geschrieben: geli_remote_unlock.

Danach geht es weiter mit der Vorbereitung der Jails.