Installation d’un serveur FTP sous Linux

1 – Protocole fpt

(*1) File Transfer Protocol (protocole de transfert de fichier), ou FTP, est un protocole de communication destiné au partage de fichiers sur un réseau TCP/IP. Il permet, depuis un ordinateur, de copier des fichiers vers un autre ordinateur du réseau, ou encore de supprimer ou de modifier des fichiers sur cet ordinateur. Ce mécanisme de copie est souvent utilisé pour alimenter un site web hébergé chez un tiers.

La variante de FTP protégée par les protocoles SSL ou TLS (SSL étant le prédécesseur de TLS) s’appelle FTPS.

FTP obéit à un modèle client-serveur, c’est-à-dire qu’une des deux parties, le client, envoie des requêtes auxquelles réagit l’autre, appelé serveur. En pratique, le serveur est un ordinateur sur lequel fonctionne un logiciel lui-même appelé serveur FTP, qui rend publique une arborescence de fichiers similaire à un système de fichiers UNIX. Pour accéder à un serveur FTP, on utilise un logiciel client FTP (possédant une interface graphique ou en ligne de commande).

FTP, qui appartient à la couche application du modèle OSI et du modèle ARPA, utilise une connexion TCP.

Par convention, deux ports sont attribués (well known ports) pour les connexions FTP : le port 21 pour les commandes et le port 20 pour les données. Pour le FTPS dit implicite, le port conventionnel est le 990.

Ce protocole peut fonctionner avec IPv4 et IPv6.

(*1) Référence wikipedia


2 – Client ftp – FileZilla

Un des clients de connexion populaire est l’application FileZilla disponible ici:

FileZilla

Il existe deux type de connexions en ftp, avec le compte ‘anonymous’ ou bien avec un nom de login.

Action 2.1  – Télécharger et installer FileZilla sur votre poste de travail.

Voici quelques serveurs ftp à tester en mode ‘anonymous’ avec FileZilla.

Action 2.2 – Ouvrir une session ftp sur le serveur  ftp.hp.com


3 – Serveurs d’index ftp

Voici une liste de moteurs de recherches spécialisés pour la localisation de contenu disponible via le protocole ftp:

Action 3.1 – Utiliser un de ces moteurs de recherche pour localiser des documents de type .cpp


4 – Installation du serveur ftp ‘vsftpd’ sous Linux

Étape 4.1 – Mise à jour de l’index des applications et installation de ‘vsftpd’

sudo apt update && sudo apt install vsftpd
Les NOUVEAUX paquets suivants seront installés :
  vsftpd
0 mis à jour, 1 nouvellement installés, 0 à enlever et 37 non mis à jour.
Il est nécessaire de prendre 115 ko dans les archives.
Après cette opération, 338 ko d'espace disque supplémentaires seront utilisés.
Réception de :1 http://us.archive.ubuntu.com/ubuntu focal/main amd64 vsftpd amd64 3.0.3-12 [115 kB]
115 ko réceptionnés en 0s (459 ko/s)
Préconfiguration des paquets...
Sélection du paquet vsftpd précédemment désélectionné.
(Lecture de la base de données... 194261 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../vsftpd_3.0.3-12_amd64.deb ...
Dépaquetage de vsftpd (3.0.3-12) ...
Paramétrage de vsftpd (3.0.3-12) ...
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /lib/systemd/system/vsftpd.service.
vsftpd.conf:1: Line references path below legacy directory /var/run/, updating /var/run/vsftpd/empty → /run/vsftpd/empty; please update the tmpfiles.d/ drop-in file accordingly.
Traitement des actions différées (« triggers ») pour man-db (2.9.1-1) ...
Traitement des actions différées (« triggers ») pour systemd (245.4-4ubuntu3.3) ...


Étape 4.2
–  Vérification de l’état du nouveau service:

sudo service vsftpd status
etudiant@etudiant-VirtualBox:~/formatif$ cd ..
etudiant@etudiant-VirtualBox:~$ sudo service vsftpd status
● vsftpd.service - vsftpd FTP server
     Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-12-08 13:51:29 EST; 5min ago
   Main PID: 26881 (vsftpd)
      Tasks: 1 (limit: 2318)
     Memory: 484.0K
     CGroup: /system.slice/vsftpd.service
             └─26881 /usr/sbin/vsftpd /etc/vsftpd.conf

Dec 08 13:51:29 etudiant-VirtualBox systemd[1]: Starting vsftpd FTP server...
Dec 08 13:51:29 etudiant-VirtualBox systemd[1]: Started vsftpd FTP server.


Étape 4.3
– Création d’un compte ‘ftp’

sudo adduser ftpuser


Étape 4.4
– Au besoin, bloquer l’accès ‘ssh’ à l’utilisateur ftp.

$ sudo nano /etc/ssh/sshd_config

# Ajouter ceci dans le fichier /etc/ssh/sshd_config:

DenyUsers ftpuser

# Redémarrer le 'deamon' sshd

$ sudo service sshd restart

Étape 4.5 – Créer un utilisateur pour l’accès, par exemple ‘ftpuser’

Étape 4.6 – Créer un dossier de connexion pour l’utilisateur, par exemple ‘/ftp’

Étape 4.7 – sudo chown ftpuser:ftpuser /ftp

Étape 4.8 – home directory de ftpuser = /ftp

Étape 5 – Modifier le fichier ‘vsftpd.conf’

sudo nano /etc/vsftpd.conf

# Uncomment this to enable any form of FTP write command.
write_enable=YES

Étape 5.1 – Redémarrer le service

sudo service vsftpd restart

Laboratoire – Ajouter un compte ftpweb, home = /var/www/html.


Référence:

 


Document préparé par Alain Boudreault pour les étudiants du cours 420-3C3 – révision 2020.12.