Schritt für Schritt

Firewall: Container abschotten

Kapitel 06 von 143 Min. Lesezeitaktualisiert 18.10.2026

Der Vereinsserver steht oft im selben Netz wie private Rechner, Drucker und Handys. Die Proxmox-Firewall sorgt dafür, dass die Vereins-Container nur miteinander reden und nicht ins übrige Heimnetz greifen können.

Worum es geht

Wird ein Dienst einmal kompromittiert, etwa durch eine Lücke in einer Anwendung, soll der Schaden im Container bleiben. Deshalb dürfen die Container von sich aus nur drei Dinge:

  • mit den anderen Vereins-Containern sprechen (192.168.178.201 bis 192.168.178.230),
  • DNS beim Router abfragen,
  • ins Internet, für Updates und E-Mails.

Alles andere im Heimnetz ist für sie gesperrt. Umgekehrt bleibt alles offen: Mein Rechner erreicht die Container weiterhin per SSH, Browser und Netzwerkfreigabe. Antworten auf eingehende Verbindungen lässt Proxmox immer durch.

Schritt 1: Firewall im Rechenzentrum einschalten

Die Proxmox-Firewall hat drei Ebenen: Rechenzentrum, Host und Gast. Sie wirkt nur, wenn sie im Rechenzentrum eingeschaltet ist. Damit dabei nichts aus Versehen gesperrt wird, bleibt die Grundregel „alles erlaubt“, und die Host-Firewall bleibt aus. So funktionieren Weboberfläche und SSH unverändert.

# /etc/pve/firewall/cluster.fw
[OPTIONS]

enable: 1
policy_in: ACCEPT
policy_out: ACCEPT
# /etc/pve/nodes/<knotenname>/host.fw
[OPTIONS]

enable: 0

Gibt es diese Dateien schon, weil man vorher selbst Regeln angelegt hat, nicht überschreiben, sondern nur unter Rechenzentrum → Firewall → Optionen „Firewall: Ja“ setzen.

Schritt 2: Regeln pro Container

Jeder Vereins-Container bekommt dieselbe kleine Regeldatei. Die erste passende Regel gilt, deshalb stehen die Ausnahmen oben und die Sperren darunter:

# /etc/pve/firewall/203.fw   (für jeden Container 201 bis 208)
[OPTIONS]

enable: 1
policy_in: ACCEPT
policy_out: ACCEPT

[RULES]

OUT ACCEPT -dest 192.168.178.201-192.168.178.230 -log nolog   # Vereins-Container untereinander
OUT ACCEPT -dest 192.168.178.1 -p udp -dport 53 -log nolog  # DNS der FRITZ!Box
OUT ACCEPT -dest 192.168.178.1 -p tcp -dport 53 -log nolog
OUT DROP -dest 10.0.0.0/8 -log nolog                 # übriges Heimnetz
OUT DROP -dest 172.16.0.0/12 -log nolog
OUT DROP -dest 192.168.0.0/16 -log nolog
OUT DROP -dest 100.64.0.0/10 -log nolog              # Tailscale und Co.

Ausgehende Verbindungen ins Internet fallen unter keine der Sperren und bleiben erlaubt. Der Bereich der Vereins-Container beginnt bewusst nach 192.168.178.200, also nach Proxmox selbst: Die Container sollen den Host nicht erreichen.

Schritt 3: Firewall an der Netzwerkkarte einschalten

Die Regeln greifen erst, wenn an der Netzwerkkarte des Containers der Haken „Firewall“ gesetzt ist. In der Oberfläche unter Netzwerk → net0 → Bearbeiten, oder in der Shell:

pct config 203 | grep net0          # aktuelle Einstellung ansehen
pct set 203 --net0 name=eth0,bridge=vmbr0,ip=192.168.178.203/24,gw=192.168.178.1,firewall=1

pve-firewall compile >/dev/null && pve-firewall restart

Prüfen

# aus einem Vereins-Container heraus
pct exec 203 -- ping -c1 192.168.178.202   # anderer Container: geht
pct exec 203 -- ping -c1 1.1.1.1           # Internet: geht
pct exec 203 -- ping -c1 192.168.178.20    # privater Rechner: keine Antwort

Noch besser: ein eigenes Netz (VLAN) für den Verein. Das braucht aber einen Router und Switch, die VLANs können. Die FRITZ!Box kann das nicht. Die Firewall-Regeln oben sind der pragmatische Weg, der mit jedem Heimrouter funktioniert.

Weiter: WireGuard: Zugang von unterwegs →

Moin!

Stehst du vor ähnlichen Fragen?

Ob eigener Verein, Homelab oder einfach Neugier: Ich freue mich über Fragen und Erfahrungen.