avr 08
15
VSFTPD VIRTUAL USERS
Cette méthode permet de créer des utilisateurs ftp sans être obligé de créer des utilisateurs système.
Pré-requis :
Pour cela, il vous faut ces deux packages : Vsftpd et db4-utils.
Paramétrage de vsftpd :
Le serveur vsftpd est paramétré dans le fichier /etc/vsftpd/vsftpd.conf dont voici un exemple pour mon cas :
# Interdire les connexions anonymes au serveur
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO# Autoriser les utilisateurs locaux (obligatoire même si on ne veut que des utilisateurs virtuels)
local_enable=YES# Autoriser les utilisateurs virtuels
guest_enable=YES
guest_username=userftp11# Activer les droits spécifiques par utilisateur
user_config_dir=/etc/vsftpd/vsftpd_user_conf# activation de logs
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.xfer.log
xferlog_std_format=YES
log_ftp_protocol=YES
vsftpd_log_file=/var/log/vsftpd.log# Configuration du serveur en standalone
listen=YES
tcp_wrappers=YES
connect_from_port_20=YES
ftpd_banner= »Bienvenue sur le serveur FTP »# Configuration de l’authentification
pam_service_name=vsftpd
userlist_enable=YES
Configuration des droits propres à chaque utilisateur
Pour chaque utilisateur, il faut créer un fichier portant le nom de l’utilisateur dans le répertoire défini par la directive user_config_dir.
Mon fichier /etc/vsftpd/vsftpd_user_conf/lecteur
anon_world_readable_only=NOlocal_root=/var/ftp/
Mon fichier /etc/vsftpd/vsftpd_user_conf/crontibuteur
anon_world_readable_only=NOlocal_root=/var/ftp2/
Configuration de l’authentification PAM
Créer le fichier /etc/pam.d/vsftpd suivant :
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
Ainsi, PAM va donc interroger la base BDB /etc/vsftpd/login.db pour authentifier les utilisateurs.
Créer la base BDB des utilisateurs
Créer un fichier nommé login.txt dans ce format.
nom d’utilisateur1
mot de passe1
nom d’utilisateur2
mot de passe2
Une fois le fichier .txt créé, il faut créer la base de donnée de pam.d. Pour cela, il faut taper cette commande :
db4_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
db4_load peut être sur certaine distribution sous cette forme : dbXX_load avec XX etant la version de db.
Vous pouvez maintenant essayer de vous connecter.
Divers
Si vous voulez quand même vous connecter avec les comptes systeme, vous devez ajouter ces lignes avant celle existante dans le fichier /etc/pam.d/vsftpd :
auth sufficient pam_unix.so
account sufficient pam_unix.so
Si le compte root n’a pas le droit de se connecter, c’est qu’il apparaît dans ces deux fichiers :
- /etc/vsftpd/ftpusers
- /etc/vsftpd/user_list