[VSFTPD] : Configuration des utilisateurs virtuels

Transcription

[VSFTPD] : Configuration des utilisateurs virtuels
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