Ich habe versucht mein Proxmox-Setup abzusichern - Meinungen/Ideen?

Foxhunter_de

New Member
Dec 17, 2025
5
4
3
Deutschland
Hallo zusammen,

ich erhoffe mir von dem Thema, auf Dinge aufmerksam gemacht zu werden, die ich vielleicht übersehen oder vergessen habe, und generelle Meinungen bzw. Empfehlungen.
Auf meinem Server läuft VE 9.1.2.

  • SSH Login nur mit extra User und Key, root hat keine SSH Option
  • Webinterface auf 8006 ist nur über einen Proxy erreichbar (VPS), auf den man wiederum nur mit BasicAuth über HTTPS kommt.
  • Weboberfläche benötigt passenden User, 64stelliges Passwort und TOTP
  • SSH geht ausschließlich über VPN, der SSH Port an der Firewall ist geschlossen. Sollte das VPN mal streiken oder irgendwas sein, könnte ich den SSH Port an der Firewall für meine WAN-IP händisch freigeben
  • Alle VMs und LXC auf dem Server sind ausschließlich über das VPN Netzwerk erreichbar, und kommen von alleine nicht an die Außenwelt
  • Jede Nacht fahren Backups mittels Push auf drei Proxmox Backup Server, einer in Deutschland, einer in Frankreich, einer in Finnland
  • In meinem Büro zuhause steht ein TerraMaster F4-423, auf dem ich Proxmox installiert habe. Darauf dann einen PBS und OMV. Der PBS zieht mittels Pull jede Nacht die Backups von den drei Backup-Servern im Netz
  • Alle Backups sind natürlich encrypted
Die Logs auf dem Proxmox sind komplett still, bis auf die Dinge die das System macht, oder die Logins von mir auf dem System. Als ich angefangen hatte, war nach der Installation die Hölle los in den Logs. So viel automatisiertes "Wir gucken mal ob wir rein kommen" - das war irre. Genutzt wird das Setup vorwiegend für meine Selbstständigkeit, ich hoste dort Dinge wie Plane.so, Zammad, CheckMK, Paperless-ngx und vieles mehr. Gibt es Kritikpunkte oder Tipps bei dem Setup? 100%ige Sicherheit gibt es nicht, aber habe ich es wenigstens halbwegs schwer gemacht, sodass ich zumindest keine Angst vor irgendwelchen Script Kiddies haben muss?

Danke für eure Einschätzung!
 
  • Like
Reactions: UdoB
Sehr gutes und durchdachtes Setup. Mein Setup sieht ähnlich aus. Was ich noch anders mache
  • Ich synchronisiere meine 3 Backup-Lokationen noch gegeneinander, d.h. ich habe an jeder Lokation den gleichen Datenbestand aller Standorte kombiniert
  • Ich nutze noch Fail2Ban für SSH/Proxmox/PBS + in deinem Fall BasicAuth deines (wrsl.) Nginx-Proxymanagers
  • Wenn Du mittels CheckMK die Server überwachst (ich nutze Zabbix) - schön. Sonst bitte das nachholen (Platten, IO, Auslastung, /etc/passwd etc..) inklusive Alerting im Fehlerfall
  • Patch-Management ggf. über Monitoring realisieren, dass Du die auch im Blick hast und hier immer aktuell bist
  • Für Selbstständigkeit die Community-Lizenz + Enterprise Repo nutzen für höhere Resilienz
  • Ggf. die Administration über Ansible (teil)automatisieren um den menschlichen Fehlerfaktor zu minimieren
Ansonsten, Chapeau, viel Mühe investiert, da kann sich so manche Firma (die ich auch von innen schon consulted habe) eine Scheibe von abschneiden
:)
 
Ach, ich danke dir! Fail2Ban läuft, habe ich vergessen mit aufzuführen :)
Die Backup-Locations habe ich tatsächlich bewusst nicht untereinander synchronisiert, weil ich auf jedem andere Vorhaltedaten habe, wann die Backups wieder gelöscht werden etc. - bin mir aber unsicher, ob das im Endeffekt clever ist oder nicht.
CheckMK hat auch die Server im Blick, ich installiere gerade Proxmox Datacenter Manager und schaue, was ich damit noch machen kann. Bzgl. der Enterprise-Repo muss ich mich noch informieren, bin ich noch nicht zu gekommen. War für mich jetzt 14 Tage Arbeit alles aufzusetzen, musste mir viel erst beibringen und mir durchlesen, da ich aus der Windows-Welt komme, und bislang Proxmox nur lokal genutzt habe - mit der Hilfe der Community-Scripts. Wollte das dann jetzt etwas größer und sicherer aufziehen, da wichtige Firmendaten darauf liegen, und ich im nächsten Jahr Plane Mitarbeiter einzustellen, die dann auch an einige Dienste ran sollen. Wäre auch lokal alles mit VPN gegangen, aber wenn bei mir die Telekom wieder ausfällt, könnte keiner was machen, daher der Gang ins Netz mit einem eigenem Server.

