Page 1 sur 1

[SSH] FTP par SSH

Publié : sam. 06 juin 2009, 14:43
par maxi_jac
Bonjour !


J'essaie de monter un tunnel SSH pour acceder au FTP de ma Freebox HD depuis l'exterieur.

Le reseau est donc comme ça (j'utilise les noms de machines):

Code : Tout sélectionner

fixe     ---------  (INTERNET)   -----------   Freebox ~~~~~  packard (192.168.0.18)
                                                   |
                                                   |
                                                   |
                                       hd1.freebox.fr
packard est mon serveur SSH qui a accès à hd1.freebox.fr

sur la machine packard, sshd écoute sur le port 22
dans hosts.allow j'ai seulement "sshd: ALL "
Je n'utilise pas iptables, sur aucune des machines.


La freebox est configuré de cette maniere niveau forwarding:
22 -> 192.168.0.18:22
1025 -> 192.168.0.18:1025


j'effecute la liaison du tunnel a partir de "fixe" en faisant :

Code : Tout sélectionner

ssh -R 1025:hd1.freebox.fr:21 IP_Freebox
(Qui est censé résoudre ce nom de domaine ? fixe ou packard ?)

Quand le tunnel est créé, je tente d'acceder au FTP d'hd1.freebox.fr depuis fixe par

Code : Tout sélectionner

lftp -p 1025 freebox@IP_Freebox
lftp est configuré en actif, mais j'ai testé en passif et pas mieux il me met "reconnexion dans 30s..." et ainsi de suite...


Quelqu'un a une idée d'ou ca peut coincer ? Mon tunnel ?

Merci !

++ B.

Re: [SSH] FTP par SSH

Publié : sam. 06 juin 2009, 16:30
par maxi_jac
Bon je me réponds à moi même car à coups de nmap j'ai compris que mon port 1025 ne s'ouvrait pas...
J'ai viré temporairement le DENY ALL de hosts.deny et maintenant quand je scanne je vois bien le port 1025 mais selon le scan "nmap -PN" il me le voit fermé...


Des indices ? :/


++ B.

Re: [SSH] FTP par SSH

Publié : sam. 06 juin 2009, 16:46
par Skunnyk
Tu peux tenter avec un -L au lieu de -R, qui te permet de faire du ssh tunneling (d'ailleurs je n'avais jamais utilisé le -R, que je ne connaissais pas)

Re: [SSH] FTP par SSH

Publié : sam. 06 juin 2009, 16:48
par maxi_jac
Merci de ta réponse, je jongle entre -L et -R mais rien de fonctionne :(


++ B.

Re: [SSH] FTP par SSH

Publié : sam. 06 juin 2009, 17:10
par Mageti
Salut maxi_jac,
Perso pour faire un tunnel ssh, j'utilise plutôt cette commande :

Code : Tout sélectionner

ssh -N -f login@adresse_public -Lport_local_de_renvoi:adresse_privée_HD:port_distant_du_hd
Ce qui donnerais, si je ne trompe pas :

Code : Tout sélectionner

ssh -N -f login@adresse_Freebox -L1025:hd1.freebox.fr:1025
en supposant que tu redirige le port 22 de la freebox sur le port 22 de ta machine packard.

Re: [SSH] FTP par SSH

Publié : sam. 06 juin 2009, 18:20
par maxi_jac
Salut Mageti,

J'essaierai à l'occasion là je peux pas trop. Mais je comprends pas, ton tunnel a de 1025 à 1025, comment tu peux dire à ton client ftp d'aller choper le port 21 derrière ?


++ B.

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 13:27
par Abazigal
Bonjour maxi_jac
tout d'abord, l'option -R n'était pas la bonne, car elle permet de faire l'inverse de -L: elle ouvre un socket sur l'hote distant.
(-R comme "remote", -L comme "local")

Il faut donc, comme l'a dit Skunnyk, utiliser -L.

Secundo, de base, quand tu fais du SSH tunneling, les autres ne peuvent pas acceder au socket qui est créé, il faut donc utiliser l'option -g
Extrait du man:

Code : Tout sélectionner

-g     Allows remote hosts to connect to local forwarded ports.
Tercio, quand tu utilise "ssh -L 1234:host2:21 host1", cela créer localement un socket écoutant sur le port 1234; toute les connexions sur ce port vont passer par le tunnel entre ta machine et host1, PUIS VONT ÊTRE redirigé par host1 (en non crypté) vers le port 21 de host2; host1 ne sert que de relai. Dans ton cas, host1 et host2 sont les même machine (ta freebox), il n'y a pas de relai. Il faut donc dire qu'a la sortie du tunnel, la connexion doit se faire sur le port 21 de "localhost".

Ce qu'il te faut est donc:

Code : Tout sélectionner

ssh -NgL 1025:localhost:21 ip_freebox
(avec -f si tu veux le lancer en fond)

Quadrio (heu, ca se dit ? :? ), quand tu fais tes tests, va du plus simple vers le plus compliqué (l'utilisation finale): tente d'abord un

Code : Tout sélectionner

lftp -p 1025 localhost
puis

Code : Tout sélectionner

lftp -p 1025 freebox
puis, d'un PC exterieur a ton reseau:

Code : Tout sélectionner

lftp -p 1025 IP_Ext_De_Ta_Freebox
Et finalement, et c'est le plus important ...
je ne vois pas du tout l'interet de tout ca ... la connexion entre un pc distant et le port 1025 de ta freebox ne sera pas crypté; absolument la même chose que de faire directement une requete ftp dessus ... Donc je ne vois pas ce qu'apporterai tout ceci ...
Par contre, depuis un hote distant :

Code : Tout sélectionner

ssh -NLf 1025:Iocalhost:21 ip_exterieur_de_ta_freebox
lftp -p 1025 localhost
Ca ca cryptera la communication entre le PC exterieur et ta freebox, et tu n'as pas a t'embarasser avec toute une configuration dans ton reseau maison.

En esperant avoir été constructif ...

Et je te conseille cet exellent tuto sur le tunnelling via SSH :
http://sio.obspm.fr/fichiersHTML/tunnel.html

Voila voila :)

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 15:31
par maxi_jac
Merci beaucoup pour ta réponse Abazigal !

Avant de tenter de mettre en oeuvre ce que tu me conseilles, je réponds juste quant à l'utilité de la chose.
Le but n'est pas de crypter les données, c'est qu'on ne peut acceder au disque dur interne de la Freebox TV que depuis le réseau local de la freebox. Pour y accéder de l'exterieur j'ai donc besoin d'un relai dans le réseau local non ?


++ B.

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 15:37
par Abazigal
Haaa, ok ok, je comprends mieux alors :)

Bein, tu dis que sur ta freebox tu as une règle:

Freebox:1025 -> Fixe:1025

Je ne suis pas sûr du tout (je n'ai pas de freebox), mais je pense qu'une bête règle

Freebox:1025 -> FreeboxHD:21

Suffirait, nan ?

Aux yeux de la FreeboxHD ca viendrait de "l'interieur", je pense ...
Avec une autre box, ca marcherait, j'en suis quasiment sûr, mais la freebox est bizare: il me semble qu'elle a pas vraiment d'IP sur le reseau local, ou un truc du genre, nan ? Pourquoi freebox, et hd.freebox sont séparé ? ce n'est pas le même équipement (physiquement) ? (ouais, je suis perdu des qu'il s'agit de freebox :lol: )

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 15:56
par maxi_jac
:)

on ne peut accéder à la freebox TV que depuis 'hd1.freebox.fr' et à l'interieur meme du reseau.

De toute manière en la pingant son adresse est de type 212.xxx.xxx.xxx et dans la config du routeur freebox on ne peut rediriger que vers les 192.168.xxx.xxx

En fait on dirait que pour acceder à la freeBox on doive passer par les serveurs de free ou un truc du genre...


En tout cas j'ai reussi en utilisant tes commandes \o/

en me loggant d'abord sur la machine à l'interieur du reseau puis en faisant un

Code : Tout sélectionner

ssh -NgL 1025:hd1.freebox.fr:21 localhost
je peux y acceder de l'exterieur en ftp sur le port 1025 de ma freebox :)

J'ai pas trouvé plus pratique ( c'est à dire sans me logger d'abord sur la machine, juste en etablissant le tunnel depuis l'exterieur )


