Pourquoi VsFTPd?
Je ne veux pas que mes utilisateurs FTP soient des utilisateurs systèmes. Pour avoir utiliser proftpd je sais qu’il peut utiliser une base d’utilisateurs externe. Je pensais donc l’utiliser avec un serveur LDAP pour gérer les utilisateurs et les groupes.
En pratique le module LDAP est plus compliqué que prévu. Surtout vu mes besoins. De plus la plupart des tuto partent sur l’utilisation d’un LDAP avec pam et des users également système ….
Je vais donc utiliser VsFTPd avec des utilisateurs virtuels.
Pré-requis
Il faut installer vsftpd et db4-utils (pour la bd user)
Paramétrage de VsFTPD
/etc/vsftpd/vsftpd.conf:
1 |
|
Attribution des droits utilisateurs
Chaque utilisateur a un fichier dans /etc/vsftpd/vsftpd_user_conf définissant ses droits:
par ex:
1 | cat /etc/vsftpd/vsftpd_user_conf/40k |
Modification de pam
Pour que PAM aille cherche les utilisateurs dans un fichier donné il faut utiliser cette conf:
/etc/pam.d/vsftpd
1 | auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login |
Création de la base de données utilisateurs
Pour peupler la base login.db, on va utilsier un fichier texte puis db_load login.txt
login.txt
1 | user1 |
1 | db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db |
Note
- Pour activer également les comptes systèmes il faut ajouter dans lignes dans la conf pam (avant celles pour login.db):
1
2auth sufficient pam_unix.so
account sufficient pam_unix.so - Attention aux deux fichiers suivant qui sont la pour autoriser/interdire un utilisateur:
- /etc/vsftpd/ftpusers
- /etc/vsftpd/user_list