Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
vsftpd [Le 06/05/2021, 09:26]
212.68.202.183 [Installation]
vsftpd [Le 24/10/2022, 15:25] (Version actuelle)
83.202.18.219
Ligne 6: Ligne 6:
 Je n'ai pas tout vérifié en détail mais je vous conseille de vérifier les paramètres donnés avec le man du site officiel!</​note>​ Je n'ai pas tout vérifié en détail mais je vous conseille de vérifier les paramètres donnés avec le man du site officiel!</​note>​
  
-====== Préambule : FTP et "​FTP-Like"​ sécurisés ====== ​+====== Préambule : FTP et "​FTP-Like"​ sécurisés ======
  
 Au niveau des protocoles de transfert de fichiers, il y a le FTP classique: Tout y passe en clair (y compris les infos de login/mot de passe). Ce protocole utilise un canal de contrôle et un canal de données (par défaut, port 21 en destination pour le canal contrôle). Au niveau des protocoles de transfert de fichiers, il y a le FTP classique: Tout y passe en clair (y compris les infos de login/mot de passe). Ce protocole utilise un canal de contrôle et un canal de données (par défaut, port 21 en destination pour le canal contrôle).
Ligne 28: Ligne 28:
 VsFTPd est un serveur FTP conçu avec la problématique d'une sécurité maximale. Contrairement aux autres serveurs FTP (ProFTPd, PureFTPd, etc.), aucune faille majeure de sécurité n'a jamais été décelée dans VsFTPd. VsFTPd est un serveur FTP conçu avec la problématique d'une sécurité maximale. Contrairement aux autres serveurs FTP (ProFTPd, PureFTPd, etc.), aucune faille majeure de sécurité n'a jamais été décelée dans VsFTPd.
  
