page discussion voir le texte source historique Documentation http://doc.fedora-fr.org/wiki/vsftpd_:_installation_et_configuration



Documents pareils
Le protocole FTP (File Transfert Protocol,

Administration Réseau sous Ubuntu SERVER Serveur FTP. Installation d un serveur FTP (File Transfert Protocol) sous Ubuntu Server 12.

Sauvegarde automatique des données de GEPI

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Mise en place d'un serveur FTP avec vsftpd / pureftpd sous netbsd 3.1. Compte-rendu

Service FTP. Stéphane Gill. Introduction 2

Installation d'un serveur FTP géré par une base de données MySQL

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Administration Linux - FTP

Sécurité GNU/Linux. FTP sécurisé

installer_un_serveur_debian - Documentation Ubuntu Francophone Installation complète d'un serveur web sous Debian 6.0

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Architecture de la plateforme SBC

Pratique et administration des systèmes

LINUX REMPLAÇANT WINDOWS NT

Table des matières Hakim Benameurlaine 1

Projet Administration Réseaux

il chiffrer les flux d'authentification et les flux de données il n'y a pas de soucis d'ouverture de ports avec des modes actif/passif à gérer

Procédures informatiques administrateurs Création d un serveur FTP sous Linux

Un serveur FTP personnel, ça ne vous a jamais dit?

ftp & sftp : transférer des fichiers

Mise en place d un serveur Proxy sous Ubuntu / Debian

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Stockage du fichier dans une table mysql:

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

MISE EN PLACE DU FIREWALL SHOREWALL

Le service FTP. M.BOUABID, Page 1 sur 5

TP Service HTTP Serveur Apache Linux Debian

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Mise en place d'un Réseau Privé Virtuel

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Anas Abou El Kalam Sécurité SSH SSH

Raja Bases de données distribuées A Lire - Tutoriel

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

I. Présentation du serveur Samba

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

Installation et configuration de Vulture Lundi 2 février 2009

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Olivier Mondet

Ajout et Configuration d'un nouveau poste pour BackupPC

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade


Assistance à distance sous Windows

Tutoriel Création d une source Cydia et compilation des packages sous Linux

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

PHP et les Bases de données - Généralités

Tutoriel compte-rendu Mission 1

TP LINUX : MISE EN RÉSEAU D UN SERVEUR LINUX

Guide d'installation de la base de données ORACLE 10g ( ) pour linux FEDORA CORE 4.

Installation de Zabbix

Windows sur Kimsufi avec ESXi

TP Sur SSH. I. Introduction à SSH. I.1. Putty

Routeur client. PC accueil Postes IP

TAGREROUT Seyf Allah TMRIM

NAS 224 Accès distant - Configuration manuelle

Table des matières Hakim Benameurlaine 1

[ GLPI et OCS pour Gentoo 2006] ArtisanMicro. Alexandre BALMES

Les différentes méthodes pour se connecter

Installation d'un serveur sftp avec connexion par login et clé rsa.

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

Synchronisation Mysql (Replication)

But de cette présentation. Serveur DHCP (Application à CentOS) Cas des machines virtuelles. Schéma de principe. Hainaut P

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

II- Préparation du serveur et installation d OpenVpn :

Serveur proxy Squid3 et SquidGuard

Utilisation de GalaxShare

Installer VMware vsphere

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

1 Démarrage de Marionnet

Maintenir Debian GNU/Linux à jour

Live box et Nas Synology

Installation du client Cisco VPN 5 (Windows)

I. MySQL : Serveur et SGBD

Installer un serveur web de développement avec VirtualBox

Couche application. La couche application est la plus élevée du modèle de référence.

PPE Installation d un serveur FTP

Déploiement d'un serveur ENT

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

Service de certificat

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

CREATION WEB DYNAMIQUE

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Polux Développement d'une maquette pour implémenter des tests de sécurité

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

FreeNAS Shere. Par THOREZ Nicolas

titre : CENTOS_BIND_install&config Système : CentOS 5.7 Technologie : Bind 9.3 Auteur : Charles-Alban BENEZECH

Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer

COMMENT INSTALLER LE SERVEUR QIPAIE

MISE EN PLACE D UN FIREWALL ET D UN SERVEUR PROXY SOUS LINUX MANDRIVA.

Transcription:

page discussion voir le texte source historique Documentation Submi

groupe d'installation qui lui est dédié. Nous utilisons ce dernier pour l'installation : $ su - # yum groupinstall "FTP Server" Une fois l'installation effectuée, pour que le serveur se lance automatiquement au démarrage : # chkcong vsftpd on Pour démarrer, redémarrer et stopper le service, les commandes respectives sont (toujours en super utilisateur) : # service vsftpd start # service vsftpd restart # service vsftpd stop Normalement votre système doit déjà avoir un utilisateur ftp et un groupe ftp. Si ce n'est pas le cas, créez les avec groupadd et useradd. 3 Conguration Congurations Il existe un grand nombre de possibilités de conguration, faisant varier le comportement du serveur de façon très différente. Une lecture de la page de manuel de vsftpd reste indispensable pour une conguration sûre. Le chier de conguration de vsftpd se trouve dans le répertoire /etc/vsftpd et se nomme vsftpd.conf. Nous partirons 'une conguration vide, nous nous déplaçons donc dans le dossier, puis nous renommons le chier : $ su - # cd /etc/vsftpd # mv vsftpd.conf vsftpd.conf.default ous créons ensuite un dossier qui contiendra les congurations spéciques à chaque utilisateur : # mkdir vsftpd_user_conf ftpusers et user_list Ces deux chiers ont la même vocation : interdire des utilisateurs. En effet il contiennent tous les deux une liste d'utilisateurs pour lesquels le serveur ftp refusera toute connexion. Pourquoi deux chiers (au contenu identique)? Le premier (ftpusers) est utilisé via PAM dans la conguration par défaut faite sur Fedora et CentOS. A la connexion d'un utilisateur, PAM vient lire ce chier et si l'identiant de connexion utilisé est dans ce chier, la connexion est refusée. Le second (user_list) est utilisé directement par vsftpd. Il peut avoir deux usages : soit les seuls utilisateurs contenus dans ce chier ont le droit de se connecter, soit l'accès leur est systématiquement refusé. On se che d'avoir une liste d'utilisateurs autorisés (second cas), puisque ceux-ci seront gérés avec une base d'utilisateurs virtuels. Il est donc inutile d'avoir ces deux systèmes d'interdiction. Mon choix pourrait être de suivre la conguration par défaut faite par CentOS et Fedora, c'est-à-dire utiliser PAM, et donc supprimer le

chier user_list alors inutile. Et pourtant ce n'est pas la solution que j'ai retenue. En effet il y a une petite différence dans la façon de rejeter les utilisateurs. Si root (présent dans les deux chiers par défaut) se connecte : Premier cas (ftpusers) : le système PAM ne va pas réagir, et le mot de passe sera demandé. A partir de là, même si ce dernier est correct, PAM va refuser la connexion car "root" est présent dans le chier ftpusers. Second cas (user_list) : Vsftpd va lui réagir différemment. Lorsque le login sera demandé, et que l'utilisateur tapera "root", il coupera directement la connexion, sans même demander le mot de passe. C'est une subtilité, mais je préfère ce comportement. Le protocole FTP envoyant les données en clair, cela évite par exemple d'envoyer le mot de passe root pour rien. Je vais donc utiliser le chier user_list plutôt que ftpusers, même si ce n'est pas le choix par défaut fait pour Fedora et Centos. N'étant pas utilisé, on supprime le chier ftpusers (vous pouvez tout à fait le conserver et sauter cette étape, au cas où ous voudriez vous en servir ensuite, notez cependant que son contenu est par défaut le même que user_list) en root : # rm /etc/vsftpd/ftpusers ous verrons plus loin la conguration de PAM pour qu'il n'aille plus chercher dans ce chier. À vous de rentrer les dentiants que vous ne souhaitez pas voir se connecter dans user_list en plus de ceux par défaut. Cela sera pratique pour ésactiver un utilisateur virtuel, plutôt que de supprimer puis recréer son compte.venons-en maintenant au chier de onguration à proprement parler : # vi /etc/vsftpd/vsftpd.conf ous êtes dans un chier vide, puisque nous avons renommé celui par défaut. Vous trouverez tous les paramètres possibles u chier de conguration dans la page de man (man vsftpd.conf). Voici la conguration à entrer, avec la documentation de chaque paramètre: Dernière modication de cette page le 23 janvier 2009 à 09:06. Contenu disponible sous Paternité 2.5. Ce site rassemble les utilisateurs francophones de Fedora et ne dépend pas du Projet Fedora fedora-fr est hébergé gracieusement chez sur serveur Skin fedora-fr par Titax & LLaumgui

# http://vsftpd.beasts.org/vsftpd_conf.html ou "man vsftpd.conf" # Port d'ecoute listen_port=21 # Banniere de bienvenue ftpd_banner=bienvenue sur mon ftp perso # Fichier de cong PAM pam_service_name=vsftpd # Mode "standalone" listen=yes # Je ne veux pas de connexion anonyme anonymous_enable=no # On autorise les connexions des utilisateurs locaux. C'est indispensable # pour que les utilisateurs virtuels (mappes sur un utilisateur local) # puissent se connecter (les "vrais" utilisateurs locaux sont ensuite desactives # avec le chier user_list local_enable=yes # Fichier de users userlist_le=/etc/vsftpd/user_list # Chargement de la liste userlist_le userlist_enable=yes # On refuse les utilisateurs de la liste userlist_deny=yes # trop restrictif, un utilisateur virtuel pourra ainsi telecharger un chier meme s'il n'est pas world readable anon_world_readable_only=no # Refus des commandes influant sur le systeme de chier (STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE) write_enable=no # Refus des droits d'ecriture pour les anonymes (et donc utilisateurs virtuels) par défaut # les autorisations seront données au cas par cas : # pas d'upload anon_upload_enable=no # pas de creation de repertoire anon_mkdir_write_enable=no # pas de creation, suppression, renommage de repertoire... anon_other_write_enable=no # On fait en sorte que les utilisateurs "guest" (non-anonymes) soient mappés sur le compte local "ftp" guest_enable=yes guest_username=ftp # chroot des utilisateurs chroot_local_user=yes # Nombre maximum de connexion simultanees max_clients=50 # Nombre maximum de connexion venant de la meme IP max_per_ip=4 # Dossier de conguration specique des utilisateurs user_cong_dir=/etc/vsftpd/vsftpd_user_conf # On active le log xferlog_enable=yes Petit résumé : On écoute sur le port 21 On est en standalone On refuse les utilisateurs anonymes On accepte les utilisateurs système et les utilisateurs virtuels Les utilisateurs virtuels sont mappés sur l'utilisateur système "ftp" Les utilisateurs n'ont aucun droit d'écriture par défaut Ils sont chrootés dans /var/ftp /etc/vsftpd/vsftpd_user_conf/ sera le dossier pour les congurations d'utilisateurs virtuels /etc/vsftpd/user_list contiendra la liste des utilisateurs refusés (pour lesquels on ne demandera même pas le mot de passe)

Mapping utilisateur Si les utilisateurs virtuels ne sont pas (par dénition) des utilisateurs système, ils disposent tout de même de droits (sur les chiers, dossiers, en écriture, lecture...). An de pouvoir gérer ces droits, on "mappe" (relie) ces utilisateurs à un utilisateur système unique (ici "ftp"). Ainsi les droits des utilisateurs virtuels en écriture et lecture seront ceux donnés à l'utilisateur système "ftp". Ces droits prévalent sur la conguration (même si un utilisateur virtuel a les droits d'écriture dans un dossier, si l'utilisateur "ftp" ne les a pas, l'utilisateur virtuel ne pourra pas écrire). Standalone? Le mode standalone indique que le serveur est autonome, et que le service tourne en permanance. Xinetd est un meta-démon qui écoute les requêtes, et lance le démon approprié lorsqu'il est sollicité. L'intérêt est donc de ne pas lancer un service et laisser xinetd se charger de le démarrer lorsqu'un utilisateur le sollicitera. Il permet donc une économie de ressources (processeur, mémoire... et donc électricité). Il peut être intéressant de l'utiliser si la machine est déjà chargée ou/et si le service est très peu utilisé. En contre-partie la première requête subira quelques délais, puisque le démon approprié devra être démarré. Attention! Pensez à ouvrir les ports 20 et 21 de votre pare-feu, et à faire une redirection de port si vous êtes derrière un routeur. Si vous avez changé les valeurs de ces ports dans le chier de conguration, modiez vos parefeu et routage en conséquence. Pour plus de sécurité, on réduit les droits sur le chier de conguration : # chmod 600 /etc/vsftpd/vsftpd.conf 4 Utilisateurs virtuels Il est temps maintenant de créer la base contenant nos utilisateurs virtuels. Comme je l'ai dit, nous nous laissons le choix du format : berkeley ou mysql. Lisez le chapitre correspondant à votre choix de base. 4.1 Format berkeley Nous partirons d'un chier texte simple, comprenant les logins et les mots de passe, puis nous utiliserons une commande pour transformer ce chier en format db. Le format du chier est simplissime, un mot par ligne, et on écrit dans l'ordre le login, le pass, le login, le pass, etc. Je vais créer une base contenant deux utilisateurs : titi dont le mot de passe est passtiti toto dont le mot de passe est passtoto endez-vous dans /etc/vsftpd et en root créez un chier nommé login.txt : $ su - # cd /etc/vsftpd/ # vi login.txt Et voici ce que contiendra le chier :

