Avoir un serveur FTP est bien utile pour transférer les fichiers de vos sites.
Nous allons mettre en place un serveur FTP avec Proftpd, avec seulement des utilisateurs virtuels, sur Debian 9 Stretch.
Ce tutoriel est bien utile et peut être combiné avec le tutoriel sur Installer un serveur LAMP sur Debian 9 stretch.
Dans ce tutoriel, nous parlerons d’utilisateurs virtuels donc pas d’accès ssh pour les utilisateurs.
Installation et configuration de Proftpd
# installation Proftpd apt-get update && apt-get install proftpd
Durant l’installation nous choisirons d’installer la version « Standalone » ou « Indépendamment«
Maintenant passons à la configuration du serveur ftp.
On va faire en sorte que chaque utilisateur ftp ne puisse pas sortir de leurs répertoires assignés, on peut également modifier le port d’écoute et il faut déclarer un fichier pour gérer les utilisateurs.
# vim /etc/proftpd/proftpd.conf # Il faut dé-commenté cette ligne // Pour bloquer l'utilisateur dans son répertoire DefaultRoot ~ # Modification du port par défaut port 21 # Il faut dé-commenté cette ligne // Pour active le passive port PassivPorts XXXX XXXX # Ajout à la fin du fichier // Pour gérer les utilisateurs AuthUserFile /etc/ftpd.passwd
Attention : Si vous utiliser un pare-feu sur votre serveur, il faut penser à ouvrir la plage de port du PassivPort de votre pare-feu.
Avec Proftpd, les utilisateurs ont besoin d’avoir un shell actif. Dans notre cas nous ne voulons pas qu’il ait c’est droits, donc nous allons créer un shell bidon qui sera attribuer à tous les utilisateurs ftp.
# vim /etc/shells # Ajout à la fin // /bin/false
Ajout d’un utilisateur
Nous allons ajouter notre premier utilisateur ftp. Pour cela, on se rend dans /etc pour créer le fichier que nous avons déclarer.
Je vais décomposer les toutes les options de la commande, (–name= nom de l’utilisateur) (–uid= & –gid= ID de l’utilisateur et du groupe) (–home= Répertoire d’accès) (–shell= Sont shell bidon)
# (--name= nom de l'utilisateur) (--uid= & --gid= ID de l'utilisateur et du groupe) (--home= Répertoire d'accès) (--shell= Sont shell bidon) ftpasswd --passwd --name=vdemo --uid=33 --gid=33 --home=/var/www --shell=/bin/false --file=/etc/ftpd.passwd
Dans l’exemple ci-dessus, pour l’utilisateur vdemo j’ai choisi en uid et gid (33) qui est le groupe www-data.
Vous ne pourrez donc modifier seulement les dossiers et fichiers ayant comme propriétaire www-data (33).
Petit rappel de comment modifier le propriétaire d’un fichier ou d’un répertoire.
chown 33:33 -R /var/www/mondossier
Enfin il ne reste plus qu’à redémarrer le serveur Proftpd
service proftpd restart
Les informations des utilisateurs sont stockées dans un fichier, à raison de un utilisateur par ligne, vous pouvez modifier les utilisateurs, et il suffit juste de redémarrer le serveur ftp à chaque modification de ce fichier.
# nano /etc/ftpd.passwd vdemo:fdgfdg$koNffdggmdfgfdgAeBBbfg0fgd:33:33::/var/www/mondossier:/bin/false service proftpd restart
Conclusion
Nous avons dès à présent, un serveur FTP multi utilisateur complet sur Debian 9 stretch. Une évolution du tutoriel est possible si on souhaite y rajouter un certificat SSL/TLS.