/ debian

Installer un serveur FTP pour plusieurs utilisateurs avec proftpd

Si vous utilisez comme moi EasyEngine sur votre serveur, vous souhaitez peut-être proposer un accès via ftp, tout en limitant l’accès aux fichiers d’un site web pour chaque utilisateur.

Pour cela, nous allons installer et configurer proftpd, pour limiter l’accès de chaque utilisateur à son dossier, et pour ne pas avoir de soucis au niveau des permissions.

Installation de profpd

On commence par installer proftpd :

apt-get update && apt-get install proftpd

Puis on modifie la configuration de proftpd :

nano /etc/proftpd/proftpd.conf

Pour empêcher les utilisateurs de remonter dans l'arboresence des fichiers du serveur, il faut de décommenter la ligne suivante en supprimant le # :

DefaultRoot                     ~

Il est également préférable décommenter l'option RequireValidShell afin de pouvoir ajouter des utilisateurs sans accès ssh :

RequireValidShell               off

Enfin, si vous utilisez un pare-feu sur votre serveur, il est nécessaire de décommenter la ligne PassivePorts en définissant une intervalle de ports.
Dans mon exemple, j'ai choisi d'utiliser les ports 49000 à 50000 pour les connexions FTP passives :

PassivePorts                  49000 50000

Il suffit ensuite d'autoriser ces ports dans votre pare-feu. Si vous utilisez UFW, il suffit d'utiliser la commande :

ufw allow 49000:50000/tcp

On redémarre ensuite proftpd pour appliquer les modifications :

service proftpd restart

Ajouter un utilisateur

Pour ajouter un utilisateur, il faut définir son dossier home qui correspond au dossier du site web concerné, et l’ajouter au groupe www-data pour qu’il n’y ai pas de problème au niveau des permissions. Remplacez dans la commande suivante le dossier utilisé après --home et le nom de l'utilisateur :

adduser --home /var/www/votredomaine.tld/ --shell /bin/false --ingroup www-data votre-utilisateur

La commande précédente inclut la directive --shell /bin/false, interdisant ainsi l'accès au shell pour le nouvel utilisateur puisque nous avons précédemment définit que l'utilisation du serveur FTP ne nécessitait pas un accès valide au shell.

Enfin pour ajouter les permissions au groupe sur un dossier on utilise :

chmod -R g+rw /var/www/domainname

Votre utilisateur pourra ainsi ajouter ou supprimer des fichiers en se connectant via un client ftp, mais il ne pourra pas accéder à d'autres fichiers que ceux présents dans sont dossier --home et il n'aura pas accès au serveur via ssh.

Installer un serveur FTP pour plusieurs utilisateurs avec proftpd
Share this