Am Dienstag, 22. Juni 2010, 21:46:03 schrieb Luca Bertoncello:
Bernhard Schiffner bernhard@schiffner-limbach.de schrieb:
ssh -L 8888:irgendeinhost:9999 irgendeinaccount@irgendeinhost
dieses, daß ssh Anfragen auf (lokaler Host, Interface lo) Port 8888 entgegennimmt, zum sshd auf der anderen Seite über Port 22 tunnelt , und der wiederum das Ganze dort auf (irgendeinhost, Interface lo) Port 9999 ausgibt.
Warum Interface "lo" auf dem anderen Host? Sollte es nicht ethX sein?
Achtung 2 Welten!
1.) sshd lauscht (wenn nicht anders konfiguriert) an allen Interfaces Port 22.
2.) Wenn sshd Portforwarding übernimmt, reicht er die an (irgendeinem Interface) Port 22 empfangenen und entschlüsselten Pakete an Interface 127.0.0.1:Port (bei mir lo:9999) weiter. Dort können dann wieder andere Dienste lauschen.
(man sshd_config -> GatewayPorts)
Du kannst mit dem Format anderen Hosts ansprechen, und ich denke, es sollte automatisch nach Route gewählt werden (vom "irgendeinhost") welche Schnittstelle benutzt werden soll. Wird die gleiche Adresse gegeben, wird aber auch nicht unbedingt "lo" benutzt, denn sie ist nur für 127.0.0.1 zu nutzen.
Eben. lo alias 127.0.0.1 ist für die Fälle gedacht, wo der Host mit sich selber über Netzwerk sprechen will (z.B. wg. Trennung bzw. Stacking der Applikationen, Portforwarding)
Sogar wenn der Host 192.168.1.1 mit sich selber (auch 192.168.1.1) sprechen soll wird das, meiner Wissen nach, über ethX (vermutlich eth0) passieren.
Teste das mal mit tcpdump. Eine Verbindung von mir an mich via extern sichtbarer Schnittstelle (wie ethX alias 192.168.1.1) ist keinesfalls verboten. (Trotzdem halte ich es für "nicht wünschenswert", das zuzulassen. Wenn ich Netze betreuen muß, fange ich so etwas mit iptables-Regeln ab.)
Grüße Luca Bertoncello (lucabert@lucabert.de)
Danke!
Bernhard