1:1 NAT zu Webserver in DMZ

Started by rade, August 01, 2018, 03:34:52 PM

Previous topic - Next topic
Hallo,
ich weiß, dieses Thema wurde schon hundertmal behandelt, aber alles, was ich lese, greift hier nicht.
Ich habe vom Provider 5 statische IPs zugewiesen bekommen. Eine ist die der Fritzbox, eine die externe NIC, bleiben 3 freie IPs.
In einer DMZ laufen 2 Server für verschiedene Dienste. Einer hört auf HTTP und HTTPS.
Jeder der Server soll auf eine der freien IPs gemappt werden.
Ich habe für die 3 freien IPs jeweils eine VIP angelegt. (Frage: arp-proxy, alias-ip oder "andere"?)
Dazu eine 1:1 NAT, die die entsprechende externe IP auf die interne des Servers mappt.
Eine Firewall-Regel soll den Traffic zu den Ports 80 und 443 zu der internen IP des Servers in der DMZ durchlassen.
Vom LAN aus sind beide Server erreichbar, aber vom Internet aus geht nichts. Die häufigste Meldung der Firewall ist "default deny rule".
Wer kennt sich damit aus? Wo könnte der Fehler liegen?

Gruß, Rade

> Ich habe für die 3 freien IPs jeweils eine VIP angelegt. (Frage: arp-proxy, alias-ip oder "andere"?)

Normalerweise genügt AliasIP, zumal ich vermute, dass deine 5 IPs alle aus dem gleichen Segment stammen

> Dazu eine 1:1 NAT, die die entsprechende externe IP auf die interne des Servers mappt.

extern (eine der 3 IPs) auf intern (im LAN/an extra Interface?)

> Eine Firewall-Regel soll den Traffic zu den Ports 80 und 443 zu der internen IP des Servers in der DMZ durchlassen.

Richtig, aber hast du auch eine angelegt?
Die Regel muss zudem von ANY nach <internerIP> gehen, NICHT die externe IP (eine der drei) die du bekommen hast. Der Filter greift erst NACH dem NATting und damit ist das Paket schon umgeschrieben, somit greift die Regel nur, wenn du auf Destination "interne IP" Port "HTTP/HTTPS" prüfst.

Gruß
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Hallo,

ich habe das so gelöst.

1. Virtuelle Ip an WAN anlegen.
2. NAT Portweiterleitung an DMZ IP
3. Regel für DMZ im Lan anlegen.

Siehe Screenshots

Portweiterleitungen sind aber nur eingehend. Will der Rechner aber mit dem Internet sprechen und soll dabei auch die IP behalten, ist 1:1 NAT sinnvoller wenn eh die komplette IP von extern auf intern gemappt werden soll. Gerade bei Mail aber auch bei anderen Diensten ist das dann durchaus relevant und wichtig.

Gruß
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

Ich denke auch, dass 1:1 NAT hier der richtige Weg ist. Aber ich bekomme das nicht hin. Keine Verbindung vom Internet.
Frage 1: Soll die virtuelle IP die Subnetzmaske des ISP-Netzes (29) haben oder 32?
Frage 2: Was gehört in der 1:1-Konfiguration in "Quelle" und was in "Ziel".
Die Übersetzung der Maske verwirrt. Wenn ich die IP des Webservers in der DMZ bei "Quelle" eintrage, steht sie in der Liste unter "interne IP". Aber ist sie nicht das Ziel?

Seltsam, jetzt habe ich es mal mit Lewalds Portweiterleitung versucht. Das funktioniert auch nicht.
Da das mit anderen Firewalls (Ipfire, Sophos UTM etc.) auf denselben Schnittstellen einwandfrei klappt, muss es noch eine Besonderheit mit OPNsense geben. Aber was könnte das sein?
OPNsense läuft übrigens als VM unter Proxmox, mit paravirtualisierten NICs.

> Frage 1: Soll die virtuelle IP die Subnetzmaske des ISP-Netzes (29) haben oder 32?

die /29, da die IP als Alias auf die Schnittstelle gelegt wird. Sollte also die korrekte Maske haben

> Frage 2: Was gehört in der 1:1-Konfiguration in "Quelle" und was in "Ziel".

External network: hier deine Alias-IP eintragen (kein Netz, keine Netzmaske, kein /29)
Source: Hier deine interne IP eintragen (wie im Hilfetext zu entnehmen)
Destination: any (so lassen wie es ist - wie im Hilfetext steht hier meistens any. Du weißt es dann, wenn es nicht so ist. In allen anderen Fällen: any)
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.