Hoang-Quang Dao

Donner une énergie plus positive : vouloir proposer, partager, créer du lien… mon blog.

Configurer des comptes utilisateurs virtuels dans vsftpd

Posted by hoangquangdao sur 1 décembre 2012

Utilisateur virtuel vsftpd (debian)

L’utilité des utilisateurs virtuels peut répondre à un problème de sécurité lorsque le serveur héberge plusieurs sites web. Par exemple si les webmasters ne peuvent accéder qu’à leurs propres fichiers seulement. Une des meilleures façons est de leur donner un accès FTP en configurant vsftpd avec des utilisateurs virtuels. Cet article explique comment vous pouvez le faire facilement.

Installation de vsftpd

Il faut avant tout installer le serveur FTP vsftpd :

Pour Red Hat, CentOS et Fedora, vous pouvez installer vsftpd par la commande :

> yum install vsftpd

Pour Debian et Ubuntu :

> apt-get install vsftpd

Mieux expliqué dans l’article : Installer vsftpd

Configurer les utilisateurs virtuels

Nous allons utiliser pam_userdb pour authentifier les utilisateurs virtuels. Nous aurons besoin d’un fichier de base de données identifiant / mot de passe . Nous avons besoin de l’outils « db_load » en installant le paquet « db4-utils » :

> apt-get install db4.2-util (sous debian, ubuntu)
> yum install db4-utils (sous Fedora, RedHat)

Pour créer un fichier de base données il faut d’abord créer un fichier texte « virtual-users.txt » »avec les noms d’utilisateur et mots de passe sur les lignes en alternance (en terminant par un retour à la ligne) :

user1
password1
user2
password2

Ensuite, exécutez la commande suivante pour créer la base de données :

> db_load -T -t hash -f virtual-users.txt /etc/vsftpd/virtual-users.db

On va aussi restreindre les droits sur ce fichier pour éviter que la base soit récupérée et exploitée.

> chmod 600 /etc/vsftpd/virtual-users.db

Pour ajouter, modifier ou supprimer un utilisateur il faut éditer le fichier virtual-users.txt puis relancer la création de la base avec la commande ci-dessus.

Plus haut, on a créé la base des utilisateurs, mais encore faut-il dire à vsftpd de l‘utiliser. Cela se passe dans le fichier /etc /pam.d/vsftpd Il suffit de remplacer son contenu par ses lignes :

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual-users
account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual-users

Maintenant il faut configurer le serveur lui-même. Le fichier de config à éditer est /etc/vsftpd.conf. Voici les paramètres qu’il faut au moins changer (mieux expliquer dans Installer vsftpd) :

# pas d’utilisateur anonyme 
anonymous_enable=NO 
anon_upload_enable=NO 
anon_mkdir_write_enable=NO 
# par default pas de droit d’écriture, on spécifiera les droits par utilisateur plus tard 
write_enable=NO 
# on n’autorise pas les utilisateurs à se faire passer pour d’autre 
chown_uploads=NO 
chown_username=nobody 
# on restreint les utilisateur à leur home 
chroot_local_user=YES 
# on autorise les utilisateurs locaux 
local_enable=YES 
#Ajout de quelques paramètres manquant : 
#active les utilisateurs virtuels et spécifie le chemin des configs 
guest_enable=YES 
guest_username=www-data 
user_config_dir=/etc/vsftpd/user_conf 
#quelques restrictions sur le serveur : 
max_clients=20 
max_per_ip=5

Pour chaque utilisateur il faut créer un fichier de configuration spécifiant ses droits et le dossier de partage.

> mkdir /etc/vsftpd/user1_conf
> cd /etc/vsftpd/user1_conf
> vim user1

On définit les paramètres suivant pour l’utilisateur :

# droits de lecture de l’utilisateur 
download_enable=YES 
anon_world_readable_only=NO 
# droits d'écriture de l’utilisateur 
write_enable=YES 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES 
# droit de renommer et de supprimer 
anon_other_write_enable=YES 
# droit de faire des chmod 
chmod_enable=YES 
virtual_use_local_privs=YES 
#affiche les fichiers cachés (important pour l’utilisation des fichiers htaccess) 
force_dot_files=YES 
# Définis le dossier du FTP 
local_root=/home/user1/public_html 
# Définis a qui appartiendront les fichiers uploader 
guest_username=user1

Il faut redémarrer le serveur pour les modifications :

> /etc/init.d/vsftpd restart

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

 
%d blogueurs aiment cette page :