Voila un petit probleme sympa, amusez vous bien :
Je possede un client (toto) et un serveur (alpha). Je veux que l'un des ports de alpha se comporte comme si il etait celui de toto.
Donc je fais ssh -R 80:127.0.0.1:80 (en fait j'utilise putty sous windows) et ca marche seulement partiellement :
le port de alpha se comporte bien comme celui de toto, mais uniquement pour les applications locales a alpha (celles qui attaquent 127.0.0.1 chez alpha). Si j'essaie de me connecter a alpha:80 depuis un autre poste, rien ne se passe.
Depuis alpha, lorsque j'execute wget 127.0.0.1 je tombe bien sur le web de toto. Lorsque je fais wget http://IPalpha je tombe sur rien (tjrs depuis alpha).
Dans putty il y a une option que l'on peut cocher pour forwarder aussi les connections a 80 qui viennent de l'exterieur d'alpha. Mais rien n'y fait (avec OpenSSH_4.3p2 Debian-3, OpenSSL 0.9.8b 04 May 2006).
J'ai aussi essaye de faire un port forwarding de IPalpha sur 127.0.0.1, sans succes.
iptables -v -A FORWARD -i eth0 -o lo -p tcp --dport 80 -j ACCEPT
iptables -v -A PREROUTING -t nat -p tcp -d 213.251.186.164 --dport 80 -j DNAT --to 127.0.0.1:80
La doc de putty dis que openssh v3.0 ne supporte pas l'option (j'ai essaye la stable 3.8 avant la testing 4.3), et dis qu'il y a d'autres serveur qui eux, le font. J'ai cherche mais je n'ai pas trouve, qq1 a une idee ?
Sinon qq1 peut me dire si il y a une autre solution avec iptables pour faire que le port IPalpha:80 soit "forwarde" sur le port 127.0.0.1:80
Ou alors est-ce que quelqu'un connait un hack pour changer
netstat -pant
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 13200/0
en
netstat -pant
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 0.0.0:80 0.0.0.0:* LISTEN 13200/0
Voila, si quelqu'un a une quelconque idee, je suis preneur, car je seche la dessus depuis 5-6 heures maintenant ...
Merci et a+
# Adresse d'écoute sur le serveur SSH
Posté par JJD . Évalué à 3.
La page de man de ssh (je suis en version openssh 4.3p2) explique :
By default, the listening socket on the server will be bound to the loopback interface only. This may be overriden by specifying a bind_address. An empty bind_address, or the address '*', indicates that the remote socket should listen on all interfaces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).
En clair, si tu mets simplement l'option -R80:localhost:80, le serveur sera à l'écoute sur le port 80 mais uniquement sur l'adresse de loopback (127.0.0.1) comme tu l'as constaté.
Pour être à l'écoute sur une IP particulière, il faut l'indiquer avec
-R IP_Serveur:80:localhost:80
ou
-R :80:localhost:80
Il faudra en plus que l'option "GatewayPorts clientspecified" apparaisse dans le sshd_config du serveur.
Je ne sais pas si putty permet de sécifier une adresse de bind pour le port forwarding sur le serveur. Si ce n'est pas le cas, tu peux essayer de mettre l'option "GatewayPorts yes" sur le serveur et vérifier si ça marche. Dans ce cas, tous les ports forwardés sur le sercveur par n'importe quel client seront accessibles sur le serveur.
Dis-nous si tout cela marche.
A+
JJD
# man ssh
Posté par symoon . Évalué à 3.
-R [bind_address:]port:host:hostport
[...]
By default, the listening socket on the server will be bound to the loopback interface only. This may be overriden by specifying a bind_address. An empty bind_address, or the address '*', indicates that the remote socket should listen on all interfaces.
Et surtout la note suivante :
Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).
# OK , thks
Posté par caliloo . Évalué à 1.
Merci les gars, et surtout de ne pas m'avoir doner un RTFM.
a+
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.