Vous êtes sur la page 1sur 14

Cours/atelier FTP

et mise en œuvre avec FileZilla Server


Sommaire...
 Présentation générale de FTP
o Définition
o Utilisation
 Installation d'un serveur FTP : Filezilla FTP Serveur
 Les ports utilisés par FTP
o Le mode actif
o Le mode passif
 Les options disponibles dans FileZilla FTP Server
o La création d'utilisateurs
o Les autres options
o A vous de jouer
o Problèmes de sécurité
 TFTP
 FTPS
 La commande FTP du MS-DOS

1 Présentation générale de FTP

Définition

FTP signifie File Transfer Protocol.

C'est un cousin des protocoles HTTP, SMTP, POP, IMAP, NNTP :


comme eux, c'est un protocole Internet en sur-couche des
protocoles TCP et IP.

En résumé, il permet de manipuler le contenu d'un disque


dur distant : transférer des fichiers dans les deux sens, en
supprimer, créer/supprimer des répertoires, etc.

Utilisation

Le protocole FTP et les logiciels associés sont utilisés


notamment pour :

 envoyer des fichiers depuis vos sites Internet locaux (de


tests) vers votre hébergeur, pour les rendre disponibles aux
internautes,
 télécharger des fichiers mis à disposition sur Internet : mises
à jours, applications, images iso, etc. (toutefois, le
téléchargement se fait parfois en HTML),
 échanger les fichiers entre le disque dur de votre Box ADSL
et votre ordinateur, par exemple pour récupérer les vidéos
enregistrées à la télévision,
 etc. (si vous voyez d'autres utilisations importantes que
j'aurai oubliées, notez-les en commentaire en bas de cette
page)

Alerte sur... la sécurité de votre mot de passe


FTP
Si vous hébergez des sites Web, stockez très soigneusement le
mot de passe FTP de votre hébergement.

En effet, une personne malveillante en possession de ce mot de


passe pourra :

 accéder à d'autres mots de passe, par exemple celui qui sert


à se connecter au serveur MySQL,
 remplacer les fichiers PHP par des fichiers aux
comportements rigolos : envoyer vers une adresse e-mail
tous les mots de passes saisis par les internautes, rediriger
les internautes vers d'autres sites, etc.

Dans ce cours/TP nous allons travailler avec le client FTP et le


serveur FTP Filezilla (logiciels libres).

Citez un logiciel FTP client autre que Filezilla.

Votre réponse n°1

Citez un logiciel FTP serveur autre que Filezilla.

Votre réponse n°2


2 Installation d'un serveur FTP : Filezilla FTP Serveur

Filezilla FTP Serveur est l'un des serveurs FTP les plus
répandus, il est open-source.

Il existe une version client et une version serveur. Nous


allons installer ces deux versions et baser nos tests dessus.

Téléchargez et installez Filezilla FTP Server sur votre


ordinateur (de préférence sur le votre serveur Windows Server
virtualisé, pour une meilleure pérénité et une configuration
personnalisée).

Vous remarquez que l'installation de Filezilla FTP Server est


relativement simple, sauf les fenêtres suivantes :

 Install as service, started with Windows : l'installation


en tant que service permet, de démarrer le serveur sans
qu'il y ai besoin d'ouvrir une session utilisateur sur
l'ordinateur. Les autres permettent de l'installer en tant
que service sans le démarrer automatiquement, ou
de l'installer comme une application normale
 Le port 14147 proposé par défaut n'a rien à voir ni avec la
