Aller au contenu

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:

  • Logo ProftpdIl 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 serveur 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

# 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:

# 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

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 ce faire 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 775 /var/www

Cet utilisateur doit appartenir au bon groupe d’utilisateurs. Il faut donc éditer le fichier “group” et effectuer les modifications suivantes:

# On édite donc le fichier "group" avec 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:

# On relance les services concernés:
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 proftpf.conf pour écouter et répondre au trafic FTP).