Configuration de vsftpd
La configuration de VsFTPd est centralisée dans un seul et même fichier /etc/vsftpd.conf. Choisissez votre éditeur de texte favori (en mode super utilisateur) et appliquez les modifications suivantes en fonction du mode de fonctionnement de VsFTPd.
*
Pour permettre à vos utilisateurs locaux (ceux qui ont un compte sur la machine) de se connecter au serveur et d'écrire.
local_enable=YES
write_enable=YES
*
Pour permettre la configuration du chmod par défaut que prendront les fichiers et les dossiers.
local_umask=077
1.
Valeur 002 : permet d'avoir un chmod des dossiers en 775 et fichiers en 664
2.
Valeur 022 : permet d'avoir un chmod des dossiers en 755 et fichiers en 644
3.
Valeur 077 : permet d'avoir un chmod des dossiers en 700 et fichiers en 600
*
Vous pouvez personnaliser le texte de connexion au serveur
ftpd_banner=Bienvenue sur le serveur ftp de René
*
Vous pouvez « emprisonner » certains utilisateurs dans leur dossier personnel grâce à la configuration suivante :
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Les identifiants des utilisateurs concernés doivent êtres renseignés dans /etc/vsftpd.chroot_list.
Attention, si chroot_local_user est à YES, cette liste devient la liste des utilisateurs qui ne seront PAS dans leur "prison" :
"If activated, you may provide a list of local users who are placed in a chroot() jail in their home directory upon login. The meaning is slightly different if chroot_local_user is set to YES. In this case, the list becomes a list of users which are NOT to be placed in a chroot() jail. By default, the file containing this list is /etc/vsftpd.chroot_list, but you may override this with the chroot_list_file setting."
Si vous voulez changer le port par défaut (21) :
listen_port=222
Configurer VSFTPD pour utiliser des utilisateurs virtuels
Définir la base de données des utilisateurs virtuels
Création du fichier PAM : Il faut effacer le contenu du fichier /etc/pam.d/vsftpd et le remplacer par :
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
Créons un fichier /etc/vsftpd/login.txt , avec vos utilisateurs et mots de passe :
util1
mdp1
util2
mdp2
Créer un script pour créer/gérer la base de donnée des utilisateurs: /etc/vsftpd/txt2db.sh
#!/bin/sh
if [ $# = "2" ]; then
rm -f $2
db_load -T -t hash -f $1 $2
chmod 600 /etc/vsftpd/login.*
echo "Base cree"
lignes=$(cat $1)
nb=1
for ligne in $lignes
do
if [ $(($nb%2)) -ne 0 ];
then
if [ ! -e vsftpd_user_conf/$ligne ];
then
touch /etc/vsftpd/vsftpd_user_conf/$ligne
echo "fichier $ligne cree"
fi
fi
nb=$(($nb+1))
done
else
echo "Il faut donner le fichier d'entree et le fichier de sortie"
fi
Vous allez avoir maintenant besoin d'installer un programme permettant d’interagir avec des fichiers sous forme de base de donnée: Installez les paquets libdb4.8 libdb4-utils.x86_64 libdb4-doc.noarch. Il est conseillé d'utiliser la version la plus récente qui est à ce jour la 4.8 mais qui est susceptible d'évoluer au cours du temps, n'oubliez donc pas d'adapter le tutoriel.
Créer la base
Lancer le script ./etc/vsftpd/txt2db.sh login.txt login.db
Paramétrer les droits utilisateurs par défaut
Créer un script /etc/vsftpd/user_param.sh
#!/bin/sh
echo "local_root=$2" > /etc/vsftpd/vsftpd_user_conf/$1
echo "write_enable=NO" >> /etc/vsftpd/vsftpd_user_conf/$1
echo "anon_upload_enable=NO" >> /etc/vsftpd/vsftpd_user_conf/$1
echo "anon_mkdir_write_enable=NO" >> /etc/vsftpd/vsftpd_user_conf/$1
echo "anon_other_write_enable=NO" >> /etc/vsftpd/vsftpd_user_conf/$1
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd_user_conf/$1
You have new mail in /var/spool/mail/root
Lancer le script /etc/vsftpd/user_param.sh <user> <rep racine user> ex: /etc/vsftpd/user_param.sh ftpimport /transfert/import/
Redémarrer le service vsftp: systemctl restart vsftpd
Il ne reste plus qu'a tester !!!!
Bonne utilisation
Configurer VSFTPD pour utiliser des utilisateurs virtuels
Définir la base de données des utilisateurs virtuels
Création du fichier PAM : Il faut effacer le contenu du fichier /etc/pam.d/vsftpd et le remplacer par :
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
Créons un fichier /etc/vsftpd/login.txt , avec vos utilisateurs et mots de passe :
util1
mdp1
util2
mdp2
Créer un script pour créer/gérer la base de donnée des utilisateurs: /etc/vsftpd/txt2db.sh
#!/bin/sh
if [ $# = "2" ]; then
rm -f $2
db_load -T -t hash -f $1 $2
chmod 600 /etc/vsftpd/login.*
echo "Base cree"
lignes=$(cat $1)
nb=1
for ligne in $lignes
do
if [ $(($nb%2)) -ne 0 ];
then
if [ ! -e vsftpd_user_conf/$ligne ];
then
touch /etc/vsftpd/vsftpd_user_conf/$ligne
echo "fichier $ligne cree"
fi
fi
nb=$(($nb+1))
done
else
echo "Il faut donner le fichier d'entree et le fichier de sortie"
fi
Vous allez avoir maintenant besoin d'installer un programme permettant d’interagir avec des fichiers sous forme de base de donnée: Installez les paquets libdb4.8 libdb4-utils.x86_64 libdb4-doc.noarch. Il est conseillé d'utiliser la version la plus récente qui est à ce jour la 4.8 mais qui est susceptible d'évoluer au cours du temps, n'oubliez donc pas d'adapter le tutoriel.
Créer la base
Lancer le script ./etc/vsftpd/txt2db.sh login.txt login.db
Paramétrer les droits utilisateurs par défaut
Créer un script /etc/vsftpd/user_param.sh
#!/bin/sh
echo "local_root=$2" > /etc/vsftpd/vsftpd_user_conf/$1
echo "write_enable=NO" >> /etc/vsftpd/vsftpd_user_conf/$1
echo "anon_upload_enable=NO" >> /etc/vsftpd/vsftpd_user_conf/$1
echo "anon_mkdir_write_enable=NO" >> /etc/vsftpd/vsftpd_user_conf/$1
echo "anon_other_write_enable=NO" >> /etc/vsftpd/vsftpd_user_conf/$1
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd_user_conf/$1
You have new mail in /var/spool/mail/root
Lancer le script /etc/vsftpd/user_param.sh <user> <rep racine user> ex: /etc/vsftpd/user_param.sh ftpimport /transfert/import/
Redémarrer le service vsftp: systemctl restart vsftpd
Il ne reste plus qu'a tester !!!!
Bonne utilisation