pfSense Software Netzwerkadressübersetzungsanleitung
Die Netzwerkadressübersetzung (NAT) ist die Zuordnung einer Internetprotokoll (IP)-Adresse zu einer anderen, indem der Header von IP-Paketen verändert wird, während sie einen Router durchlaufen. Im Rahmen dieser Strategie zeigt die NAT-Konfiguration der Außenwelt nur eine einzige IP-Adresse für das gesamte Netzwerk, wodurch die Sicherheit des gesamten internen Netzwerks im Wesentlichen verschleiert und verbessert wird. Die Netzwerkadressübersetzung wird häufig in Remote-Access-Kontexten verwendet, da sie Adressen spart und gleichzeitig die Sicherheit erhöht. Dies erhöht die Sicherheit, während die Anzahl der benötigten IP-Adressen für eine Organisation verringert wird.
NAT ist eine Methode zur Isolierung externer und interner Netzwerke (WANs und LANs) und zur gemeinsamen Nutzung einer externen IP-Adresse unter den Clients im internen Netzwerk. NAT ist sowohl mit IPv4- als auch mit IPv6-Netzwerken kompatibel. IPv6 unterstützt ebenfalls die Netzwerkpräfixübersetzung.
Die Mehrheit der untenstehenden Optionen verwendet drei separate Adressen:
-
Quelladresse
-
Zieladresse
-
Umleitungsadresse.
Adresse | Beschreibung |
---|---|
Quelle | Von wo der Verkehr kommt. |
Umleitung | Wohin der Verkehr umgeleitet werden soll. |
Das Deaktivieren von pf
deaktiviert NAT
auf pfSense.
Diese Adressen werden für die folgenden Zwecke verwendet:
-
BINAT: NAT funktioniert normalerweise nur in eine Richtung. Sie können bidirektionales BINAT verwenden, wenn beide Netzwerke die gleiche Größe haben. Dies könnte Ihre Konfiguration vereinfachen. Sie können Standard-NAT nur verwenden, wenn die Größen Ihrer Netzwerke unterschiedlich sind.
-
NAT-Reflexion: Wenn ein Benutzer im internen Netzwerk versucht, sich mit einem lokalen Server zu verbinden, indem er die externe IP-Adresse anstelle der internen verwendet, schreibt NAT-Reflexion die Anfrage um, um die interne IP-Adresse zu verwenden, wodurch ein Umweg vermieden wird und Regeln befolgt werden, die für echten externen Verkehr gedacht sind.
-
Pool-Optionen: Wenn zahlreiche IPs verfügbar sind, ermöglicht diese Option, auszuwählen, welche IP verwendet wird. Die Standardeinstellung, Round Robin, verteilt die Pakete sequenziell an jeden Server. Diese Option hat keine Auswirkungen, wenn nur eine externe IP-Adresse konfiguriert ist.
In seiner häufigsten Verwendung ermöglicht die Netzwerkadressübersetzung (NAT) vielen IPv4-Computern, sich über eine einzige IPv4-Öffentliche Adresse mit dem Internet zu verbinden. Die pfSense®-Software ermöglicht diese grundlegenden Installationen sowie erheblich kompliziertere NAT-Setups, die in Netzwerken mit zahlreichen öffentlichen IP-Adressen erforderlich sind.
NAT wird sowohl in eingehender als auch in ausgehender Richtung eingerichtet. Outbound NAT beschreibt die Übersetzung des Datenverkehrs, der ein lokales Netzwerk in ein entferntes Netzwerk verlässt, wie zum Beispiel das Internet. Inbound NAT bezieht sich auf den Datenverkehr eines entfernten Netzwerks, der in ein lokales Netzwerk eintritt. Die am häufigsten verwendete Art von eingehendem NAT ist das Port-Forwarding, mit dem die meisten Administratoren am vertrautesten sind.
Was ist die Standard-NAT-Konfiguration auf pfSense?
Dieser Abschnitt beschreibt die Standard-NAT-Einstellungen der pfSense-Software. Automatisch die optimale NAT-Konfiguration erstellen, die gefunden werden kann. Dieses Setup ist möglicherweise nicht für bestimmte Umstände geeignet, und die pfSense-Software ermöglicht eine vollständige Anpassung über die Weboberfläche. Dies steht im Gegensatz zu den meisten anderen Open-Source-Firewall-Implementierungen, die nicht die Merkmale enthalten, die häufig für Netzwerke benötigt werden, die nicht klein und einfach sind.
Was ist die Standard-Outbound-NAT-Konfiguration?
In einer typischen Zwei-Schnittstellen-Konfiguration, die aus einem LAN und WAN besteht, wandelt die Standard-NAT-Konfiguration den ins Internet gehenden Datenverkehr in die WAN-IP-Adresse um. Wenn mehrere WAN-Schnittstellen installiert sind, wird der gesamte ausgehende Datenverkehr automatisch in die Adresse der aktiven WAN-Schnittstelle übersetzt.
IKE konfiguriert automatisch einen statischen Port.
Die pfSense-Software erkennt WAN-ähnliche Schnittstellen zur Verwendung mit NAT, indem sie nach einem auf der Schnittstellenkonfiguration konfigurierten Gateway sucht, wenn diese eine statische IP-Adresse hat, oder indem sie annimmt, dass die Schnittstelle eine WAN ist, wenn es sich um eine dynamische Art wie PPPoE oder DHCP handelt.
Was ist die Standard-Setup für Inbound NAT?
Standardmäßig ist kein Internetzugang über die WAN-Schnittstelle erlaubt. Wenn vom Internet stammender Datenverkehr einen internen Host erreichen muss, sind Portweiterleitung oder 1:1 NAT erforderlich.
Was ist Port-Forwarding?
Portweiterleitung ermöglicht den Zugriff auf einen bestimmten Port, einen Portbereich oder ein Protokoll auf einem intern adressierten Netzwerkgerät. Es wurde von dem technisch genaueren "Inbound NAT" umbenannt, um es benutzerfreundlicher zu machen. Das Wort "Portweiterleitung" wurde gewählt, da es das ist, was die meisten Menschen in diesem Kontext erkennen. Diese Funktion wird in anderen Systemen als "Destination NAT" bezeichnet. Dennoch ist "Port Forward" ein irreführender Begriff, da Port-Forward-Regeln vollständige Protokolle wie GRE oder ESP zusätzlich zu TCP- und UDP-Ports umleiten und auch für andere Formen der Verkehrsweiterleitung neben der typischen Portweiterleitung verwendet werden. Dies wird oft verwendet, wenn Server gehostet oder Apps genutzt werden, die eingehende Internetverbindungen benötigen.
Was sind die Sicherheitsrisiken des Port-Forwarding?
Mit der Standardkonfiguration erlaubt die pfSense®-Software keinen Internet-verursachten Datenverkehr. Dies schützt vor Personen, die das Internet nach anfälligen Systemen absuchen, um sie anzugreifen. Wenn eine Portweiterleitungsregel vorhanden ist, erlaubt die Firewall jeglichen Datenverkehr, der den geltenden Firewall-Regeln entspricht. Die Firewall kann zwischen Paketen mit bösartigem Payload und solchen mit harmlosen Payloads nicht unterscheiden. Wenn die Verbindung den Firewall-Regeln entspricht, wird sie erlaubt. Das Zielsystem muss hostbasierte Kontrollen verwenden, um alle über die Firewall erlaubten Dienste abzusichern. Der Einsatz einer ID/IPS-Lösung wie Snort oder Suricata und einer Next-Generation-Firewall-Erweiterung wie Zenarmor sind weitere Netzwerkschutzmechanismen zur Eliminierung der Cybersicherheit von Portweiterleitungen.
Was ist die Beziehung zwischen Portweiterleitung und lokalen Diensten?
Portweiterleitung hat Vorrang vor lokal laufenden Diensten wie der Weboberfläche und SSH auf der Firewall. Wenn der Zugriff auf die entfernte Weboberfläche über HTTPS auf TCP-Port 443 vom WAN aus erlaubt ist, hat eine Portweiterleitung auf dem WAN für TCP-Port 443 Vorrang und die Weboberfläche ist dann nicht mehr vom WAN aus verfügbar. Dies hat keine Auswirkungen auf andere Schnittstellen; nur die Schnittstelle, die die Portweiterleitung enthält, ist betroffen.
Was ist die Beziehung zwischen Portweiterleitung und 1:1 NAT?
Portweiterleitung hat Vorrang vor 1:1 NAT. Wenn eine Portweiterleitung auf einer externen IP-Adresse eingerichtet ist, die einen Port an einen Host sendet, und ein 1:1 NAT-Eintrag auf derselben externen IP-Adresse definiert ist, der alles an einen anderen Host weiterleitet, bleibt die Portweiterleitung aktiv und leitet weiterhin an den ursprünglichen Host weiter.
Was sind die Portweiterleitungseinstellungen auf pfSense?
Die folgenden Optionen stehen zur Verfügung, wenn Sie einen Port-Forward-Eintrag auf der pfSense-Software-Firewall erstellen oder ändern:
-
Deaktivieren: Optionales Kontrollkästchen, um diese NAT-Portweiterleitung zu deaktivieren. Um die Regel zu deaktivieren, wählen Sie dieses Kontrollkästchen aus.
-
Kein RDR (NICHT): Negiert die Bedeutung dieser Portweiterleitung und zeigt an, dass keine Weiterleitung erfolgen soll, wenn diese Regel erfüllt ist. Die Mehrheit der Konfigurationen wird dieses Feld nicht benötigen. Dies würde verwendet werden, um eine Weiterleitungsaktion zu überschreiben, die in einigen Fällen erforderlich sein kann, um den Zugriff auf einen Dienst an der Firewall mithilfe einer IP-Adresse, die für 1:1 NAT verwendet wird, oder für eine andere komplexe Situation zu ermöglichen.
-
Schnittstelle: Die Schnittstelle, auf der die Portweiterleitung aktiviert wird. Dies wird oft WAN sein. Für zusätzliche WAN-Verbindungen oder lokale Umleitungen kann diese Schnittstelle geändert werden. Die Schnittstelle ist der Punkt, an dem der Datenverkehr für diese Portweiterleitung die Firewall erreicht.
-
Adressfamilie: IPv4- oder IPv6-Adressfamilie für die IP-Adresse, auf der dieser Port weitergeleitet wird. Wenn eine Schnittstelle Adressen beider Familien hat, wird die Adresse der entsprechenden Familie verwendet. Darüber hinaus muss bei der Auswahl einer Schnittstelle deren Adresse diesem Typ entsprechen. Beim Auswählen einer bestimmten IP-Adresse muss die Adressfamilie übereinstimmen.
-
Protokoll: Protokoll, das mit dem eingehenden Datenverkehr übereinstimmen muss. Dieser Wert muss dem Typ des gesendeten Dienstes entsprechen, sei es TCP, UDP oder eine andere Option. Die TCP/UDP-Option leitet TCP und UDP gleichzeitig mit einer einzigen Regel weiter.
-
Quelle: Standardmäßig sind diese Optionen hinter einer Schaltfläche "Erweitert" verborgen und auf jede Quelle eingestellt. Die Quellenauswahl beschränkt die IP-Adressen und Ports, von denen aus dieser Port-Forwarding-Zugriff möglich ist. Sie sind oft unnötig. Wenn der weitergeleitete Port von jedem Internetstandort aus zugänglich sein muss, muss die Quelle
any
sein. Verwenden Sie ein Alias für Dienste mit eingeschränktem Zugriff, damit nur eine begrenzte Gruppe von IP-Adressen auf die Portweiterleitung zugreifen kann. DerSource Port Range
muss aufany
belassen werden, es sei denn, der Dienst benötigt einen bestimmten Quellport, da die überwiegende Mehrheit der Kunden zufällige Quellports verwenden wird. -
Ziel: Die IP-Adresse der Quelle des Verkehrs, der weitergeleitet wird. In den meisten WAN-Port-Forwarding-Situationen ist dies die WAN-Adresse. Es kann eine virtuelle IP (siehe virtuelle IP-Adressen) über das WAN sein, wenn zahlreiche öffentliche IP-Adressen verfügbar sind. Wenn das Kontrollkästchen
Invert Match
aktiviert ist, wird die Portweiterleitung mit jedem Paket übereinstimmen, das nicht mit dem Ziel übereinstimmt. -
Zielportbereich: Der ursprüngliche Zielport des Verkehrs, bevor er an den angegebenen Zielhost weitergeleitet wird. Um einen einzelnen Port weiterzuleiten, geben Sie den Port in das Feld
Von
ein und lassen Sie das FeldBis
leer. Mit den Dropdown-Menüs dieser Gruppe steht eine Reihe von Standarddiensten zur Auswahl. Darüber hinaus können Port-Aliasnamen verwendet werden, um eine Gruppe von Diensten zu routen. Wenn hier ein Alias angegeben wird, muss derselbe Alias alsRedirect-Zielport
verwendet werden. -
Redirect-Ziel-IP: Die IP-Adresse, an die der Datenverkehr weitergeleitet oder umgeleitet wird. IPv6-Ziele müssen den gleichen Geltungsbereich wie ihre jeweiligen Ziele haben.
tippBeim Verwenden eines Alias als Wert für dieses Feld sollte nur eine IP-Adresse angegeben werden. Die Verwendung mehrerer Adressen führt zu einer Round-Robin-Weiterleitung des Verkehrs zu den Zielseiten, obwohl dies für diesen Vorgang nicht optimal ist. Wenn einer der Zielhosts nicht verfügbar ist, wird der Verkehr trotzdem zur nicht verfügbaren Seite geleitet.
Verwenden Sie das HAProxy-Paket für Situationen, die das Weiterleiten an mehrere Hosts erfordern, wie z.B. Lastverteilung oder Failover-Szenarien.
-
Umgeleiteter Zielport: Der Beginn des weitergeleiteten Portbereichs. Wenn ein Bereich von Ports, wie
19000
-19100
, weitergeleitet wird, wird nur der lokale Anfangspunkt angegeben, da die Anzahl der Ports eins zu eins übereinstimmen muss. Dieser Parameter ermöglicht das Öffnen eines Ports auf der Außenseite, der sich von dem unterscheidet, auf dem der Host auf der Innenseite lauscht. Zum Beispiel kann für HTTP auf einem internen Server der externe Port8888
an den lokalen Port80
weitergeleitet werden. Über das Dropdown-Menü können Sie aus einer Liste gängiger Dienste auswählen. Darüber hinaus können Port-Aliasnamen verwendet werden, um eine Gruppe von Diensten zu routen. Wenn ein Alias in diesem Feld verwendet wird, muss er auch im Feld „Zielportbereich“ verwendet werden. -
Beschreibung: Dieses Feld könnte eine kurze Beschreibung des Zwecks oder der Funktion der Portweiterleitung enthalten.
-
Kein XML-RPC-Sync: Diese Option ist nur anwendbar, wenn ein HA-Cluster-Setup verwendet wird; andernfalls sollte sie weggelassen werden. Das Aktivieren dieser Option bei der Verwendung eines HA-Clusters mit Konfigurationssynchronisierung verhindert, dass die Regel auf die anderen Cluster-Mitglieder synchronisiert wird. Im Allgemeinen sollten jedoch alle Regeln synchronisiert werden. Diese Option verhindert nur, dass eine Regel auf Master-Knoten überschrieben wird; sie hat keine Auswirkungen auf Slave-Knoten.
-
NAT-Reflexion: Diese Option ermöglicht es, die Reflexion pro Regel zu aktivieren oder zu deaktivieren und damit die globale Standardeinstellung zu überschreiben.
-
Filterregelzuordnung: Ein Port-Forward-Eintrag gibt einfach die Art des Verkehrs an, der umgeleitet wird; eine Firewall-Regel ist erforderlich, um den Verkehr durch die Umleitung zuzulassen.
Verknüpfte Filterregel hinzufügen
ist standardmäßig ausgewählt. Die angebotenen Optionen sind wie folgt:Keine
: Wenn diese Option ausgewählt wird, wird keine Firewall-Regel erstellt.Verknüpfte Filterregel hinzufügen
: Diese Option verknüpft eine Firewall-Regel mit dieser NAT-Portweiterleitungsregel. Änderungen an der NAT-Regel werden sofort in der Firewall-Regel widergespiegelt. Wenn diese Option ausgewählt ist, wird hier ein Link zur entsprechenden Firewall-Regel angezeigt, wenn die Regel gespeichert wird. Dies ist das optimale Standardverhalten für die Mehrheit der Nutzungsszenarien.Unverbundene Filterregel hinzufügen
: Diese Option generiert eine separate Firewall-Regel aus der NAT-Portweiterleitung. Änderungen an der NAT-Regel müssen manuell in der Firewall-Regel widergespiegelt werden. Dies ist hilfreich, wenn zusätzliche Optionen oder Einschränkungen auf die Firewall-Regel im Gegensatz zur NAT-Regel angewendet werden müssen.Pass
: Diese Option verwendet ein spezifischespf
-Schlüsselwort in der NAT-Portweiterleitungsregel, um den Datenverkehr ohne eine Firewall-Regel durchzulassen. Aufgrund des Fehlens einer spezifischen Firewall-Regel wird jeglicher Verkehr, der dieser Regel entspricht, an das Zielsystem gesendet.
Pass-Regeln funktionieren nur auf der Schnittstelle, die das Standard-Gateway der Firewall hostet; sie sind mit Multi-WAN nicht kompatibel.
Wie füge ich eine Portweiterleitung hinzu?
Portweiterleitungen werden über die Portweiterleitung-Registerkarte in Firewall > NAT verwaltet. NAT-Regeln werden auf die gleiche Weise verwaltet wie pfSense-Firewall-Regeln.
Um einen Weiterleitungsport in Ihrer pfSense-Software hinzuzufügen, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Firewall > NAT > Portweiterleitung im pfSense-Web-UI.
-
Klicken Sie auf die Hinzufügen-Schaltfläche mit einem UP-Symbol, um auf das Bearbeitungsfeld für die Portweiterleitung zuzugreifen.
-
Geben Sie die Portweiterleitungsparameter wie im vorherigen Abschnitt zu den Portweiterleitungseinstellungen angegeben ein.
Abbildung 1. Hinzufügen der Portweiterleitung für HTTP-1
-
Klicken Sie auf Speichern.
Abbildung 2. Hinzufügen der Portweiterleitung für HTTP-2
-
Klicken Sie auf die Schaltfläche Änderungen anwenden, um die Einstellungen zu aktivieren.
Die folgende Abbildung zeigt ein Beispiel der Portweiterleitungsbearbeitungsseite mit den korrekten Einstellungen, um HTTP-Pakete (Port 80), die an die WAN-IP-Adresse gerichtet sind, an das interne System unter 10.1.1.15 weiterzuleiten.
Nach dem Auswählen von Speichern wird die Port-Forward-Liste erneut angezeigt, wie in der nächsten Abbildung gezeigt, mit dem neu erstellten Eintrag sichtbar.
Abbildung 3. Anzeigen der NAT-Portweiterleitungsregeln
Unter Firewall > Regeln auf dem Tab für die Schnittstelle, auf der die Portweiterleitung eingerichtet wurde, überprüfen Sie die Firewall-Regel erneut. Wie in Abbildung Port Forward Firewall Rule dargestellt, zeigt die Regel an, dass der Datenverkehr auf dem angegebenen Port in die interne IP-Adresse eintreten darf.
Abbildung 4. HTTP-Portweiterleitungs-Firewall-Regel auf der WAN-Schnittstelle
Wenn möglich, sollte die Source
der automatisch erstellten Regel eingeschränkt werden. Dies ist unpraktisch für Dinge wie Mail- und Webserver, die weitgehend zugänglich sein müssen, aber für Remote-Management-Dienste wie SSH, RDP und andere sollten nur eine begrenzte Anzahl von Hosts erlaubt sein, sich über das Internet mit einem Server unter Verwendung dieser Protokolle zu verbinden. Das Erstellen eines Alias für erlaubte Hosts und das anschließende Ändern der Quelle auf das Alias ist eine viel sicherere Methode. Andernfalls ist der Server für jeden im Internet zugänglich. Nachdem sichergestellt wurde, dass die Portweiterleitung mit der uneingeschränkten Quelle funktioniert, begrenzen Sie die Quelle nach Bedarf.
Wenn alles in Ordnung zu sein scheint, wird die Portweiterleitung funktionieren, wenn sie von außerhalb des Netzwerks überprüft wird.
Wie man Änderungen an Port-Weiterleitungen überwacht?
Ein Zeitstempel wird einem Port-Forward-Element hinzugefügt, wenn es erstellt oder zuletzt aktualisiert wird, um anzuzeigen, welcher Benutzer die Regel erstellt hat und wer sie zuletzt bearbeitet hat.
Abbildung 5. Tracking NAT-Portweiterleitungsregel
Firewall-Regeln, die automatisch durch verwandte NAT-Regeln erstellt werden, werden ebenfalls als solche am Erstellungsdatum der verknüpften Firewall-Regel identifiziert.
Abbildung 6. Verfolgung der Firewall-Regel für NAT-Portweiterleitung
Was sind die Einschränkungen des Port-Forwardings?
Für jede zugängliche öffentliche IP-Adresse kann ein einzelner Port nur an einen internen Host weitergeleitet werden. Zum Beispiel, wenn nur eine öffentliche IP-Adresse verfügbar ist, darf nur ein interner Webserver, der TCP-Port 80 verwendet, eingerichtet werden, um den Webverkehr zu bearbeiten. Zusätzliche Server müssen andere Ports wie 8080 verwenden. Die Verwendung von fünf zugänglichen öffentlichen IP-Adressen als virtuelle IP-Adressen ermöglicht die Konfiguration von fünf internen Webservern, die Port 80 nutzen.
Portfreigabe kann für Dienste wie HTTP und HTTPS unter Verwendung der HAProxy-Software durchgeführt werden. Ein Proxy kann differenziertere Entscheidungen darüber treffen, wie Anfragen an interne Hosts weitergeleitet werden, wenn Anfragen auf irgendeine Weise unterschieden werden können, zum Beispiel durch unterschiedliche Anforderungs-Hostnamen.
Es gibt eine seltene, aber manchmal relevante Ausnahme von dieser Regel. Wenn ein bestimmter Port nur für bestimmte Quell-IP-Adressen an einen bestimmten internen Host weitergeleitet werden muss und derselbe Port für andere Quell-IP-Adressen an einen anderen Host weitergeleitet werden kann, kann die Quelladresse in den Portweiterleitungseinträgen angegeben werden.
NAT-Reflexion muss aktiviert sein, damit Portweiterleitungen auf WAN-Adressen über ihre entsprechenden WAN-IP-Adressen von internen Schnittstellen aus zugänglich sind. Testen Sie die Portweiterleitung immer von einem Gerät mit einer separaten Internetverbindung und niemals von innerhalb des Netzwerks. Das Überprüfen externer Verbindungen von einem mobilen Gerät über 3G/4G ist eine schnelle und unkomplizierte Methode.
Selbstkonfiguration des Dienstes mit UPnP oder NAT-PMP
Mehrere Anwendungen ermöglichen Universal Plug-and-Play (UPnP) oder NAT Port Mapping Protocol (NAT-PMP), um NAT-Portweiterleitungen und Firewall-Regeln automatisch einzurichten. Es gibt noch größere Sicherheitsprobleme, obwohl die Vorteile der Nutzung im Wohnbereich oft die Risiken überwiegen.
Verkehrsumleitung mit Portweiterleitungen
Portweiterleitung kann verwendet werden, um den Datenverkehr von einem internen Netzwerk transparent umzuleiten. Portweiterleitung, die das LAN oder eine andere interne Schnittstelle angibt, leitet den Datenverkehr an das gewählte Ziel weiter. Dies wird oft verwendet, um HTTP-Verkehr transparent an einen Proxy-Server weiterzuleiten oder gesamten ausgehenden DNS-Verkehr an einen einzelnen Server umzuleiten.
Was ist 1:1 (One-to-One) NAT?
1:1 NAT (ausgesprochen "one-to-one NAT") übersetzt eine externe (oft öffentliche) IP-Adresse in eine interne IP-Adresse. (usually private).
Durch das Überschreiben der Outbound-NAT-Konfiguration ordnet der 1:1 NAT-Eintrag allen Verkehr, der von der privaten IP-Adresse ausgeht, die öffentliche IP-Adresse zu, die im Eintrag angegeben ist.
Der gesamte Internetverkehr, der für die im Mapping angegebene öffentliche IP-Adresse bestimmt ist, wird in die private IP-Adresse umgewandelt und dann anhand des Firewall-Regelsatzes an der eingehenden WAN-Schnittstelle analysiert. Wenn die Firewall-Regeln den Verkehr zu einem Ziel mit einer privaten IP-Adresse zulassen, wird er an den internen Host weitergeleitet.
1:1 NAT übersetzt ganze Subnetze zusätzlich zu einzelnen Adressen, vorausgesetzt, dass die Subnetze die gleiche Größe haben und mit den Subnetzgrenzen übereinstimmen.
1:1 NAT bewahrt die Ports bei einer Verbindung; bei ausgehenden Verbindungen werden die Quellports, die vom lokalen System verwendet werden, beibehalten, ähnlich dem Verhalten von Static Port bei ausgehenden NAT-Regeln.
Was sind die Risiken von 1:1 NAT?
Wenn die WAN-Firewall-Regeln den Datenverkehr zulassen, sind die Gefahren, die von 1:1 NAT ausgehen, mit der Portweiterleitung vergleichbar. Wann immer Vorschriften den Verkehr zulassen, kann potenziell gefährlicher Verkehr in ein lokales Netzwerk eindringen. Es gibt ein geringfügiges Risiko bei der Verwendung von 1:1 NAT, da Fehler in den Firewall-Regeln schwerwiegendere Folgen haben könnten. Durch die Verwendung von Port-Forwarding-Einträgen wird der Datenverkehr durch die Einschränkungen der NAT-Regeln und der Firewall-Regeln begrenzt. Wenn TCP-Port 80 über eine Portweiterleitungsregel geöffnet wird, würde eine allow all
-Regel im WAN nur TCP-Port 80 auf dem internen Host erlauben. Wenn 1:1 NAT-Regeln vorhanden sind und eine allow-all
-Regel im WAN existiert, wird der gesamte interne Host aus dem Internet zugänglich sein, wenn beide Regeln vorhanden sind. Trotz der Tatsache, dass Fehlkonfigurationen immer ein Risiko darstellen, ist dies oft kein Grund, 1:1 NAT zu vermeiden. Behalten Sie dies im Hinterkopf, während Sie Firewall-Regeln festlegen, und erlauben Sie niemals etwas, das nicht notwendig ist.
Was sind 1:1 NAT-Regeloptionen?
Beim Erstellen oder Aktualisieren eines 1:1 NAT-Regel-Eintrags unter Firewall > NAT auf dem 1:1-Tab stehen für jeden Eintrag die folgenden Optionen zur Verfügung:
-
Deaktiviert: Steuert, ob der 1:1 NAT-Eintrag aktiviert ist oder nicht.
-
Nicht BINAT (NICHT): Diese Option, wenn sie aktiviert ist, verhindert, dass der Verkehr, der dieser 1:1-Regel entspricht, dem 1:1 NAT unterliegt, wenn er sonst einer Regel unterhalb davon im Regelwerk entsprechen würde.
-
Schnittstelle: Schnittstelle, an der die 1:1 NAT-Übersetzung erfolgt, oft eine WAN-Verbindung. Die 1:1 NAT-Regel betrifft nur den Datenverkehr, der diese Schnittstelle betritt und verlässt. Wenn zahlreiche WAN-Typ-Schnittstellen vorhanden sind, erfordert die Umleitung des Verkehrs zur Nutzung dieser Schnittstelle statische Routen, Richtlinienrouten oder vergleichbare Konfigurationen.
-
Adressfamilie: Wählen Sie IPv4 oder IPv6, je nachdem, welche Art von Adresse in den Feldern dieser Regel verwendet wird.
tippWährend 1:1 NAT-Regeln mit IPv6 verwendet werden können, ist die IPv6-Netzpräfixübersetzung (NPt) in den meisten Szenarien besser geeignet, um das Präfix des IPv6-Verkehrs zu übersetzen.
-
Externe Subnetz-IP: Die IP-Adresse, in die interne IP-Adressen umgewandelt werden, wenn sie die Schnittstelle betreten oder verlassen. Oft ist dies eine virtuelle IP-Adresse auf der Schnittstelle oder eine IP-Adresse, die über die Schnittstelle an die Firewall weitergeleitet wird.
-
Interne IP: Die IP-Adresse hinter der Firewall, die in die IP-Adresse des externen Subnetzes umgewandelt wird. Oft ist dies eine IP-Adresse hinter der Firewall. Das Gerät mit dieser IP muss direkt (verbunden) oder indirekt diese Firewall als sein Gateway nutzen. (via static route). Das Festlegen einer Subnetzmaske in diesem Feld wird das gesamte Netzwerk übersetzen, das mit der Subnetzmaske übereinstimmt. Zum Beispiel wandelt die Verwendung von
x.x.x.0/24
jede Subnetzadresse in ihre Entsprechung im externen Netzwerk um. -
Ziel: Optional, eine Netzwerkbeschränkung, die 1:1 NAT-Einträge einschränkt. Wenn ein Wert vorhanden ist, wird das 1:1 NAT nur wirksam, wenn der Datenverkehr von der internen IP-Adresse zur Zieladresse auf dem Weg nach außen oder von der Zieladresse zur externen Subnetz-IP-Adresse auf dem Weg nach innen reist. Das Ziel-Feld ist mit Aliassen kompatibel.
-
Beschreibung: Eine optionale textliche Erklärung des Zwecks des Eintrags.
-
NAT-Reflexion: Ein Ersatz für die globalen NAT-Reflexionseinstellungen. Verwenden Sie die Standardeinstellungen des Systems, um die globalen NAT-Reflexionseinstellungen zu respektieren, aktivieren Sie immer die NAT-Reflexion für diesen Eintrag und deaktivieren Sie niemals die NAT-Reflexion für dieses Element.
Wie konfiguriert man eine 1:1 NAT-Regel?
Sie können eine 1:1 NAT-Regel auf Ihrer pfSense-Firewall konfigurieren, indem Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Firewall > Virtuelle IPs im pfSense-Web-UI, um eine virtuelle IP für die öffentliche IP-Adresse hinzuzufügen, die für den 1:1 NAT-Eintrag verwendet werden soll.
Abbildung 7. Firewall Virtuelle IP-Adressen
-
Klicken Sie auf die Schaltfläche +Hinzufügen, um eine neue virtuelle IP-Adresse hinzuzufügen.
-
Wählen Sie
Proxy ARP
als Typ aus. -
Wählen Sie
WAN
als Schnittstelle. -
Wählen Sie
Einzelne Adresse
als Adress-Typ. -
Geben Sie Ihre externe öffentliche IP-Adresse im Feld Adresse(n) ein.
-
Fügen Sie eine Beschreibung hinzu, wie z.B.
Meine öffentliche IP-Adresse
.Abbildung 8. Hinzufügen von virtuellen IP-Adressen zur Firewall
-
Klicken Sie auf Speichern, um die Änderungen zu speichern.
-
Klicken Sie auf Änderungen anwenden, um die Einstellungen zu aktivieren.
-
Navigieren Sie zu Firewall > NAT > 1:1-Registerkarte.
-
Klicken Sie auf die Schaltfläche Hinzufügen mit einem Aufwärtspfeil-Symbol, um einen neuen 1:1-Eintrag oben in der Liste zu erstellen.
-
Konfigurieren Sie den 1:1 NAT-Eintrag, der im Abschnitt „Was sind 1:1 NAT-Regeloptionen“ beschrieben ist.
-
Klicken Sie auf Speichern.
-
Klicken Sie auf Änderungen anwenden, um die Einstellungen zu aktivieren.
Beispiel für die Konfiguration einer 1:1 NAT mit einer einzelnen IP-Adresse
Dieser Abschnitt beschreibt die Konfiguration eines 1:1 NAT-Eintrags mit einer einzelnen internen und externen IP-Adresse. 22.33.44.55
ist eine virtuelle IP-Adresse auf der WAN-Schnittstelle in diesem Szenario. In den meisten Installationen wird dies durch eine gültige öffentliche IP-Adresse ersetzt. Der mit dieser Zuordnung verbundene E-Mail-Server befindet sich in einem DMZ-Bereich mit der internen IP-Adresse 10.1.1.25
. Der 1:1 NAT, auch bekannt als statisches NAT (SNAT), Eintrag, um die IP-Adresse 22.33.44.55
in die IP-Adresse 10.1.1.25
zu übersetzen. Um eine 1:1 NAT-Regel für eine einzelne IP-Adresse zu definieren, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu Firewall > Virtuelle IPs im pfSense-Web-UI, um eine virtuelle IP für die öffentliche IP-Adresse hinzuzufügen, die für den 1:1 NAT-Eintrag verwendet werden soll.
-
Klicken Sie auf die Schaltfläche +Hinzufügen, um eine neue virtuelle IP-Adresse hinzuzufügen.
-
Wählen Sie
Proxy ARP
als Typ aus. -
Wählen Sie
WAN
als Schnittstelle. -
Wählen Sie
Einzelne Adresse
als Adressentyp -
Geben Sie Ihre externe öffentliche IP-Adresse im Feld Adresse(n) an, z.B.
22.33.44.55
. -
Fügen Sie eine Beschreibung hinzu, wie z.B.
IP-Adresse des E-Mail-Servers
. -
Klicken Sie auf Speichern, um die Änderungen zu speichern.
-
Klicken Sie auf Änderungen anwenden, um die Einstellungen zu aktivieren.
-
Navigieren Sie zu Firewall > NAT > 1:1-Registerkarte.
-
Klicken Sie auf die Schaltfläche Hinzufügen mit einem nach oben zeigenden Pfeilsymbol, um einen neuen 1:1-Eintrag oben in der Liste zu erstellen.
-
Wählen Sie
Single Host
aus dem Typ-Dropdown-Menü und geben Sie die Adresse an, wie z.B.22.33.44.55
für die Externe Subnetz-IP-Option. -
Wählen Sie
Single Host
aus dem Typ-Dropdown-Menü und geben Sie Adresse/Masken an, wie z.B.10.1.1.25
für die Interne IP-Option. -
Füllen Sie das Beschreibungfeld aus, zum Beispiel
E-Mail-Server 1:1 NAT
. -
Sie können die anderen Einstellungen auf den Standardwerten belassen.
Abbildung 9. Hinzufügen einer 1:1 NAT-Regel für eine einzelne IP-Adresse
-
Klicken Sie auf Speichern.
-
Klicken Sie auf Änderungen anwenden, um die Einstellungen zu aktivieren.
Beispiel für die Konfiguration des 1:1 NAT für IP-Adressbereiche
Mit CIDR-Bereichen kann 1:1 NAT für mehrere öffentliche IP-Adressen eingerichtet werden. In diesem Beispiel wird ein /30 CIDR-IP-Adressbereich mit 1:1 NAT eingerichtet.
Externe IP | Interne IP |
---|---|
100.100.100.64/30 | 10.1.1.64/30 |
100.100.100.64 | 10.1.1.64 |
100.100.100.65 | 10.1.1.65 |
100.100.100.66 | 10.1.1.66 |
100.100.100.67 | 10.1.1.67 |
Das letzte Oktett der IP-Adressen muss nicht innen und außen gleich sein, obwohl es einfacher zu verstehen ist, wenn es so ist.
-
Navigieren Sie zu Firewall > NAT > 1:1-Registerkarte.
-
Klicken Sie auf die Schaltfläche Hinzufügen mit einem Aufwärtspfeil-Symbol, um einen neuen 1:1-Eintrag oben in der Liste zu erstellen.
-
Wählen Sie
Single Host
aus dem Typ-Dropdown-Menü und geben Sie die Adresse an, wie z.B.100.100.100.64
für die Externe Subnetz-IP-Option. -
Wählen Sie
Netzwerk
aus dem Typ-Dropdown-Menü und geben Sie Adresse/Maske an, wie z.B.10.1.1.64/30
für die Interne IP-Option. -
Füllen Sie das Beschreibung-Feld aus, z.B.
IP-Bereich NAT
. -
Sie können die anderen Einstellungen als Standard belassen.
Abbildung 10. Hinzufügen einer IP-Adressbereich 1:1 NAT-Regel
-
Klicken Sie auf Speichern.
-
Klicken Sie auf Änderungen anwenden, um die Einstellungen zu aktivieren.
Wie man NAT- und Firewall-Anfragen behandelt?
Die Konfiguration von NAT- und Firewall-Regeln erfordert ein Verständnis der Reihenfolge, in der Firewalling und NAT stattfinden. Die folgende Abbildung - Reihenfolge der NAT- und Firewall-Anfragen - veranschaulicht die grundlegende logische Reihenfolge. Das Diagramm zeigt auch, wo tcpdump passt, da seine Verwendung zur Fehlersuche später in diesem Leitfaden unter Packet Capture behandelt wird.
Abbildung 11. Reihenfolge der NAT- und Firewall-Anfragen
In herkömmlichen Einstellungen wird jede Ebene nicht unbedingt in beide Richtungen durchlaufen. Dennoch können bei Verwendung von Floating-Regeln, manuellem ausgehendem NAT oder anderen komplexen Konfigurationen jede Schicht in beide Richtungen durchlaufen werden. Die Abbildung umfasst nur grundlegende eingehende und ausgehende Verkehrssituationen.
Bezüglich der Verarbeitung des Regelsets ist die Reihenfolge wie folgt:
-
NAT-Ausgehende Regeln
-
Eingehende NAT-Regeln einschließlich Portweiterleitung (einschließlich
rdr pass
und UPnP) -
Regeln, die dynamisch von RADIUS für IPsec- und OpenVPN-Clients empfangen werden
-
Interne automatische Regeln (pass and block for various items like lockout, snort, DHCP, etc.)
-
Benutzerdefinierte Regeln:
- Regeln, die auf dem schwebenden Tab angegeben sind
- Regeln, die auf den Gruppen-Interface-Tabs angegeben sind (Including IPsec and OpenVPN)
- Regeln, die auf Schnittstellentabs angegeben sind (WAN, LAN, OPTx, etc)
-
Automatisierte VPN-Regeln
Beispiel der Firewall/NAT-Verarbeitungsreihenfolge
Der Verkehr von LAN zu WAN wird wie im folgenden Beispiel näher beschrieben behandelt. Wenn ein Regeltyp nicht existiert oder nicht übereinstimmt, wird er übersprungen.
-
Portweiterleitung auf der LAN-Schnittstelle oder 1:1 NAT (e.g. proxy or DNS redirects)
-
Regeln für die LAN-Schnittstelle der Firewall:
- Eingehende Floating-Regeln auf LAN
- Regeln für Schnittstellengruppen, die die LAN-Schnittstelle umfassen
- Regeln im LAN-Tab
-
1:1 NAT oder Outbound NAT-Regeln auf WAN
-
Schwebende Regeln, die mit ausgehenden Verbindungen auf WAN übereinstimmen
Portweiterleitung auf WAN und Firewall-Regeln auf der WAN-Registerkarte gelten in diesem Szenario nicht.
Für WAN-initiierten Verkehr ist die Reihenfolge dieselbe, aber die Richtung ist umgekehrt:
-
Portweiterleitung auf der WAN-Schnittstelle oder 1:1 NAT (e.g. public services)
-
Regeln für die Firewall der WAN-Schnittstelle:
- Eingehende Floating-Regeln auf WAN
- Regeln für Schnittstellengruppen, die die WAN-Schnittstelle einschließen
- WAN-Registerregeln
-
1:1 NAT oder Outbound NAT-Regeln im LAN
-
Schwebende Regeln, die mit ausgehendem Verkehr im LAN übereinstimmen
Je nach Richtung des Datenverkehrs ist tcpdump immer das erste und letzte Programm, um ihn zu betrachten. Zuerst auf der eingehenden Schnittstelle vor jeglicher NAT- oder Firewall-Verarbeitung, dann auf der ausgehenden Schnittstelle. Es zeigt den Inhalt des Drahtes an.
Schwebende Regeln ohne schnellen
Set-Prozess als „letztes Match gewinnt“ anstelle von „erstes Match gewinnt“. Methode. Wenn eine Floating-Regel ohne quick
festgelegt wird und ein Paket sowohl dieser Regel als auch einer späteren Regel entspricht, wird die spätere Regel angewendet. Dies ist das Gegenteil der anderen Tab-Regeln (Gruppen, Schnittstellen) und der quick
-Set-Regeln, die die Verarbeitung einstellen, sobald eine Übereinstimmung gefunden wird.
Verwendung von Extrapolation auf zusätzliche Schnittstellen
Das obige Bild und die Listen zeigen nur eine einfache LAN- und WAN-Implementierung mit zwei Schnittstellen. Die gleichen Anforderungen gelten auch bei der Verwendung zusätzlicher Schnittstellen. Das Verhalten der Kommunikation zwischen zwei internen Schnittstellen ist identisch mit dem des LAN-to-WAN-Verkehrs; jedoch übersetzen die standardmäßigen NAT-Regeln den Verkehr zwischen internen Schnittstellen nicht, weshalb die NAT-Schicht in diesen Fällen inaktiv ist. Wenn es Outbound-NAT-Regeln gibt, die auf den Verkehr zwischen internen Schnittstellen zutreffen, werden sie wie angegeben angewendet.
Regeln für NAT
Auf dem Weg in eine Schnittstelle wird NAT vor den Firewall-Regeln angewendet, daher müssen die Firewall-Regeln übereinstimmen, wenn das Ziel auf dem Weg nach innen übersetzt wird (z.B. Portweiterleitung oder 1:1 NAT auf WAN). In der normalen Situation eines Port-Forwarding auf dem WAN bedeutet dies, dass die Regel mit der privaten IP-Adresse des Ziels im LAN übereinstimmen muss.
Outbound NAT wird vor den Firewall-Regeln auf dem Weg aus einer Schnittstelle angewendet, daher müssen alle schwebenden Regeln, die outbound auf einer Schnittstelle übereinstimmen, die Quelle nach der Übersetzung durch outbound NAT oder 1:1 NAT übereinstimmen.
Was ist NAT-Reflexion?
NAT-Reflexion ist die Fähigkeit, auf externe Dienste von einem internen Netzwerk aus zuzugreifen, indem die externe (oft öffentliche) IP-Adresse verwendet wird, als ob der Client im Internet wäre. Obwohl viele kommerzielle und Open-Source-Firewalls diese Funktionalität überhaupt nicht bieten, bietet die pfSense®-Software robusten Support für NAT-Reflexion; dennoch benötigen bestimmte Umgebungen eine Split-DNS-Infrastruktur, um diese Funktionalität zu ermöglichen.
Wenn möglich, ist Split-DNS die ideale Methode, um auf Ressourcen zuzugreifen, sodass die Firewall nicht auf interne Dienste zugreifen muss. Dieser Abschnitt endet mit einer Diskussion über Split DNS.
Wie konfiguriert man NAT Reflection?
Um NAT Reflection global auf Ihrer pfSense-Firewall zu aktivieren, können Sie die folgenden Schritte ausführen:
-
Navigieren Sie zu System > Erweitert > Firewall & NAT im pfSense Web-UI.
-
Scrollen Sie nach unten zum Bereich „Network Address Translation“.
-
Konfigurieren Sie die folgenden NAT-Reflexionsoptionen.
Abbildung 12. Konfiguration der NAT-Reflexion
-
Klicken Sie unten auf der Seite auf Speichern.
-
Klicken Sie auf Änderungen anwenden, um die Einstellungen zu aktivieren.
Was sind NAT-Reflexionsoptionen?
Die folgenden Optionen stehen für die NAT-Reflexionsfunktion der pfSense-Software zur Verfügung:
-
NAT-Reflexionsmodus für Portweiterleitung: Es gibt drei Optionen für den NAT-Reflexionsmodus für Portweiterleitungen:
Deaktivieren
: NAT-Reflexion wird nicht durchgeführt, jedoch kann die Reflexion pro Regel aktiviert werden.NAT + Proxy
: Aktiviert NAT-Reflexion, indem ein Proxy-Programm verwendet wird, um den Datenverkehr an den Zielport weiterzuleiten. Dies ist hilfreich in Konfigurationen, bei denen die Schnittstelle und/oder die Gateway-IP-Adresse, die zur Kommunikation mit dem Ziel verwendet wird, zum Zeitpunkt des Ladens der Regeln nicht richtig bekannt sein kann. Reflexionsregeln für die Verwendung mit dem Proxy werden nicht für Bereiche breiter als 500 Ports festgelegt, und insgesamt werden 1000 Ports über alle Portweiterleitungen hinweg nicht genutzt. Dieser Modus funktioniert nur mit TCP und nicht mit UDP. Da dies ein Proxy ist, ist die IP-Adresse der Firewall, die dem Server am nächsten ist, die Quelladresse des Datenverkehrs, wie sie vom Server wahrgenommen wird.Pure NAT
: Ermöglicht NAT-Reflexion unter Verwendung nur von NAT-Regeln inpf
, um Pakete an das Ziel der Portweiterleitung weiterzuleiten. In dem Moment, in dem die Regeln geladen werden, muss es in der Lage sein, die Schnittstelle und die Gateway-IP-Adresse, die für die Kommunikation mit dem Ziel verwendet werden, genau festzustellen. Abgesehen von den Protokollbeschränkungen gibt es keine inhärenten Einschränkungen hinsichtlich der Anzahl der Ports. Alle bekannten Protokolle für Portweiterleitung werden unterstützt. Wenn Server und Clients dasselbe Subnetz teilen, wird die Option „Automatische ausgehende NAT für Reflection aktivieren“ die Quelle des Datenverkehrs verschleiern, sodass er korrekt durch die Firewall zurückgeleitet wird.
-
Reflexionszeitüberschreitung: Diese Option regelt, wie lange der NAT-Proxy-Daemon wartet, bevor er eine Verbindung beendet. Es gilt ausschließlich für den NAT + Proxy-Modus. Geben Sie einen Wert in Sekunden an.
-
NAT-Reflexion für 1:1 NAT aktivieren: Verwenden Sie die externe IP-Adresse eines 1:1 NAT-Eintrags, können sich Clients in internen Netzwerken mit lokal gehosteten Diensten verbinden. Aktivieren Sie sowohl
NAT-Reflexion für 1:1 NAT aktivieren
als auchAutomatische ausgehende NAT für Reflexion aktivieren
, um die Funktionalität vollständig zu aktivieren. Wenn sich Clients und Server im selben Subnetz befinden, ist nur die zweite Option wesentlich. -
Aktivieren Sie die automatische ausgehende NAT für Reflection: Diese Option aktiviert zusätzliche NAT-Regeln für
1:1 NAT Reflection
undPure NAT
Modus NAT Reflection für Portweiterleitung, wenn sie aktiviert ist. Diese zusätzlichen Regeln verschleiern die ursprüngliche Adresse des Clients, um sicherzustellen, dass der Antwortverkehr die Firewall durchläuft. Ohne dies würden die Client-Server-Kommunikationen fehlschlagen, da der Server direkt auf den Client mit seiner internen IP-Adresse antworten würde. Der Client wird die Verbindung trennen, wenn er keine Antwort von der öffentlichen IP-Adresse erhält.
Was sind NAT-Reflexionsbeschränkungen?
NAT-Reflexion ist ein Hack, weil sie unnötigen Verkehr durch die Firewall leitet. Aufgrund der eingeschränkten Optionen, die pf
für die Handhabung bestimmter Fälle bietet, hat die pfSense NAT + Proxy-Reflexionslösung einige Einschränkungen.
NAT-Reflexion ist für Portbereiche größer als 500 im NAT + Proxy-Modus nicht aktiviert, daher ist dieser Modus im Wesentlichen auf den Betrieb ausschließlich mit TCP beschränkt. Wenn Clients und Server mit derselben Schnittstelle der Firewall verbunden sind, benötigen die anderen Modi zusätzliches NAT. Dieses zusätzliche NAT verbirgt die Quelladresse des Clients, sodass der Datenverkehr so aussieht, als käme er von der Firewall, damit die Verbindung hergestellt werden kann.
Die beste Methode zur Unterstützung großer Portbereiche und 1:1 NAT ist Split-DNS. Selbst kommerzielle Firewalls benötigen die Wartung einer Split-DNS-Infrastruktur, was oft unproblematisch ist.
Was ist Split DNS?
Die Verwendung einer separaten DNS-Infrastruktur ist eine bevorzugte Option für NAT-Reflexion. Split-DNS bezieht sich auf eine DNS-Konfiguration, bei der für einen bestimmten Hostnamen der öffentliche Internet-DNS auf die öffentliche IP-Adresse und der interne Netzwerk-DNS auf die private, interne IP-Adresse auflöst. Die Handhabung wird je nach DNS-Infrastruktur des Unternehmens unterschiedlich sein, aber der letztendliche Effekt wird derselbe sein. Da Hostnamen privaten IP-Adressen im Netzwerk entsprechen, ist NAT-Reflexion unnötig und Clients können direkt auf Server zugreifen.
Split DNS ermöglicht es Servern, die echte Client-IP-Adresse zu sehen, und Verbindungen zwischen Servern und Clients im selben Subnetz umgehen die Firewall.
Die einzige Situation, in der Split-DNS nicht effektiv funktioniert, ist, wenn die externen und internen Portnummern nicht übereinstimmen. Bei der Verwendung von Split-DNS muss die Portnummer an beiden Standorten übereinstimmen.
Wie konfiguriert man DNS-Resolver/Forwarder-Overrides?
Wenn pfSense der DNS-Server für interne Hosts ist, können Host-Overrides im DNS-Resolver oder DNS-Forwarder Split-DNS-Funktionen ermöglichen.
Um eine Überschreibung im DNS-Resolver hinzuzufügen, können Sie die folgenden Schritte ausführen::
-
Navigieren Sie zu Dienste > DNS-Resolver im pfSense-Web-UI.
-
Scrollen Sie nach unten zum Bereich Host-Overrides.
Abbildung 13. Host-Overrides
-
Klicken Sie auf die Schaltfläche
+Hinzufügen
, um die Seite mit den Host-Override-Optionen anzuzeigen. -
Konfigurieren Sie die Host-Überschreibung nach Bedarf unter Verwendung der internen IP-Adresse des Servers. Siehe Host-Overrides. Die folgende Abbildung zeigt eine Überschreibung für
example.com
undwww.example.com
.Abbildung 14. Hinzufügen von Host-Overrides
-
Klicken Sie auf Speichern
-
Klicken Sie auf die Schaltfläche Änderungen anwenden.
In dieser Hinsicht funktioniert der DNS-Weiterleiter ähnlich. Wenn der DNS-Weiterleiter anstelle des DNS-Resolvers aktiviert ist, setzen Sie die Überschreibungen dort ein.
Jeder Hostname, der innerhalb der Firewall verwendet wird, erfordert eine Überschreibung.
Private DNS-Server
Bei der Nutzung eines separaten DNS-Servers in einem internen Netzwerk, wie zum Beispiel Microsoft Active Directory, muss der DNS-Server-Administrator Zonen und andere Domain-Einträge für alle im Netzwerk gehosteten Domains erstellen. (A, CNAME, MX, etc.).
In Konfigurationen, in denen der BIND-DNS-Server betrieben wird und sowohl der öffentliche DNS als auch der private DNS auf demselben Server gehostet werden, wird die Views-Funktion von BIND verwendet, um DNS unterschiedlich für interne und externe Hosts aufzulösen. Andere DNS-Server können vergleichbare Funktionen bieten. Siehe deren Dokumentation für Details.
Was ist Outbound NAT?
Outbound NAT, auch bekannt als Source NAT, bestimmt, wie die pfSense®-Software die Quelladresse und Ports des ausgehenden Datenverkehrs übersetzt. Gehen Sie zu Firewall > NAT > Outbound, um Outbound NAT einzurichten.
Es gibt vier verschiedene Outbound-NAT-Modi:
-
Automatisches externes NAT: Die Standardoption, führt NAT automatisch von internen Schnittstellen wie LAN zu externen Schnittstellen wie WAN aus.
-
Hybrides Outbound NAT: Verwendet sowohl manuelle als auch automatisierte Regeln für den Datenverkehr, der nicht mit manuell eingegebenen Regeln übereinstimmt. Diese Option ist die vielseitigste und einfachste zu bedienen für Administratoren, die ein wenig zusätzlichen Kontrolle wünschen, aber nicht die gesamte Liste manuell verwalten möchten.
-
Manuelles Outbound-NAT: Respektiert nur die manuell festgelegten Regeln, nichts anderes. Bietet die größte Kontrolle, ist jedoch schwer zu verwalten, da alle Änderungen an internen Schnittstellen oder WANs manuell in den Regeln berücksichtigt werden müssen. Beim Wechsel von automatisch zu manuell, wenn die Liste leer ist, wird die Liste mit Regeln gefüllt, die mit dem automatisch erstellten Satz vergleichbar sind.
-
Outbound NAT deaktivieren: Schaltet alle ausgehenden NATs aus. Hilfreich, wenn die Firewall nur routbare Adressen (zum Beispiel öffentliche IP-Adressen) in allen LANs und WANs enthält.
Abbildung 15. Outbound-NAT-Modusoptionen auf pfSense
Klicken Sie auf die Schaltfläche Speichern, nachdem Sie den Wert für Modus geändert haben, um den neuen Wert zu speichern.
In Netzwerken mit einer einzigen öffentlichen IP-Adresse pro WAN ist manuelles Outbound-NAT oft nicht erforderlich. Wenn eine manuelle Steuerung erforderlich ist, ist die optimale Option hybrid. Manuelles ausgehendes NAT bietet eine größere granulare Kontrolle über alle Elemente der Übersetzung in Szenarien mit zahlreichen öffentlichen IP-Adressen und komplizierten NAT-Anforderungen.
Es ist entscheidend, ausgehenden Datenverkehr in Situationen mit Hochverfügbarkeit durch CARP auf eine CARP VIP-Adresse zu NATen. Dies kann im manuellen oder hybriden Modus erreicht werden.
Wie bei anderen Regeln in pfSense werden die Outbound-NAT-Regeln von oben nach unten in der Liste ausgewertet, wobei das erste Übereinstimmung Vorrang hat. Selbst wenn es Regeln auf der Outbound NAT-Seite gibt, werden sie nicht befolgt, bis der Modus auf Hybrid Outbound NAT oder Manual Outbound NAT eingestellt ist.
Outbound NAT regelt ausschließlich das Verhalten des Verkehrs, der eine Schnittstelle verlässt. Es steuert nicht die Schnittstelle, über die der Datenverkehr der Firewall abfließen wird. Dies wird durch die Routing-Tabelle oder die Policy-Routing geregelt. (Policy routing).
Was sind Standard-Outbound-NAT-Regeln?
Wenn im Standardmodus Automatische ausgehende NAT konfiguriert, verwaltet pfSense eine Reihe von NAT-Regeln, um den Verkehr, der ein internes Netzwerk verlässt, in die IP-Adresse der WAN-Schnittstelle umzuwandeln, von der der Verkehr ausgeht. Statische Routennetzwerke und Remote-Access-VPN-Netzwerke sind in den automatischen NAT-Regeln enthalten.
Wenn das Outbound-NAT auf die Modi Automatisch
oder Hybrid
eingestellt ist, werden die automatisierten Regeln im unteren Bereich des Bildschirms mit dem Titel Automatische Regeln
angezeigt.
Wenn die Liste der Outbound-NAT-Regeln leer ist, wird das Wechseln zu Manuelle Outbound-NAT
und das Speichern eine vollständige Menge von Regeln erzeugen, die den automatischen Regeln ähnlich sind.
Was ist der statische Port für Outbound NAT?
Außer für den UDP-Port 500
(IKE für IPsec VPN-Verkehr) schreibt die pfSense-Software standardmäßig den Quellport bei allen ausgehenden Verbindungen um. Einige Betriebssysteme führen die Quellport-Zufallszuweisung unzureichend durch, wenn überhaupt. Dies erleichtert das Spoofing von IP-Adressen und ermöglicht das Fingerprinting von Computern innerhalb der Firewall basierend auf ihrem ausgehenden Datenverkehr. Diese möglichen (aber unwahrscheinlichen) Sicherheitslücken werden durch das Umschreiben des Quellports beseitigt. Outbound-NAT-Regeln, einschließlich automatisierter Regeln, die so konfiguriert sind, dass sie den Quellport randomisieren, werden Quellport randomisieren
anzeigen Symbol in der Spalte für statische Ports.
Abbildung 16. Statischer Port bei automatischen ausgehenden NAT-Regeln
Die Randomisierung der Quellports stört bestimmte unübliche Anwendungen. Die standardmäßige automatische Outbound-NAT-Richtlinie entfernt die Quellport-Randomisierung für UDP 500, da das Umschreiben des Quellports dies fast immer beeinträchtigen würde. Outbound-NAT-Regeln, die den ursprünglichen Quellport beibehalten, werden als Static Port-Regeln bezeichnet und haben ein Häkchen in der Static Port-Spalte. Standardmäßig wird der Quellport für allen anderen Datenverkehr umgeschrieben.
Wenn der Quellport geändert wird, funktionieren andere Protokolle, wie die von Spielkonsolen, möglicherweise nicht mehr richtig. Um diese Funktion zu deaktivieren, wählen Sie die Option Statischer Port.
Um eine Regel für ein Gerät mit statischen Quellportanforderungen hinzuzufügen, können Sie die folgenden Schritte befolgen:
-
Navigieren Sie zu Firewall > NAT > Outbound-Registerkarte im pfSense-Web-UI.
-
Wählen Sie Hybrid Outbound NAT Regelgenerierung.
-
Klicken Sie auf Speichern.
-
Klicken Sie auf die Schaltfläche "Hinzufügen" mit einem Aufwärtspfeil-Symbol, um eine neue NAT-Regel an die Spitze der Liste zu setzen. Stellen Sie die Regel so ein, dass sie mit dem Verkehr übereinstimmt, der einen statischen Port benötigt, wie z.B. die Quelladresse einer PBX oder einer Spielkonsole.
-
Wählen Sie
WAN
für die Schnittstelle-Option. -
Setzen Sie Protokoll auf
any
. -
Setzen Sie Source auf
Network
und geben Sie die IP-Adresse Ihres Geräts ein, und das folgende Subnetzmaskenfeld auf/32
, -
Setzen Sie Ziel auf
any
und lassen Sie die anderen Felder unverändert.Abbildung 17. Erweiterte Konfiguration des ausgehenden NAT-Eintrags
-
Wählen Sie
Schnittstellenadresse
für Adresse, um die Verbindungen, die dieser Regel entsprechen, der Schnittstellenadresse zuzuordnen. -
Aktivieren Sie
Static Port
, damit das pfSense NAT keine andere Portnummer verwendet. -
Geben Sie eine Beschreibung ein.
Abbildung 18. Outbound-NAT-Regelkonfiguration für Spielkonsole
-
Klicken Sie auf Speichern.
-
Klicken Sie auf die Schaltfläche Änderungen anwenden.
Mit dieser Änderung wird der Quellport des ausgehenden Verkehrs, der der Regel entspricht, beibehalten. Immer wenn zwei lokale Hosts denselben Quellport verwenden, um mit demselben Remote-Server und Port unter Verwendung derselben externen IP-Adresse zu kommunizieren, wird empfohlen, strenge Einschränkungen zu verwenden, wenn ein statischer Port eingesetzt wird, um mögliche Konflikte zu vermeiden.
Wie man das ausgehende NAT deaktiviert?
Deaktivieren Sie NAT für das routbare Subnetz, wenn öffentliche IP-Adressen auf lokalen Schnittstellen verwendet werden und NAT nicht benötigt wird, um den Datenverkehr über die Firewall zu leiten. Dies wird auf verschiedene Weise erreicht:
-
Setzen Sie den ausgehenden NAT-Modus auf
Outbound NAT-Regelgenerierung deaktivieren. (Keine ausgehenden NAT-Regeln)
, wenn NAT für keine Schnittstelle benötigt wird.Abbildung 19. Deaktivierung der Erstellung von Outbound-NAT-Regeln
-
Bei Verwendung von Hybrid Outbound NAT deaktiviert eine Regel, die mit "Do not NAT" angegeben ist, NAT für übereinstimmenden Datenverkehr.
Abbildung 20. Deaktivierung der Outbound-NAT-Regel auf Hybrid-Outbound-NAT
-
Verwenden Sie manuelles Outbound-NAT, löschen Sie (oder generieren Sie keine) NAT-Regeln, die mit den routbaren Subnetzen übereinstimmen.
In jeder der oben genannten Situationen wird das Outbound-NAT für die angegebenen Quell-IP-Adressen nicht mehr aktiv sein, und pfSense wird öffentliche IP-Adressen ohne Übersetzung weiterleiten.
Wie konfiguriert man eine manuelle Outbound-NAT-Regel?
Outbound-NAT-Regeln sind sehr anpassungsfähig und in der Lage, den Datenverkehr auf verschiedene Arten zu übersetzen.
Die NAT-Regeln werden auf einer einzigen Seite angezeigt und die Schnittstellen-Spalte ist für einige eine Quelle der Verwirrung: Sobald der Datenverkehr eine Schnittstelle verlässt, werden nur die für diese Schnittstelle konfigurierten ausgehenden NAT-Regeln überprüft.
Auf der Seite Firewall > NAT > Outbound, klicken Sie auf die Schaltfläche Hinzufügen mit einem Aufwärtspfeil-Symbol, um eine Regel an den Anfang der Liste hinzuzufügen. Klicken Sie auf die Schaltfläche Hinzufügen mit dem Abwärtspfeil-Symbol, um eine Regel am Ende der Liste hinzuzufügen. Setzen Sie explizite Regeln an die Spitze, gefolgt von allgemeineren. Die Firewall verarbeitet die Regeln von oben nach unten in der Liste und wendet die erste Regel an, die zutrifft. Regeln können gemäß den eigenen Vorlieben neu angeordnet werden.
Verfügbare Optionen für Outbound-NAT-Regeln sind wie folgt:
-
Deaktiviert: Wechselt zwischen aktiv und inaktiv für diese Regel.
-
Kein NAT: Durch Auswahl dieser Option wird NAT nicht auf Pakete angewendet, die der Regel entsprechen, wenn sie das Netzwerk verlassen. Dies ist erforderlich, wenn der Datenverkehr normalerweise eine NAT-Regel erfüllen würde, aber NAT nicht implementiert werden kann. Eine gängige Verwendung besteht darin, eine Ausnahmeregel hinzuzufügen, um zu verhindern, dass NAT auf die IP-Adressen der Firewall angewendet wird, insbesondere in der Situation von CARP, wo NAT die Internetverbindung eines sekundären Knotens im Backup-Modus verhindern würde.
-
Schnittstelle: Wenn der Datenverkehr über diese Schnittstelle austritt, wird diese NAT-Regel angewendet. Dies ist oft ein WAN oder ein OPT WAN, obwohl es in Ausnahmefällen ein LAN oder eine andere interne Schnittstelle sein kann.
-
Protokoll: In den meisten Fällen wird Outbound NAT auf jedes Protokoll angewendet; dennoch ist es manchmal erforderlich, das Protokoll zu begrenzen, auf dem das NAT funktionieren soll. Zum Beispiel, um nur statisches Port-NAT für UDP-Verkehr, der von der PBX stammt, zu implementieren.
-
Quelle: Die Quelle ist das lokale Netzwerk, dessen Adresse übersetzt wird, wenn es die angegebene Schnittstelle verlässt. Oft ist dies ein LAN, DMZ oder VPN-Subnetz. Um alle Ports zu erfassen, wird der Quellport normalerweise immer leer gelassen. Wenn der
Typ
aufNetzwerk
gesetzt ist, erlaubt dieser Parameter die Verwendung von Aliassen.hinweisVermeiden Sie die Verwendung einer Quelladresse von
any
, da dies mit dem eigenen Datenverkehr der Firewall übereinstimmt. Dies wird Probleme mit der Gateway-Überwachung und anderem durch die Firewall ausgelöstem Verkehr verursachen. -
Ziel: In den meisten Fällen bleibt das Ziel auf
any
eingestellt, damit alle Kommunikation, die diese Schnittstelle verlässt, übersetzt wird, aber es kann bei Bedarf eingeschränkt werden. Zum Beispiel, um auf eine bestimmte Weise zu übersetzen, während man sich auf ein bestimmtes Ziel zubewegt, wie zum Beispiel die Einschränkung von statischem Port-NAT nur auf SIP-Trunk-Adressen. Wenn derTyp
aufNetzwerk
eingestellt ist, erlaubt dieser Parameter die Verwendung von Aliassen. -
Übersetzung: Das Adressfeld im Übersetzungsbereich bestimmt, was mit der Quelladresse des Verkehrs geschieht, der dieser Regel entspricht. Dies wird oft auf Schnittstellenadresse eingestellt, um den Datenverkehr in die IP-Adresse der Schnittstelle, wie die WAN-IP-Adresse, zu konvertieren. Das Dropdown-Menü für die Adresse enthält alle angegebenen virtuellen IP-Adressen, Host-Aliasnamen und "Andere Subnetz", um ein Subnetz manuell für die Übersetzung einzugeben.
tippEin Alias, der Subnetze enthält, kann nicht übersetzt werden. Die Verwendung ist auf Host-Aliasnamen oder ein manuell eingegebenes Subnetz beschränkt.
Eine ausgehende NAT-Regel kann einen Host-Alias oder manuell bereitgestellten Subnetz in einen Pool von Adressen umwandeln. Dies ist nützlich für große NAT-Implementierungen oder Orte, an denen mehrere Clients statische Ports benötigen. Beim Übersetzen zu einem Host-Alias oder Subnetz wird ein Dropdown-Menü mit mehreren Auswahlmöglichkeiten für
Pool-Optionen
bereitgestellt. Bei der Verwendung von Host-Aliasen sind nur Round-Robin-Typen kompatibel. Jeder Typ ist mit einem Subnetz kompatibel. VerfügbarePool-Optionen
sind wie folgt:Standard
: Es ist kein präziser Algorithmus zum Auswählen einer Übersetzungsadresse aus dem Pool definiert.Round Robin
: Iteriert nacheinander über jede mögliche Übersetzungsadresse im Alias oder Subnetz.Round Robin mit Sticky Address
: Ähnlich wie Round Robin, aber behält die gleiche Übersetzungsadresse für eine bestimmte Quelladresse so lange bei, wie die Zustände des Quellhosts bestehen bleiben.Zufällig
: Wählt zufällig eine Übersetzungsadresse aus dem Subnetz zur Verwendung aus.Zufällig mit fester Adresse
: Wählt zufällig eine Adresse aus, behält jedoch die gleiche Übersetzungsadresse für eine bestimmte Quelladresse, solange die Zustände des Quellhosts bestehen bleiben.Source Hash
: Bestimmt die Übersetzungsadresse mithilfe eines Hashs der Quelladresse, wodurch garantiert wird, dass die Übersetzungsadresse für eine bestimmte Quell-IP-Adresse immer gleich bleibt.Bitmask
: Wendet die Subnetzmaske an, während der letzte Abschnitt unverändert bleibt. Wenn die Quelladresse 10.10.10.50 und das Übersetzungs-Subnetz 192.2.0.0/24 ist, wird die Regel die Adresse beispielsweise in 192.2.0.50 umwandeln. Dies funktioniert ähnlich wie 1:1 NAT, jedoch ausschließlich für ausgehenden Datenverkehr.
Abbildung 21. Manuelle Optionen für die Übersetzung von NAT-Regeln für ausgehenden Verkehr
-
Port: Gibt den Quellport an, der für die Übersetzung verwendet werden soll. Dies wird oft leer gelassen, kann aber notwendig sein, wenn der Client einen zufälligen Quellport wählt, während der Server einen bestimmten Quellport benötigt.
-
Statischer Port: Wenn die Quell-IP-Adresse übersetzt wurde, behält sie den ursprünglichen Quellport des Client-Verkehrs bei. Bestimmte Protokolle benötigen es, wie IPsec ohne NAT-T, während andere, wie SIP und RTP, damit besser funktionieren. Durch Auswahl dieser Option wird das Eingabefeld für den Port deaktiviert.
-
Keine XML-RPC-Synchronisierung: Diese Option ist nur anwendbar, wenn ein HA-Cluster-Setup verwendet wird; andernfalls sollte sie weggelassen werden. Das Aktivieren dieser Option bei der Verwendung eines HA-Clusters mit Konfigurationssynchronisierung verhindert, dass die Regel auf die anderen Cluster-Mitglieder synchronisiert wird. Im Allgemeinen sollten jedoch alle Regeln synchronisiert werden. Diese Option gilt nur für Hauptknoten und verhindert nicht, dass Regeln auf Sekundärknoten überschrieben werden.
-
Beschreibung: Ein Verweis auf einen optionalen Text, der die Absicht dieser Regel erklärt.
Diese Regeln können die Mehrheit der NAT-Szenarien abdecken, unabhängig von ihrer Größe.
Wie überwacht man Änderungen an ausgehenden NAT-Regeln?
Ein ausgehender NAT-Eintrag erhält einen Zeitstempel, der angibt, wann er erstellt oder zuletzt geändert wurde. Dieser Zeitstempel zeigt den Benutzer an, der die Regel erstellt hat, und den zuletzt benutzten Benutzer, der die Regel geändert hat. Beim Wechsel vom automatischen Outbound-NAT-Modus zum manuellen Outbound-NAT-Modus werden die festgelegten Regeln als durch dieses Verfahren generiert identifiziert.
Wie wählt man eine NAT-Konfiguration aus?
Die optimale NAT-Konfiguration für eine spezifische Bereitstellung wird hauptsächlich durch die Anzahl der verfügbaren öffentlichen IP-Adressen und die Anzahl der lokalen Dienste bestimmt, die eine eingehende Internetverbindung benötigen.
-
Einzelne öffentliche IP-Adresse für jedes WAN: Wenn pro WAN nur eine öffentliche IP-Adresse zugänglich ist, sind die NAT-Optionen eingeschränkt. WAN-IP-Adressen sind mit 1:1-NAT-Regeln kompatibel, jedoch kann dies Nachteile haben. In diesem Fall ist Portweiterleitung die ideale Methode.
-
Mehrere öffentliche IP-Adressen pro WAN: Wenn mehrere öffentliche IP-Adressen pro WAN zugänglich sind, sind verschiedene Optionen für die eingehende und ausgehende NAT-Konfiguration möglich. Je nach den Anforderungen der Site können Portweiterleitung, 1:1 NAT und hybrides oder manuelles ausgehendes NAT gewünscht sein.
Was ist NAT-Kompatibilität und Protokollkompatibilität?
Bestimmte Protokolle funktionieren nicht gut mit NAT, während andere überhaupt nicht funktionieren. Problematische Protokolle enthalten IP-Adressen und/oder Portnummern in Paketen (z.B. SIP und FTP); andere funktionieren nicht korrekt, wenn der Quellport geändert wird (z.B. SIP von einer PBX und IPsec); und pf
ist problematisch aufgrund seiner Einschränkungen. (PPTP). Dieser Abschnitt beschreibt eine Auswahl von Protokollen, die mit NAT in der pfSense®-Software inkompatibel sind, zusammen mit Lösungen:
Online-Gaming
Spiele sind größtenteils NAT-freundlich, mit einigen Ausnahmen. Dieser Abschnitt behandelt sowohl online-fähige PC-Spiele als auch Konsolenspielplattformen. Dieser Abschnitt fasst die Erfahrungen vieler pfSense-Softwarebenutzer zusammen.
-
Statischer Port: Ein statischer Port muss in den ausgehenden NAT-Regeln konfiguriert werden, damit einige Spiele korrekt funktionieren. Wenn ein Spiel Schwierigkeiten hat, eine Verbindung herzustellen, ist der empfohlene erste Schritt, den statischen Port für die Konsolenkommunikation zu aktivieren.
-
Mehrere Spieler oder Geräte hinter einem Network Address Translation (NAT) Router: Wenn zahlreiche Spieler oder Geräte hinter einem einzigen NAT-Gerät stehen, haben bestimmte Spiele Probleme. Diese Schwierigkeiten scheinen NAT-spezifisch zu sein, nicht pfSense-spezifisch, da Benutzer, die verschiedene Firewalls ausprobiert haben, die gleichen Probleme haben.
-
Lösung von NAT-Problemen mit UPnP: Mehrere aktuelle Spielsysteme ermöglichen es Universal Plug-and-Play (UPnP), NAT-Portweiterleitungen und Firewall-Regeln automatisch einzurichten. Oftmals ermöglicht das Aktivieren von UPnP in der pfSense-Software, dass Spiele mit wenig oder gar keiner Beteiligung funktionieren.
FTP
Aufgrund seiner Architektur ist FTP sowohl mit NAT als auch mit Firewalls inkompatibel. FTP wurde in den 1970er Jahren entwickelt, und der aktuelle Standard, der die Anforderungen des Protokolls beschreibt, wurde 1985 erstellt. Da FTP mehr als ein Jahrzehnt vor der Entwicklung von NAT und lange bevor Firewalls alltäglich wurden, entwickelt wurde, verhält es sich auf eine Weise, die für NAT und Firewalls sehr feindlich ist.
Die Grundinstallation von pfSense enthält keinen FTP-Proxy, jedoch ist ein Client-Proxy als Zusatzpaket verfügbar.
FTP-Einschränkungen
Da pf
nicht in der Lage ist, FTP-Verkehr ohne Proxy angemessen zu verarbeiten und die Implementierung des FTP-Proxy-Pakets relativ unzureichend ist, ist die Nutzung von FTP eingeschränkt.
FTP-Server hinter NAT
Für FTP-Server hinter NAT müssen alle relevanten Ports manuell weitergeleitet und unter den Firewall-Regeln autorisiert werden. Stattdessen sind im Falle von 1:1 NAT nur die Firewall-Regeln erforderlich. Je nach FTP-Methode, Server-Software und Client-Software kann es notwendig sein, den Server zu konfigurieren.
FTP-Modi
FTP kann in verschiedenen Modi betrieben werden, die das Verhalten von Client und Server sowie die Seite, die auf neue Verbindungen wartet, verändern. Die Komplexität der NAT- und Firewall-Regeln hängt von diesen Modi ab und davon, ob ein entfernter Client versucht, sich mit einem Server hinter pfSense zu verbinden, oder ob ein lokaler Client versucht, sich mit einem entfernten Server zu verbinden.
Aktiver Modus
Im aktiven Modus mit FTP, wenn ein Dateitransfer angefordert wird, hört der Client auf einem lokalen Port und übermittelt dann seine IP-Adresse und Portnummer an den Server. Der Server wird sich mit der angegebenen IP-Adresse und dem Port erneut verbinden, um die Daten zu senden. Dies stellt eine Schwierigkeit für Firewalls dar, aufgrund der oft zufälligen Natur des Ports, während aktuelle Clients die Begrenzung des Portbereichs ermöglichen. Im Falle eines Clients hinter NAT wäre die bereitgestellte IP-Adresse eine lokale Adresse, die vom Server nicht erreicht werden kann. Darüber hinaus müsste eine Firewall-Regel und eine Portweiterleitung implementiert werden, um den Verkehr auf diesen Port zuzulassen.
Wenn das FTP-Proxy-Paket aktiviert ist und ein Client hinter der pfSense-Software eine Verbindung zu einem Remote-Server herstellt, versucht der Proxy, drei Hauptaufgaben zu erfüllen: Dann ändert es den FTP PORT-Befehl so, dass die IP-Adresse die WAN-IP-Adresse der Firewall und ein zufälliger Port auf dieser IP-Adresse ist. Als Nächstes installiert es eine Portweiterleitung, die die übersetzte IP-Adresse und den Port mit der ursprünglichen IP-Adresse und dem ursprünglichen Port des FTP-Clients verknüpft. Schließlich erlaubt es dem FTP-Serververkehr, sich mit dem "öffentlichen" Port zu verbinden. Multi-WAN beschränkt die Funktionalität des Proxys auf das WAN, das das Standard-Gateway enthält.
Wenn alles gut funktioniert, geschieht dies unsichtbar. Der Server ist sich nicht bewusst, dass er mit einem Client hinter NAT kommuniziert, und der Client ist sich nicht bewusst, dass der Server nicht direkt verbunden ist.
Der aktive Modus ist oft kein Problem für einen Server hinter NAT, da der Server einfach auf Verbindungen an den herkömmlichen FTP-Ports lauscht und dann ausgehende Verbindungen zu den Clients herstellt. Die ausgehenden Firewall-Regeln müssen es dem Server ermöglichen, beliebige ausgehende Verbindungen herzustellen, und diese Verbindungen dürfen nicht über ein WAN geleitet werden, das nicht dasjenige ist, das die eingehende FTP-Verbindung akzeptiert hat.
Passiver Modus
Der Passive Modus (PASV) funktioniert im Wesentlichen umgekehrt. Da der Server anstelle des Clients auf einen Port hört, wenn eine Dateiübertragung angefordert wird, ist es für Clients nat- und firewallfreundlicher. Der PASV-Modus funktioniert oft für FTP-Clients hinter NAT, ohne dass ein Proxy oder zusätzliche Verarbeitung erforderlich sind.
Wenn ein Client den PASV-Modus anfordert, stellt der Server dem Client seine IP-Adresse und einen zufälligen Port zur Verfügung, über den der Client versuchen kann, eine Verbindung herzustellen. Diese IP-Adresse und der Port müssen übersetzt und über die Firewall erlaubt werden, da der Server sich in einem privaten Netzwerk befindet. Der FTP-Server muss die öffentliche IP-Adresse anbieten, mit der sich die Clients verbinden, obwohl bestimmte Clients, wie Filezilla, intelligent genug sind, eine private IP-Adresse zu ignorieren und sich mit der ursprünglichen Server-IP-Adresse zu verbinden.
Erweiteter Passivmodus
Der erweiterte Passive Modus (EPSV) funktioniert ähnlich wie der PASV-Modus, unterstützt jedoch IPv6. Wenn ein Client eine Übertragung anfordert, antwortet der Server mit dem Verbindungsport. Die gleichen Einschränkungen gelten wie bei Servern im PASV-Modus.
FTP-Hosts und Portweiterleitung
Für FTP-Server, die den Clients den passiven Modus anbieten, muss die FTP-Serverkonfiguration einen passiven Portbereich festlegen und die externe NAT-Adresse konfigurieren, die oft die WAN-IP-Adresse der Firewall ist. Die Methode zur Konfiguration dieser Einstellungen hängt von der Implementierung der FTP-Server-Software ab. Der passive Portbereich muss zusammen mit TCP-Port 21 auf der Firewall mithilfe von Portweiterleitungen geroutet werden.
Für FTP-Server, die den Clients den aktiven Modus anbieten, ist nur TCP-Port 21 eine Portweiterleitung erforderlich.
FTP-Server und 1:1 NAT
Die Firewall-Regeln müssen Port 21 und den passiven Portbereich für 1:1 NAT zulassen.
TFTP
Normaler TCP- und UDP-Verkehr beginnt Verbindungen zu entfernten Standorten, indem er einen zufälligen Quellport innerhalb des ephemeral Portbereichs verwendet, der je nach Betriebssystem variiert, aber zwischen 1024 und 65535 liegt, und den Zielport des verwendeten Protokolls. Antworten vom Server an den Client kehren das Vorherige um: Der Quellport ist der Zielport für den Client, und der Zielport ist der Quellport für den Client. So assoziiert pf den Antwortverkehr mit eingehenden Verbindungen.
TFTP (Trivial File Transfer Protocol) hält sich jedoch nicht an diese Norm. RFC 1350, der Standard, der TFTP definiert, besagt, dass die Antwort des Servers an den Client von einer pseudo-zufälligen Portnummer stammen wird. Der TFTP-Client kann Port 10325 als Quellport und Port 69 als Zielport wählen. Der Server für andere Protokolle würde dann die Antwort unter Verwendung von Port 69 als Quellport und Port 10325 als Zielport senden. Aufgrund der Tatsache, dass TFTP einen pseudo-zufälligen Quellport verwendet, wird der Antwortverkehr nicht mit dem Zustand übereinstimmen, den pf
für diesen Verkehr erstellt hat. Daher werden die Antworten verboten, da sie wie unerwünschter Internetverkehr erscheinen.
TFTP ist kein weit verbreitetes Protokoll im Internet. Bestimmte IP-Telefone, die sich über das Internet mit externen VoIP-Anbietern verbinden und TFTP verwenden, um Einstellungen und andere Informationen zu erhalten, sind die einzigen Fälle, in denen dies manchmal ein Problem darstellt. Die Mehrheit der VoIP-Anbieter verlangt dies nicht.
Wenn TFTP-Verkehr die Firewall durchqueren muss, kann ein TFTP-Proxy unter System > Erweitert > Firewall & NAT eingerichtet werden.
PPTP / GRE
Die Unfähigkeit von p
f, das GRE-Protokoll zu NATen, ist der Grund für die Einschränkungen von PPTP in der pfSense-Software. Infolgedessen gelten die Einschränkungen für jede Nutzung des GRE-Protokolls, aber PPTP war die am weitesten verbreitete Anwendung in der Praxis.
Der GRE-Protokoll-Zustandsverfolgungscode in pf
kann nur eine Sitzung pro öffentliche IP-Adresse pro externen Server überwachen. Dies impliziert, dass wenn eine PPTP-VPN-Verbindung hergestellt wird, nur ein internes System gleichzeitig mit demselben PPTP Server im Internet verbunden sein kann. Tausend Computer können gleichzeitig mit tausend verschiedenen PPTP-Servern verbunden werden, aber nur einer kann sich mit einem einzigen Server verbinden. Darüber hinaus kann ein einzelner Client mit einer unbegrenzten Anzahl von entfernten PPTP-Servern verbinden.
Die Verwendung mehrerer öffentlicher IP-Adressen auf der Firewall, eine pro Client über Outbound oder 1:1 NAT, oder mehrere öffentliche IP-Adressen auf dem externen PPTP-Server ist die einzige praktikable Lösung. Dies ist bei anderen VPN-Verbindungstypen kein Problem.
Aufgrund der sehr schlechten Sicherheit von PPTP, einschließlich einer vollständigen Kompromittierung des gesamten Protokolls, sollte seine Verwendung sofort eingestellt werden; daher ist dieses Problem angesichts der aktuellen Sicherheitsanforderungen irrelevant.