Contents
Installation et configuration du serveur ftp vsftpd.
Introduction
Cet article a pour but de détailler les différentes étapes pour mettre en place un serveur de partage de fichier FTP, en utilisant vsftpd (Very Secure FTP Daemon).
Installation
Comme à l'habitude, l'installation est très simple avec apt-get ou Aptitude. En tant que root tapez :
aptitude install vsftpd
Après l'instalation, le serveur démarre automatiquement et écoute le port TCP par défaut.
Vous pouvez vérifier cela grâce à netstat :
# netstat -npl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 22468/vsftpd
Si le serveur n'est pas derrière un firewall, il est recommandé d'arrêter vsftpd avant de le configurer.
/etc/init.d/vsftpd stop
ou
service vsftpd stop
Configuration
Le fichier de configuration pour ce serveur est /etc/vsftpd.conf. Vous pouvez trouver des exemples de fichier de configuration dans /usr/share/doc/vsftpd/EXAMPLE.
Le fichier de configuration a trois types d'options :
- BOOLEAN OPTIONS - qui peuvent être YES ou NO;
- NUMERIC OPTIONS - comme un temps en seconde, un numéro de port
STRING OPTIONS - un chemin de dossier ou de fichier /var/run/vsftpd/;
Si certaines options ne sont pas présentes dans le fichier configuration, le serveur utilisera les paramètres par défaut (voir man vsftpd.conf).
Comptes Anonymes
Par défaut seule la connexion anonyme est autorisée, elle a accès au répertoire /srv/ftp/ .
Si vous voulez le désactiver, changez :
anonymous_enable=NO
Pour activer le téléversement anonymes, configurez :
anon_upload_enable - autorise le téléversement de fichier pour les utilisateurs anonymes.
anon_mkdir_write_enable - autorise la création de répertoire.
anon_root=/data/directory - permet de changer le dossier par défaut.
Pour autoriser le changement de propriétaire des fichiers, configurez :
chown_uploads=YES chown_username=utilisateur
Contrôle les accès utilisateurs
Afin d'activer l'autorisation pour les utilisateurs locaux, décommentez :
local_enable=YES
Pour autoriser l'accès en écriture :
write_enable=YES
Gestion des utilisateurs
Confinement des utilisateurs
Les comptes utilisateurs peuvent avoir accès aux fichiers de tout le système ce qui n'est pas toujours souhaitable et peux aider à compromettre la machine, ils peuvent être confinés en modifiant vsftpd.conf :
chroot_local_user=YES
La racine de leur FTP sera alors leur répertoire personnel.
Malgré tout, un compte peut être utilisé pour se connecter ailleurs qu'au ftp : ssh, getty (login du terminal) sont des exemples. Il aura alors quand même accès au reste du système par le shell. Vous pouvez configurer les services donnés en exemple pour bloquer le compte ou pour le confiner, mais la solution généraliste est de désactiver le shell pour l'utilisateur.
Pour cela on assigne le shell de l'utilisateur vers false, un simple binaire qui renvoie un signal d'erreur :
usermod -s /bin/false
Il faut ensuite ajouter false à la liste des shells :
/bin/false >> /etc/shells
Redémarrer le service
Pour que les modifications du fichier vfstpd.conf soient prises en compte, il faut relancer le service ftp :
service vsftpd restart
ou, si il avait été arrété :
service vsftpd start
Voir aussi :
http://vsftpd.beasts.org/ - Site officiel
http://vsftpd.beasts.org/vsftpd_conf.html - Fichier de configuration pour vsftp
https://wiki.debian-facile.org/doc:reseau:vsftpd (fr) : Plus d'informations sur le wiki de debian-facile.org