Very Secure Ftp Daemon (vsftpd) How To

Document original en anglais : VsftpdHowTo

Very Secure Ftp Daemon est install\xE9 comme serveur FTP par d\xE9faut sur Fedora et la suite autorise l'envoi de fichiers en anonyme mais pas le t\xE9l\xE9chargement pour les sites utilisant MiR.

vsftpd.conf

Le fichier de configuration /etc/vsftpd/vsftpd.conf suivant fonctionne sur un syst\xE8me Fedora Core 1 avec /var/spool/ftp/ appartenant \xE0 root.root et /var/spool/ftp/upload/ appartenant \xE0 vsftp.vsftp. vsftp est un utilisateur d\xE9fini manuellement avec no login activ\xE9 dans /etc/passwd: vsftpd:x:92:92:vsftpd:/var/spool/ftp:/sbin/nologin. Tu dois avoir les ports 20 and 21 ouvert pour que cela marche.

# Exemple de fichier de configuuration /etc/vsftpd/vsftpd.conf
#
# Les param\xE8tres compil\xE9s par d\xE9faut sont plut\xF4t parano\xEFaques. Ce fichier d'exmple
# rel\xE2che un peu tout \xE7a pour rendre le d\xE9mon ftp plus utilisable.
# Merci de lire vsftpd.conf.5 pour la liste des options par d\xE9faults.
#
# LIRE ATTENTIVEMENT: Ce fichier d'exemple N'EST PAS une liste exhaustive des options de vsftpd.
# Veuillez vous reporter \xE0 la page de manuel vsftpd.conf.5 pour avoir une id\xE9e compl\xE8te des
# capacit\xE9s de vsftpd.
#
# Allow anonymous FTP? (Attention - autoris\xE9 par d\xE9faut si vous commentez cette ligne).
anonymous_enable=YES
#
# D\xE9commmentez cette ligne pour autoriser les ustilisateurs locaux \xE0 se connecter.
#local_enable=YES
#
# D\xE9commentez ceci pour autoriser toutes les formes de commandes d'\xE9criture FTP.
# Ceci contr\xF4le le fait que les commandes FTP modifiant le syst\xE8me de fichiers sont
# autoris\xE9es ou pas. Ces commandes sont :
# STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE.
#write_enable=YES
#
# Le umask par d\xE9faut pour les utilisateurs locaux est 077. Vous voudrez peut-\xEAtre le d\xE9finir \xE0 022,
# si vos utilisateurs le souhaitent (022 is used by most other ftpd's)
local_umask=022
#
# D\xE9commentez ceci pour autoriser l'utilisateur FTP anonyme (anonymous) \xE0 envoyer des fichiers. Ceci n'a d'effet
# que si la variable write_enable d\xE9finie ci-dessus est activ\xE9e. Vous aurez \xE9galement besoin de cr\xE9er un r\xE9pertoire
# avec des droits en \xE9criture pour l'utilisateur FTP.
#anon_upload_enable=YES
#
# D\xE9commentez ceci si vous voulez que l'utilisateur FTP anonyme (anonymous) puisse cr\xE9er de nouveaux dossiers.
#anon_mkdir_write_enable=YES
#
# Active les messages de r\xE9pertoire, c'est-\xE0-dire les messages envoy\xE9s \xE0 l'utilisateur distant quand ils vont dans certains r\xE9pertoire.
dirmessage_enable=YES
#
# Active le log des envois/t\xE9l\xE9chargements.
xferlog_enable=YES
#
# V\xE9rifier que les transferts viennent bien du PORT 20 (ftp-data).
connect_from_port_20=YES
#
# Si vous voulez, vous pouvez faire en sorte que les fichiers envoy\xE9s par l'utilisateur anonyme (anonymous)
# appartiennent \xE0 un autre utilisateur. A noter qu'il n'est pas recommand\xE9 d'utiliser  "root" pour les fichiers envoy\xE9s.
#
chown_uploads=YES
chown_username=quelqu_un
#
# Vous pouvez modifier cette valeur pour donner l'emplacement de votre fichier de log. La valeur par d\xE9faut
# est donn\xE9e ci-dessous.
xferlog_file=/var/log/vsftpd.log
#
# Si vous voulez, vous pouvez avoir un fichier de log dans le format ftpd xferlog standard.
xferlog_std_format=YES
#
# Vous pouvez changer la valeur par d\xE9faut pour l'expiration d'une session sans activit\xE9.
#idle_session_timeout=600
#
# Vous pouvez changer la valeur par d\xE9faut pour l'expiration d'une attente de transfert de donn\xE9es.
#data_connection_timeout=120
#
# Il est recommand\xE9 que vous d\xE9finissiez sur votre syst\xE8me un utilisateur unique que le serveur ftp
# peut utiliser comme  un utilisateur totalement isol\xE9 et sans privil\xE8ge.
nopriv_user=vsftpd
#
# Activez ceci et le serveur reconna\xEEtra les demande ABOR asynchrones. Non recommand\xE9 pour des raisons de s\xE9curit\xE9
# (le code est non-trivial). Ne pas l'activer peut cependant perturber d'anciens clients FTP.
#async_abor_enable=YES
#
# Par d\xE9faut, le serveur pr\xE9tend accepter le mode ASCII mais, en r\xE9alit\xE9, ignore la requ\xEAte.
# Activez la valeur ci-dessous pour faire en sorte que le serveur accepte r\xE9ellement
# les transferts ftp en mode ASCII.
# Vous devez savoir qu'activer ascii_download_enable permet \xE0 des utilisateurs distants d'utiliser vos ressources I/O
# avec une commande comme "SIZE /big/file" en mode ASCII.
# Ces options ASCII sont s\xE9par\xE9es en envoi et t\xE9l\xE9chargement parce que vous voudrez peut-\xEAtre
# activer l'envoi  en mode ASCII (pour \xE9viter que l'envoi de scripts ou autres soit corrompu),
# sans le risque de DoS de SIZE et des t\xE9l\xE9chargements ASCII. ASCII doit \xEAtre activ\xE9 chez le client de toute fa\xE7on.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# Vous pouvez int\xE9gralement personnaliser la banni\xE8re de login.
ftpd_banner=Welcome to this development IMC upload FTP server.
#
# Vous pouvez sp\xE9cifier un fichier d'adresse mail anonymes \xE0 d\xE9sactiver. Apparemment utile
# pour combattre certaines attaques DoS.
#deny_email_enable=YES
# (param\xE8tre par d\xE9faut ci-dessous)
#banned_email_file=/etc/vsftpd.banned_emails
#
# Vous pouvez sp\xE9cifier une liste explicite d'utilisateurs locaux \xE0 chrooter dans leur r\xE9pertoire home.
# Si chroot_local_user est YES, alors cette liste devient une liste d'utilisateurs \xE0 ne pas chrotter.
#chroot_list_enable=YES
# (param\xE8tre par d\xE9faut ci-dessous)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# Vous pouvez activer l'option "-R" pour le ls int\xE9gr\xE9. Elle est d\xE9sactiv\xE9e par d\xE9faut
# pour \xE9viter que les utilisateurs distants ne soient capables de causer des I/O excessifs sur de gros sites
# Cependant, certains anciens clients FTP comme "ncftp" et "mirror" suppose
# la pr\xE9sence de l'option "-R", et donc il peut-\xEAtre n\xE9cessaire de l'activer..
#ls_recurse_enable=YES

