Accueil > Informatique > FTP avec utilisateurs virtuels sous debian: Pure-FTPd

FTP avec utilisateurs virtuels sous debian: Pure-FTPd

Ayant tout d’abord besoin d’un serveur FTP pour accéder à mes données à distance, j’ai installé pour commencer proFTPd.

J’ai par la suite eu besoin de mettre à disposition des données pour des personnes exterieures. Le fait de creer des users unix sur mon serveur simplement pour l’utilisation du FTP ne m’enchantais pas plus que ca.

Certes ProFTPd gere les utilisateurs virtuels a l’aide de mySQL mais j’avous que c’est un peu compliqué a mettre en place. Je me suis donc rabattu sur Pure-FTPd dont je vais détailler ici l’installation et la configuration.

Pour commencer, un petit point sur la notion d’utilisateurs virtuels: ce sont des utilisateurs qui ne peuvent se connecter qu’en FTP, contrairement aux utilisateurs UNIX qui peuvent se connecter en FTP, mais aussi en SSH, en local, etc … Ce qui niveau sécurité est un plus.

L’UID des utilisateurs virtuels est le meme que celui d’un utilisateur système existant. Il est donc possible de créer un utilisateur virtuel possédant le même UID que votre utilisateur système courant ce qui permettra de garder les mêmes accès. Le principe est identique pour le GID. Cependant il est possible de gerer chaque utilisateur virtuel de facon indépendante afin de définir ses limites de bandes passantes, ses horaires d’accés, ses quotas, …

Installation:

Pure-FTPd étant présent dans les dépots debian il vous suffit de taper (en root):

apt-get install pure-ftpd pure-ftpd-common

Il faut ensuite chrooter les utilisateurs afin de les bloquer dans leur repertoire et les empecher d’accéder à toute l’arborescence du serveur. Pour cela il faut creer le fichier ChrootEveryone afin d’y mettre la valeur yes a l’interieur:

nano /etc/pure-ftpd/conf/ChrootEveryone

ou

gedit /etc/pure-ftpd/conf/ChrootEveryone

Il faut maintenant creer un groupe auquel seront rattachés les utilisateurs virtuels:

groupadd ftpgroup

Nous allons ensuite ajouter a ce group un utilisateur sans shell valide et sans permission dans son repertoire personnel:

useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Nous pouvons dés a présent creer le premier utilisateur virtuel toto:

pure-pw useradd toto -u ftpuser -g ftpgroup -d /media/ftp/toto -N 500

L’option -d permet de chrooter (bloquer) l’utilisateur dans son repertoire personnel (/media/ftp/toto) et l’option -N 500 permet quand à elle de fixer le quota d’espace disque de cet utilisateur a 500 MB.

Si vous voulez que le dossier personnel de l’utilisateur soit automatiquement créé lors de sa premiere connexion vous devrez creer le fichier /etc/pure-ftpd/conf/CreateHomeDir et ajouter a l’interieur de celui ci la valeur yes

Aprés chaque création ou modification d’un utilisateur virtuel vous devez mettre a jour la base de données à l’aide de la commande:

pure-pw mkdb

La liste des utilisateurs virtuels se trouve dans le fichier /etc/pure-ftpd/pureftpd.passwd vous pourrez donc verifier que vos modifications sont prises en compte en éditant ce dernier.

Il ne vous reste plus qu’a creer un lien symbolique pour autoriser la connection des utilisateurs virtuels:

ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/75puredb

Administration:

Pour que les modifications soient prises en compte sans que vous ayez a rafraichir la base de données, inserez l’option -m a la fin de la ligne de commande.

Pour supprimer le compte de l’utilisateur virtuel toto:

pure-pw userdel toto

Pour modifier le mot de passe de l’utilisateur virtuel toto:

pure-pw passwd toto

Pour modifier le repertoire personnel de l’utilisateur virtuel toto:

pure-pw usermod toto -d /nouveau/repertoire/personnel

Pour supprimer le quota de l’utilisateur virtuel toto:

pure-pw usermod toto -N ‘ ‘

Lister les comptes d’utilisateurs virtuels:

pure-pw list

Afficher les options du compte de l’utilisateur virtuel toto:

pure-pw show toto

Afficher les utilisateurs actuellement connectés sur le serveur:

pure-ftpwho

Pour plus d’infos, je vous invite a consulter la section Virtual Users de la documentation officielle.

Nous verrons dans un prochain article la configuration du serveur à l’aide du wrapper.

Categories: Informatique Tags: ,
  1. CH4NCE
    23/04/2009 à 16:34 | #1

    Merci pour ce petit tuto, très clair, parfait pour un noob comme moi, surtout que tout s’est passé sans probleme.
    Un petit paragraphe sur la configuration de pure-ftp serait bienvenue (utilisateur anonyme, port d’ecoute, etc).

    Grand merci 🙂

  2. 23/04/2009 à 17:09 | #2

    Merci, content que ça ai pu vous servir.
    Pour ce qui est de la configuration, j’avais prévu de faire un billet dédié mais je manque de temps (ou de motivation) =)

  3. CH4NCE
    24/04/2009 à 09:45 | #3

    J’ai crié victoire un peu vite, l’installation s’est bien passée mais cela ne fonctionnait pas. Impossible de se connecter avec toto.
    Précision, je suis sous ubuntu serveur 8.10.

    Alors pour finir la procedure, on va commencer en créant un mot de passe à toto :
    pure-pw passwd toto
    >mot_de_passe
    N’oubliez pas de recharger les donnees utilisateur : pure-pw mkdb

    La creation du repertoire d’accueil est essentiel (comme ça pas de galère) :
    vi /etc/pure-ftpd/conf/CreateHomeDir
    >yes

    Il est aussi préférable d’appliquer le Umask :
    vi /etc/pure-ftpd/conf/Umask
    >133 022
    le premier nombre pour les fichiers, le deuxieme pour les repertoires.
    Excellente explication sur les umask ici :
    http://www.developpez.net/forums/d274831/systemes/linux/distributions/debian/erreur-530-serveur-ftp-pure-ftpd-proftpd/

    On modifie aussi le fichier PAMAuthentification
    vi /etc/pure-ftpd/conf/PAMAuthentification
    yes => no (on remplace yes par no)

    Redemarrez le serveur :
    /etc/init.d/pure-ftpd restart

    D’autres liens qui peuvent vous aidez :
    http://www.littleboboy.net/archives/2004/09/28/exemple-de-configuration-de-pureftpd-sous-debian
    une traduction du man :
    http://www.delafond.org/traducmanfr/man/man1/pure-ftpd-wrapper.1.html
    des options expliquées :
    Ici pour Fedora
    et une autre procedure d’installation complete pour debian :
    http://doc.ubuntu-fr.org/pure-ftp

    Ce tuto servira à d’autre, merci K pour ton aide, je te souhaite de vivre heureux et d’avoir plein de petits tutos 😉

  4. 24/04/2009 à 23:30 | #4

    Merci pour ces précisions =)

    PS: j’ai modifié ton commentaire comme tu me l’as demandé, par contre le lien pour Fedora j’ai du feinter: WP semble avoir un peu de mal avec des urls contenants des parenthèses.

    Merci à toi.

  1. Pas encore de trackbacks