titi passtiti toto passtoto Attention! Ce chier doit se terminer par un retour à la ligne. Nous allons maintenant créer le chier db à partir de celui-ci. Pour cela nous devons utiliser la commande db_load, fournie par le package db4-utils. Si ce package n'est pas installé, faites-le de cette façon : # yum install db4-utils ne fois cela fait, toujours depuis le dossier /etc/vsftpd, en root tapez : # db_load -T -t hash -f login.txt login.db ous verrons plus loin que l'on peut intégrer cette commande à un script pour regénérer plus facilement la base. Nous isposons maintenant d'un chier /etc/vsftpd/login.db. Pour plus de sécurité, on réduit les droits sur les chiers utilisateurs : # chmod 600 login.* 4.1.1 Se simplier la vie La commande pour générer le chier db à partir du txt est lourde à retenir, et de plus il est intéressant de pouvoir générer un chier de conguration spécique vide pour chaque utilisateur pour ne pas avoir d'erreur. Voici un petit script (surement optimisable) appellé txt2db.sh faisant cela pour vous. Il regénère le chier db, et créé un chier de cong vide s'il n'existe pas. En voici le contenu : #!/bin/sh if [ $# = "2" ]; then rm -f $2 db_load -T -t hash -f $1 $2 chmod 600 /etc/vsftpd/login.* echo "Base cree" lignes=$(cat $1) nb=1 for ligne in $lignes do if [ $(($nb%2)) -ne 0 ]; then if [! -e vsftpd_user_conf/$ligne ]; then touch /etc/vsftpd/vsftpd_user_conf/$ligne echo "chier $ligne cree" nb=$(($nb+1)) done else echo "Il faut donner le chier d'entree et le chier de sortie" et son utilisation :

