Configurer un serveur FTP sous Debian

Écrit par fdgeek
7 minutes
Configurer un serveur FTP sous Debian

Lorsque l'on possède un serveur Web, la mise en service d'un serveur FTP est quasiment indispensable. Pour rappel, le protocole FTP (File Transfert Protocol) est un des protocoles de communication les plus connus dédié aux transferts de fichiers dans le cas d'une configuration Client/Serveur via internet ou en réseau local (intranet). Nous allons donc voir ci-dessous comment configurer un serveur FTP sur une distribution Linux Debian ou dérivée (ex: Ubuntu).

Il nous faut premièrement choisir un serveur FTP à installer. Personnellement, j'utilise depuis des années ProFTPD car il possède à mon avis de nombreux avantages:

  • Il est gratuit, libre et sous licence GNU GPL.
  • Il dispose d'un support et d'une documentation faciles à trouver.
  • Il n'y a qu'un seul fichier de configuration à paramétrer (proftpd.conf).
  • La syntaxe ressemble à celle d'Apache et on peut déclarer des serveurs FTP virtuels.
  • Enfin, Il est possible de cloisonner les espaces et appliquer des restrictions aux utilisateurs.

 

Voyons donc ci-dessous comment installer et configurer de façon standard ProFTPD:

Il faut d'abord ouvrir une session en Root sur notre serveur et saisir les commandes suivantes:

Premièrement, on met à jour la liste des paquets officiels disponibles:
apt-get update & apt-get upgrade

Ensuite on installe le paquet ProFTPd:

apt-get install proftpd

Lors de l'installation, il va vous être demandé si vous souhaitez lancer le serveur FTP via
inetd ou indépendamment. Je préconise de choisir: Indépendamment

Passons maintenant à la configuration proprement dite:

Éditons le fichier de configuration de ProFTPd avec Nano l'éditeur de base sous Debian:


nano /etc/proftpd/proftpd.conf

On recherche et on dé-commente la ligne: "#DefaultRoot" et on la remplace par ceci:


DefaultRoot        /var/www

Ceci permet de restreindre les utilisateurs en limitant leur accès uniquement au répertoire /www (on peut évidement adapter le répertoire en fonction de sa propre configuration). Le but de cette directive est d’empêcher que l'utilisateur connecté puisse parcourir l'arborescence de notre serveur pour des raisons évidentes de sécurité. Améliorons encore un peu la sécurité en interdisant aussi au compte Root l'accès au serveur FTP:

Pour ce faire, on recherche ou on rajoute la ligne suivante si elle n'est pas présente:

"RootLogin ON" et on la modifie comme ceci:

RootLogin  OFF

Toujours en matière de sécurité, je vous conseille également de changer le port d'écoute standard (port 21 pour FTP) par défaut comme ceci:


On recherche la ligne Port    21 et on remplace 21 par un autre port. Par exemple:
Port    21987

Quittez à présent l'éditeur Nano en enregistrant vos modifications :

CTRL+O et CTRL+X

Et relancez le service Proftpd pour que les modifications soient prises en compte :

/etc/init.d/proftpd restart ou service proftpd restart

Il faut maintenant faire en sorte que l'utilisateur connecté au serveur FTP puisse écrire dans le répertoire qui lui est attribué sans rencontrer d'erreur. Pour cela il faut lui donner les bons droits sur ce répertoire:

Ajoutons donc ces droits spécifiques sur notre répertoire web public avec les commandes suivantes :

chown www-data:www-data /var/www
chmod -R 775 /var/www

Cet utilisateur doit appartenir au bon groupe d'utilisateurs. Il faut donc éditer le fichier "group" et y effectuer les modifications suivantes avec l'éditeur Nano:

nano /etc/group

On localise la ligne du groupe correspondant, ici: "www-data:x:33:" et on y rajoute le nom de notre utilisateur comme ceci:

www-data:x:33:nom_utilisateur

On localise ensuite la ligne où figure le nom de notre utilisateur en question qui doit ressembler à : "nom_utilisateur:x:1000:" et on effectue la modification suivante:

nom_utilisateur:x:1000:www-data

On enregistre les modifications et on quitte l'éditeur Nano.

Enfin, il ne reste plus maintenant qu'à relancer le service Apache2 et le service ProFTPd pour prendre en compte les changements avec les commandes suivantes:

etc/init.d/apache2 restart

et:

etc/init.d/proftpd restart

Et voilà, si vous avez bien suivi la procédure ci-dessus, vous disposez maintenant d'une serveur FTP opérationnel. Il vous suffit de tester si tout fonctionne avec un client FTP comme par exemple Filezilla .

PS:

Si vous testez l'accès à votre serveur FTP depuis internet (c'est à dire à l'extérieur de chez-vous) n'oubliez pas d'ouvrir et de rediriger correctement les ports concernés sur votre Box, le cas échéant, votre routeur et votre pare-feu.

Si l'on se réfère à la configuration décrite plus haut, il faut dans notre exemple ouvrir et autoriser le port public 21 (FTP)  et le rediriger vers l'adresse IP de notre serveur web sur le port privé  21987 (port définit dans le fichier de configuration proftpd.conf pour écouter et répondre au trafic FTP).