KKeine Bearbeitungszusammenfassung |
Maltea (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 11: | Zeile 11: | ||
}} | }} | ||
---- | ---- | ||
=== {{#var:Vorbemerkungen}} === | === {{#var:Vorbemerkungen}} === | ||
==== {{#var:Ausgangslage}} ==== | ==== {{#var:Ausgangslage}} ==== | ||
<div class="Einrücken"> | |||
{{#var:Ausgangslage--desc}} | {{#var:Ausgangslage--desc}} | ||
<li class="list--element__alert list--element__warning">{{#var:Hinweis-Bridge}}<br> {{#var:Hinweis-Bridge--desc}}</li> | |||
<li class="list--element__alert list--element__warning pd1em">{{#var:Proxy--Warnung}}</li> | |||
</div><br clear=all> | |||
==== {{#var:Ziel dieses Artikels}} ==== | ==== {{#var:Ziel dieses Artikels}} ==== | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{#var:Ziel dieses Artikels--desc}} | {{#var:Ziel dieses Artikels--desc}} | ||
<li class="list--element__alert list--element__positiv">{{#var:Ziel dieses Artikels--Hinweis}}</li> | <li class="list--element__alert list--element__positiv">{{#var:Ziel dieses Artikels--Hinweis}}</li> | ||
<li>{{#var:Netzwerkobjekte anlegen}}</li> | <li>{{#var:Netzwerkobjekte anlegen}}</li> | ||
</div> | </div> | ||
==== {{#var:Paketfluss}} ==== | ==== {{#var:Paketfluss}} ==== | ||
Zeile 35: | Zeile 38: | ||
</div> | </div> | ||
---- | ---- | ||
=== {{#var:Konfiguration der Appliance}} === | === {{#var:Konfiguration der Appliance}} === | ||
==== {{#var:Netzwerkobjekt anlegen}} ==== | ==== {{#var:Netzwerkobjekt anlegen}} ==== | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{#var:Netzwerkobjekt anlegen--desc}} | {{#var:Netzwerkobjekt anlegen--desc}} | ||
{{Einblenden|{{#var:Details anzeigen}}|{{#var:hide}}|true|bigdezent}} | {{Einblenden| {{#var:Details anzeigen}} | {{#var:hide}} |true|bigdezent}} | ||
{| class="sptable2 pd5 zh1" | </div> | ||
{| class="sptable2 pd5 zh1 Einrücken" | |||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| colspan="4" | {{#var:Netzwerkobjekt anlegen--step-by-step}} | | colspan="4" | {{#var:Netzwerkobjekt anlegen--step-by-step}} | ||
|- | |- | ||
! {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | ! {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | ||
| class="Bild" rowspan="8" | {{Bild | | | class="Bild" rowspan="8" | {{Bild| {{#var:Netzwerkobjekt anlegen--Bild}} |{{#var:Netzwerkobjekt anlegen--cap}}||{{#var:Netzwerkobjekt hinzufügen}}|Firewall|{{#var:Netzwerkobjekte}}|icon=fa-save|icon2=fa-floppy-disk-circle-xmark|icon3=fa-close}} | ||
|- | |- | ||
| {{b| | | {{b|Name:}} || {{ic|Server|class=available}} || {{#var:Name--desc}} | ||
|- | |- | ||
| {{b|{{#var:Typ}} }} || {{Button|Host|dr|class=available}} || {{#var:Typ--desc}} | | {{b|{{#var:Typ}} }} || {{Button|Host|dr|class=available}} || {{#var:Typ--desc}} | ||
Zeile 55: | Zeile 61: | ||
| {{b|{{#var:Adresse}} }} || {{ic|192.168.175.10|rechts|icon=/--- |iconw=x|class=available}} || {{#var:Adresse--desc}} | | {{b|{{#var:Adresse}} }} || {{ic|192.168.175.10|rechts|icon=/--- |iconw=x|class=available}} || {{#var:Adresse--desc}} | ||
|- | |- | ||
| {{b| | | {{b|Zone:}} || {{Button|internal|dr|class=available}} || {{#var:Zone--desc}} | ||
|- | |- | ||
| {{b|{{#var:Gruppe}} }} || {{ic| |cb|class=available}} || {{#var:Gruppe--desc}} | | {{b|{{#var:Gruppe}} }} || {{ic| |cb|class=available}} || {{#var:Gruppe--desc}} | ||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| colspan="2" | {{Button-dialog||fa-floppy-disk-circle-xmark|hover={{#var:Speichern und schließen}}}} || {{#var:Speichern und schließen--desc}} | | colspan="2" | {{Button-dialog||fa-floppy-disk-circle-xmark|hover={{#var:Speichern und schließen}} }} || {{#var:Speichern und schließen--desc}} | ||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| | | | ||
|} | |} | ||
</span></div> | |||
</div> | |||
Zeile 70: | Zeile 75: | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{#var:Firewall-Regeln für die Weiterleitung anlegen--desc}} | {{#var:Firewall-Regeln für die Weiterleitung anlegen--desc}} | ||
</div> | |||
{| class="sptable2 pd5 zh1" | {| class="sptable2 pd5 zh1 Einrücken" | ||
|- | |- | ||
! class="mw11" | {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | ! class="mw11" | {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | ||
| class="Bild" rowspan="11" | {{Bild | | | class="Bild" rowspan="11" | {{Bild| {{#var:Firewall-Regeln für die Weiterleitung anlegen--Bild}} |{{#var:Firewall-Regeln für die Weiterleitung anlegen--cap}}||{{#var:Regel hinzufügen}}|Firewall|{{#var:Paketfilter}}|icon=fa-save|icon2=fa-floppy-disk-circle-xmark|icon3=fa-close}} | ||
|- | |- | ||
| {{b|{{#var:Quelle}} }} || {{ic|internal-network|dr|icon=network|class=available }} || {{#var:Quelle--desc}} | | {{b|{{#var:Quelle}} }} || {{ic|internal-network|dr|icon=network|class=available }} || {{#var:Quelle--desc}} | ||
Zeile 92: | Zeile 98: | ||
| {{b|{{#var:Dienst}} }} || {{ic|https|dr|class=available|icon=tcp}} || {{#var:NAT-Dienst--desc}}{{info|{{#var:NAT-Dienst--info}} }} | | {{b|{{#var:Dienst}} }} || {{ic|https|dr|class=available|icon=tcp}} || {{#var:NAT-Dienst--desc}}{{info|{{#var:NAT-Dienst--info}} }} | ||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| colspan="2" | {{Button-dialog||fa-floppy-disk-circle-xmark|hover={{#var:Speichern und schließen}}}} || {{#var:Speichern und schließen--desc}} | | colspan="2" | {{Button-dialog||fa-floppy-disk-circle-xmark|hover={{#var:Speichern und schließen}} }} || {{#var:Speichern und schließen--desc}} | ||
|- class="Leerzeile" | |- class="Leerzeile" | ||
| | | | ||
|} | |} | ||
==== {{#var:Firewall-Regeln für das Hide-NAT anlegen}} ==== | ==== {{#var:Firewall-Regeln für das Hide-NAT anlegen}} ==== | ||
<div class="Einrücken"> | <div class="Einrücken"> | ||
{{#var:Firewall-Regeln für das Hide-NAT anlegen--desc}}<br> | {{#var:Firewall-Regeln für das Hide-NAT anlegen--desc}}<br> | ||
{{Button| {{#var:Regel hinzufügen}} |+}} | {{Button|{{#var:Regel hinzufügen}}|+}} | ||
</div> | |||
{| class="sptable2 pd5 zh1 Einrücken" | |||
{| class="sptable2 pd5 zh1" | |||
|- | |- | ||
! class="mw11" | {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | ! class="mw11" | {{#var:cap}} !! {{#var:val}} !! {{#var:desc}} | ||
| class="Bild" rowspan="11" | {{Bild | | | class="Bild" rowspan="11" | {{Bild| {{#var:Hide-NAT-Regel--Bild}} |{{#var:Hide-NAT-Regel--cap}}||{{#var:Regel hinzufügen}}|Firewall|{{#var:Paketfilter}}|icon=fa-save|icon2=fa-floppy-disk-circle-xmark|icon3=fa-close}} | ||
|- | |- | ||
| {{b|{{#var:Quelle}} }} || {{ic|internal-network|dr|icon=network|class=available }} || {{#var:Quelle--desc}} | | {{b|{{#var:Quelle}} }} || {{ic|internal-network|dr|icon=network|class=available }} || {{#var:Quelle--desc}} | ||
Zeile 129: | Zeile 135: | ||
| | | | ||
|} | |} | ||
< | <div class="Einrücken"> | ||
<li class="list--element__alert list--element__positiv">{{#var:Abschluss}}</li> | <li class="list--element__alert list--element__positiv">{{#var:Abschluss}}</li> | ||
</div> |
Aktuelle Version vom 28. Februar 2025, 11:34 Uhr
(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.②

- Der Server sendet die Antwort SYN-ACK an die Absender-IP des Paketes: die IP des PCs aus dem internen Netz ③
- Die Firewall des PCs verwirft das Paket, weil es an die Absenderadresse des SYN-ACK-Paketes (die IP des Servers aus dem internen Netz) kein SYN-Paket gesendet hat.
oder - Der PC hat keine Firewall und sendet sein ACK-Paket an die öffentliche IP des Servers und damit an die UTM
→ Die UTM verwirft das Paket, weil sie kein SYN-ACK-Paket dazu gesehen hat.

- Die HideNAT-Regel hat auch die Absenderadresse verändert.
Der Server sendet das SYN-ACK-Paket an die UTM zurück ③ - Die UTM NATtet das Paket und sendet es an den ursprünglichen Absender ④
- Der PC kann nun sein ACK-Paket erfolgreich an die öffentliche IP des Servers senden.
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 | Quellnetzwerk, für das der Server erreichbar gemacht werden soll. | ||
Ziel | Netzwerkobjekt des Zielservers (ggf. wie oben beschrieben zuvor angelegt). | ||
Dienst | 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 | 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 | Dienst, der den gewünschten Zielport belegt. | ||
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.