Von Ansible habe ich schon viel gehört, aber noch nie gesehen, und noch überhaupt keine Vorstellung davon. Ich notiere mir das mal :)
Vielen Dank für das abschließende Lob, freut mich wirklich! :)
 
  • Like
Reactions: fstrankowski
SSH Login nur mit extra User und Key, root hat keine SSH Option

Das macht einen Cluster-Kommunikation kaputt, für den Aufbau eines Clusters also root-Login wieder erlauben. Passwort-Login kann und sollte man aber natürlich deaktivieren.

Für die Backups rate ich dringend auf pull-backups ( per vpn) umzustellen und den Port 8007 der remote PBS zu sperren. Damit wird verhindert, dass ein Angreifer im lokalen System die remote PBS samt Backups angreifen oder verändern kann.
 
Last edited:
Man könnte zusätzlich jeden SSH-Login per E-Mail protokollieren.
Ich habe das bei mir über eine Postfix-Installation umgesetzt: Systemmails, z. B. von Fail2Ban oder bei SSH-Logins, werden an eine E-Mail-Adresse versendet und von dort an eine weitere Adresse weitergeleitet. Hintergrund ist, dass das Passwort der ersten E-Mail-Adresse im Klartext in der Postfix-Konfiguration hinterlegt ist (ich weiß gerade nicht, ob man das alternativ auch hashen kann).

Ergänzend dazu ließe sich auch der Proxmox-Login über Fail2Ban absichern.
 
Hi,

danke euch!

Das macht einen Cluster-Kommunikation kaputt, für den Aufbau eines Clusters also root-Login wieder erlauben.
Ne, ich baue ja keinen Cluster :)

Für die Backups rate ich dringend auf pull-backups ( per vpn) umzustellen und den Port 8007 der remote PBS zu sperren. Damit wird verhindert, dass ein Angreifer im lokalen System die remote PBS samt Backups angreifen oder verändern kann.
Über Port 8007 dürfen explizit nur die IPs der Backup-Server rein, und so wie ich verstanden hatte, geht ein Pull-Job nur von einem PBS zum anderen, aber nicht von einem Proxmox zum PBS. Ist das falsch?

Ergänzend dazu ließe sich auch der Proxmox-Login über Fail2Ban absichern.
So ist es aktuell :)
 
