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 17/10/2009, 23:27]
213.95.41.13
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>​+
  
-**Création du groupe ftpgroup**+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.
  
-<​code>​sudo groupadd ftpgroup</​code>​+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.
  
-**Création ​de l'utilisateur ftpuser**+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).
  
-<​code>​sudo useradd -g ftpgroup -d /​dev/​null ​-s /etc ftpuser</​code>​+Plusieurs serveurs FTP Pure-FTPd indépendants peuvent ​s'​exécuter de façon concurrente sur la même machine.
  
 +<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>​
  
-**Configuration** ;-)+===== Pré-requis ===== 
 +  
 +  ​Disposer des [[:​sudo|droits d'​administration]]. 
 +  ​Disposer d'une connexion à Internet configurée et activée. 
 +===== Installation =====
  
-La configuration se fait à l'aide de fichiers présent dans le dossier /etc/pure-ftpd/conf/+[[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] **[[apt>pure-ftpd]]**.
  
-Ces fichiers sont documentés dans le ReadMe officiel de PureFtpd (voir [[http://​download.pureftpd.org/​pub/​pure-ftpd/​doc/​README|README Pure-ftpd]]) +===== Configuration ​===== 
-Ils prennent des valeurs de type: yes/no, chemin, valeur...  +Création du groupe ftpgroup :
-===== Création d'un utilisateur virtuel ​=====+
  
 +  sudo groupadd ftpgroup
  
-//Ne pas utiliser PUREADMIN pour gérer les utilisateurs virtuels//+Création de l'​utilisateur ftpuser :
  
-<​code>​sudo pure-pw ​useradd ​test -u ftpuser ​-g ftpgroup -d /home/www/test</code>+  ​sudo useradd -g ftpgroup -d /dev/null -s /usr/sbin/​nologin ftpuser 
 +  ou 
 +  sudo useradd -g ftpgroup --system ftpuser
  
-**Syntaxe et options pour vos utilisateurs:​**+La configuration se fait à l'aide de fichiers présents dans le dossier /​etc/​pure-ftpd/​conf/​
  
-<​code> ​        ​pure-pw useradd <​login> ​[-f <passwd file>] -u <​uid> ​[-g <​gid>​] +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/nochemin, valeur...
-                         -D/-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 
  
-<​code>​sudo ​pure-pw mkdb</code>+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/​confet créer le fichier dont le nom est relatif à l'​option.
  
-Après chaque modification ou rajout d'utilisateur ​il faut régénérer le fichier des utilisateurs avec cette commande+Pour l'exemple LimitRecursion 
 +(note : il faut respecter la casse)
  
-**Lister les utilisateurs virtuels :**+ensuite vous renseignez ce fichier, pour 10000 fichiers et 50 répertoires 
 +10000 50
  
-<​code>​sudo pure-pw list</​code>​+puis vous relancez le serveur Pure-ftp.
  
-D'autres ​fonctions sont disponibles.+Vous faites de façon identique pour toutes les autres ​options.
  
-Pour ne pas avoir une erreur 530 à la connexion du client FTP il faut créer le lien symbolique:+| -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. |
  
-<​code>​sudo ​ln -s /etc/pure-ftpd/conf/PureDB /​etc/​pure-ftpd/auth/75puredb</​code>​+==== 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>​
  
-**Pour relancer le serveur pure-ftpd :** 
  
-<​code>​sudo /​etc/​init.d/​pure-ftpd restart</​code>​+Il faut maintenant générer le fichier des utilisateurs :​
  
-//Avec Pureadmin, il est agréable de voir les connexions actives, suivre le journal sous interface graphique, mais ne pas l'​utiliser pour la gestion des comptes.//+  sudo pure-pw mkdb
  
-Pour Installer pureadmin :+Après chaque modification ou rajout d'​utilisateur il faut régénérer le fichier des utilisateurs avec cette commande.
  
-<​code>​sudo apt-get install pureadmin<​/code>+Pour activer l'​authentification liée à Pure-FTP : 
 +  ​sudo ln -s /​etc/​pure-ftpd/​conf/​PureDB /​etc/​pure-ftpd/​auth/50pure
  
-**Lister les utilisateurs connectés et leurs états :**+===Changer le mot de passe d'un utilisateur===
  
-<​code>​sudo pure-ftpwho</​code>​+Si un mot de passe a été oublié ou doit être changé, utiliser cette commande :
  
-**Autoriser les utilisateurs virtuels à suivre les liens symboliques (symlinks) :**+  sudo pure-pw passwd nom_utilisateur
  
-Pour celà, il faut activer le "​virtualchroot"​ dans le fichier ​/​etc/​default/​pure-ftpd-common+Regénérer ​le fichier ​des utilisateurs
  
-<​code>​VIRTUALCHROOT=true</​code>​+  sudo pure-pw mkdb 
 +==== Autoriser les utilisateurs virtuels à suivre les liens symboliques (symlinks) ====
  
 +Pour cela, il faut activer le "​virtualchroot"​ dans le fichier /​etc/​default/​pure-ftpd-common
  
 +<​file>​
 +VIRTUALCHROOT=true
 +</​file>​
  
 +==== Ajouter un message d'​accueil ====
  
 +On crée notre fichier contenant le ou les messages :
  
-===== Ajouter un message d'​accueil =====+  nano /​home/​user/​nomfichier
  
-On crée notre fichier contenant le ou les message(s):​ +On insère ​directement notre texte.
-<​code>​vi /​home/​user/​nomfichier</​code>​ +
- +
-On insert ​directement notre texte.+
  
 Pour générer plusieurs messages aléatoirement,​ il suffit de séparer les messages par le caractère "​%"​. Pour générer plusieurs messages aléatoirement,​ il suffit de séparer les messages par le caractère "​%"​.
  
-On donne les droits nécessaires:​ +On donne les droits nécessaires :
-<​code>​sudo chmod 644 /​home/​user/​nomfichier</​code>​+
  
-Une fois le fichier crée, on ajoute à la config de Pureftpd l'​option -F (fortunesfile):​ +  sudo chmod 644 /home/user/nomfichier
-<​code>​vi ​/etc/pure-ftpd/conf/​FortunesFile</​code>​+
  
-Et on y ajoute le chemin de notre message:+Une fois le fichier crée, on ajoute à la config de Pureftpd l'​option -F (fortunesfile) : 
 + 
 +  nano /​etc/​pure-ftpd/​conf/​FortunesFile 
 + 
 +Et on y ajoute le chemin de notre message : 
 + 
 +<​file>​
 /​home/​user/​nomfichier /​home/​user/​nomfichier
 +</​file>​
  
 Il suffit ensuite de redémarrer le serveur: Il suffit ensuite de redémarrer le serveur:
-<​code>​sudo /​etc/​init.d/​pure-ftpd restart</​code>​ 
  
-On retrouve alors notre option -F:+  sudo /​etc/​init.d/​pure-ftpd restart 
 + 
 +On retrouve alors notre option -F : 
 <​code>​-F /​home/​user/​nomfichier</​code>​ <​code>​-F /​home/​user/​nomfichier</​code>​
  
-//Pour afficher l'​espace disque on peut exécuter un script à intervalles régulières de type "df -H /​dossierdepartage > /​home/​user/​nomfichier" ​//+<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> 
 + 
 +===== Utilisation ===== 
 +==== Lister les utilisateurs virtuels ==== 
 + 
 +  sudo pure-pw list 
 + 
 +D'​autres fonctions sont disponibles. 
 + 
 +Pour ne pas avoir une erreur 530 (connexion refusée) à la connexion du client FTP il faut créer le lien symbolique:​ 
 + 
 +  sudo ln -s /etc/​pure-ftpd/​conf/​PureDB /​etc/​pure-ftpd/​auth/​75puredb 
 + 
 +<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//​. 
 + 
 +Si erreur : **530 Sorry, but I can't trust you** 
 + 
 +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. 
 + 
 +Il faut peut être redémarrer pour rendre la modification effective... 
 + 
 +==== Pour relancer le serveur pure-ftpd ==== 
 + 
 +  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.1255814859.txt.gz
  • Dernière modification: Le 17/10/2009, 23:27
  • par 213.95.41.13