Un serveur FTP en 5 minutes chrono
Date: 12/01/2009 | Catégories: Open-source,Planet-libre,Systeme | Tags: ftp,linux,pure-ftpd,serveur ftp,ubuntu
Nous allons dans ce billet détailler l'installation d'un serveur FTP sur une machine tournant sous Ubuntu 10.04 (la procédure marche aussi sur d'autres versions). Le serveur FTP choisi est Pure-ftpd (je l'utilisai déjà sous FreeBSD et il est d'une stabilité à toutes épreuves).
> top chrono
Installation de Pure-ftpd
Il y a plus dur:
sudo apt-get install pure-ftpd pure-ftpd-common
Suite à cette commande, le serveur FTP sera lancé automatiquement. L'ensemble des fichiers de configuration de Pure-ftpd se trouve dans le répertoire suivant: /etc/pure-ftpd/
Il faut ensuite créer l'utilisateur/groupe système avec lequel le serveur FTP sera lancé:
sudo groupadd ftpgroup
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Configuration de Pure-ftpd
De base, Pure-ftpd base son authentification sur le PAM système puis sur un fichier de donnée interne. Personnellement et pour des raisons de sécurité, je préfère désactiver l'authentification par PAM. Pour cela il faut éditer le fichier conf/PAMAuthentication et remplacer la ligne yes par no:
# sudo vi /etc/pure-ftpd/conf/PAMAuthentication
no
# sudo vi /etc/pure-ftpd/conf/DontResolve
yes
Pour finir, il faut créer un lien symbolique pour activer l’authentification des utilisateurs virtuels :
# cd /etc/pure-ftpd/auth/
# sudo ln -s ../conf/PureDB 50puredb
Création d'un utilisateur FTP
Par exemple si vous voulez créer l'utilisateur ftp nicolargo dont le répertoire sera /home/ftp/nicolargo, il faut saisir les commandes suivantes:
sudo mkdir /home/ftp/nicolargo
sudo chown -R ftpuser:ftpgroup /home/ftp/nicolargo
sudo pure-pw useradd nicolargo -u ftpuser -g ftpgroup -d /home/ftp/nicolargo
Ces commandes vont avoir comme buts de créer un répertoire local puis de renseigner le fichier de configuration de Pure-ftp: /etc/pure-ftpd/pureftpd.passwd:
# sudo cat /etc/pure-ftpd/pureftpd.passwd
...
nicolargo:$1$ucgVifA0$HFoang9VssnUnErD3X4bj1:1001:1001::/home/ftp/nicolargo/./::::::::::::
Enfin il faut transofrmer ce fichier dans un format sécurisé et lisible par le serveur FTP (/etc/pure-ftpd/pureftpd.pdb):
sudo pure-pw mkdb
On relance alors le serveur pour que la configuration soit prse en compte:
sudo /etc/init.d/pure-ftpd restart
< fin du chrono ! (5 minutes !!! :))
Quelques commandes utiles...
Voici quelques commandes utiles à l'administration de votre serveur FTP.
Pour configurer le message affiché lors de la connexion des utilisateurs, il faut commencer par editer un fichier texte contenant le message:
# sudo vi /etc/motd.pure-ftpd
Bienvenue sur mon beau serveur FTP !
Puis ajouter le chemin de ce fichier dans le fichier /etc/pure-ftpd/conf/FortunesFile:
# sudo vi /etc/pure-ftpd/conf/FortunesFile
/etc/motd.pure-ftpd
Pour connaitre la liste des utilisateurs ayant un compte FTP:
# sudo pure-pw list
nicolargo /home/ftp/nicolargo
Pour changer le mot de passe d'un utilisateur:
sudo pure-pw passwd nicolargo
Pour supprimer le compte d'un utilisateur:
sudo pure-pw userdel nicolargo