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=
30000
pasv_max_port=3
0099
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
local_umask=
18
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=
600
data_connection_timeout=
1200
chroot_local_user=YES
listen=YES
max_clients=
30
pam_service_name=vsftpd.virtual
guest_enable=YES
user_sub_token=$USER
local_root=/srv/ftp/$USER
hide_ids=YES
userlist_enable=YES
tcp_wrappers=YES
ssl_enable=YES
allow_anon_ssl=NO
allow_writeable_chroot=YESforce_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/ssl/certs/<nom du fichier>.crt
rsa_private_key_file=/etc/ssl/
private
/<nom du fichier>.key
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_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 -days
3650
chmod
0600
/etc/ssl/
private
/private.key; chmod
0640
/etc/ssl/
certs
/certificate.crt
- On configure le PAM (vi /etc/pam.d/vsftpd.virtual)
#%PAM-
1.0
auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login
session 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:
user1
passworduser1
user2
passworduser2
- 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/user1
mkdir -p /srv/ftp/user2
chown -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