Cours
Administration Systèmes et Services
Chapitre: FTP
Protocole FTP
Définition
FTP est l’abréviation de File Transfer Protocol.
Ce protocole de communication est utilisé pour l’échange de fichiers entre « un serveur et un client ».
FTP est utile pour transférer des fichiers entre ordinateurs, que ce soit à distance ou au sein d’un réseau local.
FTP a été pensé pour de gros transferts, on peut également s'en servir pour transférer plusieurs fichiers lourds
à la fois.
Protocole FTP
Fonctionnement de FTP
FTP utilise et s’appuie sur le Protocole de Contrôle de Transmission (Transmission Control Protocol ou TCP)
pour s’assurer que tous les paquets de données sont envoyés correctement et à la bonne destination.
TCP établit une connexion entre deux appareils,
Divise les données en segments,
et envoie les segments à l’appareil de destination, où ils sont réassemblés dans le flux de données d’origine.
Protocole FTP
Fonctionnement de FTP
FTP est construit sur une architecture de modèle « client-serveur ».
FTP utilise des connexions de contrôle (commande) et de données distinctes entre
« le client et le serveur ».
Concernant la notion de commandes FTP, il faut savoir qu'il en existe une trentaine. Voici quelques
exemples de commandes :
GET ou RETR : récupérer un fichier
PUT : envoyer un fichier
MKD : créer un dossier
CLOSE : fermer la session FTP en cours …
Protocole FTP
Fonctionnement de FTP
Premier Type de connexion est appelé connexions de contrôle :
La connexion de contrôle est toujours la première connexion établie avec un serveur FTP.
Son but est de permettre aux clients de
se connecter
et d’envoyer des commandes au serveur,
ainsi que de recevoir des réponses du serveur.
Protocole FTP
Fonctionnement de FTP
Le deuxième type de connexion est appelé connexion de données.
Il s’agit du canal par lequel un serveur FTP échange des listes de fichiers et transfère des fichiers.
Lorsqu’un client utilise la connexion de contrôle pour « demander » à un serveur FTP de transférer un fichier,
ce canal envoie ledit fichier.
Les ports par défaut pour
FTP port 21 pour la connexion de contrôle
FTP port 20 pour la connexion de données
Sont normalisés et largement utilisés, il est donc généralement recommandé d’utiliser ces ports pour FTP.
Protocole FTP
Fonctionnement de FTP
Connexions FTP et Internet
FTP utilise : une connexion pour
les commandes
et l'autre pour l'envoi et la réception de données.
FTP a un numéro de port standard sur lequel le serveur FTP "écoute" les connexions.
Un port est un "point de connexion logique" pour communiquer à l'aide du protocole Internet (IP).
Le numéro de port standard utilisé par les serveurs FTP est 21 et est utilisé uniquement pour l'envoi de
commandes.
Comme le port 21 est utilisé exclusivement pour l'envoi de commandes, ce port est appelé
port de commande.
Protocole FTP
Fonctionnement de FTP
Pour obtenir une liste des dossiers et des fichiers présents sur le serveur FTP, le client FTP
émet une commande "LIST".
Le serveur FTP envoie ensuite une liste de tous les dossiers et fichiers au client FTP.
Le port utilisé pour le transfert de données est appelé port de données.
Le numéro du port de données varie en fonction du « mode de la connexion ».
Protocole FTP
Fonctionnement de FTP
Mode de connexion actif et passif
Le serveur FTP peut prendre en charge Actif ou Passif connexions ou les deux.
Dans une connexion FTP active, le client ouvre un port et écoute et le serveur se connecte
activement à celui-ci.
Dans une connexion FTP passive, le serveur ouvre un port et écoute et le client s'y connecte.
Protocole FTP Fonctionnement de FTP
Mode Actif
Une machine client FTP ouvre une connexion en utilisant un port
aléatoire vers le port 21 du serveur.
Le serveur ouvre ensuite un port de données avec son numéro de
port 20 vers un port aléatoire de la machine client.
Les serveurs et les clients sont responsables de l’ouverture de la
connexion.
Le client démarre la connexion au canal de commande tandis que
le serveur démarre la connexion au canal de données.
Lors de la configuration du mode actif FTP, vous devez vous
assurer que les ports sont ouverts sur les machines clientes, si vous
utilisez un pare-feu.
Protocole FTP Fonctionnement de FTP
Mode Passif
En mode passif, les canaux de commande et les canaux de données
sont ouverts par la machine cliente.
Lors de la phase de démarrage de la connexion,
Le client ouvre une connexion TCP depuis un port aléatoire
vers le port 21 du serveur.
Le client envoie une commande PASV au serveur et le serveur
envoie le numéro de port qu'il souhaite utiliser comme canal de
données.
Ensuite, le client envoie les données au numéro de port envoyé
par le serveur.
Le numéro de port fourni par le serveur pour le canal de données doit
être ouvert dans le pare-feu côté serveur.
Protocole FTP
Fonctionnement de FTP
Il est possible de modifier les ports utilisés par FTP, si nécessaire.
Vous pouvez être amené à modifier les ports si vous exécutez plusieurs serveurs FTP
sur la même machine et souhaitez :
éviter les conflits de ports
ou si vous souhaitez personnaliser les numéros de port pour des raisons de sécurité
.
Protocole FTP
Fonctionnement de FTP
Maintenant que vous connaissez les détails, voyons comment tout cela s’articule :
1. Un client établit une connexion avec le serveur FTP en demandant:
l’adresse IP et le numéro de port du serveur.
Le serveur répond par un message indiquant que la connexion a été établie.
2. Le client s’authentifie auprès du serveur en fournissant un nom d’utilisateur et un mot de passe.
Si l’authentification est réussie, le serveur accorde l’accès au client.
Protocole FTP
Fonctionnement de FTP
3. Le client peut alors envoyer au serveur des commandes FTP, telles que le téléversement, le
téléchargement, la suppression ou la liste de fichiers.
4. Pour les transferts de fichiers, le client ouvre une connexion de données distincte vers le serveur.
La connexion de données transfère le contenu réel du fichier entre le client et le serveur.
5. Lorsque le transfert de fichiers est terminé, la connexion de données est fermée.
Le client peut alors:
émettre d’autres commandes FTP
ou se déconnecter du serveur.
Protocole FTP
Sécurité FTP
Le protocole FTP de transfert de fichiers a été créé à l’origine sans aucune précaution de sécurité.
Au moment du développement, Internet était encore à ses débuts et la cybercriminalité n’existait pas.
Maintenant, l’utilisation du FTP est associée à de nombreux risques de sécurité,
Car toutes les informations transférées sont non chiffrées.
C’est pourquoi deux variantes plus sûres ont été développées, qui sont depuis lors en concurrence l’une
avec l'autre : FTPS et SFTP.
FTPS = FTP avec SSL.
SFTP = FTP avec SSH
Protocole FTP Sécurité FTP
FTP avec SSL
La connexion est donc établie en combinaison avec Secure Sockets Layer (SSL) ou Transport Layer
Security (TLS) . L'échange de données est chiffré.
Le terme TLS (Transport Layer Security):
un protocole de sécurité largement adopté et conçu pour
« faciliter la confidentialité et la sécurité des données sur les
communications Internet. »
SSL, (Secure Sockets Layer), est un protocole de sécurité Internet basé sur le chiffrement.
Il a été développé dans le but de garantir la confidentialité, l'authentification et l'intégrité des données
dans les communications Internet.
Le SSL est le prédécesseur du chiffrement moderne TLS utilisé aujourd'hui.
Protocole FTP Sécurité FTP
Protocole FTP Sécurité FTP
FTP avec SSH
SSH, (Secure Shell), est un protocole d’administration à distance qui permet aux utilisateurs
de contrôler et de modifier leurs serveurs distants sur Internet.
Le service a été créé en tant que remplacement sécurisé pour le Telnet non chiffré, et utilise des
techniques cryptographiques pour s’assurer que toutes les communications vers et depuis le
serveur distant se produisent de manière chiffrée.
Protocole FTP Sécurité FTP
Comment fonctionne le SSL/TLS ?
Afin de garantir un degré élevé de confidentialité , le SSL chiffre les données transmises sur le Web.
Cela signifie que quiconque tente d'intercepter ces données ne verra qu'un mélange confus de caractères
quasiment impossible à déchiffrer.
Le SSL lance un processus d'authentification appelé handshake entre deux dispositifs de communication
pour s'assurer que les deux appareils sont vraiment ceux qu'ils prétendent être.
Le SSL signe également numériquement les données afin d'assurer l'intégrité des données, en vérifiant que
les données ne sont pas falsifiées avant d'atteindre leur destinataire prévu.
Protocole FTP
Présentation
Lorsque l'on effectue un transfert de fichiers, on opte généralement pour du FTP.
La sécurité n'étant pas négligeable, on optera pour une version sécurisée du FTP à savoir
le FTPS ou le SFTP.
Mais alors, quelle est la différence entre ces deux protocoles ?
Protocole FTP
FTPS et SFTP
Le SFTP
Le SFTP quant à lui signifie : SSH File Transfer Protocol ou Secure File Transfer Protocol.
En fait, ce protocole est désigné comme une extension du protocole SSH qui permet d'effectuer du transfert
de fichiers.
On pourrait parler de Transfert FTP encapsulé dans un tunnel SSH sécurisé.
Il utilise uniquement le port SSH (22), aussi bien pour le transfert des données que pour le contrôle.
Protocole FTP
FTPS et SFTP
Le FTPS
Le FTPS est en fait du FTP avec une couche SSL en plus pour le côté sécurité que cela apporte.
L'utilisation du SSL permet d'exiger l'utilisation d'un certificat pour sécuriser la communication
entre le client et le serveur.
FTPS peut être mis en œuvre de deux manières : explicite ou implicite.
En mode explicite, le client établit une connexion non chiffrée avec le serveur, puis lance le chiffrement
SSL/TLS.
En mode implicite, le client établit directement une connexion sécurisée avec le serveur.
Protocole FTP Différences entre FTP, SFTP et FTPS
FTP, SFTP et FTPS ont des différences significatives en termes de sécurité, de portabilité et de compatibilité.
Sécurité : FTP n’est pas sécurisé, car toutes les données transférées sont en clair et peuvent ainsi être
interceptées par des pirates. En revanche, SFTP et FTPS sont sécurisés comme ils utilisent des
protocoles de chiffrement pour protéger les données transférées.
Portabilité : FTP est facilement portable parce qu’il est pris en charge par la plupart des systèmes
d’exploitation. SFTP est également portable, car il est basé sur SSH, qui est disponible sur de nombreux
systèmes d’exploitation. FTPS, en revanche, l’est moins puisqu’il nécessite l’installation d’un certificat
SSL/TLS sur chaque système d’exploitation.
Compatibilité : FTP est le plus largement pris en charge par les serveurs et les clients de transfert de
fichiers. SFTP et FTPS sont moins largement soutenus car ils sont des protocoles plus récents.
Cependant, la plupart des clients et des serveurs de transfert de fichiers prennent en charge au moins l’un
des protocoles SFTP ou FTPS.
Protocole FTP
Types de FTP
Plusieurs types de FTP existent, notamment :
FTP anonyme: FTP de base ne nécessitant ni nom d'utilisateur ni mot de passe, et sans cryptage.
FTP protégé par mot de passe: FTP de base qui nécessite un nom d'utilisateur et un mot de passe.
Il fonctionne sur le port 21.
FTP sécurisé (FTPS): Également connu sous le nom de FTP-SSL (FTP Secure Sockets Layer),
FTPS permet des connexions implicites compatibles avec le protocole TLS (Transport Layer
Security) pour une meilleure sécurité. Il utilise le port 990.
Protocole FTP
Types de FTP
FTP sur SSL/TSL explicite (FTPES): Permet les connexions TSL explicites. Il fonctionne sur le port 21.
FTP sécurisé (SFTP): Techniquement, il ne s'agit pas d'un protocole FTP, mais d'un dérivé chiffrable
du protocole Secure Shell (SSH) .Il fonctionne sur le port 22.
Plusieurs types de données sont transférés à l'aide de FTP, notamment
• ASCII (type A) pour les données textuelles,
• Image (type I) et
• EBCDIC (type E) pour le texte brut.