pfSense auf Proxmox VE: Firewall für dein Home Lab (Shared & Dedicated IP)
Na, alter Hase oder frisch dabei im Home Lab? Egal! Wir tauchen heute tief in die Materie ein und verpassen deinem Proxmox-Setup eine ordentliche Portion Sicherheit und Kontrolle: Wir installieren und konfigurieren pfSense als deine zentrale Firewall.
In meiner Erfahrung ist eine dedizierte Firewall im Home Lab, egal ob auf Proxmox oder Bare Metal, Gold wert. Sie trennt deine internen Netze sauber ab, bietet VPN-Möglichkeiten, Intrusion Detection und vieles mehr. Und mal ehrlich, wer will schon, dass seine Docker-Container oder Home Assistant-Instanzen ungeschützt im Netz hängen?
Dieser Guide ist für dich, wenn du pfSense auf deinem Proxmox VE 8 oder 9 betreiben und dabei zwei gängige Szenarien abdecken möchtest: Erstens, wie du pfSense mit einer geteilten IP-Adresse einrichtest, um deine internen VMs zu schützen. Zweitens, wie du pfSense mit einer dedizierten, öffentlichen IP-Adresse betreibst, was dir noch mehr Flexibilität und direkte Erreichbarkeit bietet. Das Letztere ist besonders spannend, wenn du bei einem Hoster wie Hetzner bist und dir eine zusätzliche IP-Adresse gegönnt hast.
Bereit? Dann krempel die Ärmel hoch, schnapp dir einen Kaffee und legen wir los!
Voraussetzungen – Was du mitbringen solltest
Bevor wir uns ins Getümmel stürzen, lass uns kurz checken, ob du alles am Start hast:
- Proxmox VE Server: Eine laufende Installation von Proxmox VE 8 oder 9. Das ist unsere Basis.
- Hardware-Ressourcen: Genügend RAM (min. 1-2 GB für pfSense selbst, plus was deine anderen VMs brauchen) und CPU-Kerne (min. 1-2 für pfSense, besser 2). Eine kleine SSD für pfSense schadet auch nicht.
- Netzwerkschnittstellen: Dein Proxmox-Server sollte mindestens eine physische Netzwerkschnittstelle haben, die mit dem Internet verbunden ist. Für unser pfSense-Setup benötigen wir intern dann noch virtuelle Brücken.
- pfSense ISO: Die aktuelle Community Edition (CE) ISO von der offiziellen pfSense-Webseite.
- Grundkenntnisse Netzwerk: Ein Verständnis von IP-Adressen, Subnetzen, Gateways und grundlegenden Firewall-Konzepten ist hilfreich. Wer das zum ersten Mal einrichtet, stolpert oft über die korrekte Zuweisung der Netzwerkkarten oder die initialen IP-Adressen. Mein Tipp: Mach dir vorher einen kleinen Plan mit deinen IP-Adressbereichen!
- Zusätzliche IP (optional): Wenn du das Szenario mit der dedizierten IP testen möchtest, benötigst du eine zusätzliche, öffentliche IP-Adresse von deinem Provider. Bei Hetzner ist das relativ einfach zu buchen.
Wichtig zu wissen: Bei Netzwerkänderungen auf dem Proxmox-Host kann es passieren, dass du die SSH-Verbindung verlierst. Halte immer eine Proxmox Console-Session (entweder direkt am Server oder über die Web-GUI) bereit, um dich im Notfall wieder einloggen zu können!
Abschnitt 1: pfSense mit geteilter IP auf Proxmox VE einrichten
Das ist das gängigste Szenario für die meisten Home Labs. Dein Proxmox-Host hat eine öffentliche IP-Adresse, und pfSense agiert als Firewall und Router für deine internen VMs. Der Proxmox-Host leitet den Traffic für pfSense weiter (via NAT oder Routing).
1. Netzwerkkonfiguration auf dem Proxmox-Server anpassen
Zuerst müssen wir Proxmox beibringen, wie es mit den Netzwerkkarten umgehen soll. Wir brauchen eine Bridge für WAN (die an dein physisches Interface geht) und eine Bridge für LAN (für deine internen VMs).
Melde dich via SSH auf deinem Proxmox-Server an und bearbeite die Datei /etc/network/interfaces. Sichere die Originaldatei vorher!
cp /etc/network/interfaces /etc/network/interfaces.bak
nano /etc/network/interfaces
Hier ist ein Beispiel, wie deine Konfiguration aussehen könnte. Passe eth0 an dein physisches Interface und die IP-Adressen/Gateway an dein Setup an. Die vmbr0 ist für WAN (Internet), vmbr1 für LAN (internes Netz).
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# LAN-Bridge für interne VMs - hier verbinden wir unsere internen VMs
# Diese Bridge hat keine eigene IP-Adresse auf dem Proxmox-Host
# Wir weisen ihr eine PVID zu, die später der pfSense WAN-Schnittstelle zugewiesen wird (VLAN-ID 100)
# Die VMs hinter pfSense nutzen dann die LAN-Bridge von pfSense selbst
auto vmbr1
iface vmbr1 inet static
address 192.168.1.1
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0
# Hier der Clou: Wir nutzen VLAN-Awareness, um den Traffic zu trennen
# Das ist wichtig, damit pfSense den WAN-Traffic sauber sieht
bridge-vlan-aware yes
bridge-pvid 100 # Das ist die VLAN-ID, die wir später der pfSense WAN-NIC zuweisen
# bridge-vids 1-99 101-4094 # Erlaubt alle anderen VLANs durchzureichen, falls nötig
# WAN-Bridge für pfSense - diese verbindet pfSense mit dem Internet
# Das ist die Bridge, die an deine physische Netzwerkkarte gebunden ist
# Die IP-Adresse ist die deines Proxmox-Hosts
auto vmbr0
iface vmbr0 inet static
address 192.168.178.10/24 # Beispiel: Deine Proxmox-Host IP
gateway 192.168.178.1 # Beispiel: Dein Router-Gateway
bridge-ports eth0 # Dein physisches WAN-Interface
bridge-stp off
bridge-fd 0
# Wir brauchen hier keine VLAN-Awareness, da pfSense den WAN-Traffic direkt bekommt
# bridge-vlan-aware no
# bridge-pvid 1 # Default VLAN für untagged Traffic
Mein Tipp: Die obige Konfiguration für vmbr1 mit bridge-vlan-aware yes und bridge-pvid 100 ist eine fortgeschrittenere Methode, um das WAN-Interface von pfSense über ein VLAN zu isolieren, auch wenn es an dieselbe physische Schnittstelle geht wie der Proxmox-Host. Wenn du es einfacher haben willst und dein Proxmox-Host nur eine physische NIC hat, kannst du auch einfach vmbr0 als WAN-Bridge für pfSense nutzen und eine zusätzliche vmbr1 für das interne LAN erstellen, die keine physischen Ports hat. Der Proxmox-Host macht dann das NAT für vmbr0. Der Quelltext legt eine vmbr1 mit PVID 100 an, die dann vom pfSense-WAN genutzt wird. Das ist eine saubere Trennung.
Speichere die Datei und starte den Netzwerkdienst neu:
systemctl restart networking
Überprüfe danach die Konfiguration mit ip a. Deine neuen Bridges sollten sichtbar sein.
2. pfSense ISO vorbereiten und hochladen
Lade die aktuelle pfSense CE ISO von der offiziellen Webseite herunter. In meiner Erfahrung ist es am einfachsten, die ISO direkt auf den Proxmox-Server zu laden.
Manchmal kommt die ISO als .gz-Datei. Dann musst du sie entpacken:
gunzip pfSense-CE-*.iso.gz
Lade die entpackte ISO-Datei in deinen Proxmox Storage, z.B. local:
Gehe in der Proxmox Web-GUI zu Datacenter -> [Dein Node] -> local -> ISO Images -> Upload.
3. pfSense VM erstellen
Jetzt erstellen wir die VM für pfSense. Achte hier besonders auf die Netzwerkkarten!
- Klicke auf "VM erstellen" in der Proxmox Web-GUI.
- General: Gib eine VM ID und einen Namen wie "pfSense-Firewall" an.
- OS: Wähle dein hochgeladenes pfSense ISO aus. Setze den Typ auf "Other" und die Version auf "Other".
- System: Standardeinstellungen sind meist okay. Wähle "Qemu Agent" ab, da pfSense keinen braucht.
- Disks: Wähle "SCSI" als Bus/Device, "VirtIO Block" als Controller. Gib der Platte 10-20 GB Speicherplatz. Das reicht dicke für pfSense.
- CPU: 2 Cores sind ein guter Start. Typ "host" ist oft die beste Wahl.
- Memory: 1024 MB oder 2048 MB sind ausreichend.
- Network: Hier wird's wichtig!
- Netzwerkkarte 1 (WAN): Bridge
vmbr0(oder die Bridge, die an dein physisches WAN-Interface geht). Modell:VirtIO (paravirtualisiert). - Netzwerkkarte 2 (LAN): Füge eine zweite Netzwerkkarte hinzu. Bridge
vmbr1(unsere interne LAN-Bridge). Modell:VirtIO (paravirtualisiert).
- Netzwerkkarte 1 (WAN): Bridge
- Confirm: Überprüfe deine Einstellungen und klicke auf "Fertigstellen".
Wichtig zu wissen: Überprüfe nach dem Erstellen der VM in den Hardware-Einstellungen noch einmal, ob die Netzwerkkarten wirklich an den richtigen Bridges hängen und der Typ auf VirtIO steht. Das hat mir viel Zeit gespart, als ich das zum ersten Mal eingerichtet habe.
4. pfSense starten und installieren
Starte die pfSense VM und öffne die Konsole in der Proxmox Web-GUI. Folge den Installationsschritten:
- Wähle "Accept" für die Lizenz.
- Wähle "Install" und dann "Auto (UFS)". Bestätige die Festplattenauswahl.
- Lass die Installation durchlaufen.
- Wähle "Reboot" am Ende.
5. Konfiguration von pfSense an der Konsole
Nach dem Reboot siehst du das pfSense-Menü. Jetzt konfigurieren wir die Netzwerkinterfaces:
- Wähle Option
1für "Assign Interfaces". - Sollte auto-detection fehlschlagen, musst du die Interfaces manuell zuweisen.
vtnet0ist meist die erste VirtIO-NIC,vtnet1die zweite.- WAN Interface:
vtnet0(verbunden mitvmbr0auf Proxmox) - LAN Interface:
vtnet1(verbunden mitvmbr1auf Proxmox)
- WAN Interface:
- Bestätige die Zuweisung.
- Wähle Option
2"Set interface IP addresses". - WAN-Schnittstelle konfigurieren:
- Wähle
1für WAN. - IPv4-Konfiguration:
DHCP(wenn dein Proxmox-Host DHCP bekommt oder der Router DHCP vergibt) oderStatic. Für statisch gibst du die öffentliche IP, Subnetzmaske und das Gateway an, das dir dein Provider zugewiesen hat oder das Gateway deines Proxmox-Hosts. - IPv6-Konfiguration:
Noneoder wie benötigt. - "Do you want to revert to HTTP?":
n(Wir wollen HTTPS).
- Wähle
- LAN-Schnittstelle konfigurieren:
- Wähle
2für LAN. - IPv4-Adresse: z.B.
192.168.1.1 - Subnetzmaske:
24(für 255.255.255.0) - Gateway: Leer lassen (pfSense ist das Gateway für das LAN).
- DHCP für LAN aktivieren?
y(Ja, für einfache Konfiguration deiner VMs). - DHCP Start/End Range: z.B.
192.168.1.100bis192.168.1.200. - "Do you want to revert to HTTP?":
n.
- Wähle
Dein pfSense sollte jetzt eine WAN-IP haben und eine interne LAN-IP. Du solltest die Web-GUI über die LAN-IP erreichen können.
Optional kannst du noch den Hostname ändern (Option 2 und dann 1 für WAN, dann Enter bei DHCP und dort den Hostname eingeben).
6. pfSense im Browser öffnen und initial konfigurieren
Verbinde eine deiner internen VMs (z.B. einen Windows Server oder eine Linux-VM) mit der Proxmox-Bridge vmbr1. Diese VM sollte jetzt via DHCP eine IP von pfSense erhalten. Öffne dann einen Browser in dieser VM und navigiere zu der LAN-IP deiner pfSense (z.B. https://192.168.1.1).
Das Standard-Login ist User: admin, Passwort: pfsense.
Wichtig: Ändere das Admin-Passwort SOFORT! Das ist der erste und wichtigste Schritt für die Sicherheit deiner Firewall.
Folge dem Setup-Wizard:
- General Information: Hostname, Domain.
- DNS Servers: z.B.
8.8.8.8und1.1.1.1. - Time Server: NTP-Server.
- Configure WAN Interface: Hier sind deine Einstellungen von der Konsole übernommen.
- Configure LAN Interface: Auch hier sollten deine Einstellungen passen.
- Admin WebGUI Password: Ändere es jetzt, falls noch nicht geschehen.
- Reload: pfSense übernimmt die Einstellungen.
7. Aliases und NAT-Regeln einrichten (Port Forwarding)
Wenn du Dienste in deinem internen Netz von außen erreichbar machen möchtest, brauchst du NAT-Regeln (Port Forwarding).
Beispiel: RDP-Zugriff auf einen Windows Server (192.168.1.10) hinter pfSense.
- Gehe zu
Firewall -> Aliases -> IP. Erstelle einen Alias für deinen Windows Server, z.B. "WinServer" mit der IP192.168.1.10. - Gehe zu
Firewall -> NAT -> Port Forward. - Klicke auf "Add".
- Interface: WAN
- Protocol: TCP
- Destination: WAN address
- Destination port range: From
3389(RDP) To3389 - Redirect target IP: Wähle deinen Alias "WinServer".
- Redirect target port:
3389 - Description: RDP zu WinServer
- NAT Reflection: Use system default (oder Reflection for port forwards).
- Klicke auf "Save" und "Apply Changes".
pfSense legt automatisch eine entsprechende Firewall-Regel an. Jetzt solltest du von außen über die WAN-IP deines Proxmox-Hosts auf den RDP-Port des Windows Servers zugreifen können.
Abschnitt 2: pfSense mit dedizierter IP auf Proxmox VE einrichten
Dieses Szenario ist etwas für Fortgeschrittene und bietet dir eine saubere Trennung: Deine pfSense-Firewall bekommt eine eigene, öffentliche IP-Adresse, die direkt von deinem Provider zu ihr geroutet wird. Das ist ideal, wenn du pfSense selbst direkt exponieren oder ein ganzes Subnetz dahinter betreiben willst, ohne dass der Proxmox-Host dazwischenfunkt.
Mein Tipp: Bevor du hier loslegst, mache unbedingt ein Backup deiner bestehenden VMs und der Proxmox-Netzwerkkonfiguration! Das erspart dir Kopfschmerzen, falls etwas schiefgeht.
1. Zusätzliche IP bei Provider mieten
Bei Anbietern wie Hetzner kannst du zusätzliche IP-Adressen oder ganze IP-Subnetze zu deinem Server hinzubuchen. Wichtig ist, dass diese IP-Adresse(n) zu deinem Server geroutet werden. Du erhältst dann die zusätzliche IP und oft auch ein Gateway, das du in pfSense konfigurieren musst.
2. Vorbereitung: Backups und Proxmox Netzwerk zurücksetzen
Wie gesagt: Backups! Dann müssen wir die Proxmox-Netzwerkkonfiguration anpassen, falls du vorher das Shared-IP-Setup hattest. Das "Zurücksetzen" bedeutet hier, dass wir die speziellen Konfigurationen für die geteilte IP (z.B. PVIDs für WAN) entfernen und eine einfachere Bridge-Konfiguration für die dedizierte IP verwenden.
Die /etc/network/interfaces auf deinem Proxmox-Host könnte dann wieder so aussehen, dass vmbr0 einfach dein physisches Interface bridgt und die Haupt-IP des Hosts trägt. Die dedizierte IP wird dann direkt in pfSense konfiguriert und von deinem Provider zu deiner Haupt-IP geroutet.
# ... (loopback und vmbr0 mit Haupt-IP des Proxmox-Hosts)
auto vmbr0
iface vmbr0 inet static
address /
gateway
bridge-ports eth0
bridge-stp off
bridge-fd 0
# vmbr1 für internes LAN bleibt wie gehabt
auto vmbr1
iface vmbr1 inet static
address 192.168.10.1 # Neues internes Subnetz, z.B. für dedizierte IP-Szenario
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0
Starte den Netzwerkdienst neu: systemctl restart networking.
Wenn du die alte pfSense VM entfernt hast, musst du sie neu erstellen oder die Netzwerkkarten der bestehenden pfSense VM anpassen.
3. pfSense mit eigener IP installieren und einrichten
Die Installation von pfSense läuft prinzipiell genauso wie im ersten Szenario. Der entscheidende Unterschied liegt in der Konfiguration der WAN-Schnittstelle.
- Erstelle eine neue pfSense VM oder nutze die alte, nachdem du ihre Netzwerkkarten angepasst hast. Stelle sicher, dass das WAN-Interface (vtnet0) mit
vmbr0und das LAN-Interface (vtnet1) mitvmbr1verbunden ist. - Installiere pfSense wie zuvor beschrieben.
- Nach dem Reboot, im Konsolenmenü (Option
2"Set interface IP addresses"), wähle das WAN-Interface