Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sysadmin:vsftpd_virtual [2012/10/17 17:21]
james [Génération de la base Berkeley DB] ajout conf pam
sysadmin:vsftpd_virtual [2013/11/20 18:07] (Version actuelle)
james ajout tags
Ligne 1: Ligne 1:
 +{{tag>​sysadmin serveur ftp vsftpd utilisateur virtuel chroot installation howto}}
 +
 ====== Installer un serveur FTP avec utilisateurs virtuels ====== ====== Installer un serveur FTP avec utilisateurs virtuels ======
  
Ligne 12: Ligne 14:
   * Les utilisateurs pourront déposer des fichiers (écrire)   * Les utilisateurs pourront déposer des fichiers (écrire)
  
-====== Installation initiale ​======+===== Installation initiale =====
  
 L'​installation se limite à : <​code>#​ apt-get install vsftpd</​code>​ L'​installation se limite à : <​code>#​ apt-get install vsftpd</​code>​
Ligne 20: Ligne 22:
 </​code>​ </​code>​
  
-====== Configuration initiale ​======+===== Configuration initiale =====
 La configuration s'​effectue dans le fichier /​etc/​vsftpd.conf : La configuration s'​effectue dans le fichier /​etc/​vsftpd.conf :
   * Écouter en IPv6 : pour que vsftpd écoute en IPv6 il est faut en aussi commenter "​listen=YES",​ il va alors écouter en IPv4 et IPv6 :<​code>​   * Écouter en IPv6 : pour que vsftpd écoute en IPv6 il est faut en aussi commenter "​listen=YES",​ il va alors écouter en IPv4 et IPv6 :<​code>​
Ligne 55: Ligne 57:
  
 # configuration utilisateurs virtuels # configuration utilisateurs virtuels
 +# si guest_enable est active, tous les logins non anonymes sont classes en tant que '​guest'​
 guest_enable=YES guest_enable=YES
-guest_username=virtual+local_enable=YES 
 +# utilisateur réel auquel tous les utilisateurs '​guest'​ sont associés 
 +guest_username=ftp 
 # permettre aux utilisateurs virtuels d'​avoir les droits d'​utilisateurs locaux (vs anonymes) leur permettant donc d'​ecrire # permettre aux utilisateurs virtuels d'​avoir les droits d'​utilisateurs locaux (vs anonymes) leur permettant donc d'​ecrire
 virtual_use_local_privs=YES virtual_use_local_privs=YES
Ligne 62: Ligne 68:
  
 # configuration du mode passif (utile pour limiter l'​ouverture de la fenetre des firewalls, ici les ports 48152 à 49192) # configuration du mode passif (utile pour limiter l'​ouverture de la fenetre des firewalls, ici les ports 48152 à 49192)
-#​pasv_enable=YES valeur par defaut+#​pasv_enable=YES ​#valeur par defaut
 pasv_enable=YES pasv_enable=YES
 pasv_min_port=48152 pasv_min_port=48152
Ligne 68: Ligne 74:
 </​code>​ </​code>​
  
-====== Configuration des utilisateurs virtuels ​======+===== Configuration des utilisateurs virtuels =====
  
 Pour gérer les utilisateurs virtuels, deux méthodes s'​offrent a vous : Pour gérer les utilisateurs virtuels, deux méthodes s'​offrent a vous :
Ligne 84: Ligne 90:
 J'ai choisi d'​utiliser un fichier au format htpassword, choisissez la méthode que vous voulez. J'ai choisi d'​utiliser un fichier au format htpassword, choisissez la méthode que vous voulez.
  
-===== Gestion des utilisateurs virtuels htpasswd ​===== +==== Gestion des utilisateurs virtuels htpasswd ====
-TODO +
-===== Gestion des utilisateurs virtuels Berkeley DB =====+
  
