Netzwerk

pfSense/OPNsense mit nur einer öffentlichen IP auf einem Proxmox Root-Server

Wie man einen dedizierten Root-Server (z. B. Hetzner) mit einer einzigen öffentlichen IP so konfiguriert, dass der gesamte VM-Traffic über eine pfSense/OPNsense-Firewall läuft.

Thomas 28. Oktober 2025 3 Min. Lesezeit 21 Aufrufe 13. März 2026

Übersicht

Dieser Artikel zeigt, wie man einen dedizierten Root-Server mit statischer IP-Adresse (z. B. bei Hetzner, IONOS oder Netcup) so konfiguriert, dass der gesamte VM-Datenverkehr über eine pfSense/OPNsense-Firewall läuft – mit nur einer einzigen öffentlichen IP-Adresse.

Netzwerk-Architektur

Die Lösung basiert auf drei Bridges:

  • vmbr0: WAN-Bridge mit öffentlicher IPv4/IPv6
  • vmbr1: Transit-Bridge (10.0.10.0/30) für pfSense-WAN
  • vmbr2: LAN-Bridge für pfSense und VMs

Eingehender Verkehr wird per DNAT zur WAN-Schnittstelle weitergeleitet (ausgenommen SSH Port 22 und die Proxmox-GUI Port 8006). Ausgehender Verkehr wird per Masquerading genattet.

Schritt 1: IP-Adressen ermitteln

# Interface setzen (bei Hetzner meist eno1)
IFACE=eno1

# IPv4-Adresse
ip -o -4 addr show dev "$IFACE" | awk '{print "address "$4}'

# IPv6-Adresse (ohne fe80::)
ip -o -6 addr show dev "$IFACE" | awk '$4 !~ /^fe80::/ {print "address "$4}'

# Default-Gateways
ip route | awk -v d="$IFACE" '$1=="default" && $5==d {print "gateway "$3; exit}'
ip -6 route | awk -v d="$IFACE" '$1=="default" && $5==d {print "gateway "$3; exit}'

Schritt 2: /etc/network/interfaces konfigurieren

Die Datei mit den ermittelten Adressen und den drei Bridges konfigurieren. Wichtige Elemente:

  • IPv4/IPv6 auf vmbr0 mit IP-Forwarding
  • iptables-Regeln für DNAT (ausgenommen Ports 22 und 8006)
  • vmbr1 mit Masquerading für das Transit-Netzwerk
  • vmbr2 als VLAN-aware Bridge für LAN
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

iface lo inet6 loopback

auto eno1
iface eno1 inet manual
# Physische NIC

auto vmbr0
iface vmbr0 inet static
    address 65.21.141.146/26
    gateway 65.21.141.129
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0
    bridge-maxwait 0
#WAN-Bridge  with IPV4 und IPV6 forwarding

iface vmbr0 inet6 static
    address 2a01:4f9:3b:2b1c::2/64
    gateway fe80::1
    post-up   ip -6 neigh add proxy 2a01:4f9:3b:2b1c::10 dev vmbr0
    post-down ip -6 neigh del proxy 2a01:4f9:3b:2b1c::10 dev vmbr0 || true

        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp -m multiport ! --dport 22,8006 -j DNAT --to 10.0.10.2
        post-up iptables -t nat -A PREROUTING -i vmbr0 -p udp -j DNAT --to 10.0.10.2
        post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp -m multiport ! --dport 22,8006 -j DNAT --to 10.0.10.2 || true
        post-down iptables -t nat -D PREROUTING -i vmbr0 -p udp -j DNAT --to 10.0.10.2 || true

auto vmbr1
iface vmbr1 inet static
    address 10.0.10.1/30
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    post-up   iptables -t nat -A POSTROUTING -s '10.0.10.0/30' -o vmbr0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.0.10.0/30' -o vmbr0 -j MASQUERADE || true
#Gateway-Bridge for pfSense

auto vmbr2
iface vmbr2 inet manual
    bridge-ports none
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094
#LAN on pfSense (for VM use)

#auto vmbr3
#iface vmbr3 inet manual
#   bridge-ports none
#   bridge-stp off
#   bridge-fd 0
#   bridge-vlan-aware yes
#   bridge-vids 2-4094
#LAN 2 on pfSense (for VM use)

#auto vmbr4
#iface vmbr4 inet manual
#   bridge-ports none
#   bridge-stp off
#   bridge-fd 0
#LAN 3 on pfSense (for VM use)

Schritt 3: System neu starten

/usr/sbin/reboot

Konfiguration bei pfSense/OPNsense

Das WAN-Interface erhält die IP-Adresse 10.0.10.2/30 mit Gateway 10.0.10.1.

Eine einzige öffentliche IP-Adresse genügt für ein vollständiges Firewall-Setup mit VM-Isolation auf Proxmox.

Kommentare

0

Noch keine Kommentare. Sei der Erste!

Kommentar schreiben

Kommentare werden vor der Veröffentlichung geprüft.