Der SSH Login für root lässt sich innerhalb des Clusters auch explizit auf die Clusternodes beschränken.
Haben wir auch in dem folgenden Repo zur deklarativen PVE-(Cluster)verwaltung (https://github.com/cloudandheat/ansible-role-proxmox-ve) via Templates so implementiert (https://github.com/cloudandheat/ans...mplates/system/ssh_config/00_sshd_pve.conf.j2)
Dadurch sollte es mit allen gängigen Härtungsmaßnahen wie z.B. der DevSecOps Rolle kompatibel sein.

Ansonsten lohnt es sich bei verschlüsselten Backups immer die Verschlüsselungskeys zu monitoren.
Wenn die bei einem Ransomwareangriff getauscht werden, hat man kein Möglichkeit die Backups, die nach dem Tausch geschrieben werden wiederherzustellen. Der Angreifer sitzen dann ggf. schon lange im System,
so dass alte Backups inhaltlich unbrauchbar sind. Die Deduprate sinkt dann in dem Fall auch, was im Monitoring auffallen kann.

BG, Lucas
 
Über Port 8007 dürfen explizit nur die IPs der Backup-Server rein, und so wie ich verstanden hatte, geht ein Pull-Job nur von einem PBS zum anderen, aber nicht von einem Proxmox zum PBS. Ist das falsch?
Ja, das ist schon richtig, ein sync-job (ob pull oder push) ist immer nur zwischen PBS möglich.

Ich verstehe dich also richtig, dass du deinen ProxmoxVE-Server jede Nacht Richtung drei PBS-Server machen lässt? Sind die alle bei Hetzner (ich vermute Hetzner wegen Finnland), dann würde ich mindestens einen auch bei einen anderen Anbieter hosten, falls Hetzner mal ausfällt.

Aber generell ist das Setup mit Backups auf drei Server nicht optimal. Ich verstehe dich richtig, dass jede VM nacheinander auf die drei PBSe gesichert wird? Dann wird auch jedes Mal eine neue " dirty bitmap" erzeugt, was effektiv die Backupzeiten verlängert. Wäre das initiale Backup dagegen nur Richtung einen Servers, würden diese Backups deutlich schneller gehen. Gleichzeitig ist ja der Port 8007 laut deiner Aussage von deiner lokalen Infrastruktur erreichbar, das ist nicht optimal, falls ein Angreifer deine lokale Infrastruktur erwischt, kann er auch versuchen deine Backups zu komprimitieren.

Ich würde daher eher mit pull-syncs arbeiten:

Alle Backups werden auf den selben initialen Backupserver gesichert, im Idealfall ist der bei dir im lokalen Netzwerk. Damit hast du ein schnelles restore bei einen Notfall. Dabei wird der PBS so konfiguriert, dass der PVE zwar neue Backups anlegen und restoren kann, aber sonst keine Rechte (insbesondere nicht löschen oder bearbeiten existierender Backups) hat. Der initiale Backupserver ist dann per vpn auf Port 8007 für den PVE, deinen Management-Client (für Zugriff auf Webinterface) und andere Backupserver (fürs pull-sync) erreichbar. Auch die anderen Backupserver haben nur Rechte, um Backups zu pullen, aber NICHT für ein Bearbeiten oder gar löschen.

Die anderen Backupserver hingegen haben eingehend alle Verbindungen dicht (auch den Port 8007), außer per vpn von einen Management-Client (also dein Notebook o.ä.). Sollte also dein ProxmoxVE- oder initialer Backupserver kompromitiert sein, kann der Angreifer trotzdem nichts machen, er hat ja gar keine Verbindung zu ihnen. Auch ihre Backups werden so konfiguriert, dass ein Bearbeiten oder Löschen nur durch einen Admin per Webinterface möglich ist. Im Falle eines restores kriegt der ProxmoxVE-Server dann halt temporär die nötigen Rechte für einen restore auf dem Backupserver, der dafür verwendet werden soll.

Dieses Setup mag zunächst umständlicher wirken, hat aber mehrere Vorteile:

- Ein Angreifer auf einen der Server kann nur sehr begrenzt bei den anderen Schaden anrichten (wenn überhaupt, ist der Port dicht, ist der Port dicht)
- Es ermöglicht schnellere Backups dank der dirty bitmap

Siehe auch das Kapitel in der PBS Doku https://pbs.proxmox.com/docs/storage.html#ransomware-protection-recovery für best practices beim Schutz vor Ransomware.

Was natürlich klar sein sollte: Bei verschlüsselten Backups (grundsätzlich gute Idee), den encryption-key nochmal außerhalb der ProxmoxVE/ProxmoxBackupServer Struktur doppelt und dreifach sichern, damit man im Falle eines Falles überhaupt noch an das Backup drankommt.
 
Ich verstehe dich also richtig, dass du deinen ProxmoxVE-Server jede Nacht Richtung drei PBS-Server machen lässt?
Korrekt, das dauert nur ein paar Minuten pro Job. Geht um 2 Uhr, 3 Uhr und 4 Uhr los. Da arbeitet niemand, die Container und VMs werden angehalten, gesichert und fertig.

Sind die alle bei Hetzner (ich vermute Hetzner wegen Finnland), dann würde ich mindestens einen auch bei einen anderen Anbieter hosten, falls Hetzner mal ausfällt.
Bei Hetzner habe ich zwei der drei Backupserver, und den eigentlichen Proxmox VE. Dazu kommt ein nicht bei Hetzner gehosteter PBS, und eben mein lokaler hier. Ein Großteil meiner Infrastruktur, und die meiner Kunden, liegt bei Hetzner.

Alle Backups werden auf den selben initialen Backupserver gesichert, im Idealfall ist der bei dir im lokalen Netzwerk. Damit hast du ein schnelles restore bei einen Notfall.
Der Restore wäre deutlich langsamer, müsste ich den aus meinem LAN machen, weil trotz Glasfaser der Upload deutlich geringer ausfällt als das, was die Server bei Hetzner und Co. leisten können :) Aber ja, das Setup mit erstmal auf einen PBS, und von dort aus bedienen sich dann die anderen erscheint durchaus sinnvoller als das, wie ich es jetzt habe. Die Rechte sind jetzt auch schon mit API Token so gesetzt, dass ein löschen mit dem Backup-User nicht möglich wäre - zumindest habe ich das so verstanden, als ich es eingerichtet habe. Ich werde auch den Punkt nochmal explizit kontrollieren.

