Siehe hierzu auch folgenden Follow-Up Artikel
Proxmox auf verschlüsseltem Software RAID
Du bist aktuell auf der Suche nach einem (virtuellen) Server? Ich bin seit Jahren von netcup begeistert und hätte da ein paar Gutscheine.
Vor einiger Zeit hatte ich hier mal aufgeschrieben, wie ich meine (externen) Proxmox-Server betreibe. Daran hat sich prinzipiell zwischenzeitlich nichts geändert, alles läuft immer noch super so, auch habe ich meine Server primär immer noch bei netcup – die Leistung dort bei den Preisen sucht echt seinesgleichen.
Nun stand vor kurzem mal ein Wechsel eines Servers auf die aktuelle Generation an. Im Prinzip installiere ich in so einem Fall kurz Proxmox neu und ziehe dann alle Container per Backup/Restore um, geht auch relativ schnell und problemlos so.
Alle meine Workstations Betreibe ich schon seit Ewigkeiten voll-verschlüsselt, warum eigtl. nicht auch die (externen) Server, fragte ich mich dann mal und entschied, das nun auch mit Proxmox umzusetzen. Natürlich kann man sich die Frage stellen, ob man das braucht, wenn man nichts verwerfliches auf den Servern speichert und auch wie sinnvoll das bei virtuellen Servern ist. Meine Antworten dazu sind – verschlüsselt wird immer und überall und alles, einfach aus Prinzip, meine Daten sind meine. Selbstverständlich hat der Hoster bei einem virtuellen Server vollen Zugriff auf das System, eine Verschlüsselung ist hier eine zusätzliche Hürde. Theoretisch kann er natürlich auch die Keys rausziehen, den logischerweise liegen die im laufenden Zustand im RAM vor, aber jeder kann das definitiv auch nicht mal eben so einfach. Von daher würde ich behaupten, dass eine Vollverschlüsselung auch bei virtuellen Server absolut Sinn macht. Unabhängig davon würde ich natürlich auch keinen Hoster wählen, dem ich in Bezug darauf nicht vertraue und die entsprechenden AGBs schließen einen Zugriff auf die Kundensysteme meist sowieso aus, aber heutzutage kann man zu allem möglichen ja auch gezwungen werden…
Leider kann man hierzu den Proxmox ISO-Installer nicht verwenden, da der dieses Szenario nicht abbildet. Man kann Proxmox aber auch recht einfach nachträglich auf ein frisches Debian draufbügeln, das machte ich:
1. Debian installieren mit LUKS-LVM
Ich nehme die Netinst-ISO und setze erstmal eine neue Debian(-Minimal) Maschine auf – folge dem grafischen Installer, wähle dort natürlich kein Desktop-Environment und richte die Festplatte mit LVM und LUKS ein – am Ende hat man nun schon ein voll-verschlüsseltes System, das einem vor dem Start nach der entsprechend festgelgten Passphrase fragt.
2. dropbear-initramfs einrichten für Remote-Entsperrung
Nun wäre es ja doof, wenn man die Passhprase jedes mal an der (VNC-)Konsole des Servers eingeben muss. Bei virtuellen Servern wäre dies eine weitere Schwachstelle, wo theoretisch der Provider mitschneiden könnte. Dazu gibt es einen kleinen SSH-Server (Dropbear), kennt man evtl. von Routern oder dergleichen, der vor dem Start von Debian läuft und mit dem man eben die LUKS-Passphrase eingeben kann.
apt install dropbear-initramfs update-initramfs -u
Ich würde hier einen separaten SSH-Key verwenden (Public-Key muss in /etc/dropbear-initramfs/authorized_keys
hinterlegt werden) und auch einen anderen SSH-Port (legt man in /etc/dropbear-initramfs/config
fest, DROPBEAR_OPTIONS="-p 12345"
), als für den normalen Systemzugriff. Zum Entsperren bzw. Eingeben der LUKS-Passphrase muss man den Befehl cryptroot-unlock
verwenden – das habe ich z. B. mit KeePass-AutoType automatisiert.
3. Proxmox installieren
Dann installiert man noch kurz Proxmox, und schon hat man seine gewohnte Weboberfläche (standardmäßig verfügbar unter https://host.domain.tld:8006
):
In /etc/hosts
muss der 127.0.0.1 <Host>
Eintrag entfernt und folgender eingefügt werden („host“ etc. natürlich entsprechend ersetzen):
xxIPv4DesHostsxx host.domain.tld host pvelocalhost
/etc/network/interfaces
sollte ungefähr so aussehen:
iface ens3 inet manual auto vmbr0 iface vmbr0 inet static address xxIPv4DesHostsxx netmask xxSubnetmaskDesHostsxx gateway xxIPv4DesGatewaysxx bridge_ports ens3 bridge_stp off bridge_fd 0
Dann noch kurz die Installation:
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg apt update apt install proxmox-ve postfix open-iscsi apt purge os-prober linux-image-amd64 linux-image-4.*-amd64 apt clean update-grub
Beim Neustart des Hosts verbindet man sich zukünftig dann kurz mit dem Dropbear-SSH-Server, gibt die Passphrase ein, fertig.