-==== Installation des logiciels requis ====+Si vous souhaitez utiliser un fichier htpasswd pour gérer vos utilisatuers virtuels (solution conseillée) : 
 + 
 +=== Installation des logiciels requis === 
 + 
 +<​code>#​ apt-get install apache2-utils libpam-pwdfile</​code>​ 
 + 
 +=== Création de la base et du premier utilisateur === 
 + 
 +Nous allons stocker les mots de passe au format <​del>​md5 (option -m)</​del>​ crypt (option -d) voir note plus bas. 
 + 
 +Pour créer le fichier :<​code>​ 
 +# htpasswd -d -c /​etc/​vsftpd/​passwd utilisateur1</​code>​ 
 +Cette commande vous demande alors le mot de passe a affecter. Vous auriez cependant pu le spécifier sur la ligne de commande en utilisant à la place la commande <​code>​ 
 +# htpasswd -d -b -c /​etc/​vsftpd/​passwd utilisateur1 motdepasse1</​code>​ 
 + 
 +Ne pas oublier de restreindre les droits d'​accès à ce fichier :<​code>​ 
 +# chown root:root /​etc/​vsftpd/​passwd 
 +# chmod 600 /​etc/​vsftpd/​passwd 
 +</​code>​ 
 + 
 +=== Opérations courantes sur les utilisateurs === 
 + 
 +  * Pour ajouter un nouvel utilisateur avec demande de mot de passe :<​code>​ 
 +# htpasswd -d /​etc/​vsftpd/​passwd utilisateur2</​code>​ 
 +  * Pour ajouter un nouvel utilisateur en spécifiant le mot de passe sur la ligne de commande:<​code>​ 
 +# htpasswd -d -b /​etc/​vsftpd/​passwd utilisateur2 motdepasse2</​code>​ 
 +  * Pour supprimer l'​utilisateur utilisateur1:<​code>​ 
 +# htpasswd -D /​etc/​vsftpd/​passwd utilisateur1</​code>​ 
 +<​note>​Les commandes d'​ajout fonctionnent aussi pour mettre à jour le mot de passe de l'​utilisateur concerné</​note>​ 
 + 
 +=== Configuration du login des utilisateurs virtuels FTP === 
 + 
 +Cette configuration s'​effectue dans le fichier /​etc/​pam.d/​vsftpd . Utilisez la commande suivante pour remplacer son contenu actuel :<​code>​ 
 +# cat << EOF > /​etc/​pam.d/​vsftpd 
 +# interdire le login des utilisateurs systeme definis dans le fichier /​etc/​ftpusers 
 +auth       ​required ​       pam_listfile.so item=user sense=deny file=/​etc/​ftpusers onerr=succeed 
 + 
 +# autoriser les utilisateurs virtuels 
 +auth    required ​   pam_pwdfile.so pwdfile /​etc/​vsftpd/​passwd 
 +# pam_pwdfile ne fourni pas account, donc on autorise juste si succes: 
 +account required ​   pam_permit.so 
 +EOF 
 +</​code>​ 
 + 
 +<note important>​L'​utilisation de mots de passe md5 ne fonctionne plus, il faut donc utiliser crypt qui était le format par défaut de htpasswd mais qui ne l'est plus, d’où l'​utilisation de l'​option -b pour forcer "au cas où"​...</​note>​ 
 +<​note>​de part le stockage des mots de passe en crypt, seuls les 8 premiers caractères des mots de passe seront réellement utilisés, attention a choisir des mots de passe suffisamment robustes sur les 8 premiers caractères</​note>​ 
 + 
 +Vous pouvez maintenant sauter la section suivante pour aller directement à "​Gestion des droits des utilisateurs virtuels"​ 
 +==== Gestion des utilisateurs virtuels Berkeley DB ==== 
 + 
 +Si vous avez choisi d'​utiliser une base Berkeley DB pour stocker les utilisateurs virtuels : 
 + 
 +=== Installation des logiciels requis ​===
 <​code>​ # apt-get install db4.2-util</​code>​ <​code>​ # apt-get install db4.2-util</​code>​
 <​note>​ cela fonctionne aussi sûrement avec des versions plus récentes, comme par exemple db4.7-util, adaptez au besoin la suite</​note>​ <​note>​ cela fonctionne aussi sûrement avec des versions plus récentes, comme par exemple db4.7-util, adaptez au besoin la suite</​note>​
  
-==== Création de la base et des premiers utilisateurs ​====+=== Création de la base et des premiers utilisateurs ===
 On commence par créer un fichier vide qui contiendra les utilisateurs et mot de passe avec des permissions restreintes :<​code>​ On commence par créer un fichier vide qui contiendra les utilisateurs et mot de passe avec des permissions restreintes :<​code>​
 # touch /​etc/​vsftpd/​users # touch /​etc/​vsftpd/​users
Ligne 105: Ligne 161:
 </​code>​ </​code>​
  
-==== Génération de la base Berkeley DB ====+=== Génération de la base Berkeley DB ===
  
 Pour générer la base BDB il faut utiliser la commande suivante pour générer le fichier "/​etc/​vsftpd/​users.db"​ depuis le fichier plat "/​etc/​vsftpd/​users"​ : <​code>​ Pour générer la base BDB il faut utiliser la commande suivante pour générer le fichier "/​etc/​vsftpd/​users.db"​ depuis le fichier plat "/​etc/​vsftpd/​users"​ : <​code>​