connexion de commandes, ni avec la connexion de données.
C'est pour la connexion entre l'interface graphique qui
permet de gérer le serveur, et le serveur lui-
même (c'est donc comparable au couple phpMyAdmin/MySQL)

 Start if user logs on, apply to all users : cette fois-ci il


s'agit du démarrage non pas du serveur lui-même, mais de
l'interface d'administration du serveur. Par défaut,
l'interface se lance dès que n'importe quel utilisateur ouvre
une session. Les autres options permettent de lancer
l'interface que pour l'utilisateur courant, ou de ne pas
la lancer du tout.

Après avoir installé Filezilla Server, allez consulter la liste des


processus dans le gestionnaire des tâches. Notez le nom du
processus qui correspond à l'interface d'administration de
Filezilla :
Votre réponse n°3

Allez consulter les services. Notez le nom du service qui


correspond au serveur Filezilla :

Votre réponse n°4

En MS-DOS, quelle est l'option de la commande netstat qui


permet d'afficher les ports d'écoute ?

Votre réponse n°5

Quelle est l'option de la commande netstat qui permet


d'afficher les ports au format numérique, et non textuelle ?

Votre réponse n°6

Exécutez la commande netstat avec les deux options ci-


dessus, filtrez les résultats en rajoutant | findstr
LISTENING après la commande :
netstat options | findstr LISTENING
Collez ici le résultat obtenu :

Votre réponse n°7


Sur tous les ports ci-dessus, sur lequel votre ordinateur est à
l'écoute, notez les deux ports écoutés par Filezilla Server.

Votre réponse n°8

Installez le client FTP Filezilla, ceci ne pose aucune difficulté.

3 Les ports utilisés par FTP

Le FTP a une particularité que n'ont pas la plupart des autres


protocoles : il utilise deux connexions simultanément (et ce
quel que soit le mode actif ou passif) :

 une première pour l'échange des commandes


(authentification, lister les répertoires, demander un fichier,
etc.),
 une deuxième pour le transfert des fichiers.

De plus, le FTP utilise deux modes différents : le mode actif (le


premier historiquement) et le mode passif(mis au point car le
mode actif ne pouvait pas passer certains firewalls, ou routeurs
NAT).

Le mode actif

Historiquement, c'est le premier mode de fonctionnement qui


existait en FTP.
Dans ce schéma, on voit :

 Le sens des flèches qui montre que le client demande la


connexion pour le transfert des commandes, et le serveur
demande la connexion pour le transfert des données,
 Les ports : le serveur utilise les ports 21 (pour
les commandes) et 20 (pour les données), le client utilise
des ports >1023 pour les deux.

Le problème est que si le client est derrière un routeur NAT, le


serveur n'arrivera pas à se connecter au client. Explications
détaillées

Dans ce mode, et si le serveur FTP se trouve derrière un


routeur NAT (comme chez vous derrière votre box), quel est le
port (ou quels sont les ports) qui doivent faire l'objet d'une
redirection (port forwarding) depuis la box vers le
serveur ?

Votre réponse n°9

Le mode passif

Ce mode a été inventé car les serveurs FTP avaient du mal à


initier une connexion vers les clients dont les pare-feux ne le
permettaient pas, ou les clients derrière un routeur NAT (une
box par exemple).

Dans ce schéma, on voit :


 Le sens des flèches qui montre que, contrairement au
mode actif, c'est le client qui initie les deux connexions (pour
le transfert des commandes et pour le transfert des
données),
 Les ports : le serveur utilise cette fois-ci des
ports >1023 pour les données.

Dans ce mode, et si le serveur FTP se trouve derrière un


routeur NAT (comme chez vous derrière votre box), quel est le
port (ou quels sont les ports) qui doivent faire l'objet d'une
redirection (port forwarding) depuis la box vers le
serveur ?

Votre réponse n°10

4 Les options disponibles dans FileZilla FTP Server

Les options de Filezilla FTP Server se modifient à partir de


l'interface d'administration du serveur :

La création d'utilisateurs

Pour créer les comptes d'utilisateurs dans Filezilla, on va dans


Edit --> Users. C'est indispensable : par défaut aucun
utilisateur n'est créé, et la connexion anonyme est désactivée.
Le serveur est donc totalement inaccessible.

On peut alors :

 Créer un compte d'utilisateur avec son login et son mot de


passe, éventuellement le mettre dans un groupe.
 Préciser quel est son répertoire principal, créer
des alias (des liens depuis le répertoire principal vers de
nouveaux répertoires),
 préciser quels sont ses droits sur les répertoires (lecture,
écriture, sous-dossiers)
 limiter : sa bande passante, son nombre de connexions
simultanées, les IP à partir desquelles il peut se connecter.

Les autres options

Montrer les options disponibles, notamment : le mode passif,


les fichiers log, les black-list, la connexion anonyme.

A vous de jouer

On va créer un compte d'utilisateur FTP avec son propre


répertoire, sur lequel il aura les droits de lecture et
d'écriture.

Il aura de plus accès en lecture seule à un répertoire


commun, qui contient des outils partagés. On va devoir créer
un alias pour partager ce répertoire.

Sur votre ordinateur, créez les


répertoires C:\FTP\v_anonyme et C:\outils.

Sur votre serveur FTP, créez un utilisateur v_anonyme avec


