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.

dig @resolver1.opendns.com ANY myip.opendns.com +short

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


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Exchange Hybrid Infrastruktur
    • Microsoft Active Directory
    • Microsoft Office 365
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet seit 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. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

2 Kommentare:

  1. Klaus Mühlbach

    Hallo Jan,

    vielen Dank für deinen Beitrag den ich gerade auf der Suche nach einer Lösung für mein Problem gefunden habe. Leider wird mir aus deiner Anleitung heraus nicht ganz klar wie ich nun Teile eines öffentlichen Netzes an unterschiedliche Server weiterleuiten kann.

    Nehmen wir mal an mein IP-Netz lautet 40.30.20.96/27
    Somit habe ich die Adressen wie folgt zur Verfügung: 40.30.20.97 – 40.30.20.126 wobei die 40.30.20.97 für die WAN-Schnittstelle der Firewall verwendet werden soll.

    Nach meinem Verständnis trage ich dann die 40.30.20.97 als Alias-IP ein und habe diese somit auf der Firewall zur Verfügung. Kann ich nun die restlichen IP-Adressen direkt ins DMZ routen und dort an die Server verteilen? Oder benötige ich zwingend an den Servern eine interne IP und muss per NAT routen?

    Vielen Dank für eventuelle Unterstützung bereits im Vorraus.

    • Hallo Klaus,
      du könntest du Adressen direkt an die Server anbinden und sie dort nutzen. In diesem Fall wäre aber der Schutz der Firewall davor nicht gegeben und du musst dich entweder über eine Firewall beim Hoster absichern oder über die Server direkt, die die Adresse bekommen sollen. Ob du die IP (z.B. 40.30.20.104) in der Firewall als Alias einträgst oder sie direkt einer VM gibst, das ist dir überlassen. Ich bevorzuge die Absicherung über eine Firewall, dort kann ich dann ganz genau definieren, welche Ports offen sind und welche nicht.
      Wenn das deine Frage nicht beantworten sollte meld dich gern nochmal mit einem Kommentar hier.
      Schönen Gruß und schönen Abend
      Jan

Schreibe einen Kommentar

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