Simi: Zentraler Web-Proxy hinter Firewall

Hi,
ich mochte einen Proxy in einen LAN einrichten der Anfragen zu Webseiten zu unterschiedlichen Server weiterleitet. Dies soll fuer Anfragen aus dem Internet funktionieren. Zum Beispiel

  1. Anfrage aus dem Internet zu der Webseite http://example.domain.net
    1b) Diese Anfrage kommt an der Firewall/Gateway unseres LAN`s an
  2. Die Firewall/Gateway leitet die Anfrage uber NAT (oder PAT) an Port 80 zu dem Proxy weiter
  3. Der Proxy leitet die Anfrage an den Server weiter, der die Webseite tatsaechlich bereitstellt (Der Proxy leitet anhand der URL http://example.domain.net weiter - eine andere URL z.b. http://example2.domain.net wird an einen anderen Server weitergeleitet)

Ich habe den Proxy mit Apache und mod_proxy aufgesetzt und intern kann ich mit der Webseite ueber den Proxy auch wunderbar kommunizieren. Nur wenn die Anfrage von aussen ueber NAT weitergeleitet wird geht das ganze nicht mehr.

Folgend Szenario funktioniert also schon:

LAN:
PROXY ....................................WEBSERVER
192.168.1.100...........------>...........192.168.1.101
test.domain.com ..........................local.test.domain.com
|
|
|
CLIENT
ruft test.domain.com auf
und kommuniziert mit
local.test.domain.com

Apache Config for PROXY:
<VirtualHost test.domain.com:80>
ProxyPass / http://local.test.domain.com/
ProxyPassReverse / http://local.test.domain.com/
</VirtualHost>

Apache Config for WEBSERVER
<VirtualHost *:80>
        ServerName test.domain.com
ServerAlias local.test.domain.com

DirectoryIndex index.html index.php index.htm
        DocumentRoot /opt/test-example
</VirtualHost>

Ich bin mir sicher dass die Config in Apache ok ist, weil es funktioniert ja lokal. Ich bin mir also sicher dass alle noetigen module geladen sind. Es funktioniert aber nicht aus dem Ineternet wenn zusaetzlich das Forwarding von der Firewall ins Spiel kommt. Meine momentane Vermutung ist dass die Anwort der WEBSERVER und/oder des PROXY nicht an die Firewall zurueckgegeben wird. Sowohl der WEBSERVER als auch PROXY haben also default Gateway die Firewall. Ich sehe in den Logs von Apache aber auch keine Anfragen wenn ich vom Internet versuche die Seite aufzurufen. Es kommt auch keine Fehlermeldung im Browser beim Aufruf der Seite - sondern es laeuft auf einen Timeout.

Das Szenario das NICHT funkioniert - mit der gleichen Apache Config wie oben - ist folgendes:

CLIENT
ruft test.domain.com (212.212.212.100) auf
und laeuft auf timeout :(
|
|
|
FIREWALL
ext 212.212.212.100
int 192.168.1.1
NAT 212.212.212.100:80 --> 192.168.1.100:80
|
|
|
PROXY ....................................WEBSERVER
192.168.1.100...........------>...........192.168.1.101
test.domain.com ..........................local.test.domain.com
Default Gateway 192.168.1.1...............Default Gateway 192.168.1.1

Ich habe bereits stunden mit google verbracht und habe bisher leider keine heisse spur. Ich waere fuer jeglichen hinweis ueberaus dankbar :)

Tobias

  1. Proxies sind üblicherweise dazu da, Anfragen von innen nach außen zu leiten. Anfragen aus dem Netz auf Server zu verteilen, ist hingegen Aufgabe eines Load Balancers.

    Gruß, LX

    --
    RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
    RFC 1925, Satz 11a: Siehe Regel 6a
    1. Ich glaube was ich versuche zu machen nennt sich Reverse Proxy und es scheint fuer sich genommen auch zu gehen nur nicht im zusammenhang mit dem Forwarding *grummel* ... :)

      Proxies sind üblicherweise dazu da, Anfragen von innen nach außen zu leiten. Anfragen aus dem Netz auf Server zu verteilen, ist hingegen Aufgabe eines Load Balancers.

      Gruß, LX

  2. Hallo Tobias,

    das sieht, gerade weil in den Log-Dateien des Apachen keine Einträge landen, nach einer fehlerhaft konfigurierten Firewall aus. Bitte überprüfe die Einstellungen!

    Gruß aus Berlin!
    eddi