Configuration Serveur · 2 min read · Feb 09, 2026

Hébergement Virtuel Avec vsftpd Et MySQL Sur Debian Etch - Page 2

4 Configurer vsftpd

Tout d’abord, nous créons un utilisateur non privilégié appelé vsftpd (avec le répertoire personnel /home/vsftpd) appartenant au groupe nogroup. Nous exécuterons vsftpd sous cet utilisateur, et les répertoires FTP de nos utilisateurs virtuels seront dans le répertoire /home/vsftpd (par exemple, /home/vsftpd/user1, /home/vsftpd/user2, etc.).

useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd

Ensuite, nous faisons une sauvegarde du fichier original /etc/vsftpd.conf et créons le nôtre :

cp /etc/vsftpd.conf /etc/vsftpd.conf_orig  
cat /dev/null > /etc/vsftpd.conf  
vi /etc/vsftpd.conf

Le fichier doit avoir le contenu suivant :

| listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=vsftpd local_root=/home/vsftpd/$USER user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf |

Les options de configuration sont expliquées sur http://vsftpd.beasts.org/vsftpd_conf.html. Les options importantes pour notre configuration virtuelle sont chroot_local_user, guest_enable, guest_username, user_sub_token, local_root et virtual_use_local_privs.

Avec l’option user_config_dir, vous pouvez spécifier un répertoire pour les fichiers de configuration par utilisateur qui remplacent certaines parties des paramètres globaux. C’est totalement optionnel et à vous de décider si vous souhaitez utiliser cette fonctionnalité. Cependant, nous devrions créer ce répertoire maintenant :

mkdir /etc/vsftpd_user_conf

Maintenant, nous devons configurer PAM afin qu’il utilise la base de données MySQL pour authentifier nos utilisateurs FTP virtuels au lieu de /etc/passwd et /etc/shadow. La configuration PAM pour vsftpd se trouve dans /etc/pam.d/vsftpd. Nous faisons une sauvegarde du fichier original et en créons un nouveau comme ceci :

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig  
cat /dev/null > /etc/pam.d/vsftpd  
vi /etc/pam.d/vsftpd

| auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 |

Veuillez vous assurer que vous remplacez le mot de passe MySQL par le vôtre !

Ensuite, nous redémarrons vsftpd :

/etc/init.d/vsftpd restart

5 Créer Le Premier Utilisateur Virtuel

Pour peupler la base de données, vous pouvez utiliser le shell MySQL :

mysql -u root -p
USE vsftpd;

Maintenant, nous créons l’utilisateur virtuel testuser avec le mot de passe secret (qui sera stocké de manière cryptée en utilisant la fonction PASSWORD de MySQL) :

INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret'));  
quit;

directory de testuser est /home/vsftpd/testuser ; malheureusement, vsftpd ne crée pas ce répertoire automatiquement s’il n’existe pas. Par conséquent, nous le créons manuellement maintenant et le rendons propriétaire de l’utilisateur vsftpd et du groupe nogroup :

mkdir /home/vsftpd/testuser  
chown vsftpd:nogroup /home/vsftpd/testuser

Maintenant, ouvrez votre programme client FTP sur votre station de travail (quelque chose comme WS_FTP ou SmartFTP si vous êtes sur un système Windows ou gFTP sur un bureau Linux) et essayez de vous connecter. Comme nom d’hôte, vous utilisez server1.example.com (ou l’adresse IP du système), le nom d’utilisateur est testuser, et le mot de passe est secret.

Si vous parvenez à vous connecter - félicitations ! Sinon, quelque chose a mal tourné.

6 Administration de la Base de Données

Pour la plupart des gens, il est plus facile d’avoir une interface graphique pour MySQL ; par conséquent, vous pouvez également utiliser phpMyAdmin (dans cet exemple sous http://server1.example.com/phpmyadmin/) pour administrer la base de données vsftpd.

Chaque fois que vous créez ou modifiez un utilisateur, assurez-vous d’utiliser la fonction PASSWORD de MySQL pour crypter le mot de passe de cet utilisateur. De plus, lorsque vous créez un nouvel utilisateur virtuel, n’oubliez pas de créer le répertoire personnel de cet utilisateur dans le shell, comme indiqué à la fin du chapitre précédent.

7 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.