Merci :) et je vais me mettre à bien lire la doc que tu m'as filée ca al'air pas mal, malgré mes recherches j'étais pas tombé sur celle là ^^


++ B.

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 16:16
par Abazigal
EDIT:
Heu, atta, la freebox a un serveur ssh ?

(si non, ca sert a rien de faire la suite)



j'ai surement mieux, en fait, maintenant que j'ai compris ce que tu voulais, exactement :

On peut y arriver plus facilement avec l'option -R, comme tu étais partis.

Code : Tout sélectionner

ssh -NR 1025:HDFREEBOX:21 FREEBOX
Comme tu l'avais fait; sauf qu'il faut supprimer la 2ème règle de redirection au niveau de la freebox, qui fait que ton truc ne marche pas. (et la première aussi tant que t'y es, avec le port 22, elle ne sert a rien si tu n'utilise pas -L).

en gros, la commande va créer un socket ecoutant sur le port 1025, sur ta freebox, et tout ce qui ira sur ce port sera redirigé dans le tunnel, puis sera redirigé par packard sur le port 21 de HDFREEBOX. Et ca serait trop long a expliquer, mais la règle sur la freebox rend ineficasse la chose.

Essaye, à l'ocasion: ca fait moins de règle, donc plus "propre" :)

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 16:32
par maxi_jac
Oups... j'ai parlé trop vite en fait... Ca n'a finalement pas l'air de marcher... Dans tous mes tests j'ai fini par faire une connerie et j'étais connecté en direct sur le reseau de ma Freebox... donc oui ca marchait...
Normalement je fais mes tests depuis le nouveau reseau FreeWifi qui donne une IP différente de celle de la connexion normale. et là, ca ne marche plus evidemment xD


