(hairpinning - auch als NAT loopback oder NAT reflection bezeichnet)
Letzte Anpassung zur Version: 12.6.0
- Aktualisierung zum Redesign des Webinterfaces
Vorbemerkungen
Ausgangslage
- Alle Rechner sind in einem privaten Netzwerk und verstecken sich hinter einer öffentlichen IP-Adresse des Routers.
- Eine Port Weiterleitung ist eingerichtet und wird dazu genutzt Anfragen, die auf bestimmte Ports der öffentlichen IP-Adresse des Routers gerichtet sind, zum internen Server weiterzuleiten, damit dieser so aus dem Internet erreichbar ist.
Abhilfe könnte hierbei die Einrichtung einer Forward-Zone im Nameserver der UTM schaffen, sofern die UTM als Nameserver für die internen Clients eingerichtet ist.
In diesem Fall verweist die externe URL, die von Intern aufgerufen wird direkt auf den Internen Ziel-Server.
Eine Anleitung zum einrichten der Forward-Zone befindet sich unter Forward-Zone im Nameserver Wiki.
In diesem Fall muss, wie oben beschrieben, die UTM als DNS verwendet und eine Forward-Zone eingerichtet werden.
Ziel dieses Artikels:
Ein interner Server soll aus dem internen Netz über die öffentliche IP der Firewall (mit entsprechender Portangabe) erreichbar sein.
Dieses wird mit Hilfe von hairpinning (auch als NAT loopback oder NAT reflection bezeichnet) bewerkstelligt.
Hierzu wird eine DestNAT- und eine HideNAT-Regel erstellt.
Hier muss die Firewall lediglich den Namen zu einer internen Adresse auflösen.
Die eigentliche Kommunikation geht dann nicht den Umweg über die Firewall sondern findet direkt zwischen Client und Server statt!
Ein entsprechendes How-To findet sich im Wikiartikel zum Nameserver im Abschnitt Forward-Zone.
Paketfluss
- Ein PC sendet ein SYN-Paket mit der externen IP-Adresse des internen Servers (hier www) an die UTM ①
- Die DestNAT-Regel maskiert die Empfänger IP-Adresse und sorgt so dafür, dass das Paket an den internen Server weitergeleitet werden kann.②
Die erste liegt in der Prerouting Chain (DestNAT), die zweite in der Postrouting Chain (HideNAT) und damit in voneinander unabhängigen Prüfabschnitten. Nur innerhalb eines Abschnittes, kann keine zweite Regel greifen.
Konfiguration der Appliance
Server als Netzwerkobjekt anlegen
Für eine Portweiterleitung muss es ein Netzwerkobjekt für den Server geben.
Firewall-Regeln für die Weiterleitung anlegen
Damit der entsprechende Port an den Server weitergeleitet wird, muss eine Portweiterleitung als Regel angelegt werden. Konfiguration im Menü
SchaltflächeBeschriftung | Wert | Beschreibung | UTMbenutzer@firewall.name.fqdnFirewallPaketfilter |
---|---|---|---|
Quelle | internal-network | Quellnetzwerk, für das der Server erreichbar gemacht werden soll. | |
Ziel | Server | Netzwerkobjekt des Zielservers (ggf. wie oben beschrieben zuvor angelegt). | |
Dienst | https | Dienst, der den gewünschten Port belegt. Hier Port 443 → https Wird ein individueller Port benötigt, muss dieser mit der Schaltfläche als Dienst neu angelegt werden. Weitere Hinweise dazu im Artikel zum Paketfilter, Abschnitt Dienste. | |
Aktion | Die Aktion muss auf Accept (annehmen) stehen. | ||
[-] Nat
| |||
Typ | Ein einzelner Host soll angesprochen werden | ||
Netzwerkobjekt | external-interface | Als Netzwerkobjekt wird das externe Interface ausgewählt (bzw. das Netzwerkobjekt, welches die externe IP inne hat über die der Port weitergeleitet werden soll). | |
Dienst | https | Dienst, der den gewünschten Zielport belegt. Soll hier ein anderer Port als für den Quelldienst verwendet werden und dieser ist nicht bereits als Dienstobjekt angelegt, muss dieser vor dem Erstellen angelegt werden. | |
Speichern und schließen |
Speichert die Einstellungen und schließt den Dialog | ||
Firewall-Regeln für das Hide-NAT anlegen
Damit der Server die Anfrage auf die öffentliche IP auf dem richtigen Weg beantwortet, muss nun eine Hide-NAT-Regel angelegt werden.
Mit dieser Regel wird die IP des anfragenden Rechners hinter der IP der Firewall versteckt.
Dies ist nötig, da sonst die Anfrage mit der internen IP des Rechners an dem Server ankommen würde und dieser dann versuchen würde, die Antwort intern zuzustellen und nicht über die Firewall.