Vsftpd (Debian)

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Serveur FTP (démon) — variante Debian/Ubuntu
Paquet vsftpd
Config /etc/vsftpd.conf
Service vsftpd
Contexte Debian/Ubuntu — voir Vsftpd pour RHEL/CentOS
Voir aussi Vsftpd · Authentication data on MySQL

Installation et configuration par défaut de vsftpd sous Debian/Ubuntu. Le principe général (PAM, chroot, utilisateurs virtuels) est identique à la variante RHEL ; seuls l'emplacement du fichier de configuration et la commande d'installation diffèrent.

Installation

aptitude install vsftpd
# ou : apt install vsftpd

Directives principales de /etc/vsftpd.conf

Le fichier livré par le paquet Debian est très commenté ; l'essentiel des directives utiles en pratique :

Directive Valeur Rôle
listen YES Fonctionne en démon autonome (standalone), pas via inetd
anonymous_enable NO Désactive l'accès anonyme
local_enable YES Autorise la connexion des utilisateurs système locaux
write_enable YES Autorise l'upload/les commandes d'écriture FTP
local_umask 022 Umask appliqué aux fichiers créés par les utilisateurs locaux
dirmessage_enable YES Affiche un message par répertoire (fichier .message)
use_localtime YES Affiche les dates de listing en heure locale plutôt qu'en GMT
xferlog_enable YES Journalise les transferts
xferlog_file /var/log/vsftpd.log Emplacement du journal des transferts
connect_from_port_20 YES Force les connexions de données en mode actif à partir du port 20 (ftp-data)
idle_session_timeout 300 Délai (s) avant déconnexion d'une session inactive
data_connection_timeout 120 Délai (s) avant coupure d'une connexion de données bloquée
chroot_local_user YES Enferme chaque utilisateur local dans son répertoire personnel
chroot_list_enable YES Active une liste d'exceptions au chroot (chroot_list_file)
secure_chroot_dir /var/run/vsftpd/empty Répertoire vide utilisé comme jail chroot interne (hors accès filesystem)
pam_service_name vsftpd Nom du service PAM utilisé pour l'authentification
rsa_cert_file /etc/ssl/private/vsftpd.pem Certificat pour les connexions chiffrées (FTPS)

Points d'attention notés dans les commentaires du fichier par défaut :

  • ASCII mode (ascii_upload_enable/ascii_download_enable,
 désactivés par défaut) : sur certains serveurs FTP, le mode ASCII permet un déni de
 service via la commande SIZE sur un gros fichier — vsftpd n'est pas
 vulnérable à cette attaque précise mais laisse le mode désactivé par défaut par prudence.
  • chroot_local_user : restreindre les utilisateurs à leur répertoire personnel est
 recommandé, mais l'utilisateur ne doit alors pas avoir de droit d'écriture à la racine de
 ce chroot (risque d'évasion documenté dans la FAQ amont du projet).
  • listen vs listen_ipv6 : ces deux directives sont mutuellement exclusives dans
 le fichier de configuration — un seul socket d'écoute (IPv4 ou IPv6) par instance vsftpd
 (à vérifier selon version : des configurations récentes permettent de faire écouter les
 deux via deux instances distinctes du service).

Démarrage du service

/etc/init.d/vsftpd restart

Ajout d'un utilisateur

Avec local_enable=YES, tout compte système local peut se connecter en FTP avec son mot de passe Unix — pas de configuration supplémentaire côté vsftpd nécessaire :

adduser toto

Voir aussi