$ su - # cd /etc/vsftpd/ # chmod +x txt2db.sh (à ne faire que la première fois) #./txt2db.sh login.txt login.db Ce script lie les lignes du login.txt et pour chaque login, vérie si un chier de conguration existe. Si ce n'est pas le cas il en crée un vide. Auparavant il génère le chier db. L'autre souci est que si vous supprimez un utilisateur du login.txt, il restera toujours le chier spécique de conguration. Voici un script appelé "cleanconf.sh" qui supprime tous les chiers spéciques n'ayant pas de login associé. Son contenu : chiers=$(ls /etc/vsftpd/vsftpd_user_conf) users="" lignes=$(cat /etc/vsftpd/login.txt) nb=1 for ligne in $lignes do if [ $(($nb%2)) -ne 0 ]; then users="$users $ligne" nb=$(($nb+1)) done for conf in $chiers do found=0 for user in $users do if [ $conf = $user ]; then found="1" done if [ $found!= "1" ]; then rm -f vsftpd_user_conf/$conf echo "Fichier $conf supprime" done Son utilisation : $ su - # chmod +x cleanconf.sh #./cleanconf.sh Voila qui nous simpliera un peu la vie. 4.2 Base MySQL Le module pam_mysql offre l'avantage intéressant de pouvoir loguer dans la base de données les évènements relatifs aux connexions. De plus, sa conguration souple permet de l'adapter à n'importe quelle table MySQL et donc ainsi de pouvoir utiliser une base utilisateur déja existante (dans le cadre d'un hébergement multiservice par exemple). Pour l'exemple nous créerons un utilisateur dont le login sera titi et le mot de passe sera passtiti. La base de données contenant les informations era vsftpd. Les mots de passe de nos utilisateurs seront cryptés au format md5. Dans un premier temps, il faut installer le odule pam_mysql : # yum install pam_mysql nsuite il faut démarrer le service mysqld : $ su - # service mysqld start Créons la base de données. Nous aurons deux tables :

