Installation du serveur FTP vsftpd sur Debian Woody. Auteur : Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Vsftpd est un serveur FTP assez simple à paramétrer et considéré comme sécurisé. Les manipulations décrites ont été faites sur Debian GNU/Linux 3.0 (Woody) et vsftpd 1.0.0-2.
Le serveur doit être lancé par le lanceur de service inetd, ou mieux, xinetd.
-
La plupart des commandes qui suivent doivent être exécutées en root.
Installer vsftpd, xinetd, et le client ftp, qui permettra de tester en local le fonctionnement du serveur :
- apt-get install vsftpd xinetd ftp
Dans le fichier xinetd.conf, ajouter les lignes:
-
Les fichiers de configuration se trouvent généralement dans /etc.
service ftp
{
- socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/vsftpd
}
Redémarrez le serveur :
- /etc/init.d/xinetd restart
Configuration du serveur ftp anonyme:
Créer le dossier qui contiendra les documents à mettre en ligne : On peut le créer, par exemple, dans /usr/local/share, mais tout autre emplacement peut convenir :
- cd /usr/local/share mkdir ftp
On donne la propriété de ce dossier à root :
- chown root.root ftp
-
lancer la commande ls –l avant et après, et comparer le retour.
Utilisateur : on peut aussi l’appeller ftp, on lui affecte le dossier précédent, et on désactive sa possibilité de se connecter sur la machine.
- adduser --home /usr/local/share/ftp --disabled-login ftp
Il n’a pas de mot de passe: lors de la connexion anonyme, tout mot de passe pourra convenir, et on pourra demander, par exemple, l’adresse e-mail de l’utilisateur, qu’on pourra éventuellement récupérer dans le fichier de log : /var/log/vsftpd.log.
Modification du fichier vsftpd.conf :
Activer la ligne nopriv_user et indiquer le nom de connexion :
nopriv_user=ftp
Pour reconnaître que vous êtes bien sur votre serveur, activez et modifiez :
ftpd_banner=Bienvenue sur mon serveur Ftp.
Créez quelques fichiers et sous-dossiers dans le dossier /usr/local/share/ftp.
-
Pour créer un fichier : touch nom_fichier
Pour écrire dans un fichier : echo texte-à-écrire>nom_fichier
Placez-vous dans un dossier particulier, par exemple celui de root, et créez un fichier.
A ce stade, votre serveur ftp anonyme est opérationnel.
Testez-le en local :
$ ftp localhost
Connected to localhost.
220 Bienvenue sur mon serveur Ftp.
Name (localhost:root): anonymous Nom de l’utilisateur anonyme (ou ftp)
331 Please specify the password.
Password: Une lettre suffit
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Vous pouvez ici utiliser les commandes ls ou dir pour visualiser le contenu des dossiers, cd dossiers, cd .. pour changer de dossier ou remonter d’un niveau, get fichier pour télécharger un fichier que vous retrouverez alors dans votre dossier (root), quit pour fermer la session. Vous êtes emprisonné dans le dossier ftp, vous ne pouvez pas envoyer de fichier avec la commande put. Vous ne pouvez pas non plus vous connecter en tant qu’utilisateur habituel de la machine.
Placez-vous sur un ordinateur distant (une machine Windows peut encore convenir pour cet usage) et lancez un client ftp.
Nom d’hôte : indiquez l’adresse IP du serveur
Utilisateur : anonymous (ou ftp)
Mot de passe : une lettre quelconque.
Après connexion, vous pouvez naviguer dans l’arborescence du dossier ftp, vous pouvez télécharger des fichiers dans le sens serveur-client, mais pas en sens inverse.
Configuration du serveur authentifié.
Dans le fichier vsftpd.conf, on désactive l’accès anonyme en spécifiant explicitement :
anonymous_enable=NO
Le serveur anonyme peut rester actif et coexister avec le serveur authentifié.
Et on active :
local_enable=YES
On peut alors se connecter en tant qu’utilisateur habituel de la machine, avec son mot de passe. A la connexion, on tombe dans son dossier personnel, mais on peut naviguer dans toute l’arborescence. On peut télécharger n’importe quel fichier du disque, mais on ne peut pas encore en placer.
Dans le fichier vsftpd.conf, on désactive la ligne:
write_enable=YES
Un utilisateur habituel peut alors écrire et effacer dans son dossier personnel, root peut écrire et effacer n’importe où sur le disque.
Droits sur les fichiers :
A partir d’une machine distante, un utilisateur place un fichier dans son dossier personnel. Examinez les droits sur ce fichier. Certains clients ftp l’indiquent, sur le serveur, on tape la commande :
ls -l
dans le dossier de l’utilisateur.
L’utilisateur a le droit de lecture (r) et d’écriture (w) sur ses fichiers, mais les autres n’ont aucun droit. Si un autre utilisateur* se connecte, il ne peut pas télécharger.
* Un autre utilisateur que root, qui a tous les droits, même quand il se connecte à distance par ftp. Pour ces manipulations, créez au moins 2 utilisateurs ordinaires sur votre serveur.
Dans le fichier vsftpd.conf, on désactive la ligne:
local_umask=022
Un utilisateur se connecte et place un fichier dans son dossier. Ce fichier a maintenant les droits de lecture pour les autres.
Un autre utilisateur peut se connecter et télécharger ce fichier.
Cette remarque a son importance si vous voulez monter ensuite un serveur Web.
Confinement des utilisateurs dans leur dossier.
Pour que les utilisateurs ne puissent pas naviguer dans toute l’arborescence, on ajoute au vsftpd.conf, par exemple à la ligne 91 :
chroot_local_user=YES
Testez la connexion : tous les utilisateurs, même root, ne peuvent plus remonter plus haut que leur dossier personnel.
Pour donner le droit à certains utilisateurs (au moins root) de naviguer dans l’arborescence, activer :
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Puis créer, dans le dossier etc, le fichier vsftpd.chroot_list, qui contiendra les login des utilisateurs autorisés.