-Néanmoins deux  [[http://​www.debian.org/​security/​2011/​dsa-2305|failles permettant un DoS]] avaient été détectées,​ la première était due à une faille d'un vieux noyau linux (avant 2.6.35), et la deuxième a été très vite corrigée.+Néanmoins deux  [[https://​www.debian.org/​security/​2011/​dsa-2305|failles permettant un DoS]] avaient été détectées,​ la première était due à une faille d'un vieux noyau linux (avant 2.6.35), et la deuxième a été très vite corrigée.
  
 Ce serveur est utilisé à grande échelle, notamment par des entreprises telles que Red Hat. Ce serveur est utilisé à grande échelle, notamment par des entreprises telles que Red Hat.
  
-La configuration __par défaut__ de VsFTPd est très restrictive : +La configuration __par défaut__ de VsFTPd est très restrictive :
  
   - Seul le compte **anonyme** est autorisé à se connecter au serveur   - Seul le compte **anonyme** est autorisé à se connecter au serveur
Ligne 52: Ligne 52:
 Vérifier l'​état du service. Vérifier l'​état du service.
 <code bash>​sudo systemctl status vsftpd</​code>​ <code bash>​sudo systemctl status vsftpd</​code>​
-sudo systemctl enable vsftpd</​code>​+<code bash>sudo systemctl enable vsftpd</​code>​
 Et à ouvrir les ports de votre pare-feu si nécessaire :​ Et à ouvrir les ports de votre pare-feu si nécessaire :​
 <code bash>​sudo ufw allow 20/tcp <code bash>​sudo ufw allow 20/tcp
Ligne 76: Ligne 76:
 local_umask=022</​file>​ local_umask=022</​file>​
   * Pour permettre à vsftpd de charger une liste d'​utilisateurs décommentez la ligne : <file bash>​userlist_enable=YES</​file>​   * Pour permettre à vsftpd de charger une liste d'​utilisateurs décommentez la ligne : <file bash>​userlist_enable=YES</​file>​
-Il faudra alors ajouter le nom des utilisateurs qui auront les accès dans le fichier **etc/​vsftpd.userlist**+Il faudra alors ajouter le nom des utilisateurs qui auront les accès dans le fichier **/etc/​vsftpd.userlist**
  
   * Vous pouvez « emprisonner » certains utilisateurs dans leur dossier personnel afin qu'il ne puissent pas naviguer dans le système de fichier.   * Vous pouvez « emprisonner » certains utilisateurs dans leur dossier personnel afin qu'il ne puissent pas naviguer dans le système de fichier.
Ligne 90: Ligne 90:
 chroot_local_user=NO chroot_local_user=NO
 # Emprisonner dans son répertoire home les utilisateurs # Emprisonner dans son répertoire home les utilisateurs
-chroot_list_enable=YES ​       +chroot_list_enable=YES
 # La lise des prisonniers # La lise des prisonniers
-chroot_list_file=/​etc/​vsftpd/chroot.list+chroot_list_file=/​etc/​vsftpd.chroot_list
 # Evite l'​erreur 500 OOPS: vsftpd: refusing to run with writable root inside chroot(). # Evite l'​erreur 500 OOPS: vsftpd: refusing to run with writable root inside chroot().
-# Les prisonniers peuvent écrire dans leur propre répertoire ​    ​+# Les prisonniers peuvent écrire dans leur propre répertoire
 allow_writeable_chroot=YES allow_writeable_chroot=YES
 </​file>​ </​file>​
Ligne 151: Ligne 151:
 ===== vsftpd et SSL ===== ===== vsftpd et SSL =====
  
-[[http://​www.brennan.id.au/​14-FTP_Server.html|Principale source d'​informations]]+[[https://​www.brennan.id.au/​14-FTP_Server.html|Principale source d'​informations]]
  
 Le principal défaut du protocole FTP est que le couple nom d'​utilisateur / mot de passe transite en clair sur le réseau. Il est cependant possible d'​ajouter une couche de sécurité supplémentaire,​ à savoir SSL, pour chiffrer les échanges d'​authentification et/ou de données. Le principal défaut du protocole FTP est que le couple nom d'​utilisateur / mot de passe transite en clair sur le réseau. Il est cependant possible d'​ajouter une couche de sécurité supplémentaire,​ à savoir SSL, pour chiffrer les échanges d'​authentification et/ou de données.
Ligne 163: Ligne 163:
    sudo openssl req -new -x509 -days 365 -nodes -out /​etc/​ssl/​private/​vsftpd.cert.pem -keyout /​etc/​ssl/​private/​vsftpd.key.pem    sudo openssl req -new -x509 -days 365 -nodes -out /​etc/​ssl/​private/​vsftpd.cert.pem -keyout /​etc/​ssl/​private/​vsftpd.key.pem
  
-Openssl va vous poser quelques questions, la plus critique est celle ci : +Openssl va vous poser quelques questions, la plus critique est celle ci :
  
   Common Name (eg, YOUR name) []:   Common Name (eg, YOUR name) []:
  
-Il faut écrire le nom ou l'ip que les clients utiliseront. ​+Il faut écrire le nom ou l'ip que les clients utiliseront.
 Il est possible de faire un certificat signé par sa propre autorité de certification et donc générer des certificats valides, une fois que vos clients ont reconnu votre autorité de certification : [[http://​www.debian-administration.org/​articles/​284|Creating and Using a self signed SSL Certificates in debian]] Il est possible de faire un certificat signé par sa propre autorité de certification et donc générer des certificats valides, une fois que vos clients ont reconnu votre autorité de certification : [[http://​www.debian-administration.org/​articles/​284|Creating and Using a self signed SSL Certificates in debian]]
  
-Un certificat (vsftpd.cert.pem) ainsi qu'une clé privée (vsftpd.key.pem) ont été générés dans le dossier /​etc/​ssl/​private/​. ​+Un certificat (vsftpd.cert.pem) ainsi qu'une clé privée (vsftpd.key.pem) ont été générés dans le dossier /​etc/​ssl/​private/​.
 Sécurisons-les : Sécurisons-les :
   sudo chown root:root /​etc/​ssl/​private/​vsftpd.cert.*   sudo chown root:root /​etc/​ssl/​private/​vsftpd.cert.*
Ligne 199: Ligne 199:
 </​file>​ </​file>​
 force_local_data_ssl=NO ​ <-- vous pouvez mettre à "​YES"​ si vous utilisez Kasablanca. force_local_data_ssl=NO ​ <-- vous pouvez mettre à "​YES"​ si vous utilisez Kasablanca.
-A priori, un : +A priori, un :
   sudo service vsftpd reload ​   sudo service vsftpd reload ​
 devrait bien se passer. devrait bien se passer.
Ligne 238: Ligne 238:
 1- à redémarrer le serveur avec la commande suivante 1- à redémarrer le serveur avec la commande suivante
  
-<codebash>sudo service vsftpd reload+<code bash>sudo service vsftpd reload
 </​code>​ </​code>​
  
Ligne 245: Ligne 245:
 3- et à configurer votre client ftp de façon à ce que celui-ci réalise des connexions en mode passif (mode passif dans les paramètres du pare-feu de Filezilla par exemple) 3- et à configurer votre client ftp de façon à ce que celui-ci réalise des connexions en mode passif (mode passif dans les paramètres du pare-feu de Filezilla par exemple)
  
-<note important>​Attention : Les versions inférieures ou égales à 2.0.6 de vsFTPd ont un défaut de négociation de la connexion avec SSL et il faut utiliser la version 2.0.7 ou supérieure qui corrige ce problème. À l'​heure actuelle, vous pouvez utiliser la dernière version (hautement recommandé) qui est donc la 2.3.0. Autrement, il faut donc compiler le serveur soi-même (plus compliqué mais bien utile quand on s'en sert correctement). Voir [[http://​forum.filezilla-project.org/​viewtopic.php?​f=2&​t=7688 | ce lien]].</​note>​+<note important>​Attention : Les versions inférieures ou égales à 2.0.6 de vsFTPd ont un défaut de négociation de la connexion avec SSL et il faut utiliser la version 2.0.7 ou supérieure qui corrige ce problème. À l'​heure actuelle, vous pouvez utiliser la dernière version (hautement recommandé) qui est donc la 2.3.0. Autrement, il faut donc compiler le serveur soi-même (plus compliqué mais bien utile quand on s'en sert correctement). Voir [[https://​forum.filezilla-project.org/​viewtopic.php?​f=2&​t=7688 | ce lien]].</​note>​
  
 ===== Configurer VSFTPD pour utiliser des utilisateurs virtuels ===== ===== Configurer VSFTPD pour utiliser des utilisateurs virtuels =====
  
 Nous allons configurer VSFTPD pour utiliser seulement des utilisateurs virtuels et non pas les utilisateurs locaux de votre machine. Nous allons configurer VSFTPD pour utiliser seulement des utilisateurs virtuels et non pas les utilisateurs locaux de votre machine.
-Pour cela nous allons créer des dossiers afin d'y placer nos futurs fichiers de configuration: ​+Pour cela nous allons créer des dossiers afin d'y placer nos futurs fichiers de configuration:​
  
 <​code>​ <​code>​
Ligne 270: Ligne 270:
  
 Création du fichier PAM : Création du fichier PAM :
-Il faut effacer le contenu du fichier **/​etc/​pam.d/​vsftpd** et le remplacer par : +Il faut effacer le contenu du fichier **/​etc/​pam.d/​vsftpd** et le remplacer par :
  
 <​file>​ <​file>​
Ligne 293: Ligne 293:
 </​note>​ </​note>​
  
-Créons un fichier **login.txt** dans **/​etc/​vsftpd/​** , avec vos utilisateurs et mots de passe : +Créons un fichier **login.txt** dans **/​etc/​vsftpd/​** , avec vos utilisateurs et mots de passe :
  
 <​file>​ <​file>​
Ligne 312: Ligne 312:
 </​code>​ </​code>​
  
-on sécurise nos fichiers : +on sécurise nos fichiers :
  
 <​code>​ <​code>​
Ligne 374: Ligne 374:
 </​file>​ </​file>​
  
-Relançons le serveur : +Relançons le serveur :
  
 <​code>​ <​code>​
Ligne 386: Ligne 386:
 Par défaut les utilisateurs virtuels n'ont aucun droit, il faut donc les définir pour chacun d'​entre eux : Par défaut les utilisateurs virtuels n'ont aucun droit, il faut donc les définir pour chacun d'​entre eux :
  
-Pour celà il faut créer un fichier de configuration pour chacun de vos utilisateurs dans le dossier **/​etc/​vsftpd/​vsftpd_user_conf/​**\\ +Pour celà il faut créer un fichier de configuration pour chacun de vos utilisateurs dans le dossier **/​etc/​vsftpd/​vsftpd_user_conf/​**
 Par exemple pour '​util1'​ il faut configurer le fichier **/​etc/​vsftpd/​vsftpd_user_conf/​util1** Par exemple pour '​util1'​ il faut configurer le fichier **/​etc/​vsftpd/​vsftpd_user_conf/​util1**
  
-Exemple de fichier : +Exemple de fichier :
  
 <​file>​ <​file>​
Ligne 416: Ligne 416:
 </​file>​ </​file>​
  
-<note important>​Ne pas oublier de rajouter ​+<note important>​Ne pas oublier de rajouter
   ## Activer la configuration per-user   ## Activer la configuration per-user
   user_config_dir=/​etc/​vsftpd/​vsftpd_user_conf   user_config_dir=/​etc/​vsftpd/​vsftpd_user_conf
Ligne 427: Ligne 427:
 </​code>​ </​code>​
  
-Ce scripte donne tous les droits à chacun de vos utilisateurs virtuels et ne supprime pas le dossier d'un utilisateur lors de sa suppression de la base de données.\\ +Ce scripte donne tous les droits à chacun de vos utilisateurs virtuels et ne supprime pas le dossier d'un utilisateur lors de sa suppression de la base de données.
 Libre à vous de modifier ce script ou de changer les droits utilisateurs dans vos fichiers de configuration. Libre à vous de modifier ce script ou de changer les droits utilisateurs dans vos fichiers de configuration.
  
Ligne 496: Ligne 496:
  
 == Sous  Windows== == Sous  Windows==
-  * FileZilla ou smartFtP option :  "FTP over TLS Explicit" ​+  * FileZilla ou smartFtP option :  "FTP over TLS Explicit"​
   * Winscp   * Winscp
   * CoreFTP Lite   * CoreFTP Lite
Ligne 509: Ligne 509:
   * ftp (sans chiffrement)   * ftp (sans chiffrement)
   * lftp [[http://​lftp.yar.ru/​|home page]]   * lftp [[http://​lftp.yar.ru/​|home page]]
-  * kasablanca - Kasablanca est un client graphique FTP. Parmi ses fonctions, on peut citer le support du chiffrement (par authentification TLS, et non SFTP),FXP (accès direct entre deux serveurs FTP,un gestionnaire de signets et un système de mise en queue. ​+  * kasablanca - Kasablanca est un client graphique FTP. Parmi ses fonctions, on peut citer le support du chiffrement (par authentification TLS, et non SFTP),FXP (accès direct entre deux serveurs FTP,un gestionnaire de signets et un système de mise en queue.
      ​Tourne sous Kde (mais aussi sous gnome avec les lib Kde) [[http://​kasablanca.berlios.de/​|home page]]      ​Tourne sous Kde (mais aussi sous gnome avec les lib Kde) [[http://​kasablanca.berlios.de/​|home page]]
   * Kftpgrabber (FTP utilisant TLS/SSL explicite et implicite)   * Kftpgrabber (FTP utilisant TLS/SSL explicite et implicite)
-  * gftp sous Debian/​Ubuntu ne supporte pas ssl [[http://​bugs.debian.org/​cgi-bin/​bugreport.cgi?​bug=251121|rapport de bogue]]+  * gftp sous Debian/​Ubuntu ne supporte pas ssl [[https://​bugs.debian.org/​cgi-bin/​bugreport.cgi?​bug=251121|rapport de bogue]]
 Par contre, il supporte parfaitement le SFTP (selectionner SSH2 à la place de FTP), qui ne pose pas les problèmes de licence de SSL. Par contre, il supporte parfaitement le SFTP (selectionner SSH2 à la place de FTP), qui ne pose pas les problèmes de licence de SSL.
  
   * FireFTP, extension pour Firefox   * FireFTP, extension pour Firefox
  
-  * Filezilla,  +  * Filezilla,​ 
-  * Nautilus,  +  * Nautilus, 
-  * gftp sous ubuntu, ​+  * gftp sous ubuntu,
   * et... si vous en connaissez un autre ---> "​Éditer"​ :-D   * et... si vous en connaissez un autre ---> "​Éditer"​ :-D
  
  • vsftpd.1620286002.txt.gz
  • Dernière modification: Le 06/05/2021, 09:26
  • par 212.68.202.183