un mot de passe (bidon, car on va l'afficher en clair ensuite).

Faites de C:\FTP\v_anonyme son home dir et faites un alias


depuis C:\FTP\v_anonyme\outils vers D:\outils.

Vérifiez que tout marche (vous arrivez à vous connecter


depuis Filezilla vers Filezilla serveur, avec cet utilisateur,
vous arrivez dans un répertoire où vous voyez le sous-
répertoire outils.
Lorsque ça marche, collez ici une capture d'écran de la
rubrique Shared folders de la fenêtre Edit -> Users.

Votre réponse n°11

Problèmes de sécurité

Lorsque vous vous authentifiez auprès d'un serveur FTP, votre


login et votre mot de passe sont envoyés en clair sur Internet.
Ce problème de sécurité potentiel sera réglé avec le FTPS (FTP
sécurisé) qu'on verra plus bas.

Grâce à Wireshark, interceptez les paquets échangés entre le


client et le serveur FTP. Collez ici le résumé de la ligne qui
contient votre mot de passe en clair :

Votre réponse n°12

5 TFTP

TFTP signifie Trivial File Transfer Protocol.

Il est simplifié (pas de listage de fichiers, pas


d'authentification, etc.), donc plus léger que FTP et du coup
très utilisé pour la mise à jour des firmwares de box, de
routeurs, etc.

Wikipedia

6 FTPS

C'est le FTP sécurisé par le protocole SSL/TLS.


Au lieu d'utiliser le port 21, le FTP sécurisé (dit implicite)
utilise le port 990. A l'inverse, le FTP Sécurisé
explicite utilise toujours le port 21.

Démonstration :

 générer un certificat avec FileZilla FTP Server (menu Setting


-> SSL/TLS settings -> Generate new certificate...),
 se connecter avec un client en utilisant le certificat.

Sur Internet, trouvez la différence de fonctionnement entre


le FTPS implicite et le FTPS explicite, et expliquez-là ici :

Votre réponse n°13

Sur Internet, trouvez le rapport entre SSL et TLS, et expliquez-


le ici :

Votre réponse n°14

Allez dans la rubrique SSL/TLS Settings des options de votre


serveur. Générez un certificat en remplissant toutes les options
demandées. Remarquez que la dernière option est importante :
vous choisissez où est enregistré le certificat.

Quelle est l'extension du fichier ainsi généré ? (s'il n'a pas


d'extension, cherchez quelle est l'extension pour les certificats de
sécurité et ajoutez-là) :

Votre réponse n°15


Activez le "FTP over SSL/TLS", renseignez le fichier du certificat
de sécurité dans les deux cases suivantes (Private key
file et Certificate file). Validez.

Grâce à la commande MS-DOS netstat -an | findstr


LISTENING, repérez le nouveau port sur lequel votre
ordinateur est à l'écoute et notez-le ici :

Votre réponse n°16

7 La commande FTP du MS-DOS

MS-DOS possède une commande FTP qui permet de rentrer


dans un mode où on va taper à la main les commandes.

Par exemple, voici une connexion à mon serveur FTP, listage du


répertoire d'accueil et récupération d'un fichier :

C:\>ftp
ftp> open cours.sebastien-pastore.com
Connecté à spas.homedns.org.
220-FileZilla Server version 0.9.31 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/
Utilisateur (spas.homedns.org:(none)) : spastore
331 Password required for spastore
Mot de passe : ...
230 Logged on
ftp> dir
200 Port command successful
150 Opening data channel for directory list.
drwxr-xr-x 1 ftp ftp 0 Jan 25 16:01 cours.sebastien-
pastore.com
drwxr-xr-x 1 ftp ftp 0 Dec 21 19:01 films.sebastien-
pastore.com
drwxr-xr-x 1 ftp ftp 0 Oct 06 2011 www.le-club-de-
audrey.fr
drwxr-xr-x 1 ftp ftp 0 Sep 22 2010 www.my-dogs.fr
-rw-r--r-- 1 ftp ftp 108256 Apr 20 2010 watermark.png
226 Transfer OK
ftp : 1565 octets reçus en 0,08 secondes à 20,06 Ko/sec.
ftp> GET watermark.png
200 Port command successful
150 Opening data channel for file transfer.
226 Transfer OK
ftp : 108256 octets reçus en 1,28 secondes à 84,51 Ko/sec.
ftp> quit
221 Goodbye
C:\>_

Quand on est en mode FTP, la commande HELP permet de voir


toutes les commandes FTP accessibles.

C:\>ftp
ftp> help
Les commandes peuvent être abrégées. Ces commandes sont :

! delete literal prompt


send
? debug ls put
status
append dir mdelete pwd
trace
ascii disconnect mdir quit
type
bell get mget quote
user
binary glob mkdir recv
verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
ftp>
C:\>_

Vous aimerez peut-être aussi