Outils pour utilisateurs

Outils du site


informatique:vsftpd

Page à finir

VSFTP

 

Cette brève présente un logiciel serveur FTP pour plate-forme Unix de plus, léger, rapide, conçu élégamment avec une volonté d'en faire un logiciel “sécurisé”, en le conservant aussi simple que possible, et en séparant les privilèges de fonctionnement de chacun des mécanismes du logiciel.

La tendance de développement des logiciels serveurs FTP à l'heure actuelle (ProFTPd, PureFTPd, WU-FTPD, etc.) est plutôt à l'enrichissement incontrôlable en fonctionnalités à l'utilité douteuse, avec les effets de bord qu'on connaît (les trous de sécurité critiques dans WU, la consommation mémoire de ProFTPd, la configuration inhumaine de glFtpD, etc.).

Dans ce document, nous allons simplement décrire l'installation de vsftpd et sa mise en place progressive dans différentes configurations courantes.

''' Installation '''

Téléchargez tout d'abord la dernière version du logiciel depuis le site FTP ftp://vsftpd.beasts.org/users/cevans/ . Une page web, où vous trouverez de la promotion et des références pour vsftpd, ainsi que les documents écrits par son auteur détaillant sa conception et son architecture est également disponible sur http://vsftpd.beasts.org/ (ou http://www.vsftpd.org/ ).

L'installation, décrite dans le fichier INSTALL de la distribution source, est simplissime : “make” à la racine du répertoire, et le fichier binaire “vsftpd” est généré. La commande “make install” (en tant que root) installe ensuite éventuellement l'exécutable dans /usr/local/sbin/, et les pages de manuel de vsftpd(8) et vsftpd.conf(5) dans /usr/local/man/. Recopiez ensuite le fichier de configuration fourni, vsftpd.conf, dans /etc.

vsftpd doit être lancé par un métadémon comme inetd ou xinetd. C'est un choix délibéré de l'auteur de vsftpd de ne pas intégrer la gestion d'un mode autonome, comme le permet ProFTPd, par exemple. Ça n'est pas particulièrement gênant, un logiciel comme xinetd intègre toutes les fonctionnalités de contrôle des connexions et des accès nécessaires, et un noyau moderne permet de mettre facilement en oeuvre de la limitation de bande passante.

Dans le cas d'inetd, par exemple, une ligne comme celle-ci, ajoutée à /etc/inetd.conf, et dans le cas où votre système fournit TCP-Wrappers, suffit :

ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd

L'équivalent dans xinetd.conf serait :

service ftp {

      socket_type     = stream
      protocol        = tcp
      wait            = no
      user            = root
      server          = /usr/local/sbin/vsftpd

}

Ensuite, veillez à ce que les utilisateurs “ftp” et “nobody” existent, avec un répertoire pour l'utilisateur ftp, ainsi qu'un répertoire /usr/share/empty, vide. Ces valeurs, dont nous allons constater l'utilité, pourront être modifiées en les affinant si nécessaire dans la configuration.

''' Configuration '''

Une fois le fichier de configuration vsftpd.conf placé dans /etc, les lignes adéquates ajoutées dans la configuration du métadémon, et ce dernier rechargé, vérifions les derniers points et connectons nous au serveur. Quelques détails peuvent varier selon votre installation ou votre système.

$ id nobody uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)

$ id ftp uid=103(ftp) gid=103(ftp) groups=103(ftp)

$ ls -a /usr/share/empty/

./ ../

$ grep ^ftp /etc/inetd.conf ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd

$ sudo kill -1 `cat /var/run/inetd.pid`

Il devrait déjà être possible de se connecter :

$ ftp localhost Connected to localhost. 220 ready, dude (vsFTPd 1.0.0: beat me, break me) Name (localhost:seyrat): ftp 331 Please specify the password. Password: 230 Login successful. Have fun. Remote system type is UNIX. Using binary mode to transfer files. ftp>

Nous sommes ici connectés en utilisateur anonyme, emprisonnés dans le répertoire de celui-ci (~ftp dans ce cas). Il est impossible de se connecter à ce stade en tant qu'utilisateur habituel de la machine, avec un login et un mot de passe :

$ ftp localhost Connected to localhost. 220 ready, dude (vsFTPd 1.0.0: beat me, break me) Name (localhost:seyrat): seyrat 530 This FTP server is anonymous only. Login failed. ftp>

De même, la fonction d'upload n'est pas encore disponible :

$ ftp localhost Connected to localhost. 220 ready, dude (vsFTPd 1.0.0: beat me, break me) Name (localhost:seyrat): ftp 331 Please specify the password. Password: 230 Login successful. Have fun. Remote system type is UNIX. Using binary mode to transfer files. ftp> put test local: test remote: test 200 PORT command successful. Consider using PASV. 500 Unknown command. ftp>

Vous le constatez, la configuration par défaut de vsftpd est particulièrement restrictive :-)

Étudions-la de plus près. Le fichier de configuration fourni dans la distribution source de vsftpd, vsftpd.conf, que vous devez avoir placé dans /etc, est très court une fois toutes les lignes commentées et les explications dissimulées :