users : table des utilisateurs log : évènements de connexion a table de log est optionnelle. Voici les scripts SQL à exécuter pour créer ces deux tables : CREATE TABLE `vsftpd`.`users` ( `id_user` int(11) NOT NULL auto_increment, `login` varchar(50) NOT NULL, `password` varchar(100) NOT NULL, `active` int(11) NOT NULL, PRIMARY KEY (`id_user`) ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 CREATE TABLE `vsftpd`.`log` ( `id_log` int(11) NOT NULL auto_increment, `login` varchar(50) NOT NULL, `message` varchar(200) NOT NULL, `pid` varchar(10) NOT NULL, `host` varchar(30) NOT NULL, `time` datetime default NULL, PRIMARY KEY (`id_log`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 our la table de sutilisateurs, nous utilisons un champ 'active' qui aura la valeur 1 ou 0 permettant de désactiver emporairement l'accès à un utilisateur sans pour autant en supprimer le compte. Pour la table de log, nous stockerons le ogin incriminé, le message relatif à l'évènement, le pid, le host de la personne et la date et l'heure de l'évènement. l ne nous reste plus qu'à utiliser un utilisateur : $ mysql -u <votre_user_mysql> --password=<votre_password_mysql> -e "INSERT INTO vsftpd.users (login,password,active) VALUES('tit ous remarquez que l'on crypte le mot de passe en md5, et que l'on active cette utilisateur (active=1). Vérions que notre tilisateur est ajouté : $ mysql -u <votre_user_mysql> --password=<votre_password_mysql> -e "SELECT * FROM vsftpd.users" +---------+-------+----------------------------------+--------+ id_user login password active +---------+-------+----------------------------------+--------+ 1 titi 7571fd2482115bad7310b422847f014e 1 +---------+-------+----------------------------------+--------+ otre utilisateur est bien ajouté. Si on souhaite lui interdire l'accès, on pourra soit supprimer son compte, soit mettre 'active' 0. 5 PAM PAM PAM (Pluggable Authentication Modules) est un système d'authentication modulaire permettant la gestion de l'authentication des utilisateurs. Les programmes utilisant PAM n'ont pas besoin d'implémenter leur propre gestion d'authentication. De plus, PAM permet d'établir des stratégies d'authentication et supporte de nombreux formats de stockage. Notre base d'utilisateurs étant créée, congurons PAM pour qu'il l'utilise. Comme apache (par exemple), PAM utilise pour sa onguration un dossier, /etc/pam.d/, comportant les chiers de conguration des services qui l'utilisent. Un ichier /etc/pam.d/vsftpd existe déjà, mais comme je l'expliquais plus haut, je ne l'utilise pas dans son intégralité. Voici onc le contenu complet que ce chier doit avoir (et rien de plus). Utilisez le chapitre selon le type de base de donénes que ous avez utilisé : 5.1 Base berkeley

#%PAM-1.0 auth sufcient pam_unix.so account sufcient pam_unix.so auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login account required /lib/security/pam_userdb.so db=/etc/vsftpd/login Les lignes 2 et 3 permettent la connexion des utilisateurs système, les 4 et 5 la connexion des utilisateurs virtuels placés dans notre base. Attention, pour ceux utilisant une architecture 64 bits, les deux dernières lignes sont à remplacer par celles-ci : auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login On peut relancer notre serveur : $ su -lc "service vsftpd restart" 5.2 Base MySQL #%PAM-1.0 auth sufcient pam_unix.so account sufcient pam_unix.so auth required /lib/security/pam_mysql.so verbose=0 user=<votre_user_mysql> passwd=<votre_pass_mysql> host=127.0.0.1 db=vsftpd ta account required /lib/security/pam_mysql.so verbose=0 user=<votre_user_mysql> passwd=<votre_pass_mysql> host=127.0.0.1 db=vsftpd Attention! Pour ceux utilisant une architecture 64 bits, dans les deux dernières lignes, /lib/security est à remplacer par /lib64/security. Tous les paramètres mis après 'where' ne sont à utiliser que si vous utilisez le log dans la base MySQL. J'ai utilisé '127.0.0.1' pour le host, mais il faut évidemment l'adapter en mettant l'adresse IP de votre serveur MySQL. Voici en détail des paramètres : verbose : permet d'afcher plus d'informations, seulement utile lors du deboggage user : utilisateur mysql passwd : mot de passe mysql host : hôte du serveur mysql db : nom de la base de données table : nom de la table pour les utilisateurs usercolumn : nom de la colonne contenant les logins passwdcolumn : nom de la colonne contenant les mots de passe crypt : type de cryptage, 3 indique que l'on utilise du md5 where : close supplémentaire à rajouter dans la requête, ici on s'en sert pour utiliser le paramètre 'active' sqllog : yes indique que l'on veut logger dans une table les évènements logtable : nom de la table contenant les logs logmsgcolumn : Nom de la colonne contenant le message de log logusercolumn : Nom de la colonne contenant le login pour le log logpidcolumn : Nom de la colonne contenant le pid pour le log loghostcolumn : Nom de la colonne contenant le host pour le log logtimecolumn : Nom de la colonne contenant la date et l'heure pour le log Plus d'infos sur pam_mysql sur cette page.

6 Attribution/Personnalisation des droits Testons notre serveur : $ ftp localhost Entrez "titi" pour utilisateur et "passtiti" comme mot de passe. La connexion doit être établie. Placez un chier dans /var/ftp/ (lisible par l'utilisateur ftp) et reconnectez-vous. Une fois connecté, tapez la commande ls. ous devez voir votre chier. i nous avons créé des utilisateurs virtuels, c'est pour que chacun d'eux puisse avoir des droits différents, et même leur space propre. Vous avez vu que dans la conguration, nous utilisons la directive user_cong_dir=/etc/vsftpd/vsftpd_user_conf". e dossier nous permet de stocker dans des chiers séparés des congurations spéciques à chaque utilisateur. Dans ces ichiers, on entre des paramètres, les mêmes que ceux du chier de conguration, qui seront prioritaires par rapport à ce ernier. énéralement, on y modie le "local_root" et les droits d'écriture. On y met un chier par utilisateur, et le chier porte le ême nom que le login de l'utilisateur auquel il fait référence. réons un dossier titi dans /var/ftp, changeons son propriétaire puis modions le "local_root" et les droits d'écriture pour et utilisateur : # mkdir /var/ftp/titi # chown ftp:ftp /var/ftp/titi # echo "local_root=titi" > /etc/vsftpd/vsftpd_user_conf/titi # echo "write_enable=yes" >> /etc/vsftpd/vsftpd_user_conf/titi # echo "anon_upload_enable=yes" >> /etc/vsftpd/vsftpd_user_conf/titi # echo "anon_mkdir_write_enable=yes" >> /etc/vsftpd/vsftpd_user_conf/titi # echo "anon_other_write_enable=yes" >> /etc/vsftpd/vsftpd_user_conf/titi otez que l'on aurait pu mettre un répertoire absolu pour le "local_root", par exemple /var/www/html/le_site_de_titi, ais en s'assurant que l'utilisateur ftp ait les droits adéquats sur ce dossier. Reconnectez-vous avec l'utilisateur titi, il vous st maintenant possible de déposer des chiers. Reportez-vous à la page de man pour les détails sur les paramètres de onguration. 7 Erreurs possibles Il est possible que parfois lorsque vous vous connectez, vous rencontriez un de ces erreurs : 500 OOPS: reading non-root cong le : Cela intervient si l'utilisateur n'a pas de chier spécique dans /etc/vsftpd/vsftpd_user_conf (même vide). Il semble que ce soit un bogue. Si vous avez ce souci, créez un chier pour cet utilisateur. Nous verrons ensuite que l'on peut faire cela automatiquement. 500 OOPS: cannot change directory:<repertoire> : Dans ce cas, entrez : $ su -lc "setsebool -P ftp_home_dir 1" 500 OOPS: vsftpd: refusing to run with writable anonymous root Il faut enlever le droit d'écriture sur le répertoire root :

# chmod u-w /le/local/root Ensuite il faut s'assurer que le local_root appartient bien au user et groupe ftp. 8 Conclusion Voilà un serveur FTP prêt, avec une gestion facile d'utilisateurs virtuels. Il est de plus pour chaque utilisateur possible de modier chaque valeur de la conguration principale, ce qui rend la gestion des utilisateurs virtuels très souple. 9 Références Manuel vsftpd.conf vsftpd sous debian Catégories : Administrer un serveur dédié Réseaux et Serveurs Système