Vsftpd (Debian)
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
- Vsftpd — installation et configuration sur RHEL/CentOS
- Authentication data on MySQL — authentification par backend MySQL (utilisateurs virtuels)
- Anonymous vsftp — configuration d'un accès FTP anonyme