Proxmox Firewall Architektur
Die integrierte Proxmox-Firewall basiert auf iptables/nftables und bietet drei Konfigurationsebenen:
- Datacenter-Firewall: Globale Regeln, die für alle Nodes und VMs gelten
- Node-Firewall: Regeln für den Proxmox-Host selbst (schützt die Verwaltungsschnittstelle)
- VM/CT-Firewall: Regeln für einzelne virtuelle Maschinen und Container
Die Regeln werden von oben nach unten abgearbeitet: Datacenter → Node → VM.
Wichtig: Firewall ist standardmäßig DEAKTIVIERT
Die Proxmox-Firewall muss explizit auf allen Ebenen aktiviert werden. Bis zur Aktivierung hat sie keinen Einfluss auf den Netzwerkverkehr.
Datacenter-Firewall einrichten
Firewall aktivieren
- Datacenter → Firewall → Options
- Firewall: ON
Hier konfigurieren Sie auch:
- Input Policy: ACCEPT (Standard) oder DROP
- Output Policy: ACCEPT (empfohlen lassen)
- Log Level: Für Debug-Zwecke
IPSet erstellen (IP-Gruppen)
IPSets ermöglichen es, mehrere IPs in einer Gruppe zu verwalten:
- Datacenter → Firewall → IPSet → Add
- Name: z. B.
admin-ips - IPs hinzufügen: z. B.
192.168.1.0/24(lokales Netz),10.0.0.5(Admin-PC)
IPSets können in Firewall-Regeln als Quelle oder Ziel verwendet werden.
Sicherheitsgruppen erstellen
Sicherheitsgruppen sind wiederverwendbare Regelsets:
- Datacenter → Firewall → Security Groups → Create
- Name: z. B.
webserver-rules - Regeln hinzufügen:
- IN: ACCEPT – Port 80 (HTTP)
- IN: ACCEPT – Port 443 (HTTPS)
- IN: DROP – alle anderen Ports
Eine Sicherheitsgruppe kann dann mehreren VMs zugewiesen werden.
Node-Firewall (Proxmox-Host absichern)
Der Proxmox-Host selbst muss besonders gut geschützt werden:
- Node auswählen → Firewall → Options
- Firewall: ON
- Input Policy: DROP (alle eingehenden Verbindungen blockieren außer erlaubten)
Grundregeln für den Node
SSH erlauben (von Admin-Netz):
- Direction: IN
- Action: ACCEPT
- Source:
+admin-ips(IPSet) - Dest. Port: 22
Proxmox-Weboberfläche erlauben (Port 8006):
- Direction: IN
- Action: ACCEPT
- Source:
+admin-ips - Dest. Port: 8006
ICMP (Ping) erlauben:
- Direction: IN
- Action: ACCEPT
- Protocol: ICMP
Cluster-Kommunikation (falls Cluster vorhanden):
- Direction: IN
- Action: ACCEPT
- Source:
+cluster-nodes - Dest. Port: 8007,111,2049,60000:60050
Wichtig: Eigene IP NICHT blockieren!
Bevor Sie "Input Policy: DROP" setzen, stellen Sie sicher, dass Ihre Management-IP in den Erlaubt-Regeln steht. Sonst sperren Sie sich selbst aus!
VM-Firewall konfigurieren
VM-Firewall aktivieren
- VM auswählen → Firewall → Options
- Firewall: ON
Typische Regelsets
Für einen Webserver:
IN: ACCEPT – src: any – port: 80 (HTTP) IN: ACCEPT – src: any – port: 443 (HTTPS) IN: ACCEPT – src: +admin-ips – port: 22 (SSH) IN: DROP – src: any – port: any
Für einen Datenbankserver:
IN: ACCEPT – src: +webserver-ips – port: 3306 (MySQL) IN: ACCEPT – src: +admin-ips – port: 22 IN: DROP – src: any
Für einen Domain Controller:
IN: ACCEPT – src: +internal-net – port: 53 (DNS) IN: ACCEPT – src: +internal-net – port: 389 (LDAP) IN: ACCEPT – src: +internal-net – port: 636 (LDAPS) IN: ACCEPT – src: +internal-net – port: 88 (Kerberos) IN: ACCEPT – src: +admin-ips – port: 3389 (RDP) IN: DROP – src: any
Makros verwenden
Proxmox bietet vordefinierte Makros für gängige Dienste:
DNS– Port 53 TCP+UDPHTTP– Port 80 TCPHTTPS– Port 443 TCPSSH– Port 22 TCPSMB– Samba/Windows-DateifreigabeRDP– Remote Desktop
Statt einzelne Ports einzugeben, wählen Sie das Makro aus.
Firewall-Logs analysieren
Firewall-Regeln mit LOG-Aktion erzeugen Syslog-Einträge:
journalctl -u pve-firewall --since "1 hour ago"tail -f /var/log/pvefw-logger.log
Für Debug: Regel anlegen mit Action "ACCEPT + LOG" oder "DROP + LOG" um Verbindungsversuche zu sehen.
Fail2Ban für zusätzlichen Schutz
Fail2Ban blockiert IPs die zu viele Fehlversuche haben:
apt install -y fail2ban
Proxmox-spezifische Jail-Konfiguration:
nano /etc/fail2ban/jail.d/proxmox.conf
[proxmox] enabled = true port = https,http,8006 filter = proxmox logpath = /var/log/daemon.log maxretry = 3 bantime = 3600
Filter erstellen:
nano /etc/fail2ban/filter.d/proxmox.conf
[Definition] failregex = pvedaemon[.*authentication failure; rhost=<HOST> user=.* msg=.* ignoreregex =
systemctl restart fail2ban
SSL-Zertifikat für sicheres HTTPS
Ersetzen Sie das selbstsignierte Zertifikat durch ein Let's-Encrypt-Zertifikat:
Voraussetzung: Domain die auf Proxmox-IP zeigt, Port 80 erreichbar.
- Node → Certificates → ACME
- Account registrieren (E-Mail eingeben)
- Domain hinzufügen (Challenge: HTTP oder DNS)
- Order Certificate
Zertifikat wird automatisch erneuert.
FAQ
Stoppt die Proxmox-Firewall laufende Verbindungen wenn ich sie aktiviere?
Nein, bestehende Verbindungen werden nicht getrennt. Neue Verbindungen folgen ab sofort den Regeln.
Kann ich iptables direkt auf dem Proxmox-Host bearbeiten?
Technisch ja, aber nicht empfohlen. Proxmox überschreibt manuelle iptables-Regeln beim Neustart. Nutzen Sie die Proxmox-Firewall oder eine eigene Firewall-VM.
Schützt die VM-Firewall auch vor Angriffen aus dem internen Netz?
Ja. Die VM-Firewall filtert auch interne Verbindungen zwischen VMs auf demselben Host.
Fazit
Die integrierte Proxmox-Firewall ist ein mächtiges Werkzeug zur Absicherung Ihrer virtuellen Infrastruktur. Mit IPSets und Sicherheitsgruppen verwalten Sie komplexe Regelwerke übersichtlich.
Ich berate und betreue Unternehmen in Heidelberg, Mannheim, Karlsruhe und der Rhein-Neckar-Region im Bereich Proxmox-Virtualisierung. Beratung anfragen.