Il existe 2 types differents de connection par FTP:
Le premier est la connection de "controle". Elle est initialisee par le logiciel FTP client.
On a donc une connection du client --> au serveur, sur le port 21.
Le client quant a lui, passe par un port superieur a 1023. Pour un firewall,
la connection de "controle" est assez simple à configurer.
Le deuxieme type de connection FTP est celui du transfert de donnees.
La encore il en existe 2 sortes, la connection "active" et la connection "passive".
"ACTIVE" : Ces connections sont ouvertes par le server FTP, en voici les etapes.
- Le client FTP envoie une requete pour "dialoguer" sur un port > 1023
- Le client FTP se lie au serveur sur un port qu'il a choisi
- Le serveur FTP commence la connection sur son port data-ftp (port 20)
avec le client sur le port que celui-ci a choisi
La connection "active" ressemble donc a :
Serveur: ftp-data ==> Client: port_choisi_par_client
"PASSIVE" : Cette connection fonctionne sur ces bases:
- Le client FTP demande au serveur d'utiliser une connection "passive" pour les donnees
- Le serveur FTP utilise un port > 1023
- le serveur FTP informe le client de son choix concernant le port
- le client FTP se connecte par un port > 1023 de son choix au
port choisi par le serveur
Ainsi la connection passive ressemble à ceci:
Client: port_choisi_par_client ==> Serveur: port_choisi_par_serveur
Ces deux methodes de transfert de donnees posent des problemes
pour les firewalls. En effet, les clients FTP peuvent donc se connecter virtuellement à n'importe quel port de la machine distante (enfin sur n'importe quel port > 1023)
Le risque cote client reside dans la necessite d'ouvrir tous
les ports > 1023.
Et on n'a pas specialement envie de laisser tous ces ports ouverts comme ca, sans protection... :-)
Meme avec des outils tels que ipchains (Linux) qui ne tiennent pas compte des informations de l'état de la connection, c'est a dire qui ne s'occupent pas s'il s'agit d'un transfert de donnees ou autre, on ne peut pas se proteger !
Le problème avec le FTP en mode passif est que le serveur
doit être configuré à accepter des conections tcp
sur différents ports > 1023. Or, authoriser n'importe quel
ordinateur distant a se connecter aux ports > 1023
quand on est serveur, c pas vraiment genial non plus...
---------------
[:ben2655] LINUX: ruulleeeeeezzz !!