J'ai l'impression que Free fait tout pour qu'on ne puisse pas rendre le FTP accessible de l'exterieur... Et c'est pour ca que la freebox est accessible par une ip exterieure, Free peut tout verifier et bloquer si il detecte que ca vient pas du reseau interne.

Sinon pour ta derniere commande, je comprends pas le principe, si je supprime la regle du routeur pour rediriger le port 22, qui va receptionner ma requete ssh ?


++ B.

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 16:34
par Abazigal
ok, c'est bien ce que je viens de soupconner: la freebox n'a pas de serveur SSH ... je croyais ...

Mais du coup, toute les solutions tunnelisés sont impropre: packard créer un tunnel entre lui et lui même ... :?

Je ne pense pas que SSH soit la bonne solution :/

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 16:40
par maxi_jac
Y a des box qui ont un serveur ssh ? Ca a l'air sympa ça ^_^
En effet peut etre qu'SSH n'est pas la solution... mais alors comment faire ?



++ B.

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 16:45
par Abazigal
Je vois qu'iptables, là, comme ca; mais ca me parait un peu être la chasse a la mouche au bazouka ...
J'essaye quelques trucs, là :d

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 16:55
par maxi_jac
J'ai trouvé des infos et une manière possible de le faire (apparemment).

Il faudrait sur la machine dans le reseau local pouvoir monter le FTP dans le systeme de fichier (fuse + curlftpfs) et ensuite remettre un serveur ftp là dessus pour venir se brancher sur ce systeme de fichier monté...

Comme on s'éloigne du sujet je vais tester cette méthode et si ca je galère, j'ouvre un nouveau sujet.


Encore merci Abazigal de m'avoir aidé.


++ B.

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 17:04
par Abazigal
T'utilise quoi pour utiliser le mode passif avec lftp, au fait ?

Normalement;

Code : Tout sélectionner

ssh -NgL 1205:HDFREEBOX:21 localhost
DOIT faire l'affaire (même si comme je l'ai dit plus haut, c'est pas très propre ...

Re: [SSH] FTP par SSH

Publié : dim. 07 juin 2009, 17:22
par maxi_jac
avec lftp :

Code : Tout sélectionner

set ftp:passive-mode true/false
En effet, ça doit faire l'affaire mais bizarrement ca ne marche pas, le client ftp se connecte, procède au FEAT et reste bloqué sur "attente de la connexion de données"


++ B.