Hetzner und Proxmox: pfSense als Gateway

Ich nutze, wie viele meiner Leser wissen, einige Hetzner-Server im Zusammenspiel mit der Virtualisierungslösung Proxmox.

Um das Setup ein bisschen sicherer zu gestalten und nicht auf die Hetzner-Firewall angewiesen zu sein, habe ich mich vor kurzem darum gekümmert, meine virtuellen Maschinen hinter einer pfSense-VM abzuschirmen. Die Netzwerkkonfiguration war dabei nicht ganz trivial und daher möchte ich meinen Lesern einen kleinen Einblick geben.

Voraussetzungen

  • dedizierter Hetzner-Server (hier: EX41-SSD)
  • lauffähiges Proxmox-System
  • eine Zusatz-IP für die pfSense-VM mit MAC-Adresse (Hetzner-Robot)
  • Subnetz, gerouted auf die pfSense-VM

Sobald diese Voraussetzungen erfüllt sind, können wir uns an die Konfiguration des Systems machen.

Proxmox-Konfiguration

Die Proxmox-Konfiguration sieht bei mir wie folgt aus (/etc/network/interfaces):

Die Server-Haupt-IP und das Server-Haupt-Gateway könnt ihr aus dem Hetzner Robot auslesen – hier gibt es eigentlich nicht viele Fehlerquellen.

pfSense-Konfiguration

WAN-/LAN-Konfiguration

Die pfSense-Konfiguration ist nicht wirklich komplizierter. Im Proxmox-Interface erstellen wir die VM mit zwei Netzwerkdevices, eins davon gebunden an vmbr0 – unser WAN-Interface – und eins an vmbr1 – das LAN-Interface.

Nach der pfSense-Installation weisen wir die Interfaces in der pfSense entsprechend zu und konfigurieren das WAN-Interface:

pfSense WAN-Konfiguration

Die Konfiguration des LAN-Interfaces sollte selbsterklärend sein – privates Subnetz, kein Gateway.

Virtual IP Address

Um unser Subnetz hinter der pfSense nutzen zu können, müssen wir nun noch jede zu nutzende IP unter „Firewall -> Virtual IPs“ eintragen. Hier ist es möglich, alle IP-Adressen des Subnetzes einzutragen, wir brauchen keine Broadcast- oder Host-Adresse.

Interne IP-Adressen

Wir sind nun in der Lage, unseren Clients im LAN ihre IP-Adressen zu verteilen. Entweder man nutzt hierfür den DHCP-Server der pfSense und vergibt im einfachsten Fall statische Reservierungen oder mann konfiguriert die Clients per Hand.

Ich habe mich für die DHCP-Variante entschieden, auf die Konfiguration möchte ich hier aber nicht weiter eingehen, da das ziemlich selbsterklärend ist.

1:1 NAT

Um unsere internen Clients nun auch aus dem Internet erreichen zu können, müssen wir noch das 1:1 NAT konfigurieren.

1:1 NAT configuration

Firewall-Konfiguration

Zum Schluss ist es nun die Sache des Administrators, die Firewall korrekt zu konfigurieren. Hier gibt es so viele Lösungsansätze, dass ich darauf nicht weiter eingehen möchte – welche Ports wohin geöffnet werden, muss der Betreiber der Firewall selbst entscheiden.

ICMP-Ping-Regel

Ich finde es ganz angenehm, die Erreichbarkeit eines Hosts von außen mit einem ping prüfen zu können. Hierzu lege ich immer als erstes diese Regel in der pfSense-Firewall an:

pfSense ICMP Ping Rule

Als Destination muss natürlich die interne IP bzw. das interne Subnetz angegeben werden.

Fazit

Die Konfiguration einer pfSense-VM bei Hetzner ist nicht ganz trivial, aber doch gut machbar. Ein wenig Trial & Error ist zwar dabei, aber das ist es ja bei Firewalls immer. Als kleinen Tipp möchte ich noch mitgeben, den Zugriff auf das Proxmox-Webinterface nicht zu früh zu sperren, damit man im Zweifelsfall noch Zugriff auf die pfSense-Konsole hat, wenn man sich verkonfiguriert.

Gerne beantworte ich Fragen oder nehme Hinweise zu meinem Setup entgegen. Perfekt ist es sicher nicht, das weiß ich, aber es funktioniert bei mir zuverlässig, weshalb ich darüber eigentlich ganz glücklich bin. Sollte dennoch jemand einen guten Tipp parat haben: gerne ab in die Kommentare damit!

4 Gedanken zu “Hetzner und Proxmox: pfSense als Gateway

  1. Servus ,

    ein bestelltes Subnetz wird doch eigentlich auf die IP des Hosts geroutet von Hetzner aus, wie lass ich es dann auf eine zusatzIP routen?

  2. Also irgendwie wird mir nicht ganz Schlüssig:

    A: Das 1:1 NAT sollte das auf Any geroutet werden oder auf eine bestimmte Lan IP?
    B: Wie wird dann der DHCP konfiguriert das die VM’s eine Public IP erhalten ?

    • Deine Fragen deuten darauf hin, dass du das Prinzip von NAT nicht verstanden hast – bitte verzeih mir, wenn ich dir hier in den Kommentaren keine Schulung geben kann.

      Sobald du NAT verstanden hast, sollten sich deine Fragen erübrigen.

Schreibe einen Kommentar