Administration des
réseaux
Chapitre 3, Partie 3
Le Protocole FTP
(File Transfer Protocol)
1
Plan
Présentation du protocole
❑ Fonctionnement
❑ Configuration et options
2
Présentation de FTP
❑ Fonctionnalités :
❑ Téléchargement (Download) anonyme ou par utilisateur.
❑ Dépôt (Upload) anonyme ou par utilisateur
❑
❑ D e u x t y p e s d ’a ccès FTP:
❑ Utilisateur (l’utilisateur requiert un compte sur le serveur)
❑ A no n ym e : n’importe qui sur l’Internet peut initier une
connexion FTP:
❑ Login: « anonymous »
Password: n’importe quel MdP est accepté
❑ Défini par défaut d an s chaque serveur FTP, iI a accès
au répertoire /var/ftp comme racine.
❑ Il peut avoir le droit de Download ou Upload.
❑ Utile pour des connexions rapides anon ymes et sans
authentification (à travers Internet par exemple).
3
Présentation de FTP
❑ FTP utilise d e u x co n ne xi o ns T CP s é pa r é es :
❑ C a n a l d e C o m m a n d e s : pour transporter les
comm andes et leurs résultats entre le client et le serveur
❑ C a n a l d e d o n n é e s : pour transporter les listes de
répertoires et les fichiers transférés.
❑ D e u x m o d e s d e c o nne x i o ns FTP:
❑ Normal
❑ P a ssi f
4
FTP en mode normal
Client FTP
1➢ Le client ouvre un canal 20 21
de commande vers le Données Commandes 5150 5151
serveur et lui donne le
second n° de port ftp. « PORT 5151 » 1
2➢ Le serveur acquitte. 2 « OK »
3
3➢ Le serveur ouvre un
canal de données vers le
second port du client.
4
« OK »
4➢ Le client acquitte.
5
FTP en mode passif
❑ Supporté par la plupart des serveurs et des clients
FTP
1➢ Le client ouvre un canal 20 21
de commandes vers le Données Commandes 5150 5151
serveur et lui précise le
mode passif. « PASV » 1
3267
2➢ Le serveur alloue le port 2 « OK 3267 »
pour le canal de données et
en informe le client.
3
3➢ Le client ouvre le canal
de données vers le second
port du serveur.
4
« OK »
4➢ Le serveur
acquitte.
6
Commandes FTP
7
Service FTP sous Linux
■ Implémentation courante du serveur sou s linux :
vsftpd
■ Identité :
☐ Type : service standalone
☐ Ports : 2 0 et 21
☐ D ém o n : /etc/init.d/vsftpd (service vsftpd start)
☐ Fichier de configuration : /etc/[Link]
☐ Logs : /var/log/messages , /var/log/[Link] et
/var/log/xferlog(si activé)
8
Service FTP: mise en oeuvre
■ Configuration à travers le fichier /etc/[Link]
■ Configuration du service de téléchargement (Download).
☐ Pour autoriser la connexion par le compte anonymous :
a n o n y m o u s _ e n a bl e = Y E S
☐ Pour autoriser la connexion par les utilisateurs non privilégiés du système et
ne les autoriser que de travailler dans leur répertoire sous /home
local_enable=YES
chroot_local_user=YES
■ Configuration du service de dépôt (Upload) anonyme.
☐ Pour autoriser l’écriture dans les répertoires par défaut :
write_enable=YES
☐ Pour autoriser le dépôt (Upload) par l’utilisateur anonymous :
anon_upload_enable=YE S
☐ Créer un répertoire sous /var/ftp réservé pour le Upload
☐ Lui assigner les permissions nécessaires pour qu’il soit accessible pour
l’utilisateur anonymous
■ A chaque modifications des paramètres du service relancer vsftpd :
service v s f t p d r estar t O u /etc/init.d/vsftpd restart
9
Service FTP: mise en oeuvre
■ Connexion d’un client à un serveur FTP:
☐ ftp : C o m m a n d e e n m o d e texte interactif exi stan te
s o u s p l u si e u r s s y s t è m e s d’exploitations.
■ Co mm andes disponibles sous ftp : ls, get, put, cd, lcd, pwd, ? , bye
☐ À t r a v e r s u n n a v i g a t e u r w e b ([Link]
Ou bien
[Link]
☐ P l u s i e ur s a pp li c at i o ns g r a p h i q u e s s e l o n les
di stributions
■ Exemple : Filezilla
☐ Full-featured graphical FTP/FTPS/SFTP client
☐ Supports FTP, FTP over SSL/TLS (FTPS) and S S H File Transfer
Protocol (SFTP) 10
FTPS: FTP over SSL/TLS
Créer un certificat et une clé privée pour le serveur
s u d o o p e n s s l req -x5 0 9 -n o d e s -d a y s 3 65 -n ewk ey r s a: 1 02 4 -keyout
/etc/ssl/private/ssl-cert-snak eoil.k ey -out
/etc/ssl/certs/ssl-cert-snak eoil. pem
Ajouter sur [Link]
# location of the R S A certificate to use for S S L encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoi l.p em
# location of the R S A key to use for S S L encrypted connections.
rsa_private_key_file=/etc/ssl/private/[Link]
# force SSL. This will restrict clients that can't deal with TLS
ssl _e nabl e = YE S
allow_anon _ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
11
FTPS: FTP over SSL/TLS
# configure the server to use TLS (more secure than SSL)
#explicitly allowing TLS and denying the use of SSL
ssl _t ls v 1= YE S
ssl_sslv2=NO
ssl_sslv3=NO
#If set to yes, all S S L data connections are required to exhibit S S L session reuse
(which proves that they know the same master secret a s the control channel).
Although this is a secure default, it m a y break many FTP clients, so you m a y want
to disable it
require_ssl_reuse=NO
#select which S S L ciphers vsftpd will allow for encrypted S S L connections
ssl_ci pher s= HIG H
# allow writeable chroot if chroot_local_user was set to Y E S
allow_writeable_chroot=YES
12