• Mise en place d'un serveur FTP avec Pure-FTPd

    Après avoir vu comment mettre en place un serveur FTP avec vsFTPd et ProFTPD, nous allons voir comment mettre en place un serveur FTP avec Pure-FTPd.

    Pure-FTPd permet entre autres la gestion des virtualhosts, du FTPS et du chroot des utilisateurs...

    utoriel réalisé sur Debian Wheezy 7.7 avec Pure-FTPd version 1.0.36.

    Site officiel Pure-FTPd

    Pour installer Pure-FTPd (GNU/Linux Debian) utiliser la commande suivante :

    sudo apt-get install pure-ftpd

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir)

     

    Je vais maintenant vérifier que Pure-FTPd est lancé avec htop.

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir)

     

    Tout comme ProFTPD, Pure-FTPd peut être lancé en mode inetd ou standalone.

    Pour cela éditez le fichier pure-ftpd-common à l'aide de la commande :

    sudo nano /etc/default/pure-ftpd-common

    Entrez ensuite le mode que vous souhaitez.

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     

    Les fichiers de configurations se trouvent dans /etc/pure-ftpd/conf.

    La configuration par défaut contient 7 fichiers.

    AltLog : fichier permettant de configurer l'emplacement des logs

    - FSCharset : fichier permettant de paramétrer l'encodage des caractères ( UTF8 etc...)

    - MinUID : fichier permettant d'indiquer l'UID minimal ayant accès au serveur.

    -  NoAnonymous : Fichier permettant d'indiquer si on autorise ou non le FTP anonyme.

    PAMAuthentication : fichier permettant d'indiquer si on autorise ou non l’authentification par module PAM.

    PureDB : fichier permettant d'indiquer le chemin vers la base de donnée des comptes virtuels.

    UnixAuthentication : fichier permettant d'indiquer si on autorise ou non l’authentification standard Unix.

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir)

     

    Mise en place d'un serveur FTP avec Pure-FTPd

       (cliquer sur l'image pour l'agrandir)

     

    Pour modifier une valeur dans un fichier ( ici le fichier MinUID ), utilisez la commande suivante en root.

    echo "valeur" > "fichier_à_modifier"

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir)

     

    Une fois vos modifications terminées, relancez pure-ftpd avec la commande :

    sudo /etc/init.d/pure-ftpd restart

    Lors du redémarrage, vous pourrez voir votre configuration s'afficher.

    Liste des options Pure-FTPd

     

    Mise en place d'un serveur FTP avec Pure-FTPd

       (cliquer sur l'image pour l'agrandir)

     

    Si vous souhaitez rajouter une nouvelle option ( ici je vais rajouter l'option Umask ).

    echo "valeur" > "fichier_à_créer"

    Lors du redémarrage, vous pourrez voir votre nouvelle option s'afficher. 

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir)

     

    Je vais maintenant tester une 1ère connexion à mon serveur FTP.

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir)

     

    Vous pouvez constater que je peux naviguer dans l'arborescence.

    Nous verrons un peu plus loin dans le tutoriel comment "emprisonner" des utilisateurs dans leurs dossiers personnels afin qu'ils ne puissent pas remonter dans l'arborescence. 

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir) 

     

    Nous allons voir maintenant comment créer des utilisateurs virtuels.

    Pour cela, il faut d'abord créer un groupe et un utilisateur auxquels seront affectés tous les utilisateurs virtuels ( Cette méthode permettra de créer des utilisateurs FTP virtuels en ne créant qu'un seul utilisateur système. ).

    L'utilisateur n’aura pas de permission et pas de shell.

    sudo groupadd groupftp && sudo useradd -g groupftp -d /dev/null -s /bin/false userftp

    On vérifie en suite que le groupe et l'utilisateur ont bien été crées avec la commande :

    grep ftp /etc/passwd /etc/group

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir) 

     

    Je vais ensuite créer le fichier CreateHomeDir dans /etc/pure-ftpd/conf.

    Ce fichier va permettre la création du répertoire utilisateur lors de sa 1ère connexion au serveur.

    echo yes > /etc/pure-ftpd/conf/CreateHomeDir 

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir)

     

    Ensuite, je crée le répertoire racine /home/ftp et j'attribue les droits à root et groupftp.

    sudo mkdir /home/ftp

    sudo chown root:groupftp /home/ftp

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir) 

     

    La création des utilisateurs virtuels se fait à l'aide de la commande pure-pw.

    Documentation utilisateurs virtuels Pure-FTPd

    ici, je vais créer l'utilisateur userftp1 qui sera chrooté dans dans son répertoire personnel.

    sudo pure-pw useradd userftp1 -u userftp -g groupftp -d /home/ftp/userftp1 -m

    -u : pour indiquer que l'utilisateur utilisera l'UID des utilisateurs virtuels.

    -g : pour indiquer que l'utilisateur utilisera le GID des utilisateurs virtuels.

    -d : répertoire ou sera chrooté userftp1.

    -m : effectue la mise à jour automatique de la base de donnée des utilisateurs virtuels ( (/etc/pure-ftpd/pureftpd.pdb). 

    Pendant la création de l'utilisateur, il vous sera demandé de créer son mot de passe.

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir) 

     

    Le manuel de pure-pw. 

     

    Mise en place d'un serveur FTP avec Pure-FTPd

       (cliquer sur l'image pour l'agrandir) 

     

    Si vous souhaitez avoir des informations sur vos utilisateurs virtuels, utilisez la commande :

    sudo pure-pw show "utilisateur"

     

    Mise en place d'un serveur FTP avec Pure-FTPd

       (cliquer sur l'image pour l'agrandir) 

     

     

    Après chaque création ou modification d’un utilisateur, il faut générer la base de données avec la commande :

    pure-pw mkdb

    PS : Si vous avez utilisé l'option -m lors de la création de votre utilisateur virtuel,alors cette commande est inutile.

    Pour finir, nous allons créer un lien symbolique afin que pure-ftpd puisse activer l'authentification des utilisateurs virtuels.

    Pour cela, nous allons utiliser la commande : 

    sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir)  

     

     

    Si vous voulez seulement permettre la connexion aux utilisateurs virtuels, vous devez désactiver l'authentification PAM et Unix.

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir)  

     

    Une fois votre configuration terminée relancez pure-ftpd avec la commande :

    sudo /etc/init.d/pure-ftpd restart 

    Je vais maintenant tester la connexion au serveur FTP avec l'utilisateur userftp1.

    Vous pouvez observer que la connexion a bien fonctionné.

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir) 

     

    Je vais maintenant vérifier que userftp1 est bien emprisonné dans son répertoire personnel.

    Pour cela, je clique sur "Vers un rép. de plus haut niveau".

    Vous remarquerez que userftp1 ne peut pas remonter dans l'arborescence et qu'il est effectivement emprisonné dans son dossier personnel.

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir) 

     

    Pour terminer ce tutoriel, nous allons voir comment mettre en place le FTPS.

    Pour mettre le place le FTPS, nous aurons besoin de openssl.

    Si celui-ci n'est pas installé sur votre serveur :

    sudo apt-get install openssl

    Ensuite, nous allons procéder à la création du certificat et de la clé avec la commande suivante :

    sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

     

    Mise en place d'un serveur FTP avec Pure-FTPd

      (cliquer sur l'image pour l'agrandir) 

     

    On active ensuite TLS dans pure-ftpd.

    echo 2 > /etc/pure-ftpd/conf/TLS

    - 0 désactive TLS .

    - 1 Utilisation de TLS optionelle.

    - 2 force tous les utilisateurs à utiliser TLS .

    On relance ensuite pure-ftpd

    sudo /etc/init.d/pure-ftpd restart 

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir)  

     

    Je me connecte à nouveau à mon serveur FTP en choisissant cette fois-ci "Connexion FTP explicite sur TLS"

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir)  

     

    Le serveur nous présente le certificat que nous avons crée juste auparavant afin que nous puissions vérifier son identité.

    Une fois que l'identité du serveur a bien été vérifié, cliquez sur "Valider". 

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir)  

     

    Maintenant que Pure-FTPd est configuré, nous allons surveiller les connexions en cours.

    Pour cela, il suffit d'utiliser la commande suivante :

    sudo pure-ftpwho

    manuel pure-ftpwho

     

    Mise en place d'un serveur FTP avec Pure-FTPd

     (cliquer sur l'image pour l'agrandir) 

     

    Conclusion : 

    Ce tutoriel n'est qu'un exemple simple des possibilités offertes par Pure-FTPd.

    Je vous invite à lire ces documentations qui m'ont aidé pour ce tutoriel.

    Documentation Pure-FTPd

    Pure-FTPd over tls sur linuxdev.dk

    Pure_FTPd sur coagul.org

    « Configuration simple d'un MTA avec EximScript de sauvegarde complète/incrémentale via tar »

    Tags Tags : , , ,
  • Commentaires

    1
    titol
    Vendredi 12 Février 2016 à 23:03

    Excellent tuto ca marche super bien ! bravo c'est formidable mon serveur marche enfin 

    MERCI

    2
    Samedi 13 Février 2016 à 13:24

     Ravi d'avoir pu t'aider titol...yes

     

    3
    Quentin
    Lundi 3 Septembre 2018 à 18:48

    Bonjour, j'ai un problème avec le certificat. J'ai une erreur ECONNREFUSED...

    4
    Lundi 3 Septembre 2018 à 20:30

    Tu peux en dire plus Quentin ? distribution sur laquelle tu as installé pure-ftpd ? Sans le SSL tout fonctionne ? As tu un firewall ? As tu activé lez mode passif sur ton client FTP ?

    Cdt

    5
    Jp
    Mercredi 12 Juin 2019 à 10:35

    Bonjour, idem que Quentin. Je teste ça sur un vieux Ubuntu server 8.04. Par contre ça fonctionne dès que je  désactive le SSL.

    6
    Mercredi 12 Juin 2019 à 11:27

    Bjr

    As tu regardé tes logs Jp qui peuvent te donner une indication ?

      • Jp
        Mercredi 12 Juin 2019 à 13:20

        J'ai trouvé ça dans le log :

        [ERROR] Sorry, but that file doesn't exist: [/etc/ssl/private/pure-ftpd.pem]

        c'est le seul élément que j'ai trouvé qui pourrait avoir un rapport.

      • Jp
        Mercredi 12 Juin 2019 à 13:23

        (suite message précédent) et pourtant dans le dossier :

        cd /etc/ssl/private
        > ls
        pure-ftpd.pem
        ssl-cert-snakeoil.key
    7
    Mercredi 12 Juin 2019 à 16:52

    As tu jeté un oeil sur la documentation PureFTPd ?

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :