vsFTPd (Very Secure FTP Daemon) est une implémentation FTP (File Transfer Protocol), Il permet la gestion distante de fichiers, au travers d’un réseau TCP/IP. VsFTPd assure un haut niveau de sécurité, avec le protocole TLS, pour former ainsi le protocole s’appelle FTPS.
VsFTPd est l’un des premiers à mettre en œuvre la séparation des privilèges, minimisant ainsi les risques de piratage.
2. INSTALLATION DES PAQUETS REQUIS
su
# Mise à niveau du système
apt-get update
apt-get upgrade
# Installation de VsFTPd
apt-get install vsftpd
Ce service répondra à l’adresse : ftp.domainepme.tld
3. CONFIGURATION DE BASE
# Faire une copie de sécurité au préalable
cp /etc/vsftpd.conf /etc/vsftpd.backup# Editer le fichier de configuration
nano /etc/vsftpd.conf
et y placer (ou vérifier):
# Nous voulons que le service fonctionne en mode ‘standalone’. . .
listen=YES
# . . . mais en protocole Ipv4 seulement
listen_ipv6=NO
# On ne veut pas de connexions en mode ‘anonyme’
anonymous_enable=NO
# Les utilisateurs locaux au serveur peuvent se connecter (par défaut)
local_enable=YES
# Les utilisateurs peuvent ‘uploader’ des fichiers sur le serveur
write_enable=YES
# On fixe le masque local a 022 (les fichiers ‘uploadés’ auront des droits »755″ )
local_umask=022
# usage de l’heure local
use_localtime=YES
# logguer les uploads/downloads.
xferlog_enable=YES
# vérifier l’usage initial du port 20 (ftp-data).
connect_from_port_20=YES
# Bannière d’accueil lors de la connexion d’un utilisateur
ftpd_banner=— BIENVENUE SUR LE SERVICE FTP DE domainepme.tld —
# On veut limiter les utilisateurs su système à leur répertoire
chroot_local_user=YES
# permettre l’écriture dans le répertoire racine
allow_writeable_chroot=YES
# Nom du service
pam_service_name=vsftpd
# Activation ssl et certificats
rsa_cert_file=/etc/letsencrypt/live/domainepme.tld/cert.pem
rsa_private_key_file=/etc/letsencrypt/live/domainepme.tld/privkey.pem
ssl_enable=YES
# Utiliser l’encodage UTF-8
utf8_filesystem=YES
# Nombre maximal de clients ftp simultanés
max_clients=10
# Nombre maximal de clients sur la même ip
max_per_ip=2
# Plage de ports utilisés (choix arbitraire et non utilisés ailleurs)
pasv_min_port=40721
pasv_max_port=40998
Attention : Aucun espace doit être placé de part et d’autre du signe ‘=’
Prise en compte :
systemctl vsftpd start
4. CONNECTION AVEC UN CLIENT FTP (FileZilla par EXEMPLE)
4.1 S’il s’agit d’un user local « administrateur » : on se connecte alors en FTP via SSH
- Hôte 111.22.333.44
- port 2233
- protocole SFTP – SSH File Transfert Protocol
- chiffrement Connexion FTP explicite sur TLS
- Type authentification : Demander le mot de passe
- Login Webmaster_domainepme (par exemple)
- mot de passe (laisser vide : .. il le demandera après!)
- Cliquer sur le bouton : » connexion »
NB : L’utilisateur a accès à tous le système de fichier
4.2 S’il s’agit d’un user local mais « non administrateur » (Ex : Webmaster)
- Hôte ftp.domainepme.tld
- port (laisser vide)
- protocole FTP – Protocole de Transfert de Fichiers
- chiffrement Connexion FTP explicite sur TLS
- Type authentification : Demander le mot de passe
- Login Webmaster_domainepme (par exemple)
- mot de passe (laisser vide : .. il le demandera après!)
- Cliquer sur le bouton : » connexion »
NB : L’utilisateur reste confiné dans son répertoire
NB : Cette politique permet aux administrateurs système, détenteurs d’un certificat SSH de naviguer dans tout le système, alors que les autres sont confinés à leur propre répertoire (celui du site pour un webmaster, ou /home/xxx pour les autres). Il n’y a pas d’utilisateurs « virtuels ». Tous les utilisateurs ont un compte sur le système.