Se faire son serveur à la maison : 7 - Mise en place d'un service FTP
Par appzer0 le samedi 3 avril 2010, 21:39 - Lien permanent
Veut-on mettre
à disposition du public certains fichiers qu'on aurait plaisir à partager, par
exemple en rapport avec sa distribution favorite, des films de nos dernières
vacances ou bien des logiciels libres ?
On va pour cela mettre en place un serveur de FTP anonyme ultra sécurisé grâce à vsftpd, le démon « Very Secure FTP », inclus en standard dans Slackware.
Configurons simplement
On a donc en tête de proposer un FTP anonyme en lecture seule. On remarque d'emblée que Slackware dispose déjà d'un répertoire /home/ftp, ce qui est vraiment sympa, non ? @_@ On va donc bien évidemment se choisir ce répertoire comme répertoire de dépôt pour le FTP public.
Note : Si l'on préfère choisir un autre répertoire par défaut, on doit changer la $HOME de
l'utilisateur ftp ainsi par exemple :
root@Tractopelle:~# usermod -d /le/repertoire/perso/choisi ftp
(Merci Thom1)
Tout se passe dans le fichier /etc/vsftpd.conf, lequel est copieusement commenté et expliqué, et que j'ai modifié à ma guise. On autorise ici les utilisateurs anonymes mais ne leur donnons aucun droit, vsftpd sera exécuté par l'utilisateur non-provilégié ftp, le serveur tournera en mode standalone (et non en service inetd, c'est la directive "LISTEN") sur le port 20, qu'on aura pris soin d'autoriser en TCP vers Tractopelle dans les réglages du mode routeur de la Freebox :
anonymous_enable=YES local_enable=NO write_enable=NO local_umask=022 anon_mkdir_write_enable=NO dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log idle_session_timeout=300 nopriv_user=ftp ftpd_banner=Poopy.fr FTP Service, France (81). ls_recurse_enable=YES listen=YES
Vérifions les droits de /home/ftp avant toute chose. On se rendra compte que ftp/ appartient à root:root. Le but est de donner l'appartenance de ce répertoire à ftp:ftp et d'ajouter le bit "x" (via chmod +x) aux répertoires pour en permettre l'accès. Il nous faut au final quelque chose dans ce goût-là :
root@Tractopelle:~# ls -l /home/ dr-xr-xr-x 3 ftp ftp 80 2009-08-22 01:25 ftp/
Une fois ceci fait, lançons vsftpd en arrière-plan :
root@Tractopelle:~# vsftpd &
Ajoutons un fichier inutile afin de tester le listing du répertoire en FTP :
root@Tractopelle:~# echo 'Coucou' > /home/ftp/coucou.txt
On teste ? 8-)'''
Rendons-nous tout simplement sur ftp://poopy.fr, ou bien pour rester sur la ligne de commande, tapons :
root@Tractopelle:~# ftp poopy.fr
...et connectons-nous en « anonymous » en donnant comme mot de passe une adresse de courriel (même bidon). On devrait voir notre fichier « coucou.txt ».
C'est fini !
Si l'on désire que vsftpd se lance à chaque démarrage de l'ordinateur, ajoutons à
/etc/rc.d/rc.local la commande suivante et rendons le fichier rc.local exécutable :
root@Tractopelle:~# echo '/usr/sbin/vsftpd &' >> /etc/rc.d/rc.local root@Tractopelle:~# chmod +x /etc/rc.d/rc.local
Ça fonctionne pour Tractopelle, en tout cas : ftp://poopy.fr/ :-3