LPIC-202
Lab 1
Configurer un serveur ftp avec vsftpd sur
centos 7
FTP (File Transfer Protocol) est un protocole réseau client-serveur standard qui permet aux
utilisateurs de transférer des fichiers vers et depuis un réseau distant.
Il existe plusieurs serveurs FTP open source disponibles pour Linux. Les plus populaires et les
plus utilisés sont PureFTPd, ProFTPD et vsftpd.
Dans ce tutoriel, nous allons installer vsftpd (Very Secure Ftp Daemon) sur CentOS 7. Il s'agit
d'un serveur FTP stable, sécurisé et rapide. Nous vous montrerons également comment
configurer vsftpd pour restreindre les utilisateurs à leur répertoire personnel et crypter toute la
transmission avec SSL / TLS.
Pour des transferts de données plus sécurisés et plus rapides, utilisez SCP ou SFTP.
Conditions préalables
Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur
avec les privilèges sudo ou en tant que root.
Installation de vsftpd sur CentOS 7
Le package vsftpd est disponible dans les référentiels CentOS par défaut. Pour l'installer,
exécutez la commande suivante:
sudo yum install vsftpd
Une fois le package installé, démarrez le démon vsftpd et activez-le pour démarrer
automatiquement au démarrage:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Vous pouvez vérifier que le service vsftpd fonctionne en imprimant son état:
sudo systemctl status vsftpd
Publicité
La sortie ressemblera à quelque chose comme ci-dessous, montrant que le service vsftpd est
actif et en cours d'exécution:
● vsftpd.service - Vsftpd ftp daemon Loaded: loaded
(/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main
PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Elies Jebri
Page 1 sur 4
LPIC-202
Lab 1
Configuration de vsftpd
La configuration du service vsftpd implique la modification du fichier de configuration
/etc/vsftpd/vsftpd.conf . La plupart des paramètres sont bien documentés dans le fichier
de configuration. Pour toutes les options disponibles, visitez la page officielle vsftpd.
Dans les sections suivantes, nous passerons en revue certains paramètres importants requis pour
configurer une installation vsftpd sécurisée.
Commencez par ouvrir le fichier de configuration vsftpd:
sudo nano /etc/vsftpd/vsftpd.conf
Configurer le service pour utiliser IPv4 au lieu de IPv6
with the listen_ipv6 directive.
listen=YES
Make sure, that one of the listen options is commented !!
listen_ipv6=NO
1. Accès FTP
Nous n'autoriserons l'accès au serveur FTP qu'aux utilisateurs locaux, trouverons les directives
Publicité
anonymous_enable et local_enable et vérifierons votre correspondance de configuration
avec les lignes ci-dessous:
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES
2. Activation des téléchargements
Décommentez le paramètre write_enable pour autoriser les modifications du système de
fichiers telles que le téléchargement (upload) et la suppression de fichiers.
/etc/vsftpd/vsftpd.conf
write_enable=YES
Elies Jebri
Page 2 sur 4
LPIC-202
Lab 1
3. Limitation de la connexion utilisateur
Pour autoriser uniquement certains utilisateurs à se connecter au serveur FTP, ajoutez les lignes
suivantes après la ligne userlist_enable=YES :
/etc/vsftpd/vsftpd.conf
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
Lorsque cette option est activée, vous devez spécifier explicitement quels utilisateurs peuvent
se connecter en ajoutant les noms d'utilisateur au fichier /etc/vsftpd/user_list (un
utilisateur par ligne).
Redémarrez le service vsftpd
Une fois l'édition terminée, le fichier de configuration vsftpd (à l'exclusion des commentaires)
devrait ressembler à ceci:
/etc/vsftpd/vsftpd.conf
Publicité
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
Enregistrez le fichier et redémarrez le service vsftpd pour que les modifications prennent effet:
Elies Jebri
Page 3 sur 4
LPIC-202
Lab 1
sudo systemctl restart vsftpd
Ouverture du pare-feu
Pour ouvrir le port 21 (port de commande FTP), le port 20 (port de données FTP) la commande
suivante:
sudo firewall-cmd --permanent --add-port=20-21/tcp
Rechargez les règles du pare-feu en tapant:
firewall-cmd --reload
Publicité
Création d'un utilisateur FTP
Pour tester notre serveur FTP, nous allons créer un nouvel utilisateur.
Si vous avez déjà un utilisateur auquel vous souhaitez accorder un accès FTP, ignorez
la 1ère étape. Si vous définissez allow_writeable_chroot=YES dans votre fichier de
configuration, ignorez la 3ème étape.
1. Créez un nouvel utilisateur nommé newftpuser :
sudo adduser newftpuser
Ensuite, vous devrez définir le mot de passe utilisateur:
sudo passwd newftpuser
Ajoutez l'utilisateur à la liste des utilisateurs FTP autorisés:
echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list
Créez l'arborescence de répertoires FTP et définissez les autorisations appropriées:
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp
Comme discuté dans la section précédente, l'utilisateur pourra télécharger ses fichiers
dans le répertoire ftp/upload .
À ce stade, votre serveur FTP est entièrement fonctionnel et vous devriez pouvoir vous
connecter à votre serveur avec n'importe quel client FTP pouvant être configuré pour utiliser le
chiffrement TLS tel que FileZilla.
Elies Jebri
Page 4 sur 4