
VSFTPD est un serveur FTP simple d’installation et très facile à utiliser.
Installation et mise en place
Pour l’installer sous Gentoo, il faut lancer la commande :
emerge vsftpd
Une fois installé, il est possible de lancer le Daemon via
/etc/init.d/vsftpd start
Et de le programmer au démarrage de votre machine via
rc-update add vsftpd default.
Configuration
La configuration de
vsftpd passe essentiellement par la modification des paramètres présents dans le fichier
/etc/vsftpd/vsftpd.conf (un fichier vsftpd.conf.sample est fourni en exemple dans le même répertoire).
Configuration de l’utilisation de ssl
Pour configurer l’utilisation de
ssl, il faut générer un certificat ssl comme suit :
/etc/ssl/certs/openssl req -x509 -nodes -days 7300 -newkey rsa:2048 \
-keyout /etc/ssl/certs/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
Il faut suivre attentivement les étapes de génération de certificat en fournissant les informations nécessaires.
Il faut ensuite reprendre la configuration du fichier
/etc/vsftpd/vsftpd.conf en y intégrant les paramètres suivants :
#Activation de ssl
ssl_enable=YES
#Choisir d’activer ou non l’accès en anonyme via ssl
# allow_anon_ssl=NO
#Ce paramètre doit être activé pour faire fonctionner ssl
ssl_tlsv1=YES
#Paramètres facultatifs
force_local_logins_ssl=YES
ssl_sslv2=YES
ssl_sslv3=YES
#Donner le chemin vers les fichiers *.pem générésrsa_cert_file=/etc/ssl/certs/vsftpd.pem
#les fichiers *.pem contiennent les clés ainsi que les certificatsrsa_private_key_file=/etc/ssl/certs/vsftpd.pem
Gestion des utilisateurs virtuels avec authentification PAM
Il faut :
- Créer au niveau /etc/vsftpd/ un fichier texte utilisateurs.txt contenant la liste des utilisateurs à créer avec leurs mots de passe ayant la structure suivante :
Utilisateur1
Mot de passe1
Utilisateur2
Mot de passe2
…
UtilisateurX
Mot de passeX
A noter qu’il faut finir le fichier avec un retour à la ligne.
- Générer la base de données des utilisateurs à partir de ce fichier
DbX.Y_load -T -t hash -f /etc/vsftpd/utilisateurs.txt /etc/vsftpd/utilisateurs.db
A noter qu’il faut installer la bibliothèque dbX-util via la commande
emerge db
ou X.Y est la version.
- il faut ensuite protéger la base de données
chmod 600 /etc/vsftpd/utilisateurs.db
- Ajouter au fichier /etc/pam.d/vsftpd (à créer s’il n’existe pas) les deux lignes
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/utilisateurs
account required /lib/security/pam_userdb.so db=/etc/vsftpd/utilisateurs
A noter qu’il faut installer si ce n’est déjà fait la bibliothèque
pam_userdb via la commande
emerge pam_userdb
.
Pour identifier les utilisateurs en utilisant le fichier
/etc/passwd et avec la base de données PAM, il faut injecter les lignes suivantes :
auth sufficient pam_unix.so
account sufficient pam_unix.so
- Editer le fichier vsftpd.conf pour y ajouter les paramètres :
local_enable=YES
chroot_local_user=YES
guest_enable=YES
guest_username=ftpuser
A noter que les utilisateurs virtuels ont les mêmes privilèges que les utilisateurs anonymes. Pour qu'ils aient accès en écriture au dossier partagé, en plus de l'option
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES