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
pure-ftp [Le 18/10/2009, 02:16]
Ner0lph ancienne révision restaurée
pure-ftp [Le 27/01/2024, 10:14] (Version actuelle)
bruno ancienne révision (Le 26/01/2024, 18:33) restaurée
Ligne 1: Ligne 1:
-{{tag>Dapper ​serveur réseau ftp}}+{{tag>Xenial ​serveur réseau ftp}}
  
-----+====== Serveur FTP Pure-FTPd ======
  
-====== Serveur FTP : Pure-FTPd ​======+Pure-FTPd ​est un serveur FTP fiable pour les systèmes dérivés d'​UNIX. Il est sous licence BSD.
  
-===== L'​installation et le paramétrage pour Ubuntu Dapper ===== 
  
-**Installation de pure-ftpd**+Pure-FTPd propose comme fonctionnalités le contrôle de la bande passante, l'​établissement de quotas de téléchargement,​ les alias de répertoires,​ la création d'​hôtes virtuels. On peut également afficher des messages personnalisés (bannières et fortunes) lors de la connexion des utilisateurs.
  
-<​code>​sudo apt-get install pure-ftpd pure-ftpd-common</​code>​+Pure-FTPd peut exécuter un script à la suite d'une upload. Il peut également refuser des utilisateurs si la charge système devient trop importante.
  
-**Création du groupe ftpgroup**+Il supporte l'​identification par Pluggable Authentication Modules (PAM), mais aussi à partir d'une base de données MySQL, PostgreSQL ou dans un annuaire LDAP. Il supporte également la création d'​utilisateurs virtuels n'​ayant pas de compte sur le système. Une option anti-warez permet de réagir face à un répertoire accessible en écriture.
  
-<​code>​sudo groupadd ftpgroup<​/code>+Les utilisateurs peuvent utiliser les protocoles SSL/TLS afin de chiffrer l'​envoi de leur identifiant et mot de passe vers le serveur (nécessite un client FTP compatible).
  
-**Création de l'utilisateur ftpuser**+Plusieurs serveurs FTP Pure-FTPd indépendants peuvent s'exécuter de façon concurrente sur la même machine.
  
-<code>sudo useradd ​-g ftpgroup ​-/dev/​null ​-/etc ftpuser</code>+<note warning> 
 +Le niveau de sécurité par défaut du protocole FTP est extrêmement faible. Ce protocole est à juste titre considéré comme obsolète de nos jour et ne devrait globalement plus être utilisé, en particulier si le service doit être disponible sur [[:​Internet]].(([[wpfr>​IONOS by 1&​1|IONOS]] : [[https://​www.ionos.fr/​assistance/​hebergement/​configurer-et-gerer-lacces-ftp/pourquoi-utiliser-sftp-et-ftps-au-lieu-de-ftp/|Pourquoi utiliser SFTP et FTPS au lieu de FTP]])) Dans ce cas mieux vaut lui préférer des solutions sécurisées,​ comme [[:​ssh#​monter_un_repertoire_distant_navigation_via_sftp_secure_file_transfer_protocol| SFTP]], ou [[:WebDAV]] (en [[:​tutoriel:​securiser_apache2_avec_ssl|HTTPS]]). 
 +</note>
  
 +===== Pré-requis =====
 + 
 +  * Disposer des [[:​sudo|droits d'​administration]].
 +  * Disposer d'une connexion à Internet configurée et activée.
 +===== Installation =====
  
-**Configuration**+[[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] ​**[[apt>​pure-ftpd]]**.
  
-La configuration se fait à l'aide de fichiers présent dans le dossier /​etc/​pure-ftpd/​conf/​+===== Configuration ===== 
 +Création du groupe ftpgroup :
  
-Ces fichiers sont documentés dans le ReadMe officiel de PureFtpd (voir [[http://​download.pureftpd.org/​pub/​pure-ftpd/​doc/​README|README Pure-ftpd]]) +  sudo groupadd ftpgroup
-Ils prennent des valeurs de type: yes/no, chemin, valeur... ​+
  
 +Création de l'​utilisateur ftpuser :
  
 +  sudo useradd -g ftpgroup -d /dev/null -s /​usr/​sbin/​nologin ftpuser
 +  ou
 +  sudo useradd -g ftpgroup --system ftpuser
  
 +La configuration se fait à l'aide de fichiers présents dans le dossier /​etc/​pure-ftpd/​conf/​
  
 +Ces fichiers sont documentés dans le ReadMe officiel de PureFtpd (voir [[https://​download.pureftpd.org/​pub/​pure-ftpd/​doc/​README|README Pure-ftpd]]). Ils prennent des valeurs de type: yes/no, chemin, valeur...
  
  
 +Par exemple, Pure-ftp ne montre pas plus de 2000 fichiers lorsque vous vous connectez à votre serveur pure-ftp, et n'​autorise pas plus de 5 répertoires
 +Pour dépasser cette limite, vous devez créer un fichier dans le répertoire /​etc/​pure-ftpd/​conf/​ et créer le fichier dont le nom est relatif à l'​option.
  
 +Pour l'​exemple LimitRecursion
 +(note : il faut respecter la casse)
  
 +ensuite vous renseignez ce fichier, pour 10000 fichiers et 50 répertoires
 +10000 50
  
 +puis vous relancez le serveur Pure-ftp.
  
 +Vous faites de façon identique pour toutes les autres options.
  
 +| -0 | NoTruncate | Cette option permet de renommer automatiquement un fichier si un autre du même nom existe déjà sur le serveur.Cette option est incompatible avec les "​Quotas virtuels"​|
 +| -1 | LogPid | Log le PID de chaque session dans Syslog |
 +| -4 | ipv4only | Écoute uniquement les connections IP V4 |
 +| -6 | ipv6only | Écoute uniquement les connections IP V6 |
 +| -a | TrustedGid | Seulement les membre du groupe peuvent se connecter |
 +| -A | ChrootEveryone | Chroot tous les utilisateurs |
 +| -B | Daemonize | Démarrer le serveur en mode Standalone (en daémon) |
 +| -c | MaxClientsNumber | Autorise au maximum clients à se connecter simultanément au serveur (Défaut = 50) |
 +| -C | MaxClientsPerIP | Nombre maximum de connexions simultanées par client (adresse IP) |
 +| -d | VerboseLog | Envoie des messages de débugage dans Syslog (A utiliser seulement en cas de problème)Pour avoir également les log de réponses, il faut doubler ce paramètre. |
 +| -D | DisplayDotFiles | Affiche les fichiers commençant par un point (Paramètre à activer pour les puristes et à désactiver pour les simples utilisateurs) |
 +| -e | AnonymousOnly | Autorise uniquement les utilisateurs anonymes. A utiliser uniquement pour les sites FTP publiques. |
 +| -E | NoAnonymous | Autorise uniquement les utilisateurs authentifiés. Les utilisateurs anonymes sont interdits. |
 +| -f | SyslogFacility | Indique la « facility » à utiliser pour syslog (Défaut = local2). « -f none » permet de désactiver les logs. |
 +| -F | FortunesFile | Affiche une ligne de texte aléatoire à la connexion en provenance du fichier « fortune file » (ex : Astuce du jour). Pour afficher un texte à la connexion, il faut également utiliser cette option. |
 +| -g | PidFile | Change l'​adresse du fichier pid quand l serveur est exécuté en mode standalone. (Défaut = /​var/​run/​pure-ftpd.pid) |
 +| -H | DontResolve | Par défaut, les noms pleinement qualifiés sont logués en faisant une requête DNS inverse sur l'​adresse IP. Cette option permet d'​éviter de rechercher le nom pleinement qualifié dans le but d'​accélérer le temps de connexion. Cette option est donc conseillée pour les sites publiques très chargés. |
 +| -i | AnonymousCantUpload | Interdit l'​accès en écriture sur le serveur (upload) pour les utilisateurs anonymes. |
 +| -I | MaxIdleTime | Change la durée de connexion maximum en minutes (Défaut = 15) |
 +| -j | CreateHomeDir | Crée automatiquement le home de l'​utilisateur s'il n'​existe pas. |
 +| -k | MaxDiskUsage | Interdit les chargements sur le serveur (upload) si la partition utilisée est chargée à plus de |
 +| -K | KeepAllFiles | Autorise les utilisateurs à charger des fichiers sur le serveur, mais les interdit de les renommer ou les supprimer. |
 +| -l | login | Ajoute une nouvelle règle d'​authentification. |
 +| -L | LimitRecursion | Cette option permet d'​éviter le nombre de fichiers listes et le nombre de niveau de recherches pour éviter les déni de services.(Défaut = 2000 fichiers et 5 niveaux de répertoire) |
 +| -m | MaxLoad | Interdit les téléchargements anonymes si la charge du CPU atteint |
 +| -M | AnonymousCanCreateDirs | Autorise les utilisateurs anonymes à créer des répertoires. |
 +| -n | | Si le serveur supporte les quotas virtuels, cette option permet de les configurer |
 +| -N | NatMode | Mode NAT |
 +| -O | AltLog | Enregistre les logs des fichiers transférés dans un fichier spécifique. Plusieurs formats sont supportés : CLF (Apache-like),​ Stats, W3C and xferlog.Par exemple le format "​Stats"​ ressemble à  |
 +| -p | PassivePortRange | Permet de modifier les ports sur lesquels le serveur Écoute |
 +| -P | ForcePassiveIP | Force l'​adresse IP ou le nom de la machine pour le retour |
 +| -q | AnonymousRatio | Active les ratios pour les utilisateurs anonymes |
 +| -Q | UserRatio | Active les ratios pour tous les utilisateurs |
 +| -r | AutoRename | Ne jamais écraser un fichier existant. Le fichier est automatiquement renommé si c'est nécessaire. |
 +| -R | NoChmod | Interdit aux utilisateurs d'​utiliser les commandes CHMOD |
 +| -s | AntiWarez | Interdit aux utilisateur anonymes de télécharger des fichiers |
 +| -T | UserBandwidth or [] :[] | Active la limitation de la bande passante en kilobytes/​seconds. Il est possible d'​avoir une bande passante différente avec la syntaxe "-t [] :[]" |
 +| -t | AnonymousBandwidth | Active la limitation de la bande passante en kbps pour les utilisateurs anonymes. Il est possible d'​avoir une bande passante différente avec la syntaxe "-t [] :[]" |
 +| -u | MinUID | Interdit les accès pour les utilisateurs ayant un uid inférieur à celui indiqué. |
 +| -U | Umask | Change le mask de création des dossiers et des fichiers. (Défaut = 133 022) |
 +| -V | TrustedIP | Autorise les accès non anonymes seulement pour l'​adresse IP spécifiée. Les autres adresses IP auront un accès anonyme. |
 +| -x | ProhibitDotFilesWrite | Interdit les utilisateurs anonymes à écrire des fichiers commençant par un point. |
 +| -X | ProhibitDotFilesRead | Interdit les utilisateurs anonymes à lire et écrire des fichiers commençant par un point. |
 +| -y | PerUserLimits | Permet de limiter le nombre de sessions simultanées qu'un utilisateur peut ouvrir (Défaut = 0 = illimités) |
 +| -z | AllowDotFiles | Autorise les utilisateurs anonymes à lire les fichiers et les dossiers commençant par un point. |
  
 +==== Création d'un utilisateur virtuel ====
 +Entrez la commande dans un [[:​terminal]] :​ <​code>​sudo pure-pw useradd nom_utilisateur -u ftpuser -g ftpgroup -d /​home/​www/​nom_utilisateur</​code>​
  
-===== Création d'un utilisateur virtuel ===== 
  
 +Il faut maintenant générer le fichier des utilisateurs :​
  
-//Ne pas utiliser PUREADMIN pour gérer les utilisateurs virtuels//+  sudo pure-pw mkdb
  
-<​code>​sudo pure-pw useradd test -u ftpuser -g ftpgroup -/​home/​www/​test</​code>​+Après chaque modification ou rajout ​d'​utilisateur il faut régénérer le fichier des utilisateurs avec cette commande.
  
-**Syntaxe et options pour vos utilisateurs:**+Pour activer l'​authentification liée à Pure-FTP ​: 
 +  sudo ln -s /​etc/​pure-ftpd/​conf/​PureDB /​etc/​pure-ftpd/​auth/​50pure
  
-<​code> ​        ​pure-pw useradd <​login>​ [-f <passwd file>] -u <uid> [-g <​gid>​] +===Changer le mot de passe d'un utilisateur===
-                         -D/-<home directory>​ [-c <​gecos>​] +
-                         [-t <​download bandwidth>​] [-T <upload bandwidth>​] +
-                         [-n <max number of files>] [-N <max Mbytes>​] +
-                         [-q <upload ratio>] [-Q <​download ratio>​] +
-                         [-r <allow client host>​[/<​mask>​][,<​allow client host>​[/<​mask>​]]...] +
-                         [-R <deny client host>​[/<​mask>​][,<​deny client host>​[/<​mask>​]]...] +
-                         [-i <allow local host>​[/<​mask>​][,<​allow client host>​[/<​mask>​]]...] +
-                         [-I <deny local host>​[/<​mask>​][,<​deny local host>​[/<​mask>​]]...] +
-                         [-y <max number of concurrent sessions>​] +
-                         [-z <​hhmm>​-<​hhmm>​] [-m]</​code>​+
  
-Il faut maintenant générer le fichier des utilisateurs+Si un mot de passe a été oublié ou doit être changé, utiliser cette commande :
  
-<​code>​sudo pure-pw ​mkdb</​code>​+  ​sudo pure-pw ​passwd nom_utilisateur
  
-Après chaque modification ou rajout d'​utilisateur il faut régénérer ​le fichier des utilisateurs ​avec cette commande+Regénérer ​le fichier des utilisateurs
  
-**Lister ​les utilisateurs virtuels ​:**+  sudo pure-pw mkdb 
 +==== Autoriser ​les utilisateurs virtuels ​à suivre les liens symboliques (symlinks) ====
  
-<​code>​sudo ​pure-pw list</​code>​+Pour cela, il faut activer le "​virtualchroot"​ dans le fichier /​etc/​default/​pure-ftpd-common
  
-D'​autres fonctions sont disponibles.+<​file>​ 
 +VIRTUALCHROOT=true 
 +</​file>​
  
-Pour ne pas avoir une erreur 530 à la connexion du client FTP il faut créer le lien symbolique:+==== Ajouter un message d'​accueil ====
  
-<​code>​sudo ln -s /​etc/​pure-ftpd/​conf/​PureDB /​etc/​pure-ftpd/​auth/​75puredb</​code>​+On crée notre fichier contenant le ou les messages :
  
-**Pour relancer le serveur pure-ftpd :**+  nano /​home/​user/​nomfichier
  
-<​code>​sudo /etc/init.d/pure-ftpd restart</​code>​+On insère directement notre texte.
  
-//Avec Pureadmin, il est agréable ​de voir les connexion active, suivre ​le journal sous interface graphique, mais ne pas l'​utiliser pour la gestion des comptes.//+Pour générer plusieurs messages aléatoirement, il suffit ​de séparer ​les messages par le caractère "​%"​.
  
-Pour Installer pureadmin ​:+On donne les droits nécessaires ​:
  
-<​code>​sudo apt-get install pureadmin<​/code>+  ​sudo chmod 644 /home/​user/​nomfichier
  
-**Lister les utilisateurs connectés et leurs états ​:**+Une fois le fichier crée, on ajoute à la config de Pureftpd l'​option -F (fortunesfile) ​:
  
-<​code>​sudo ​pure-ftpwho</code>+  nano /etc/pure-ftpd/conf/FortunesFile
  
-**Autoriser les utilisateurs virtuels à suivre les liens symboliques (symlinks) ​:**+Et on y ajoute le chemin de notre message ​:
  
-Pour celà, il faut activer le "​virtualchroot"​ dans le fichier ​/etc/default/pure-ftpd-common+<​file>​ 
 +/home/user/nomfichier 
 +</​file>​
  
-<​code>​VIRTUALCHROOT=true</​code>​+Il suffit ensuite de redémarrer le serveur:
  
 +  sudo /​etc/​init.d/​pure-ftpd restart
  
 +On retrouve alors notre option -F :
  
 +<​code>​-F /​home/​user/​nomfichier</​code>​
  
 +<note tip>
 +Pour afficher l'​espace disque on peut exécuter un script à intervalles régulières de type :
 +  df -H /​dossierdepartage > /​home/​user/​nomfichier
 +</​note>​
  
-===== Ajouter un message d'​accueil ​=====+===== Utilisation ​===== 
 +==== Lister les utilisateurs virtuels ​====
  
-On crée notre fichier contenant le ou les message(s):​ +  sudo pure-pw list
-<​code>​vi /​home/​user/​nomfichier</​code>​+
  
-On insert directement notre texte.+D'​autres fonctions sont disponibles.
  
-Pour générer plusieurs messages aléatoirement, ​il suffit de séparer les messages par le caractère "​%"​.+Pour ne pas avoir une erreur 530 (connexion refusée) à la connexion du client FTP il faut créer ​le lien symbolique:
  
-On donne les droits nécessaires:​ +  ​sudo ln -s /etc/pure-ftpd/conf/PureDB /​etc/​pure-ftpd/​auth/​75puredb
-<​code>​sudo chmod 644 /home/user/nomfichier<​/code>+
  
-Une fois le fichier crée, on ajoute ​à la config de Pureftpd l'​option -F (fortunesfile): +<note important>​important</​note>​Attention :  pure-ftpd interdit ​le login pour les numéros inférieurs ​à celui paramétré dans ///​etc/​pure-ftpd/​conf/​MinUID//.
-<​code>​vi ​/​etc/​pure-ftpd/​conf/​FortunesFile<​/code>+
  
-Et on y ajoute le chemin de notre message: +Si erreur ​**530 Sorry, but I can't trust you**
-/​home/​user/​nomfichier+
  
-Il suffit ensuite de redémarrer le serveur: +Modifier ​: /​etc/​pure-ftpd/​conf/​MinUID,​ avec un uid (1000 par défaut) inférieur à l'uid de l'​utilisateur physique auquel est lié l'​utilisateur virtuel.
-<​code>​sudo ​/etc/init.d/​pure-ftpd ​restart</code>+
  
-On retrouve alors notre option -F: +Il faut peut être redémarrer pour rendre la modification effective... 
-<​code>​-F /​home/​user/​nomfichier</​code>​+ 
 +==== Pour relancer le serveur pure-ftpd ====
  
-//Pour afficher l'​espace disque on peut exécuter un script à intervalles régulières de type "​df ​-H /​dossierdepartage > /​home/​user/​nomfichier"​ //+  sudo /etc/init.d/pure-ftpd restart
  
  
 +==== Lister les utilisateurs connectés et leurs états ====
  
-===== Liens =====+  sudo pure-ftpwho
  
-[[http://​www.pureftpd.org/​project/​pure-ftpd|Pureftpd.org]] 
  
-[[http://​www.pureftpd.org/​project/​pure-ftpd/​doc|Pureftpd.org - Documentations]]+===== Voir aussi =====
  
-[[http://​www.webmin.com/​cgi-bin/​search_third.cgi?​search=ftpd|webmin.com - Module]]+  * [[http://​www.pureftpd.org/​project/​pure-ftpd|Pureftpd.org]] 
 +  * [[http://​www.pureftpd.org/​project/​pure-ftpd/​doc|Pureftpd.org - Documentations]] 
 +  * [[https://​www.webmin.com/​cgi-bin/​search_third.cgi?​search=ftpd|webmin.com - Module]]
  
 ---- ----
  
-//Contributeur ​: [[utilisateurs:​zoph]],​[[utilisateurs:​snoopyp]]//​+//Contributeurs principaux ​: [[utilisateurs:​zoph]],​[[utilisateurs:​snoopyp]].//
  • pure-ftp.1255825009.txt.gz
  • Dernière modification: Le 18/10/2009, 02:16
  • par Ner0lph