Die Encryption Keys sind digital gesichert, aber eben auch offline an zwei verschiedenen Standorten (Homeoffice, Elternhaus). Ich überlege ob ein Bankschließfach eine Idee wäre, da ich auch gerne andere Dinge schützen möchte. Allerdings sind Bankschließfächer auch nicht mehr das gelbe vom Ei. Wie geht ihr mit sowas um? Ich habe z. B. externe Festplatten auf denen im Prinzip meine Firma liegt, sodass ich bei Totalverlust durch Brand, Wasserschaden, Diebstahl oder weiß der Geier was, innerhalb weniger Stunden wieder handlungsfähig wäre.
 
  • Like
Reactions: Johannes S
Korrekt, das dauert nur ein paar Minuten pro Job. Geht um 2 Uhr, 3 Uhr und 4 Uhr los. Da arbeitet niemand, die Container und VMs werden angehalten, gesichert und fertig.

Ok du stoppst die Dinger vor der Sicherung? Das mit der dirty-Bitmap bezieht sich auf snapshot Backups.
Der Restore wäre deutlich langsamer, müsste ich den aus meinem LAN machen, weil trotz Glasfaser der Upload deutlich geringer ausfällt als das, was die Server bei Hetzner und Co. leisten können :)

Mit lokal für den initialen PBS meinte ich auch im gleichen Netzwerk/Rechenzentrum, also ein zweiter Server (kann für pbs ja auch ein vserver sein) neben deinen PVE. Kann (sofern man das nicht als Backup sondern nur als Relay betrachtet) ja auch eine VM auf deinen PVE sein. Da du aber eh bei Hetzner bist, passt das mit dem initialen Backup auf einen deiner Hetzner-PBS schon. Davon können sich ja dein lokaler un die anderen PBS dann die Backups pullen.

Die Encryption Keys sind digital gesichert, aber eben auch offline an zwei verschiedenen Standorten (Homeoffice, Elternhaus). Ich überlege ob ein Bankschließfach eine Idee wäre, da ich auch gerne andere Dinge schützen möchte. Allerdings sind Bankschließfächer auch nicht mehr das gelbe vom Ei. Wie geht ihr mit sowas um? Ich habe z. B. externe Festplatten auf denen im Prinzip meine Firma liegt, sodass ich bei Totalverlust durch Brand, Wasserschaden, Diebstahl oder weiß der Geier was, innerhalb weniger Stunden wieder handlungsfähig wäre.

Ich bin "nur" Privatuser, finde aber externe Festplatten als Notfallbackup gar nicht so blöd. Ein Bekannter von mir hat eine kleine Designagentur, die Backups macht er auf zwei externen Festplatten, die er jede Woche rotiert (so dass immer eine bei ihm zuhause und eine im Büro) liegt. Seine Motivation: Es ist für ihn ohne Kosten für Cloudstorage und größere IT-Kenntnisse umsetzbar. Ich finde das eine gar nicht so blöde Herangehensweise, auch wenn es bei ihm halt Designs/Plakatentwürfe/Webseiten und keine VMs sind. Trotzdem hat er (anders als manche "IT-Profis) damit eine 3-2-1-Strategie umgesetzt, inklusive air-gapped Backup. Ich persönlich würde allerdings noch zwei Platten mehr haben, um auch monatlich rotieren zu können. Tatsächlich habe ich mir für meine private Infrastruktur auch vorgenommen ein Backup auf externen Platten als Notfalloption zu haben, nur bin ich bisher nicht zum Einrichten gekommen. Ein grundsätzliches Problem, dass ich bei solchen externen Medien sehe: Man muss halt daran denken, da das immer mit einer manuellen Aktion (dranstecken, Backup laufen lassen, abstecken) verbunden ist.
 
Last edited:
Ok du stoppst die Dinger vor der Sicherung? Das mit der dirty-Bitmap bezieht sich auf snapshot Backups.
Ja korrekt, meinem Verständnis nach soll das die sicherste Methode für konsistente Backups sein. Korrigiere mich gerne, wenn ich da falsch liege.

Mit lokal für den initialen PBS meinte ich auch im gleichen Netzwerk/Rechenzentrum, also ein zweiter Server (kann für pbs ja auch ein vserver sein) neben deinen PVE.
Ah, perfekt aneinander vorbei geredet, okay :)

Ich bin "nur" Privatuser, finde aber externe Festplatten als Notfallbackup gar nicht so blöd.
Danke für den weiteren Input. Mit den externen Festplatten hier waren nicht generell die Backups von Daten und Co. gemeint, sondern wirklich Dinge, die ich brauche um z. B. Passwortmanager wiederherzustellen, Notfallunterlagen falls ich ausfallen sollte - solche Dinge. Die Backups als solches für meine Daten erfolgen sowohl online in einer eigenen Cloud, als auch offline und im Homeoffice auf das TerraMaster NAS.
 
  • Like
