Tutoriel | Installer et paramétrer un FTP sécurisé avec VsFTPD
Article publiée le 12 Octobre 2016
Petit tuto expliquant comment configurer un serveur FTPs sécurisé avec vsftpd. Vsftpd étant le serveur FTP le plus sécurisé, je vous le recommande fortement.
- Installez vsftpd via la commande apt-get install vsftpd (sous Debian) ou yum install vsftpd (sous RedHat/CentOS)
- Une fois l'installation effectuée, éditez le fichier /etc/vsftpd/vsftpd.conf et écraser le contenu avec la configuration suivante (sans oublier de faire une sauvegarde du fichier original):
anonymous_enable=NO
# A adapter
pasv_min_port=30000pasv_max_port=30099local_enable=YESvirtual_use_local_privs=YESwrite_enable=YESlocal_umask=18dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_file=/var/log/vsftpd.logxferlog_std_format=YESidle_session_timeout=600data_connection_timeout=1200chroot_local_user=YESlisten=YESmax_clients=30pam_service_name=vsftpd.virtualguest_enable=YESuser_sub_token=$USERlocal_root=/srv/ftp/$USERhide_ids=YESuserlist_enable=YEStcp_wrappers=YESssl_enable=YESallow_anon_ssl=NOallow_writeable_chroot=YESforce_local_data_ssl=YESforce_local_logins_ssl=YESrsa_cert_file=/etc/ssl/certs/<nom du fichier>.crt
rsa_private_key_file=/etc/ssl/private/<nom du fichier>.keyssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NOrequire_ssl_reuse=NO
ssl_ciphers=HIGH
- On génère ensuite un certificat auto-signé:
openssl req -x509 -newkey rsa:1024-keyout /etc/ssl/private/private.key -out /etc/ssl/certs/certificate.crt -nodes -days3650chmod0600/etc/ssl/private/private.key; chmod0640/etc/ssl/certs/certificate.crt
- On configure le PAM (vi /etc/pam.d/vsftpd.virtual)
#%PAM-1.0auth required pam_userdb.so db=/etc/vsftpd/loginaccount required pam_userdb.so db=/etc/vsftpd/loginsession required pam_loginuid.so
- On crée le user ftp:
useradd ftp
- On oublies pas de créer le répertoire des comptes FTP selon ce que vous avez indiqué dans le fichier de configuration vsftpd.conf. Dans notre cas /srv/ftp
- Créez le fichier de user ftp (touch /etc/vsftpd/login.txt) et on le renseigne comme l'exemple ci dessous:
user1passworduser1user2passworduser2
- On génère ensuite le fichier login.db (bekerley DB):
db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
- Créez le répertoire FTP associé à l'utilisateur:
mkdir -p /srv/ftp/user1mkdir -p /srv/ftp/user2chown -R ftp:ftp /srv/ftp
- Enfin on redémarre le service vsftpd
service vsftpd restart

Bonjour,
Je cherche à mettre en place un serveur FTP sécurisé avec lequel les utilisateurs pourraient déposer des fichiers volumineux.
Ces fichiers ne doivent être mis à la disposition qu’à des personnes habilitées, avec une durée de vie limitée et nous souhaiterions pouvoir notifier par mail par exemple qu’un fichier est disponible.
Est-ce possible?
Merci d’avance pour votre réponse.
Cordialement,
Thomaz
Bonjour,
Oui c’est possible.
Concernant l’accès aux personnes habilitées : authentification login/mdp
Durée de vie limité + mail : un petit script shell peut gérer ça.
Cordialement.
Vincent