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.
Als IT-Sicherheitsexperten in Heidelberg konfigurieren wir Proxmox-Sicherheitsarchitekturen für Unternehmen in Mannheim, Ludwigshafen und der Rhein-Neckar-Region. Jetzt IT-Sicherheitsberatung anfragen.