[gull] Problème de connexion ftp <- firewal->

magnus magnus at magooweb.com
Wed May 4 19:12:02 CEST 2005


Sebastien Chassot wrote:

>Bonjour à tous,
>
>j'ai un petit soucis en tant que client ftp pour établir une connexion à
>travers mon gateway/firewall. J'utilise ipnat ipf sous freebsd 5.3
>stable et j'essaie de me connecter sur le ftp sécurisé de mon hébergeur
>avec lftp. Je crois avoir localisé le problème mais la solution semble
>dépasser mes compétences.
>
>Dans ma configuration actuelle, je peux me connecter en mode passif ou
>actif à un server publique, le proxy ftp d'ipnat fonctionne et ipf
>laisse passer.
>
>Quand je me connecte au server sécurisé je peux changer de dir (canal
>commande ?) mais ne peux pas exécuter ls, put, get,... ( canal data ?).
>
>Si j'ai bien compris en googlant, dans l'établissement d'un canal de
>donnée, en mode actif, mon client donne son adresse ip (172.16.2.101)
>par une commande PORT et le server distant n'a pas l'ip publique de mon
>firewall.
>
>En mode passif mon firewall block la sortie sur le port 37999 (voir plus
>bas) et la connexion ne s'établi pas (j'ai essayé d'ouvrir les ports
>+40000 mais ça doit être plus compliqué que ça).
>
>Je ne sais pas si j'ai été claire (j'ai un peu de peine avec les
>firewall). Y'a t'il une évidence à côté de laquelle je suis passé ?
>qq'un peut il m'expliquer le "couplage" entre ftp et ssh et/ou comment
>passer le firewall ?
>  
>
il y a 2 proto différents:
- ssh avec le subsystem sftp (scp) et,
- ftp sur ssl

ftp sur ssl est simplement du ftp "normal"  mis sur ssl. Il est normal 
que le fw ne puisse pas ouvrir dynamiquement les ports (comme pour le 
ftp) car il ne peut pas lire dans la connexion de controle. En effet, il 
y a une connexion de controle pour le ordre et la connexion data créée 
dynamiquement pour chaque ordre impliquant plus qu'un code de retour 
(même ls requiert une connexion data). C'este là qu'intervienne les 
modes passif et actif. Dans le premier la connexion de data est initiée 
par le client et dans la seconde c'est le serveur. Dans les deux cas 
l'autre doit transmettre le port et l'IP sur lesquels il "attend" la 
connexion.

Il faut donc que le fw/gateway lise cet ordre (pour permettre 
dynamiquement à la connexion data de s'établir) et, le cas évchéant, il 
modifie les commandes PORT (dans le cas du mode actif et/ou NAT-PAT).
Mais il ne peut évidemment pas le faire puisque la transaction est 
encryptée (SSL).

Avec ssh il n'y a pas ce problème car un "tunnel" se crée entre la 
machine client et la machine serveur. Vu depuis le fw il n'y a qu'une 
connexion sortante unique vers le serveur sur le port ssh.

Donc ftp sur ssl ne devrait pas passer les fw qui NAT. (Sauf si qqch 
m'échappe)

Magnus

>
>Merci.
>
>
>
>########################################
>
>	lftp mode actif 
>
>########################################
>
>
>  
>
>>ls                    
>>    
>>
>---- Connecting to XXXXXXXXXXX  port 21
><--- 220 ProFTPD 1.2.9 ServerProFTPD) XXXXXXX
>---> FEAT
><--- 211-Features:
><---  MDTM
><---  REST STREAM
><---  SIZE
><---  AUTH TLS
><---  PBSZ
><---  PROT
><--- 211 End
>---> AUTH TLS
><--- 234 AUTH TLS successful
>---> USER xxxxxx
>Certificate depth: XXXXXXXXXXXXXXXXXXXXX
>
><--- 331 Password required for xxxxxx
>---> PASS xxxxxxxx
><--- 230 User xxxxxx logged in.   
>---> PWD
><--- 257 "/" is current directory.
>---> PBSZ 0
><--- 200 PBSZ 0 successful
>---> PROT P
><--- 200 Protection set to Private
>---> PORT 172,16,2,101,198,127
><--- 500 Illegal PORT command               
>---- Switching passive mode on
>---> LIST
>---> ABOR
>---- Closing aborted data socket
>---- Closing control socket
>
>
>########################################
>
>	Mode passif
>
>########################################
>
>
>  
>
>>ls
>>    
>>
>---- Connecting to 84.xx.xx.xx port 21
><--- 220 ProFTPD 1.2.9 Server (ProFTPD) xxxxxxxxxx
>---> FEAT
><--- 211-Features:
><---  MDTM
><---  REST STREAM                
><---  SIZE
><---  AUTH TLS
><---  PBSZ
><---  PROT
><--- 211 End
>---> AUTH TLS
><--- 234 AUTH TLS successful    
>---> USER xxxxx
>Certificate depth: XXXXXXXXXXXXXXXX
>
><--- 331 Password required for xxxxx
>---> PASS xxxxxxxxx
><--- 230 User xxxxxx logged in.       
>---> PBSZ 0
><--- 200 PBSZ 0 successful           
>---> PROT P
><--- 200 Protection set to Private
>---> PASV
><--- 227 Entering Passive Mode (84,xx,xx,xx,148,111).
>---- Connecting data socket to (84.xx.xx.xx) port 37999
>---> LIST
>**** Socket error (No route to host) - reconnecting
>---> ABOR
>---- Closing aborted data socket
>---- Closing control socket
>
>##############################
>
>
>***************************
>
>Chassot Sebastien
>
>***************************
>
>_______________________________________________
>gull mailing list
>gull at lists.alphanet.ch
>http://lists.alphanet.ch/mailman/listinfo/gull
>  
>




More information about the gull mailing list