-db4.2_load -T -t hash -f /​etc/​vsftpd/​users /​etc/​vsftpd/​users.db</​code>​+db4.2_load -T -t hash -f /​etc/​vsftpd/​users /​etc/​vsftpd/​users.db</​code>​
 Penser a sécuriser aussi ce fichier :<​code>​ Penser a sécuriser aussi ce fichier :<​code>​
 # chown root:root /​etc/​vsftpd/​users.db # chown root:root /​etc/​vsftpd/​users.db
Ligne 117: Ligne 173:
 <note important>​ <note important>​
   * il faudra donc générer a nouveau cette base a chaque ajout/​suppression d'​utilisateur   * il faudra donc générer a nouveau cette base a chaque ajout/​suppression d'​utilisateur
-  * lors de la suppression d'un utilisateur,​ ne pas oublier qu'il faut enlever 2 lignes du fichier texte : cele de l'​utilisateur mais aussi celle du mot de passe+  * lors de la suppression d'un utilisateur,​ ne pas oublier qu'il faut enlever 2 lignes du fichier texte : celle de l'​utilisateur mais aussi celle du mot de passe
 </​note>​ </​note>​
  
-==== Configuration du login des utilisateurs virtuels FTP ====+=== Configuration du login des utilisateurs virtuels FTP ===
  
 Cette configuration s'​effectue dans le fichier /​etc/​pam.d/​vsftpd . Utilisez la commande suivante pour remplacer le contenu :<​code>​ Cette configuration s'​effectue dans le fichier /​etc/​pam.d/​vsftpd . Utilisez la commande suivante pour remplacer le contenu :<​code>​
Ligne 134: Ligne 190:
 EOF EOF
 </​code>​ </​code>​
-<​note>​Cela va bien utiliser la base /​etc/​vsftpd/​users.db,​ le suffie ​.db sera ajouté automatiquement</​note>​+<​note>​Cela va bien utiliser la base /​etc/​vsftpd/​users.db,​ le suffixe ​.db sera ajouté automatiquement</​note>​
  
  
-====== Gestion des droits des utilisateurs virtuels ​======+===== Gestion des droits des utilisateurs virtuels =====
  
 Dans la configuration initiale, nous avons défini un répertoire pour y stocker les droits des utilisateurs,​ il faut donc le créer : Dans la configuration initiale, nous avons défini un répertoire pour y stocker les droits des utilisateurs,​ il faut donc le créer :
 <​code>#​ mkdir /​etc/​vsftpd/​user_conf</​code>​ <​code>#​ mkdir /​etc/​vsftpd/​user_conf</​code>​
  
-TODO +On peut ensuite définir des options propres à chaque utilisateur en déposant des fichiers dans ce répertoire,​ par exemple pour dire que l'​utilisateur utilisateur2 aura comme répertoire de base /​export/​ftp/​partage1 mais n'aura pas le droit d'​écrire,​ créer un fichier /​etc/​vsftpd/​user_conf/​utilisateur2 avec le contenu suivant :<​code>​ 
- +write_enable=no 
-====== Pour aller plus loin ======+local_root=/​export/​ftp/​partage1</​code>​ 
 +<​note>​On peut spécifier dans ce fichier utilisateur les directives de configuration que l'on peut trouver dans le fichier /​etc/​vsftpd.conf</​note>​ 
 +<​note>​On pourrait affecter un répertoire "par défaut"​ pour chaque utilisateur (/​var/​www/​$LOGIN) en ajoutant dans le fichier de configuration globale /​etc/​vsftpd.conf les lignes suivantes :<​code>​ 
 +user_sub_token=$USER 
 +local_root=/​var/​www/​$USER</​code>​ 
 +</​note>​ 
 +===== Pour aller plus loin =====
  
-===== Chiffrement des communications avec SSL =====+==== Chiffrement des communications avec SSL ====
 TODO TODO
  
-====== Références ​======+===== Références =====
   * http://​www.debiantutorials.com/​installing-vsftpd-using-text-file-for-virtual-users/​   * http://​www.debiantutorials.com/​installing-vsftpd-using-text-file-for-virtual-users/​
   * http://​blog.pastoutafait.org/​billets/​Configuration-de-VsFTPd-sous-Ubuntu   * http://​blog.pastoutafait.org/​billets/​Configuration-de-VsFTPd-sous-Ubuntu
   * http://​www.admin-debian.com/​ftp/​vsftpd-un-serveur-ftp-hautement-securise/​   * http://​www.admin-debian.com/​ftp/​vsftpd-un-serveur-ftp-hautement-securise/​
  
sysadmin/vsftpd_virtual.1350487287.txt.gz · Dernière modification: 2012/10/17 17:21 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0