vendredi 26 mars 2004, par François Le Ralle
Rappel de vocabulaire :
TCP/IP :
Protocole réseau à la base d’Internet.
FTP : File Transfer Protocol.
Protocole standard de transferts de fichiers sur Internet.
Port TCP/IP :
"tuyau" de données sur une connexion TCP/IP caractérisant un type d’application.
Les inconvénients du mode actif (mode par défaut)
Le protocole FTP est un peu particulier dans le sens qu’il necessite au moins l’ouverture de 2 ports TCP/IP :
Le port 21, dit port de commande
Le port 20, dit port de donnée
Il peut fonctionner de deux facons différentes
En mode passif : le client ouvre des ports sur sa machine au fur et a mesure de ses besoins.
En mode actif : le serveur ouvre ses ports en fonction de ses propres besoin
En terme de sécurité :
En mode passif : Il y a un port entrant : Le port 20
En mode actif : Il y a plusieurs port dynamiques entrants !!!
Pour un serveur public, le mode actif n’est absolument pas sécurisable à travers un firewall, puisqu’une plage de ports (en général beaucoup trop étendue) doit être autorisée, ou alors une architecture réseau spécifique doit être pensée.
L’attaque FTP bounce (faille du mode passif)
Le mode passif quand à lui pose un problème supplémentaire qui utilise les capacités de FTP de dialoguer de serveur à serveur. Un client demande à un serveur de faire passer le serveur cible en mode passif pour lui faire émettre sur un port appartenant à un autre protocole. Cela s’appelle l’attaque FTP bounce.
l’authentification non sécurisée
L’authentification de l’utilisateur sur un serveur FTP n’est absolument pas sécurisée, les logins et mots de passe pouvant être très facilement interceptables sur le réseau.Voir sans.org (english). Il est nécessaire d’avoir un serveur (et des clients !) supportant une extension de FTP (rfc2228) pour une authentification sécurisée, ou un serveur implémentant le SSL.
Peu d’implémentations de FTP permettent de fonctionner avec des options permettant d’éviter les inconvénients ci-dessus, et beaucoup présentent d’autres failles. Les clients FTP ne savent pas tous fonctionner en mode passif ni avec un mécanisme sécurisant l’authentification.
Pour ces raisons la mise en oeuvre d’un serveur FTP doit être entourée de grandes précautions surtout s’il est ouvert sur Internet. Si l’on doit pour des raisons d’ouverture au monde Internet ou des raisons "business" fortes, utiliser le protocole ftp, il faudra prévoir une architecture DMZ avec serveur proxy correctement durci.
On lui préférera en général un autre moyen : HTTPS ou SFTP par exemple. Dans le cas où les deux extrémités sont parfaitement identifiées, un canal ssh ou vpn avec un protocole tel que SFTP ou rsync peut aussi convenir.