Sie sind auf Seite 1von 6

1

LE BLOG DE JEROME COLOMBET

[VSFTPD] : Configuration des utilisateurs virtuels

Le but de la présente Fiche Pratique, est d'indiquer à l'administrateur système, comment installer,
configurer et exploiter, un serveur vsftp avec un accès virtualusers.

Présentation

FTP (File transfert Protocol) est un protocole destiné au transfert de fichiers d'une machine à une
autre via le réseau.

Ici nous utiliserons vsftpd acronyme Very Secure FTP daemon disponible sur le site officiel
vsftpd.beasts.org.

Cette fiche pratique à pour but de d'écrire la configuration de vsftpd via les utilisateurs virtuels c'est
à dire une connexion à un FTP sans compte système réel Linux.L'utilisation des utilisateurs virtuels
évite la compromission du système.

Installation

-Préparation et pre-requis matériel

Pour installer un serveur vsftpd, il faut disposer des éléments suivants :

* Un serveur sous Linux/Fedora Core.


* Un accès réseau INTERNET.
* De la place disque pour les différentes zones ftp (anonyme ou non) que l'on souhaite mettre en
oeuvre.

-Installation des paquetages par le système yum

#yum install vsftpd

-Vérification

Demander à RPM de le lister pour vérifier l'installation du paquetages.

#rpm -qa vsftpd*


vsftpd-2.0.1-5

Site : Le blog de Jerome COLOMBET Article : [VSFTPD] : Configuration des utilisateurs virtuels
2

-Configurer le DNS pour le service vsftpd

Nommer votre service FTP dans son domaine DNS. En général l'usage de ftp.nom-domaine.fr est
conseillé. Deux possibilités nous sont présentes, la deuxième étant largement plus intéressante.

* nommer la machine ftp.nom-domaine.calimero.homelinux.net


* ou créer un alias ftp.nom-domaine.calimero.homelinux.net qui pointe vers
nom-machine.nom-domaine.calimero.homelinux.net

machine IN A 192.168.0.1
ftp IN CNAME machine.nom-domaine.calimero.homelinux.net.

-Configurer le démarrage du service vsftpd

# chkconfig --level 2345 vsftpd on


# chkconfig --list
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

-Configurations du service vsftpd avec les virtualusers

Nous allons voir dans les sections suivantes comment configurer vsftpd avec les utilisteurs virtuels.

VirtualUsers, en français utilisateurs virtuels consiste à stocker ceux ci dans un fichier de type
berkley database et ainsi éviter la création d'utilisateurs Unix.

-Mise en place

Le fichier de configuration est installé dans le répertoire /etc/vsftpd/vsftpd.conf lors de l'installation


du paquetage.

Avant toute manipulation du fichier de configuration il faut le sauvegarder.

# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.ori
# touch /etc/vsftpd/vsftpd.conf

Attention au nommage des fichiers dans le répertoire /etc/vsftpd,les extensions .conf sont
considérés comme un autre démon vsftpd.

Certains comptes système doivent être non autorisé à se connecter au ftp via la directive
userlist_enable qui utilise le fichier /etc/vsftpd.user_list.

-Création du ficher vsftpd.user_list

Site : Le blog de Jerome COLOMBET Article : [VSFTPD] : Configuration des utilisateurs virtuels
3

#cat /etc/passwd | cut -d: -f1 > /etc/vsftpd.user_list

-Création de l'utilisateur système

Cet utilisateur sera le propriétaire des fichiers et dossiers que les utilisateurs virtuels vont créer.

# groupadd vftp
# useradd -g vftp -d /home/vftp vftp
# chown vftp:vftp /home/vftp
# chmod 700 /home/vftp

Editer le fichier /etc/passwd pour rajouter le paramètre suivant sur le compte système vsftp.

vftp:x:502:502::/home/vftp/$USER:/sbin/nologin

-Création de la base utilisateurs virtuels

Penser bien à limiter l'acces au fichier contenant les password

# touch /etc/vsftpd/virtual_users_list
# chmod 600 /etc/vsftpd/virtual_users_list

Editer le fichier virtual_users_list

# utilisateur
# mot de passe
darkVador
luke

La commande db_load nous permet la création du fichier type berkley database.

# db_load -T -t hash -f /etc/vsftpd/virtual_users_list /etc/vsftpd/virtual_login.db


# chmod 600 /etc/vsftpd/virtual_login.db

Site : Le blog de Jerome COLOMBET Article : [VSFTPD] : Configuration des utilisateurs virtuels
4

-Configuration des droits des utilisateurs virtuels

Par défaut, un utilisateur virtuel n'a ni le droit de lire, ni le droit d'écrire.

Pour donner des droits à un utilisateurs, nous allons créer un fichier portant le nom de cet utilisateur
et dans ce fichier y paramétrer les droits.

Dossier contenant les droits :

# mkdir /etc/vsftpd/vsftpd_users_conf

-Edition du fichier de l'utilisateur virtuel darkVador

# Activer les utilisateurs virtuels


guest_enable=YES

# Nom de l'utilisateur système utilisé


guest_username=vftp

# Répertoire du client
user_sub_token=$USER

# Permission des fichiers déposés 644


anon_umask=022

# Droit de lecture
anon_world_readable_only=NO

# Droit d'écriture
write_enable=YES
anon_upload_enable=YES

# Droit de créer un dossier


anon_mkdir_write_enable=YES

# Droit de supprimer,renommer,..
anon_other_write_enable=YES

Pour pouvoir se connecter avec les utilisateurs virtuels, il faut modifier notre fichier
/etc/vsftpd/vsftpd.conf

# Accepter les connections anonymes


anonymous_enable=YES

Site : Le blog de Jerome COLOMBET Article : [VSFTPD] : Configuration des utilisateurs virtuels
5

# Accepter les connections


local_enable=YES

# Aucun droit pas défaut


write_enable=NO

# Contenir les utilisateurs dans un blob


chroot_local_user=YES

# Dossier contenant les droits des utilisateurs virtuels


user_config_dir=/etc/vsftpd/vsftpd_users_conf

# Fichier des comptes systèmes à bannir


userlist_enable=YES

# Format et fichier de logs


xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

# Mise en écoute de vsftpd


pam_service_name=vsftpd
listen=YES

# Pas d'utilisation des TCP WRAPPERS


tcp_wrappers=NO

-Configuration du PAM

Vsftpd utilise PAM pour l'authentification des utilisateurs. Voici une configuration :

Editer le fichier /etc/pam.d/vsftpd defini par la directive pam_service_name du fichier vsftpd.conf.

# Authentification des utilisateurs virtuels


account sufficient pam_userdb.so db=/etc/vsftpd/virtual_login
auth sufficient pam_userdb.so db=/etc/vsftpd/virtual_login

# Authentification des utilisateurs locaux


auth sufficient pam_shells.so
account sufficient pam_unix.so
session sufficient pam_unix.so

-Test du serveur ftp avec les virtualusers

Démarrer le service vsftpd :

Site : Le blog de Jerome COLOMBET Article : [VSFTPD] : Configuration des utilisateurs virtuels
6

#service vsftpd start

Toujours avec notre client FileZilla :

Site : Le blog de Jerome COLOMBET Article : [VSFTPD] : Configuration des utilisateurs virtuels