iptables - bestimmte http header routen

lordg2009

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.503
Hi,

ein dienst auf port 80 soll hinter meinem heimserver erreichbar sein, abhängig vom hinteren teil der url. Im Prinzip wie bei einem apache2-virtualHost.
myrul.de/index.html -> führt zu der seite auf dem server
myurl.de/test.html -> führt wird geroutet zu einem rechner hinter dem server

ich dachte mir, das wäre vlt. mit HTTP 1.1 Headers in Verbindung mit iptables und dem stringfiler möglich. Z.B.:
Code:
iptables -t nat -I PREROUTING -p tcp -m string -s 0.0.0.0/0 --string 'GET /test.html' -DNAT 192.168.5.123

funktioniert das?
 
Wie das "string" Modul arbeitet, weiß ich nicht. Aber wenn du das zuhause hast... warum nicht einfach ausprobieren? Mit iptables hast du aber spätestens bei https verloren (und https sollte in der heutigen Zeit standard sein ;) ). Außerdem durchsucht dein Vorschlag _JEDES_ eingehende TCP Paket, dass von aussen kommt nach dem String. Das kostst teuer CPU Zeit ;)

Wenn du auf dem System eh einen Webserver laufen hast, dann bau doch da einfach eine Weiterleitung ein. Ich arbeite gerne mit nginx in solchen Szenarien, da wäre das ein passender location-Block mit einem proxy_pass und fertig (location /test.html { proxy_pass http://...; }). Kannst auch nen haproxy nehmen.

Alternativ nimm einen anderen Port. Das lässt sich dann per schnödem Portforwarding direkt ans richtige System leiten.
 
Zurück
Oben