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 19:26]
james ajout tags
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}}+{{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 14: 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 22: 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 57: 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 64: 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 70: 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 86: 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 ====
  
 Si vous souhaitez utiliser un fichier htpasswd pour gérer vos utilisatuers virtuels (solution conseillée) : Si vous souhaitez utiliser un fichier htpasswd pour gérer vos utilisatuers virtuels (solution conseillée) :
  
-==== Installation des logiciels requis ​====+=== Installation des logiciels requis ===
  
 <​code>#​ apt-get install apache2-utils libpam-pwdfile</​code>​ <​code>#​ apt-get install apache2-utils libpam-pwdfile</​code>​
  
-==== Création de la base et du premier utilisateur ​====+=== Création de la base et du premier utilisateur ===
  
-Nous allons stocker les mots de passe au format md5 (option -m).+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>​ Pour créer le fichier :<​code>​
-# htpasswd --c /​etc/​vsftpd/​passwd utilisateur1</​code>​+# htpasswd --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>​ 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 --b -c /​etc/​vsftpd/​passwd utilisateur1 motdepasse1</​code>​+# htpasswd --b -c /​etc/​vsftpd/​passwd utilisateur1 motdepasse1</​code>​
  
 Ne pas oublier de restreindre les droits d'​accès à ce fichier :<​code>​ Ne pas oublier de restreindre les droits d'​accès à ce fichier :<​code>​
Ligne 108: Ligne 112:
 </​code>​ </​code>​
  
-==== Opérations courantes sur les utilisateurs ​====+=== Opérations courantes sur les utilisateurs ===
  
   * Pour ajouter un nouvel utilisateur avec demande de mot de passe :<​code>​   * Pour ajouter un nouvel utilisateur avec demande de mot de passe :<​code>​
-# htpasswd -/​etc/​vsftpd/​passwd utilisateur2</​code>​+# htpasswd -/​etc/​vsftpd/​passwd utilisateur2</​code>​
   * Pour ajouter un nouvel utilisateur en spécifiant le mot de passe sur la ligne de commande:<​code>​   * Pour ajouter un nouvel utilisateur en spécifiant le mot de passe sur la ligne de commande:<​code>​
-# htpasswd --b /​etc/​vsftpd/​passwd utilisateur2 motdepasse2</​code>​+# htpasswd --b /​etc/​vsftpd/​passwd utilisateur2 motdepasse2</​code>​
   * Pour supprimer l'​utilisateur utilisateur1:<​code>​   * Pour supprimer l'​utilisateur utilisateur1:<​code>​
 # htpasswd -D /​etc/​vsftpd/​passwd 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>​ <​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 ====+=== 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>​ 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 # 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 auth    required ​   pam_pwdfile.so pwdfile /​etc/​vsftpd/​passwd
-account required ​   ​/usr/lib/pam_permit.so+# pam_pwdfile ne fourni pas account, donc on autorise juste si succes: 
 +account required ​   pam_permit.so
 EOF EOF
 </​code>​ </​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"​ Vous pouvez maintenant sauter la section suivante pour aller directement à "​Gestion des droits des utilisateurs virtuels"​
-===== Gestion des utilisateurs virtuels Berkeley DB =====+==== Gestion des utilisateurs virtuels Berkeley DB ====
  
 Si vous avez choisi d'​utiliser une base Berkeley DB pour stocker les utilisateurs virtuels : Si vous avez choisi d'​utiliser une base Berkeley DB pour stocker les utilisateurs virtuels :
  
-==== Installation des logiciels requis ​====+=== 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 149: 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 164: Ligne 176:
 </​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 181: Ligne 193:
  
  
-====== 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 :
Ligne 194: Ligne 206:
 local_root=/​var/​www/​$USER</​code>​ local_root=/​var/​www/​$USER</​code>​
 </​note>​ </​note>​
-====== Pour aller plus loin ======+===== 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.1350494805.txt.gz · Dernière modification: 2012/10/17 19:26 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0