Protocole FTP

Protocole FTP:

Le protocole FTP (File Transfer Protocol) est un protocole d’échange de fichiers entre deux machines sur un réseau TCP/IP.

Le protocole FTP appartient à la couche application du modèle OSI et il se base sur le modèle client/serveur

Les ports attribués au protocole FTP sont les ports 20 et 21.

le port 21 : pour envoyer les commandes et recevoir les réponses du serveur
le port 20 : pour envoyer ou recevoir les fichiers

Il existe deux modes de connexion: mode Actif et mode Passif (Le mode passif est conseillé pour les clients qui se connectent derrière un pare-feu)

Exemple d’une requête FTP

Statut : Résolution de l’adresse de ftp.domaine.tld
Statut : Connexion à xxx.xxx.xxx.xxx
Statut : Connexion établie, attente du message d’accueil…
Réponse : 220———- Bienvenue sur Pure-FTPd [privsep] [TLS] ———-
Réponse : 220-Vous etes l’utilisateur 11 sur les 500 autorises.
Réponse : 220-L’heure locale est 12:18. Port du serveur : 21.
Réponse : 220-Ceci est un systeme prive – Aucun utilisateur anonyme autorise
Réponse : 220-Les connections en IPv6 sont les bienvenues sur ce serveur.
Réponse : 220 Vous serez deconnectes apres 20 minutes d’inactivite.
Commande : USER root.domaine.tld
Réponse : 331 Utilisateur root.domaine.tld OK. Veuillez taper votre mot de passe
Commande : PASS ********
Réponse : 230-La bande passante est volontairement restreinte
Réponse : 230-Ce serveur supporte les transferts FXP
Réponse : 230 OK. Le repertoire restreint courant est /
Commande : SYST
Réponse : 215 UNIX Type: L8
Commande : FEAT
Réponse : 211-Extensions supported:
Réponse : EPRT
Réponse : IDLE
Réponse : MDTM
Réponse : SIZE
Réponse : REST STREAM
Réponse : MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Réponse : MLSD
Réponse : AUTH TLS
Réponse : PBSZ
Réponse : PROT
Réponse : UTF8
Réponse : TVFS
Réponse : ESTA
Réponse : PASV
Réponse : EPSV
Réponse : SPSV
Réponse : ESTP
Réponse : 211 End.
Commande : OPTS UTF8 ON
Réponse : 200 OK, UTF-8 enabled
Statut : Connecté
Statut : Récupération du contenu du dossier…
Commande : PWD
Réponse : 257 « / » est votre position actuelle
Commande : TYPE I
Réponse : 200 TYPE est maintenant 8-bit binary
Commande : PASV
Réponse : 227 Entering Passive Mode (xxx.xxx.xxx.xxx,xx,xx)
Commande : MLSD
Réponse : 150 Connexion de donnees acceptee
Réponse : 226-Options: -a -l
Réponse : 226 7 elements au total
Statut : Contenu du dossier affiché avec succès

Les réponses FTP:

Premier Chiffre

ChiffreDescriptionDésignation
1xxRéponse positive préliminairel'action demandée a été correctement reconnue et lancée
2xxRéponse positive définitivel'action demandée s'est complètement déroulée avec succès
3xxRéponse positive intermédiairecommande acceptée mais en sommeil dans l'attente d'informations supplémentaires
4xxRéponse négative transitoireLa commande a été refusée elle peut être tentée a nouveau
5xxRéponse négative définitiveLa commande a été refusée

Second Chiffre

ChiffreDescriptionDésignation
x0xSyntaxeErreur de syntaxe
x1xInformationRéponse aux demandes d'information
x2xConnexionsRéponses relatives aux connexions
x3xIdentification et authentificationRéponses aux authentifications et aux procédures de compte
x4xnon spécifié
x5xSystème de fichiersRéponse aux actions relatives a des fichiers système du serveur

Les commandes FTP:

Les commandes FTP peuvent être divisées en :

  • Les commandes de contrôle d’accès
  • Les commandes du paramétrage de transfert
  • Les commandes de service FTP

 

Commandes de contrôle d’accès

Commande Description
USER une chaine de caractères pour identifier l’utilisateur
PASS une chaine de caractères pour spécifier le mot de passe d’utilisateur
ACCT une chaine de caractères pour spécifier le compte de l’utilisateur
CWD commande permet de changer le répertoire courant
CDUP commande permet de remonter au répertoire parent
SMNT commande permet de monter un volume sous un système de fichiers
REIN commande permet de tuer une connexion User
QUIT commande permet de terminer une session en cours

Commandes du paramétrage de transfert

Commande Description
PORT une chaine de caractères pour spécifier le numéro de port
PASV commande permet d’indiquer au serveur DTP de se mettre à l’écoute d’un port de données et d’attendre une demande de connexion
TYPE commande permet de définir le type de format des données envoyées
STRU a argument sous forme d’un caractère Telnet pour préciser le type du fichier
MODE argument sous forme d’un caractère Telnet pour préciser le mode transfert des données
Commande Description

STOU permet de créer un fichier dont le nom est unique.
APPE permet de concaténer dans données dans un fichier
ALLO permet de prévoir un espace de stockage suffisant pour contenir un fichier
REST permet de reprendre un transfert là où il s’était arrêté.
RNFR permet de renommer un fichier.
ABOR permet d’abandonner tous les transferts associés à la commande précédente.
DELE permet de supprimer un fichier
RMD permet de supprimer un répertoire
MKD permet de créer un répertoire.
PWD permet de retourner le répertoire courant
LIST permet de renvoyer la liste des fichiers et répertoires présents dans le répertoire courant.
NLST Cette commande (name liste) permet d’envoyer la liste des fichiers et répertoires dans le répertoire courant
SITE Cette commande (site parameters) permet au serveur de proposer des services spécifiques, non définis dans le protocole FTP
SYST informations sur le système du serveur FTP
STAT informations sur le statut du serveur FTP
NOOP permet d’obtenir une commande OK du serveur (pour ne pas être déconnecté après un temps d’inactivité trop élevé)