Configuration PureFtpd

La notion d’utilisateurs virtuels est très simple, il s’agit d’un utilisateur pouvant se connecter uniquement via FTP (par opposition aux comptes de la machine, qui peuvent également se connecter en FTP). Toutes connexions locales, SSH… lui seront refusées.

La méthode utilisée est la suivante :

* Les utilisateurs possèdent l’UID d’un utilisateur système existant. Il est possible de créer un utilisateur virtuel possédant le même UID que votre utilisateur système courant (afin de garder les mêmes accès). Le même principe est utilisé pour le GID.

* Chaque utilisateur virtuel possède un profil unique contenant ses limites de bande passante, ses quotas, ses horaires d’accès…

Tout cela apporte une sécurité assez robuste en cas d’exploitation d’une éventuelle faille.

Installation (-20 min)

1. Installer le serveur avec la commande :

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

… A ce stade, les utilisateurs anonymes ne peuvent pas se connecter et les clients authentifiés peuvent se balader partout dans l’arborescence…

a. Chroot des utilisateurs

Créer un fichier ChrootEveryone et mettre la valeur “yes” à l’intérieur

sudo touch /etc/pure-ftpd/conf/ChrootEveryone
sudo gedit /etc/pure-ftpd/conf/ChrootEveryone

b. Autorisation des accès anonymes

Editer le fichier de configuration NoAnonymous et remplacer la valeur “yes” par “no”

sudo gedit /etc/pure-ftpd/conf/NoAnonymous

2. Tout d’abord, créer un nouveau groupe pour pureftpd :

sudo groupadd ftpgroup

3. Ensuite, ajouter un utilisateur qui n’aura aucune permission dans son répertoire personnel, ni aucun shell valide :

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

4. Nous allons maintenant pouvoir créer notre premier utilisateur virtuel ‘syd’ avec la commande pure-pw useradd :

sudo pure-pw useradd syd -u ftpuser -g ftpgroup -d /var/ftp/syd -N 200

Ici, l’utilisateur syd sera ’emprisonné’ (chrooter) dans son répertoire personnel (/var/ftp/syd) grace à l’option “-d” et sera limité à 200 MB d’espace disque avec l’option “-N 200”. Attention, le premier mot de passe demandé est celui du compte root qui exécute la commande, les 2 suivants ceux à créer pour l’utilisateur virtuel syd.

Remarque : Le dossier “/var/ftp/syd” indiqué sera créé automatiquement à la première connexion si le fichier “/etc/pure-ftpd/conf/CreateHomeDir” contient “yes”

5. Les utilisateurs virtuels sont enregistrés dans le fichier /etc/pure-ftpd/pureftpd.passwd ; après chaque ajout d’un utilisateur virtuel, il faut impérativement mettre à jour la base de donnée avec la commande :

sudo pure-pw mkdb

6. Pour finir, il faut créer un lien symbolique pour activer l’authentification des utilisateurs virtuels :

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

Voilà, en quelques lignes de commandes vous avez installé un serveur FTP accessible par vos utilisateurs systèmes, vos utilisateurs virtuels et un compte anonyme :)

Pour aller plus loin

1. Modification des options d’un compte virtuel

sudo pure-pw usermod syd -d /NouveauDossierDeSyd -N 400

Ici on change le répertoire de base de notre utilisateur syd et on lui affecte un nouveau quota

2. Suppression d’une option

sudo pure-pw usermod syd -N ''

Mettre des simples quotes sans valeur pour l’option à retirer

3. Suppression d’un compte virtuel

sudo pure-pw userdel syd

Astuce : rajouter le switch -m à la fin de la commande pour mettre à jour la base de donnée automatiquement

4. Réinitialisation d’un mot de passe

sudo pure-pw passwd syd

5. Lister les utilisateurs virtuels

sudo pure-pw list

6. Afficher les options d’un utilisateur virtuel

sudo pure-pw show syd

7. Actions sur le serveur ftp

sudo /etc/init.d/pure-ftpd {start|stop|restart|force-reload}

Pureadmin est une interface graphique qui permet de gérer les utilisateurs virtuels de pure-ftpd mais également de surveiller et interagir avec l’activité du service ftp. Pour l’installer :

sudo apt-get install pureadmin
Adeptes de la ligne de commande ou d’interfaces graphiques (mon choix est fait), vous avez maintenant les bases pour monter votre propre serveur ftp !

source 

Leave a Reply

Your email address will not be published. Required fields are marked *