PureFTPd : serveur FTP

Objet : Seveur de fichiers PureFTPd

Niveau requis :

Commentaires : Installer et découvrir les bases de PureFTPd

Débutant, à savoir : Utiliser GNU/Linux en ligne de commande, tout commence là !.

Suivi :

Création par nifseg 21/12/2013

Testé par Epopée le 10/06/2016

Commentaires sur le forum : ici 1) 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 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 groupadd ajoute le groupe “ftpgroup” au système,

la seconde commande 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 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 utilisateur2) Voir : 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 symbolique3) Voir : 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'utilisateur4) Voir : 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, 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>