Reactions: Johannes S
Ein Bekannter von mir hat eine kleine Designagentur, die Backups macht er auf zwei externen Festplatten, die er jede Woche rotiert (so dass immer eine bei ihm zuhause und eine im Büro) liegt. Seine Motivation: Es ist für ihn ohne Kosten für Cloudstorage und größere IT-Kenntnisse umsetzbar. Ich finde das eine gar nicht so blöde Herangehensweise, auch wenn es bei ihm halt Designs/Plakatentwürfe/Webseiten und keine VMs sind. Trotzdem hat er (anders als manche "IT-Profis) damit eine 3-2-1-Strategie umgesetzt, inklusive air-gapped Backup. Ich persönlich würde allerdings noch zwei Platten mehr haben, um auch monatlich rotieren zu können. Tatsächlich habe ich mir für meine private Infrastruktur auch vorgenommen ein Backup auf externen Platten als Notfalloption zu haben, nur bin ich bisher nicht zum Einrichten gekommen. Ein grundsätzliches Problem, dass ich bei solchen externen Medien sehe: Man muss halt daran denken, da das immer mit einer manuellen Aktion (dranstecken, Backup laufen lassen, abstecken) verbunden ist.
Sage deinem Bekannten mal, dass es nicht schlecht wäre mehr als 2 Disks zu haben, 3-4 würde ich vorschlagen und auch mal zu checken ob die Backups OK sind. Habe leider einen Fall mit einer kleinen Firma gehabt, da hatten alle 4 Disks nur defekte Backups. Da musste ich aus verschiedenen halb nutzbaren Backups wieder Daten zusammensuchen. Macht echt kein Spaß.
 
Ja korrekt, meinem Verständnis nach soll das die sicherste Methode für konsistente Backups sein. Korrigiere mich gerne, wenn ich da falsch liege.
Das ist laut https://pve.proxmox.com/pve-docs/chapter-vzdump.html schon korrekt, dafür hat man mit den snapshots eine kürzere Downtime und die Konsistenz sollte im Normalfall ausreichen:

snapshot mode (for vms)
This mode provides the lowest operation downtime, at the cost of a small inconsistency risk. It works by performing a Proxmox VE live backup, in which data blocks are copied while the VM is running. If the guest agent is enabled (agent: 1) and running, it calls guest-fsfreeze-freeze and guest-fsfreeze-thaw to improve consistency.

On Windows guests it is necessary to configure the guest agent if another backup software is used within the guest. See Freeze & Thaw in the guest agent section for more details.
A technical overview of the Proxmox VE live backup for QemuServer can be found online here.

Proxmox VE live backup provides snapshot-like semantics on any storage type. It does not require that the underlying storage supports snapshots. Also please note that since the backups are done via a background QEMU process, a stopped VM will appear as running for a short amount of time while the VM disks are being read by QEMU. However the VM itself is not booted, only its disk(s) are read.

snapshot mode for container
This mode uses the snapshotting facilities of the underlying storage. First, the container will be suspended to ensure data consistency. A temporary snapshot of the container’s volumes will be made and the snapshot content will be archived in a tar file. Finally, the temporary snapshot is deleted again.

snapshot mode requires that all backed up volumes are on a storage that supports snapshots. Using the backup=no mount point option individual volumes can be excluded from the backup (and thus this requirement).
By default additional mount points besides the Root Disk mount point are not included in backups. For volume mount points you can set the Backup option to include the mount point in the backup. Device and bind mounts are never backed up as their content is managed outside the Proxmox VE storage library.

Sage deinem Bekannten mal, dass es nicht schlecht wäre mehr als 2 Disks zu haben, 3-4 würde ich vorschlagen und auch mal zu checken ob die Backups OK sind. Habe leider einen Fall mit einer kleinen Firma gehabt, da hatten alle 4 Disks nur defekte Backups. Da musste ich aus verschiedenen halb nutzbaren Backups wieder Daten zusammensuchen. Macht echt kein Spaß.
Leider bin ich dem Mann nur einmal bei einer Veranstaltung begegnet und habe keine Kontaktdaten, sonst hätte ich das längst getan ;)
Mein Punkt ist: Er hat ein Konzept, dass trotz offensichtlicher Schwächen schon mal besser ist, als dass der meisten mir bekannten Privatleute und 1-Personen-Firmen.
 
  • Like
Reactions: bl1mp