[~/vsftpd-1.0.1]$ egrep -v '^(#|$)' vsftpd.conf anonymous_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES

- anonymous_enable autorise l'accès anonyme au serveur (comportement par

      défaut).

- dirmessage_enable active l'affichage des fichiers .message à l'entrée dans

      les répertoires.

- xferlog_enable active un journal des téléchargements. - connect_from_port_20 active (bien que ça ne soit pas le comportement par

      défaut du serveur) l'utilisation du port source 20 pour les PORT.

Les trois dernières directives ne sont là que pour outrepasser le comportement par défaut du serveur, et le rendre un petit peu plus traditionnel, mais il est amusant de remarquer que vsftpd est parfaitement capable de fonctionner en tant que serveur FTP à accès anonyme en lecture uniquement, avec un fichier de configuration entièrement vide.

Observons d'ailleurs le comportement des processus impliqués lors de l'établissement de cette session :

En attente de mot de passe :

root 7111 0.1 0.3 2356 840 ? S 18:17 0:00 \_ vsftpd

nobody 7112 0.0 0.3 2368 848 ? S 18:17 0:00 \_ vsftpd

# ls -l /proc/7111/root lrwxrwxrwx 1 root root 0 Jun 10 18:17 /proc/7111/root → # ls -l /proc/7112/root lrwxrwxrwx 1 root root 0 Jun 10 18:17 /proc/7112/root → /usr/share/empty/ Le processus lancé initialement par inetd, avec les “pleins pouvoirs” (fonctionnement root non mis en cage) sert de maître pour contrôler les invocations des différents processus vsftpd qui couvrent le déroulement d'une session donnée (authentification/transferts/fermeture). Ainsi il n'est pas celui en attente de l'authentification, mais laisse agir son fils qui, lui, a été lancé de manière restreinte dans le répertoire vide /usr/share/empty/ en tant qu'utilisateur non privilégié. Une fois l'authentification passée, le processus principal lance le processus chargé du contrôle de la session de l'utilisateur authentifié, en le restreignant à son identité (ici ftp) et à son répertoire personnel (soit /home/ftp). Ensuite, le processus “maître” (ici 7111), qui n'a plus de raison de conserver son privilège root et sa racine commune à celle du système restreint sa racine et cède son identité pour une non privilégiée (on dit parfois qu'il “s'automutile”) : nobody 7111 0.0 0.3 2368 864 ? S 18:17 0:00 \_ vsftpd ftp 7119 0.0 0.3 2392 896 ? S 18:18 0:00 \_ vsftpd # ls -l /proc/7111/root lrwxrwxrwx 1 root root 0 Jun 10 18:18 /proc/7111/root → /usr/share/empty/ # ls -l /proc/7119/root lrwxrwxrwx 1 root root 0 Jun 10 18:18 /proc/7119/root → /home/ftp/ ===Anonymous et local user=== À ce stade, nous n'avons qu'un serveur FTP anonyme sans possibilité d'upload. En ajustant la configuration, rendons ce serveur disponible pour les utilisateurs locaux de la machine, sans accès anonyme cette fois : on modifie une ligne de configuration, à la place de : 'anonymous_enable=YES' on place : 'local_enable=YES' Et on désactive l'accès anonyme en spécifiant explicitement : 'anonymous_enable=NO' Cette fois-ci, une connexion non-anonyme fonctionne : $ ftp localhost Connected to localhost. 220 ready, dude (vsFTPd 1.0.0: beat me, break me) Name (localhost:seyrat): 331 Please specify the password. Password: 230 Login successful. Have fun. Remote system type is UNIX. Using binary mode to transfer files. ftp> Toutefois … ftp> put engel.png local: engel.png remote: engel.png 200 PORT command successful. Consider using PASV. 500 Unknown command. ===Upload=== Impossible d'uploader … Il suffit de décommenter la ligne '#write_enable=YES' de la configuration. Et l'upload est maintenant possible : ftp> put test local: test remote: test 200 PORT command successful. Consider using PASV. 150 Go ahead make my day^W^W^Wsend me the data. 226 File receive OK. ===chroot_list=== Par défaut les utilisateurs (même non-anonymes) sont placés en cage dans leur répertoire personnel par la directive implicite chroot_local_user=YES. En spécifiant ensuite : 'chroot_list_enable=YES' et 'chroot_list_file=/etc/vsftpd.chroot_list' les utilisateurs dont les logins seront contenus dans /etc/vsftpd.chroot_list ne seront -pas- mis en cage. Si chroot_local_user est à NO, la liste contient les utilisateurs qui doivent l'être, au contraire. Il existe de la même manière une directive userlist_enable (associée à userlist_deny et userlist_file) pour autoriser ou interdire explicitement les connexions de certains utilisateurs locaux. ===Zone Upload=== La configuration d'une zone d'upload pour un utilisateur anonyme est également simple. Par défaut, l'utilisateur anonyme ne peut pas écrire de fichiers sur le serveur : il est nécessaire dans un premier temps d'activer la directive de configuration : 'anon_upload_enable=YES' Voire, pour lui permettre également de créer des répertoires : 'anon_mkdir_write_enable=YES' Il est de plus nécessaire de procurer des permissions correctes au répertoire utilisé pour les uploads. Il est nécessaire que celui-ci soit en effet disponible en écriture pour l'utilisateur gérant la session anonyme (ftp dans nos exemples), sans pour autant faire en sorte que l'utilisateur ftp possède le répertoire. Ainsi, on positionne les droits d'écriture pour la catégorie “autres”, ou, mieux, pour un groupe dédié auquel seul appartient l'utilisateur “ftp”. Ainsi : $ ls -ld ~ftp/upload drwxrwxr-x 2 root ftp 4096 Jun 18 15:12 /ftp/upload/ Et, en cas d'upload de fichier : ftp> pwd 257 “/upload” ftp> put todo local: todo remote: todo 200 PORT command successful. Consider using PASV. 150 Go ahead make my day^W^W^Wsend me the data. 226 File receive OK. 40 bytes sent in 0.00 secs (558.0 kB/s) ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw——- 1 103 101 40 Jun 18 13:27 todo 226 Directory send OK. ftp> delete todo 500 Unknown command. Il ne sera pas possible d'écrire par dessus ce fichier. Plus intéressant, il n'est pas non plus possible par défaut de le télécharger depuis cet emplacement. Pour se faire, il faut changer le umask de l'utilisateur anonyme à l'aide de anon_umask, avant de réaliser les uploads. Il est également possible de restreindre plus encore les privilèges d'exécution du processus vsftpd non privilégié (lancé au moment de l'attente d'authentification puis lors de l'automutilation) en lui dédiant un utilisateur (par défaut nobody). Il suffit de créer cet utilisateur non-privilégié (par exemple vsftpd) et de le spécifier par la directive nopriv_user=vsftpd. De même, la racine vide dans cette situation (par défaut /usr/share/empty) peut être spécifiée par secure_chroot_dir. ==en plus== Serveur FTP - vsftpd Un serveur FTP est très utile pour permettre à des usagers d'accéder à certains de nos fichiers sans consommer beaucoup de ressource. Nous allons voir comment mettre en oeuvre un serveur FTP sous Linux. Le serveur FTP choisi est vsftpd et la distribution est Suse. Installation Installez vsftpd à l'aide de votre gestionnaire de paquet où à l'aide des sources. Sous Suse, il est inclus sur les CD ou DVD Configuration Un fichier de configuration est inclus avec ce serveur FTP, il se nomme vsftpd.conf et devrait être situé dans le répertoire etc. Le fichier inclus permet d'avoir un serveur FTP qui accepte les connexions anonymes seulement. La chaîne ftpd_banner, permet de définir un message lorsqu'un usager se connecte ftpd_banner=“Bienvenue au serveur ftp La boîte à prog.” Si vous désirez avoir un accès passif, vous devez mettre la chaîne pasv_enable à yes. De plus, vous devez ajouter pasv_min_port=9999 pasv_max_port=9999 Si vous désirez démarré vsfpd en tant que programme, listen doit être à yes. Si vous mettez cette chaîne à no, sous Suse vous allez devoir activer vsftp en tant que service. Activez ce service à partir de yast xinetd (service réseau). N'oubliez par d'ouvrir le port 21 si vous avez un pare-feu, de plus activé le port 20 et 9999 si vous avez activé le mode passif. Sous Suse, le répertoire pour le serveur FTP est: /srv/ftp/. Les usagers du FTP verront les fichiers qui s'y trouvent. Les usagers qui ont un compte sur la machine peuvent accéder au FTP avec leur nom d'usager et mot de passe si la chaîne local_enable est à yes. <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> ==Détail du fichier de configuration== ===Options de configuration de vsftpd=== [ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-2.0.5/vsftpd.conf Fichier de configuration original] Bien que vsftpd n'offre pas forcément le même degré de personnalisation que d'autres serveurs FTP courants, il fournit suffisamment d'options pour répondre aux besoins de la plupart des administrateurs. Étant donné que sa gamme de fonctionnalités n'est pas excessivement vaste, les erreurs pragmatiques et de configuration sont plus restreintes. Toute configuration de vsftpd est traitée par son fichier de configuration, /etc/vsftpd/vsftpd.conf. Chaque directive apparaît sur sa propre ligne au sein du fichier et suit le format suivant : <directive>=<value> Pour chaque directive, remplacez d'une part <directive> par une directive valide et d'autre part <value> par une valeur valide. 30px'Important' Dans une directive, aucun espace ne doit figurer entre la <directive>, le signe égal et l'élément <value>. Les lignes de commentaire doivent être précédées par un signe dièse (#) et ne sont pas prises en compte par le démon. Pour obtenir une liste complète de toutes les directives disponibles, reportez-vous à la page de manuel de vsftpd.conf. 30px'Important' Pour obtenir un aperçu des différentes manières de sécuriser vsftpd, reportez-vous au chapitre intitulé Sécurité de serveur du Guide de sécurité de StartCom Enterprise Linux. Ci-dessous figure une liste des directives les plus importantes figurants dans /etc/vsftpd/vsftpd.conf. Toute directive ne se trouvant pas explicitement dans le fichier de configuration de vsftpd se voit attribuer la valeur par défaut. ===Options pour le démon=== Ci-dessous figure une liste des directives contrôlant le comportement général du démon vsftpd. * 'listen' — Lorsque cette option est activée, vsftpd est exécuté en mode autonome. StartCom Enterprise Linux attribue la valeur YES. Cette directive ne peut pas être utilisée de concert avec la directive listen_ipv6. - La valeur par défaut est 'NO'. * 'listen_ipv6' — Lorsque cette option est activée, vsftpd est exécuté en mode autonome, mais n'écoute que l'interface de connexion (ou socket) IPv6. Cette directive ne peut pas être utilisée de concert avec la directive listen. - La valeur par défaut est' NO'. * 'session_support' — Lorsque cette option est activée, vsftpd tente de maintenir les sessions de connexion pour chaque utilisateur par le biais de module d'authentification enfichables (ou PAM de l'anglais Pluggable Authentication Modules). Reportez-vous au Chapitre 15 pour obtenir de plus amples informations sur PAM. Si l'ouverture de sessions n'est pas nécessaire, la désactivation de cette option permet à vsftpd de tourner avec moins de processus et avec des privilèges moindres. - La valeur par défaut est' YES'. ===Options de connexion et contrôles d'accès=== Ci-dessous figure une liste des directives contrôlant le comportement de connexion et les mécanismes de contrôle d'accès. * 'anonymous_enable' — Lorsque cette option est activée, des utilisateurs anonymes sont autorisés à se connecter. Les noms d'utilisateur anonymes (dits anonymous) et ftp sont acceptés. - La valeur par défaut est' YES'. Reportez-vous à la Section 'Options pour les utilisateurs anonymes' pour obtenir une liste des directives ayant<br/> un impact sur les utilisateurs anonymes. * 'banned_email_file' — Si la directive deny_email_enable a pour valeur YES, elle spécifie le fichier contenant une liste des mots de passe de messagerie anonymes dont l'accès au serveur est refusé. - La valeur par défaut est'/etc/vsftpd.banned_emails'. * 'banner_file' — Spécifie le fichier contenant du texte affiché lorsqu'une connexion est établie avec le serveur . Cette option annule tout texte spécifié dans la directive ftpd_banner. - Il n'existe pas de valeur par défaut pour cette directive. * 'cmds_allowed' — Spécifie une liste délimitée par des virgules, des commandes FTP permises par le serveur. Toutes les autres commandes sont refusées. - Il n'existe pas de valeur par défaut pour cette directive. * 'deny_email_enable' — Lorsque cette option est activée, tout utilisateur anonyme employant des mots de passe de messagerie spécifiés dans /etc/vsftpd.banned_emails se voit refuser l'accès au serveur. Le nom du fichier référencé par cette directive peut être spécifié à l'aide de la directive banned_email_file. - La valeur par défaut est' NO'. * 'ftpd_banner' — Lorsque cette option est activée, la chaîne spécifiée dans cette directive est affichée lorsque qu'une connexion au serveur est établie. Cette option peut être annulé par la directive banner_file. - Par défaut, vsftpd affiche sa bannière standard. * 'local_enable' — Lorsque cette option est activée, les utilisateurs locaux sont autorisés à se connecter au système. - La valeur par défaut est 'NO'. Reportez-vous à la Section 14.5.4 pour obtenir une liste des directives ayant un impact sur les utilisateurs locaux. * 'pam_service_name' — Spécifie le nom de service PAM pour vsftpd. - Bien que la valeur par défaut soit 'ftp', sous StartCom Enterprise Linux cette valeur est vsftpd. * 'tcp_wrappers' — Lorsque cette option est activée, les enveloppeurs TCP sont utilisée pour accorder l'accès au serveur. De plus, si le serveur FTP est configuré sur de multiples adresses IP, l'option VSFTPD_LOAD_CONF peut être utilisée pour charger des fichiers de configuration différents en fonction de l'adresse IP demandée par le client. Pour obtenir de plus amples informations sur les enveloppeurs TCP, reportez-vous au Chapitre 16. - Bien que la valeur par défaut soit 'NO, sous StartCom Enterprise Linux la valeur est YES. * 'userlist_deny' — Lorsque cette option est utilisée de concert avec la directive userlist_enable et que sa valeur est NO, tous les utilisateurs locaux se voient refuser l'accès à moins que le nom d'utilisateur ne figure dans le fichier spécifié par la directive userlist_file. Étant donné que l'accès est refusé avant même que le client ne puisse saisir son mot de passe, le choix de la valeur NO pour cette directive empêche les utilisateurs de soumettre des mots de passe non cryptés sur le réseau. - La valeur par défaut est 'YES'. * 'userlist_enable' — Lorsque cette option est activée, les utilisateurs mentionnés dans le fichier spécifiés par la directive userlist_file se voient refuser l'accès. Étant donné que l'accès est refusé avant même que le client ne puisse saisir son mot de passe, les utilisateurs n'ont pas la possibilité de soumettre des mots de passe non cryptés sur le réseau. - Bien que la valeur par défaut soit' NO', sous StartCom Enterprise Linux la valeur est YES. * 'userlist_file' — Spécifie le fichier référencé par vsftpd lorsque la directive userlist_enable est activée. - la valeur par défaut est' /etc/vsftpd.user_list'. * 'cmds_allowed' — Spécifie une liste délimitée par des virgules des commandes FTP que le serveur autorise. Toutes les autres commandes sont refusées. - Il n'existe pas de valeur par défaut pour cette directive. ===Options pour les utilisateurs anonymes=== Ci-dessous figure une liste des directives qui contrôlent l'accès des utilisateurs anonymes au serveur. Pour utiliser ces options, la valeur de la directive anonymous_enable doit être YES. * 'anon_mkdir_write_enable' — Lorsque cette option est activée de concert avec la directive write_enable, des utilisateurs anonymes sont autorisés à créer de nouveaux répertoires au sein du répertoire parent doté des permissions d'écriture. - La valeur par défaut est' NO'. * 'anon_root' — Spécifie le répertoire pour lequel vsftpd change après la connexion d'un utilisateur anonyme. - Il n'existe pas de valeur par défaut pour cette directive. * 'anon_upload_enable' — Lorsque cette option est activée de concert avec la directive write_enable, des utilisateurs anonymes sont autorisés à télétransmettre des fichiers dans le répertoire parent dotés des permissions d'écriture. - La valeur par défaut est' NO'. * 'anon_world_readable_only' — Lorsque cette option est activée, des utilisateurs anonymes sont autorisés à télécharger des fichiers lisibles par tout un chacun. - La valeur par défaut est 'YES'. * 'ftp_username' — Spécifie le compte de l'utilisateur local (énoncé dans /etc/passwd) servant pour l'utilisateur FTP anonyme. Le répertoire personnel spécifié dans /etc/passwd pour l'utilisateur est le répertoire root de l'utilisateur FTP anonyme. - La valeur par défaut est' ftp'. * 'no_anon_password' — Lorsque cette option est activée, l'utilisateur anonyme ne doit pas saisir de mot de passe. - La valeur par défaut est' NO'. ===Options pour les utilisateurs locaux=== Ci-dessous figure une liste des directives caractérisant la manière selon laquelle les utilisateurs<br/> locaux ont accès au serveur. Pour utiliser ces options, la directive local_enable doit avoir la valeur YES. * 'chmod_enable' — Lorsque cette option est activée, la commande FTP SITE CHMOD est autorisée pour les utilisateurs locaux. Cette commande permet aux utilisateurs de changer les permissions s'appliquant aux fichiers. - La valeur par défaut est 'YES'. * 'chroot_list_enable' — Lorsque cette option est activée, les utilisateurs locaux énoncés dans le fichier spécifié dans la directive chroot_list_file sont placés dans une prison chroot dès qu'ils se connectent. - La valeur par défaut est 'NO'. Si cette option est activée de concert avec la directive chroot_local_user, les utilisateurs locaux énoncés dans le fichier spécifié dans la directive chroot_list_file ne sont pas placés dans une prison chroot dès qu'ils se connectent. * 'chroot_list_file' — Spécifie le fichier contenant une liste des utilisateurs locaux référencés lorsque la valeur de la directive chroot_list_enable est YES. - La valeur par défaut est '/etc/vsftpd.chroot_list'. * 'chroot_local_user' — Lorsque cette option est activée, les utilisateurs locaux opèrent dans dans l'environnement chrooté de leurs répertoires personnels après leur connexion. - La valeur par défaut est' NO'. 30px 'Avertissement' L'utilisation de cette configuration faisant surgir un certain nombre de problèmes de sécurité, particulièrement pour les utilisateurs possédant les privilèges nécessaire pour télétransmettre, elle est généralement déconseillée. * 'guest_enable' — Lorsque cette option est activée, tous les utilisateurs autres que les utilisateurs anonymes sont connectés en tant que l'utilisateur invité (guest) qui est l'utilisateur local spécifié dans la directive guest_username. - La valeur par défaut est 'NO'. * 'guest_username' — Spécifie le nom d'utilisateur vers lequel l'utilisateur invité (guest) est mappé. - La valeur par défaut est 'ftp'. * 'local_root' — Spécifie le répertoire pour lequel vsftpd change après la connexion d'un utilisateur local. - Il n'existe pas de valeur par défaut pour cette directive. * 'passwd_chroot_enable' — Lorsque cette option est activée de concert avec la directive chroot_local_user, vsftpd chroote les utilisateur locaux en fonction de la présence de /./ dans le champ du répertoire personnel dans /etc/passwd. - La valeur par défaut est 'NO'. * 'user_config_dir' — Spécifie le chemin vers un répertoire contenant les fichiers de configuration portant le nom des utilisateurs du système local qui contiennent des paramètres spécifiques pour ces utilisateurs. Toute directive figurant dans le fichier de configuration d'un utilisateur annule celles figurant dans /etc/vsftpd/vsftpd.conf. - Il n'existe pas de valeur par défaut pour cette directive. ===Options pour les répertoires=== Ci-dessous figure la liste des directives ayant un impact sur les directoires. * 'dirlist_enable' — Lorsque cette option est activée, les utilisateurs sont autorisés à visionner les listes de répertoires. - La valeur par défaut est 'YES'. * 'dirmessage_enable' — Lorsque cette option est activée, un message apparaît chaque fois qu'un utilisateur ouvre un répertoire avec un fichier message. Ce message se trouve dans le répertoire qui est ouvert. Le nom de ce fichier est spécifié dans la directive message_file et part défaut prend la valeur .message. - Bien que la valeur par défaut soit 'NO', sous StartCom Enterprise Linux la valeur est YES. * 'force_dot_files' — Lorsque cette option est activée, les fichiers commençant par un point (.) sont inclus dans les listes de répertoires, à l'exception des fichiers . et … - La valeur par défaut est 'NO'. * 'hide_ids' — Lorsque cette option est activée, toutes les listes de répertoires font apparaître ftp comme l'utilisateur et le groupe de chaque fichier. - La valeur par défaut est 'NO'. * 'message_file' — Spécifie le nom du fichier message lorsque la directive dirmessage_enable est utilisée. - La valeur par défaut est '.message'. * 'text_userdb_names' — Lorsque cette option est activée, des noms d'utilisateur et noms de groupes test sont utilisés au lieu des entrées UID et GID. L'activation de cette option peut entraîner un ralentissement des performances du serveur. - La valeur par défaut est 'NO'. * 'use_localtime' — Lorsque cette option est activée, les listes de répertoires révèlent l'heure locale de l'ordinateur au lieu de l'heure GMT. - La valeur par défaut est 'NO'. ===Options pour le transfert de fichiers=== Ci-dessous figure la liste des directives ayant un impact sur les directoires. * download_enable — Lorsque cette option est activée, le téléchargement de fichiers est autorisé. - La valeur par défaut est' YES'. * chown_uploads — Lorsque cette option est activée, tous les fichiers télétransmis par des utilisateurs anonymes deviennent la propriété de l'utilisateur spécifiés dans la directive chown_username. - La valeur par défaut est' NO'. * 'chown_username' — Spécifie la propriété de fichiers télétransmis anonymement si la directive chown_uploads est activée. - La valeur par défaut est' root'. * 'write_enable' — Lorsque cette option est activée, les commandes FTP permettant de modifier le système de fichiers sont permises, telles que DELE, RNFR et STOR. - La valeur par défaut est' NO'. ===Options de journalisation=== Ci-dessous figure une liste des directives ayant un impact sur le comportement de journalisation de vsftpd. * 'dual_log_enable' — Lorsque cette option est activée de concert avec xferlog_enable, vsftpd enregistre deux fichiers simultanément : un journal compatible avec wu-ftpd dans le fichier spécifiée dans la directive xferlog_file (par défaut /var/log/xferlog) et un fichier journal vsftpd standard spécifié dans la directive vsftpd_log_file (par défaut /var/log/vsftpd.log). - La valeur par défaut est' NO'. * 'log_ftp_protocol' — Lorsque cette option est activée de concert avec xferlog_enable et lorsque xferlog_std_format a pour valeur NO, toutes les commandes et réponses FTP sont journalisées. Cette directive est très utilise lors d'opérations de débogage. - La valeur par défaut est' NO'. * 'syslog_enable' — Lorsque cette option est activée de concert avec xferlog_enable, toute journalisation normalement enregistrée dans le fichier journal standard vsftpd qui est spécifié dans la directive vsftpd_log_file (par défaut /var/log/vsftpd.log) est envoyée à la place à l'enregistreur chronologique automatique du système sous le service FTPD. - La valeur par défaut est 'NO'. * 'vsftpd_log_file' — Spécifie le fichier journal vsftpd. Pour que ce fichier soit utilisé, xferlog_enable doit être activée et xferlog_std_format doit avoir pour valeur NO ou, si xferlog_std_format a pour valeur YES, dual_log_enable doit être activée. Il est important de noter ici que si syslog_enable a pour valeur YES, le journal du système est utilisé à la place du fichier spécifié dans cette directive. - La valeur par défaut est' /var/log/vsftpd.log'. * 'xferlog_enable' — Lorsque cette commande est activée, vsftpd journalise les connexions (seulement au format vsftpd) et les informations de transfert de fichier dans le fichier journal spécifié dans la directive vsftpd_log_file (par défaut /var/log/vsftpd.log). Si xferlog_std_format a pour valeur YES, les informations de transfert de fichier sont journalisées mais les connexions elles ne le sont pas et le fichier spécifié dans xferlog_file (par défaut /var/log/xferlog) est utilisé à la place. Il est important de noter ici que les fichiers journaux aussi bien que les formats de journaux sont utilisés si dual_log_enable a pour valeur YES. - 'Bien que la valeur par défaut soit' NO', sous StartCom Enterprise Linux la valeur est YES. * 'xferlog_file' — Spécifie le fichier journal compatible avec wu-ftpd. Pour que ce fichier soit utilisé, xferlog_enable doit être activé et xferlog_std_format doit avoir pour valeur YES. Il est également utilisé si dual_log_enable a pour valeur YES. - La valeur par défaut est '/var/log/xferlog'. * 'xferlog_std_format' — Lorsque cette option est activée de concert avec xferlog_enable, seul un journal de transfert de fichier compatible avec wu-ftpd est enregistré dans le fichier spécifié dans la directive xferlog_file (par défaut /var/log/xferlog). Il est important de noter ici que ce fichier journalise seulement les transferts de fichier et n'enregistre pas les connexions au serveur. - Bien que la valeur par défaut soit' NO', sous StartCom Enterprise Linux la valeur est YES. 30px'Important' Pour maintenir la compatibilité avec les fichiers journaux enregistrés l'ancien serveur FTP wu-ftpd, la directive xferlog_std_format a pour valeur YES sous StartCom Enterprise Linux. Toutefois, ce paramètre signifie que les connexions au serveur sont journalisées. Pour journaliser les connexions au format vsftpd et maintenir un journal des transferts de fichier compatible avec wu-ftpd,donnez à dual_log_enable la valeur YES. S'il n'est pas important de maintenir un journal des transferts de fichier compatible avec wu-ftpd, vous pouvez donner à xferlog_std_format la valeur NO, commenter la ligne à l'aide d'un signe dièse (#) ou supprimer la ligne complètement. 'Options réseau' Ci-dessous figure une liste des directives ayant un impact sur la manière dont vsftpd interagit avec le réseau. * 'accept_timeout' — Spécifie la durée donnée à un client utilisant une connexion passive pour se connecter. - La valeur par défaut est '60'. * 'anon_max_rate' — Spécifie le taux de transfert de données, exprimé en octets par seconde, pour les utilisateurs anonymes. - La valeur par défaut est' 0', ce qui ne limite pas le taux de transfert. * 'connect_from_port_20' - Lorsque cette option est activée, vsftpd tourne avec suffisamment de privilèges pour pour ouvrit le port 20 sur le serveur lors de transferts de données en mode actif. La désactivation de cette option permet à vsftpd de tourner avec moins de privilèges, mais cette option peut-être incompatible avec certains clients FTP. - Bien que la valeur par défaut soit' NO', sous StartCom Enterprise Linux la valeur est YES. * 'connect_timeout' — Spécifie la durée maximale exprimée en secondes, donnée à un client utilisant un mode actif pour répondre à une connexion de données. - La valeur par défaut est' 60'. * 'data_connection_timeout' — Spécifie la durée maximale exprimée en secondes, pendant laquelle les transferts de données peuvent s'arrêter. Une fois cette option amorcée, la connexion au client distant est fermée. - La valeur par défaut est' 300'. * 'ftp_data_port' — Spécifie le port utilisé pour les connexions actives aux données lorsque connect_from_port_20 a pour valeur YES. - La valeur par défaut est' 20. * 'idle_session_timeout' — Spécifie la durée maximale pouvant s'écouler entre des commandes depuis un client distant. Une fois cette option amorcée, la connexion au client distant est fermée. - La valeur par défaut est' 300'. * 'listen_address' — Spécifie l'adresse IP que vsftpd doit écouter pour des connexions réseau. - Il n'existe pas de valeur par défaut pour cette directive. 30px'Astuce' Si plusieurs copies de vsftpd tournent et servent différentes adresses IP, le fichier de configuration de chaque copie du démon vsftpd doit avoir une valeur différente pour cette directive. Reportez-vous à la 'Section Options pour le demon' pour obtenir de plus amples informations sur les serveurs FTP avec plusieurs prestataires de bande passante (aussi appelé multihoming). * 'listen_address6' — Spécifie l'adresse IPv6 que vsftpd doit écouter pour des connexions au réseau lorsque listen_ipv6 a pour valeur YES. - Il n'existe pas de valeur par défaut pour cette directive. 30px'Astuce' Si plusieurs copies de vsftpd tournent et servent différentes adresses IP, le fichier de configuration de chaque copie du démon vsftpd doit avoir une valeur différente pour cette directive. Reportez-vous à la Section 'Option pour le demon' pour obtenir de plus amples informations sur les serveurs FTP avec plusieurs prestataires de bande passante (aussi appelé multihoming). * 'listen_port' — Spécifie le port que vsftpd écoute pour des connexions au réseau. - La valeur par défaut est' 21'. * 'local_max_rate' — Spécifie le taux maximal (exprimé en octets par secondes) auquel les données sont transférées, pour les utilisateurs locaux connectés au serveur. - La valeur par défaut est' 0', ce qui ne limite pas le taux de transfert. * 'max_clients' — Spécifie le nombre maximal de clients (exprimé en octets par seconde) autorisés à se connecter simultanément au serveur lorsqu'il tourne en mode autonome. - La valeur par défaut est' 0', ce qui ne limite pas les connexions. * 'max_per_ip' — Spécifie le nombre maximal de clients autorisés à se connecter depuis la adresse IP source. - La valeur par défaut est '0', ce qui ne limite pas les connexions. * 'pasv_address' — Spécifie l'adresse IP du public faisant face à l'adresse IP du serveur pour les serveurs se trouvant derrière des pare-feu NAT (Network Address Translation) . Cette option permet à vsftpd de fournir la bonne adresse de retour pour des connexions en mode passif. - Il n'existe pas de valeur par défaut pour cette directive. * 'pasv_enable' — Lorsque cette option est activée, les connexions en mode passif ne sont pas permises. - La valeur par défaut est' YES'. * 'pasv_max_port' — Spécifie le port le plus élevé possible qui est envoyé aux clients FTP pour des connexions en mode passif. Ce paramètre est utilisé pour limiter la plage des ports afin que les règles pare-feu soient faciles à créer. - La valeur par défaut est '0', ce qui ne limite pas la plage des ports passifs les plus élevés. La valeur ne doit pas dépasser 65535. * 'pasv_min_port' — Spécifie le port le plus bas possible qui est envoyé au client FTP pour des connexions en mode passif. Ce paramètre est utilisé pour limiter la plage des ports afin que les règles de pare-feu soient faciles à créer. - La valeur par défaut est 0', ce qui ne limite pas la plage des ports passifs les plus bas. La valeur ne doit pas être inférieure à 1024. * 'pasv_promiscuous' — Lorsque cette option est activée, les connexions aux données ne sont pas analysées pour vérifier qu'elles proviennent bien de la même adresse IP. Ce paramètre est seulement utile pour certains types de tunnellisation. - La valeur par défaut est' NO'. 30px'Attention' N'activez pas cette option à moins qu'elle ne soit absolument nécessaire car elle désactive une fonctionnalité de sécurité importante qui permet de vérifier que les connexions en mode passif proviennent bien de la même adresse IP que la connexion de contrôle qui à engendré le transfert de données. * 'port_enable' — Lorsque cette option est activée, les connexions en mode actif ne sont pas permises. - La valeur par défaut est' NO'. ===Ressources supplémentaires=== * Le répertoire /usr/share/doc/vsftpd-<version-number>/ — Remplacez <version-number> par le numéro de la version installée du paquetage vsftpd. Ce répertoire contient un document README contenant des informations élémentaires sur le logiciel. Le fichier TUNING contient des astuces de base pour mettre au point la performance alors que le répertoire SECURITY/ contient lui des informations sur le modèle de sécurité employé par vsftpd. * Pages de manuels liées à vsftpd — Il existe un certain nombre de pages de manuel pour le démon et les fichiers de configuration. Ci-après figure une liste de certaines de ces pages de manuel les plus importantes. 'Applications serveur' o 'man vsftpd' — Examine les options de ligne de commande disponibles pour vsftpd. Fichiers de configuration o 'man vsftpd.conf — Contient une liste détaillée des options disponibles au sein du fichier de configuration de vsftpd. o 'man 5 hosts_access' — Examine le format et les options disponibles au sein des fichiers de configuration des enveloppeurs TCP : hosts.allow et hosts.deny. <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> <!–############################################################################################–> ==relancer le service== Relancer le service 'xinetd' rcxinetd restart Relancer le service reseau 'network' rcnetwork restart ==Réglage du firewall== Pour utiliser le serveur Ftp sur une distribution Suse10.1 il faut ouvrir des ports. Pour ma part je utilise vsftpd en mode Passif: *pasv_max_port= *pasv_min_port= doivent etre dans votre fichier vsftpd.conf ensuite il faut inscrire dans les options avancés du firewall les ports à ouvrir ex: pour les ports 6000 à 6100 ecrire 6000:6100 et autoriser le protocol ftp. donc dans les options avance on ecrira par exemple: 6000:6100 ftp et on valide. ==Site Web utiles== * http://vsftpd.beasts.org/ — La page du projet vsftpd est très utile pour trouver la documentation la plus récente et pour contacter l'auteur du logiciel. * http://slacksite.com/other/ftp.html — Ce site Web fournit une explication concise des différences existant entre FTP en mode passif et en mode actif. * http://war.jgaa.com/ftp/?cmd=rfc — Une liste complète de documents RFC (de l'anglais Request for Comments en relation avec le protocole FTP. ==Site originaux de cet article== *[http://www.hsc.fr/ressources/breves/vsftpd.html.fr Site original] par Thomas Seyrat (10/06/2002) *[http://www.startcom.org/docs/fr/Guide%20de%20reference%20StartCom%20Enterprise%20Linux%203.0.x/s1-ftp-vsftpd-conf.html| www.startcom.org] informatique linux

informatique/vsftpd.txt · Dernière modification : 2022/04/10 17:12 de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki