Moin Moin !
Mal ne Frage hierzu - woher weiß so ein Router ob er ein IP-Paket (z.B. einen HTTP-Response) durchleiten soll oder nicht?
Ich schmeiß mal zwei Begriffe in die Runde: Three-Way-Handshake und NAT *TABLE*. Viel Spaß mit Google. ;-)
HTTP läuft über TCP, und TCP simuliert/sichert eine permanente Verbindung, ganz ähnlich wie ein serielles Kabel.
HTTP benutzt für Request und Response eine einzige Verbindung, die (beim Surfen) vom LAN (innen) zum Internet (außen) aufgebaut wird. Du kannst von außen keinen Request faken.
Wenn ich mich nicht irre arbeiten Router doch nur auf IP-Ebene, und da weiß er doch nicht was jetzt in dem Paket ist,
Das braucht er auch nicht zu wissen.
wie unterscheidet er es von irgendeinem Request in welchem protokoll auch immer an so einen Port der ja nicht per Port-Forewarding weitergeleitet wird?
Der "Surf-Request" kommt von innen, die Connection-Daten (Source-IP, Source-Port, Dest-IP, Dest-Port, Translation-IPs und -Ports) werden gespeichert, bis die Connection abgebaut wird.
Von außen kommende TCP-Verbindungen werden entweder abgelehnt oder an einen Server hinter dem Router weitergeleitet, je nach Konfiguration.
ich meine IP wird ja normalerweise nicht verschlüsselt also könnte jemand ja so einen Response vortäuschen und in Wirklichkeit einen Request an einen offenen Trojaner-Port auf einem Rechner hinter dem Router leiten, oder?
Nein. Der Response kommt auf der selben Connection zurück, die schon für den Request benutzt wurde. Die Verbindung besteht bei einem Response schon, deswegen kannst Du keinen Response faken. Dem Router ist es übrigens egal, ob auf einer Connection HTTP, SSH oder sonstwas "gesprochen" wird. Der Router kümmert sich nur um Connections.
AFAIK merkt sich ja der Router einen "IP-Request" eines seiner Clients und kann dann den "Response" entsprechend wieder zurückleiten,
Nein, Du würfelst HTTP und TCP durcheinander. Der Client baut eine TCP-Connection zum Server auf (Three-Way-Handshake), dabei verändert der NAT-Router klammheimlich die Connection-Daten in den IP-Paketen, so daß es von außen so aussieht, als käme die Connection vom Router.
also müsste bei dem von mir oben beschriebenen Vorgehen schonmal ein Request erfolgt sein auf den man dann antwortet. Oder scheitert das ganze dann endgültig beim Client da er das nicht erwartete IP-Paket verwerfen würde?
Trenne HTTP und TCP in deinem Kopf. Von außen kann ohne HTTP-Request kein HTTP-Response kommen.
TCP-Connections von außen werden überwiegend geblockt.
Alexander
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"