#pam_service_name=vsftpd
#userlist_enable=YES
#Activ\xE9 pour le mode autonome.
listen=YES
tcp_wrappers=YES

# Si d\xE9fini \xE0 NO, toutes les demandes de t\xE9l\xE9chargement obtiendront un refus ('permission denied').
download_enable=NO

# Si activ\xE9, toutes les informations concernant les utilisateur et les groupes dans les listings de r\xE9pertoires seront remplac\xE9es par "ftp".
hide_ids=YES

# Activ\xE9, il emp\xEAche vsftpd de demander un mot de passe pour 'anonymous'.
# L'utilisateur anonyme sera directement connect\xE9.
no_anon_password=YES

# Cette option repr\xE9sente un r\xE9pertoire dans lequel vsftpd essaiera d'aller apr\xE8s un login anonyme.
# Un \xE9chec est ignor\xE9 en silence.
anon_root=/var/spool/ftp

# Cette option donne une liste de commande FTP autoris\xE9es, s\xE9par\xE9es par des virgules
# (post login. USER, PASS et QUIT sont toujours pre-login). Les autres commandes son rejet\xE9es
# Ceci est une m\xE9thode puissante pour r\xE9ellement contr\xF4ler un serveur FTP.
# Exemple: cmds_allowed=PASV,RETR,QUIT
#cmds_allowed=LS,PUT,QUIT

# Ceci est le nom d'utilisateur que nous utilisons pour travailler avec un FTP anonyme.
# Le r\xE9pertoire racine de cet utilisateur est la racine de l'aire de FTP anonyme.
ftp_username=vsftpd

TODO

  • Trouver le moyen d'emp\xEAcher vsftps de noter les adresses IP dans vsftpd.log !
  • Trouver un script shell \xE0 lanver via cron pour supprimer les fichiers upload\xE9s depuis plus de deux jours.

Reference Docs

-- CyberFish - 23 Jan 2006 Traduit de l'anglais (https://docs.indymedia.org/edit/Sysadmin/VsftpdHowTo) au fran\xE7ais par Cyberfish.
Topic revision: r3 - 24 Jan 2006, IntRigeri
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback