====== PureFTPd : serveur FTP ======
* Objet : Seveur de fichiers PureFTPd
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : Installer et découvrir les bases de PureFTPd
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi : {{tag>à-placer}}
* Création par [[user>nifseg]] 21/12/2013
* Testé par Epopée le 10/06/2016
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=8076 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
==== Déscription ====
PureFTPd est un serveur FTP(File Transfert Protocole) sous license BSD.\\
La particularité de PureFTPd est qu'il permet facilement la création d'utilisateur virtuel, cela signifie que les utilisateurs de PureFTDd ne sont pas forcés d'être enregistrés sur le système hôte.\\
PureFTPd est relativement simple à configurer, il est possible de le customiser à souhait. Simple ne veut pas dire non sécurisé!
==== Quelques fonctions intégrées à PureTFPd ====
*Répertoire personnel crée automatiquement;
*Possibilité de chrooter des utilisateurs;
*Nombre d’utilisateurs illimités;
*Fichier de log dans "/var/log";
*Limitation de la bande passante;
*Upload/download;
*Prise en charge de TLS (Transport Layer Security);
*Prise en charge du protocole FXP (File eXchange Protocol);
*Supporte une multitude de types d’authentifications (utilisateurs virtuels, unix, ldap, pam, postgresql, mysql...etc);
*Quotas supportés;
*Connexion pouvant être limitée en fonction de horaire;
*Possibilité de limiter le nombre de connexion par adresse IP et par utilisateurs;
*...etc
===== Installation =====
Pour installer PureFTDd rien de plus simple :
apt-get update && apt-get install pure-ftpd
Pendant l'installation, debconf va vous posez plusieurs questions :\\
* Faut-il lancer pure-ftpd à partir de inetd ou d'un serveur autonome?
Si vous utilisez régulièrement votre serveur FTP, le mieux est de choisir "serveur autonome".
* Faut-il executer "pure-ftpwho" avec les droits superutilisateur?
Répondre non.
Si vous vous êtes trompez dans une de vos réponses, tapez (optionnel) :
dpkg-reconfigure pure-ftpd
Cette commande permet de reconfigurer le paquets pure-ftpd.
Le serveur doit-être actif, pour le vérifier, utilisons [[doc:systeme:service | la commande service]] :
service pure-ftpd status
==== Ajouter un utilisateur et un groupe à PureFTDd ====
groupadd ftpgroup && sleep 10 && useradd -g ftpgroup -d /dev/null -s /usr/bin/nologin ftpuser
* La première commande [[doc:systeme:groupadd | groupadd]] ajoute le groupe "ftpgroup" au système,
* la seconde commande [[doc:systeme:sleep | sleep]] impose une attente de 10 secondes avant l'exécution de la commande suivante et
* la troisième commande crée l'utilisateur "ftpuser" et l'ajoute aux utilisateurs du groupe "ftpgroup", en lui associant le périphérique spécial "/dev/null" (le trou noir de Linux) comme répertoire perso et "/usr/bin/nologin" comme shell de connexion.
La commande globale fonctionne sans [[doc:systeme:sleep | la commande sleep]], mais j'estime qu'il est bon de rappeler des commandes de bases. :-)
Prérequis avant d'ajouter un utilisateur virtuel à PureFTPd :\\
1)Avoir un serveur Apache fonctionnel.\\
2)Créer le répertoire "public_html" :
cd ; mkdir "public_html"
3)Ajouter le module "userdir" à Apache :
a2enmod userdir
Ajoutez un utilisateur((Voir : [[doc:systeme:useradd]])) "user" avec, comme répertoire racine "/home/user/public_html", qui doit être un répertoire déjà existant sur le système :
pure-pw useradd user -u ftpuser -d /home/user/public_html
Modifiez les champs "user" par le nom d'utilisateur que vous souhaitez ajouter à votre serveur!
Se rendre dans le répertoire "/etc/pure-ftpd/auth/" :
cd /etc/pure-ftpd/auth/
créer un lien symbolique((Voir : [[doc:systeme:ln | la commande ln]])) nommé "/etc/pure-ftpd/auth/50puredb" pointant sur le fichier "/etc/pure-ftpd/conf/PureDB"
ln -s ../conf/PureDB 50puredb
Mettre à jour la base de données de PureFTPd :
pure-pw mkdb
Relancer le service PureFTPd :
service pure-ftpd restart
Pour créer un deuxième utilisateur "fifi", rien de plus simple, tapez à nouveau :
pure-pw useradd fifi -u ftpuser -d /home/user/public_html && pure-pw mkdb
Et relancez le serveur pour prendre en compte l'ajout de l'utilisateur :
service pure-ftpd restart
Vous pouvez créer ainsi autant d'utilisateurs que vous le souhaitez !
Pour connaître la liste des utilisateurs créés pour PureFTPd tapez :
pure-pw list
Pour avoir la liste des utilisateurs connectés tapez :
pure-ftpwho
Pour modifier le mot de passe de l'utilisateur "fifi" :
pure-pw passwd fifi
Pour supprimer l'utilisateur((Voir : [[doc:systeme:userdel | la commande userdel]])) "fifi" :
pure-pw userdel fifi
===== Configuration =====
La plupart des options de configuration se font par les fichiers présents dans le répertoire "/etc/pure-ftpd/conf/"
==== Exemples de configuration ====
Se rendre dans le répertoire "/etc/pure-ftpd/conf/"
cd /etc/pure-ftpd/conf/
Autoriser l'envoi de fichiers sur le serveur FTP par les utilisateurs :
echo yes > KeepAllFiles
Ne pas accepter les connexions anonymes :
echo no > NoAnonymous
Pour rappel, [[doc:programmation:shell:chevrons#redirection | le chevron]] fermant ">" permet de rediriger la sortie d'une commande (ici, la sortie est redirigée vers le fichier "NoAnonymous")
== Nota : ==
Il existe aussi une interface graphique de configuration pour PureFTPd : **Pureadmin**
===== Utilisation =====
Pour se connecter à votre seveur FTP à partir du serveur lui même tapez :
ftp localhost
Votre login et votre mot de passe va vous être demandé.
Ensuite vous allez arriver sur un prompt :
ftp>