Hallo zusammen,
ich habe folgendes Szenario:
Externer Server mit IP 1.2.3.4
Interner Server mit IP 10.10.0.10 (LAN) & 10.20.0.10 (WAN-Netzwerk mit weiterem Router 10.20.0.200 für den Internetzugang)
Interner Router mit IP 10.10.0.1 (LAN) & 10.20.0.1 (der dann auch über das WAN-Netzwerk mittels dem Router 10.20.0.200 ins Internet kommt)
Client mit IP 10.10.10.100
Domain sd.do.tld
Der externe Server fungiert als Web-Proxy (Apache2) und leitet https-Anfragen auf "sd.do.tld" über einen weiteren Router (10.20.0.1) per NAT an 10.20.0.10 auf Port 1234 weiter. "Bildlich": https-Anfrage an sd.do.tld / 1.2.3.4 (Port 1234, absichtlich in dem Fall nicht 443) → 10.20.0.200 (Port 80) → 10.20.0.10 (Port 80).
Das funktioniert auch wunderbar - der Client mit IP 10.10.10.100 kommt an die Daten über den Pfad: 10.10.10.100 → 10.10.0.1 → 10.20.0.200 → 1.2.3.4 → ...
Ich möchte nun aber gerne den Zugriff vom Client direkt auf den Server realisieren. Dazu habe ich auf dem Router 10.10.0.1 mit iptables den folgenden Eintrag hinzugefügt:
iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 --dport 1234 -j DNAT --to-destination 10.10.0.10:1234
Zusätzlich wurde auf dem Internen Server (10.10.0.10) ein "Apache2-Web-Proxy-Server" installiert, der Anfragen von Port 1234 auf Port 80 weiterreicht. Die Zertifikate sind auf dem externen und internen Servern identisch - sollte theoretisch also keinen Zertifikatfehler geben. Der Aufruf von https://10.10.0.10:1234 funktioniert vom Client problemlos (natürlich mit Zertifikatfehler).
Somit sollte nach meinem Verständnis die Anfrage umgeleitet werden und die Kette wie folgt sein: 10.10.10.100 → 10.10.0.1 → 10.10.0.10 → 10.10.0.100 (Antwort). Leider bringt die Verbindung einen timeout. Hab ich irgendwo einen Denkfehler?
Danke und Grüße, Johannes
Bearbeitet von sebix:
Bitte verwende in Zukunft Codeblöcke, um die Übersicht im Forum zu verbessern!