1:1 NAT mit PFSense Firewall erstellen

Wenn man mit einer PFSense-Firewall mehrere öffentliche IP-Adressen benutzen möchte und dahinterliegende Server mit einer Firewall schützen möchte, bietet sich die Funktion eines 1:1 NAT an. Wie diese Funktion eingestellt wird, zeige ich euch hier in diesem Post.

Grundsätzlicher Aufbau

Der Aufbau bei mir ist ein Server in einem Rechenzentrum, auf dem Hyper-V zur Virtualisierung genutzt wird. Das System selbst ist über eine eigene IP-Adresse erreichbar, die in diesem Aufbau aber vollkommen unwichtig ist.

Zusätzlich ist für diesen Server noch ein Subnetz an IP-Adressen verfügbar, die für die virtuellen Systeme genutzt werden können. Die erste dieser Adressen ist auf der WAN-Seite der PFSense-VM eingetragen (nennen wir sie beispielhaft 40.30.20.10). Zusätzlich sind noch die Adressen 40.30.20.11 bis 40.30.20.19 verfügbar.
Auf der LAN-Seite der PFSense existiert ein normales internes IP-Netz (z.B. 192.168.100.0/24).

Die Konfiguration der PFSense

Wir beginnen nun damit, dass wir eine weitere IP-Adresse in dem PFSense-Router eintragen.

Weitere IP-Adressen hinzufügen

  • Firewall => Virtual IPs
  • Unten rechts auf Add
  • Hier machen wir nun die folgenden Einstellungen:

Ob es sich wirklich um das WAN-Interface handelt ist immer die Frage, in einer “normalen” Installation wird dies allerdings korrekt sein.

Nun speichern wir die getätigten Einstellungen und setzen sie mit Apply Changes fest.

NAT erstellen

Damit die Adresse bei einer Anfrage von außen auch auf den korrekten Server im LAN weitergereicht wird, wird ein 1:1 NAT benötigt. Statt eines Port-NATs sind wir so in der Lage, eine komplette Adresse 1:1 durchzureichen. Für diese Einrichtung benötigen wir die gerade eingetragene zusätzliche WAN-IP und die interne Adresse des Servers. In meinem Fall ist dies eine Debian-VM, auf der ein Apache Webserver installiert ist. Zum aktuellen Zeitpunkt ist der Apache-Webserver intern erreichbar, über die externe IP-Adresse erhalte ich einen Timeout.

Wir stellen nun das NAT ein unter

  • Firewall => NAT => 1:1
  • Hier tragen wir nun die folgenden Daten ein:

Nachdem ich nun die Änderungen gespeichert und übernommen habe, ist der Transfer der Daten von außen nach innen konfiguriert. Ich komme zu diesem Zeitpunkt aber immer noch nicht auf meinen Webserver, da die Firewall aktuell noch keinen Transfer durchlässt. Diesen Zugriff werden wir nun konfigurieren.

Firewall anpassen

Damit wir nun per NAT auf den Webserver zugreifen können, müssen wir noch die Firewall anpassen. Dies geschieht unter

  • Firewall => Rules => WAN

Hier erstellen wir eine neue Regel mit den folgenden Einstellungen:

Ich begrenze das NAT hier in meinem Fall auf den Port 80 TCP. Nachdem ich die Regeln gespeichert und übernommen habe, komme ich nun von außen über die WAN-IP auf das System drauf und sehe die Apache-Standardseite.

Kleiner Gegencheck: Stelle ich die Firewall-Regel von HTTP auf HTTPS um, komme ich nach dem Speichern der Regel nicht mehr per HTTP auf meinen Webserver, die Anfrage läuft ins Leere. Dies zeigt erneut, dass die Firewall so arbeitet, wie sie arbeiten soll.

Nun können entweder mehrere Regeln erstellt werden für den unterschiedlichsten Bedarf, alternativ können die Regeln auch offener gestaltet werden und es können Bereiche oder auch ganze Protokolle erlaubt werden. Ich empfehle allerdings, dass die Regeln möglichst eng geschnürt werden, damit ein Missbrauch eingeschränkt werden kann.

Ein Aufruf aus dem LAN heraus

Das erste, was ich mich nun gefragt habe, ist: Unter welche IP-Adresse geht das System nun online, wenn ich von innen heraus einen Aufruf von z.B. einer Webseite mache oder meine IP direkt abfrage?

Um dies zu testen, habe ich aus der Debian-VM heraus ein dig ausgeführt, was mir meine aktuelle WAN-IP auflistet.

Als Ausgabe zeigte mir die Shell die zusätzliche WAN-IP-Adresse, die ich explizit für die VM eingetragen habe. Sehr schön 🙂

Jan

Jan Kappen arbeitet sein 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Seit September 2018 ist Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.