Installation

Sous GNU/Linux Debian, rien de compliquer:

apt-get install vsftpd

Configuration

/etc/vsftpd.conf

Ceci est le fichier principal de configuration. L'explication de ma config est disponible dans les commentaires. Pour plus de détails sur les possibilités de ce fichier, regardez les liens ci-dessous ou man vsftpd.conf.

debian:~# cat /etc/vsftpd.conf
# Ceci configure vsFTPd en mode "standalone"
listen=YES

# On désactive les connexions anonymes
anonymous_enable=NO

# On active les non-anonymes
local_enable=YES

# Pour des raisons de sécurité on interdit toute action d'écriture:
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

# Dossier contenant les options propres à chaque utilisateurs
# Les options spécifiques à un utilisateur sont situés dans /etc/vsftpd/vsftpd_user_conf/user
user_config_dir=/etc/vsftpd/vsftpd_user_conf

# AllowUser.lst permet de spécifier les utilisateurs autorisés à se connecter
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd/AllowUser.lst

# Permet de voir les utilisateurs connectés avec la commande: ps -aef | grep vsftpd
setproctitle_enable=YES

# On veut que les utilisateurs restent dans leur home directory
chroot_local_user=YES

# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES

# Activer les logs de connexion et d'uploads/downloads.
xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log - fichier par défaut

# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES

# Bannière lors de la connexion
ftpd_banner=Bienvenue sur le FTP de Nemako


# Debian customization
#
# Some of vsftpd's settings don't fit the Debian filesystem layout by
# default.  These settings are more Debian-friendly.
#
# This option should be the name of a directory which is empty.  Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd

# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd

# Paramètres SSL
# Activation de SSL et support de TLS uniquement
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

# Emplacement du certificat
# Pour générer ce certificat utiliser la commande suivante
# openssl req -x509 -nodes -days 730 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem
# suivit d'un chmod 600 vsftpd.conf
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

/etc/vsftpd/vsftpd_user_conf/

Ce dossier contient les fichiers permettant de définir des options spécifiques pour chaque utilisateurs. Les options sont définis dans un fichier portant le même nom que le login de l'utilisateur. Dans mon cas j'ai créé un fichier __/etc/vsftpd/vsftpd_user_conf/fred_.

debian:~# cat /etc/vsftpd/vsftpd_user_conf/fred
# Droit de lecture
anon_world_readable_only=NO

# Droit d'ecriture (download et upload)
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

# Masque par défaut - chmod des dossiers en 755 et fichiers en 644
local_umask=022

/etc/vsftpd/AllowUser.lst

Ce fichier les utilisateurs autorisés à se loguer sur le serveur. Il faut un nom d'utilisateur par ligne. Dans mon exemple, seul fred est autorisé:

debian:~# cat /etc/vsftpd/AllowUser.lst
fred

Clients FTP supportant SSL

Windows

Mac OS X

Linux

  • ftp-ssl : client en ligne de commande (apt-get install ftp-ssl)
  • Kasablanca : client ftp basé sur KDE

Liens