GNU/Linux >> Tutoriels Linux >  >> Panels >> Webmin

Serveur ProFTPD

Cette page explique le protocole FTP, puis décrit comment configurer le serveur ProFTPD et comment le configurer à diverses fins.

Remarque : Comme les clients FTP modernes prennent en charge SSH, envisagez d'utiliser un serveur SSH au lieu d'un serveur FTP, pour (beaucoup) plus de sécurité que n'importe quel serveur FTP peut promettre

Contenu

Introduction à FTP et ProFTPD

FTP signifie protocole de transfert de fichiers et, avec telnet et SMTP, est l'un des plus anciens protocoles encore couramment utilisés sur Internet. FTP est conçu pour permettre aux programmes clients de lire, d'écrire et de supprimer des fichiers sur un serveur distant, quel que soit le système d'exploitation exécuté par le serveur. Il s'agit essentiellement d'un protocole de partage de fichiers, mais contrairement aux protocoles NFS et SMB plus courants, il est mieux adapté à une utilisation sur un réseau lent ou à latence élevée.

Généralement, FTP est utilisé pour transférer des fichiers d'un système à un autre. Parfois, ces fichiers sont des images de CD de distribution Linux ou des packages RPM, téléchargés par divers hôtes clients sur Internet à partir d'un grand système de serveur qui les héberge pour que tout le monde puisse y accéder. D'autres fois, les fichiers sont des pages d'un site Web, téléchargées par un client FTP géré par le propriétaire du site vers un système qui exécute à la fois le serveur Web et un serveur FTP.

Même si le protocole FTP a été en grande partie remplacé par HTTP comme méthode de téléchargement de fichiers, il présente encore de nombreux avantages. Le plus important est la capacité des clients à télécharger des fichiers sur le serveur, en supposant qu'il a été configuré pour les autoriser. Un autre est un format de liste de répertoires semi-standard, que les clients peuvent utiliser pour récupérer une liste de fichiers dans un répertoire à partir du serveur.

Lorsqu'un client FTP se connecte à un serveur, il doit d'abord s'authentifier avant que tout transfert de fichiers puisse avoir lieu. Souvent, les clients se connectent en tant qu'utilisateur anonyme spécial, qui ne nécessite aucun mot de passe et est généralement configuré pour ne pouvoir télécharger que des fichiers. Sur les systèmes Unix, la plupart des serveurs FTP permettent à tout utilisateur local de se connecter avec le même nom d'utilisateur et mot de passe qu'il utiliserait pour telnet ou SSH, et donnent à son client l'accès aux mêmes fichiers avec les mêmes autorisations.

Une autre caractéristique unique du protocole FTP est sa prise en charge de la traduction des fichiers entre le format de données utilisé sur le client et celui utilisé sur le serveur. L'utilisation la plus courante de ceci est la conversion de fichiers texte entre les formats Unix, Windows et MacOS, chacun utilisant des caractères différents pour représenter la fin d'une ligne. Cette fonctionnalité peut être désactivée pour le transfert de fichiers binaires tels que des images, des exécutables et des ISO, car elle corrompt les données non textuelles.

Il existe de nombreux programmes clients FTP différents, de la commande Unix ftp de base aux navigateurs comme IE et Mozilla. Chaque système d'exploitation moderne en possède au moins un, et presque tous incluent un client quelconque en standard. Les serveurs FTP sont également nombreux, mais ce chapitre se concentre sur un seul - ProFTPD, qui, à mon avis, est le serveur le plus flexible disponible pour les systèmes d'exploitation Unix.

Même si toutes les variétés d'Unix sont livrées avec un serveur FTP en standard, le serveur fourni est généralement soit très basique et dépourvu de fonctionnalités, soit le WU-FTPd plus puissant. Bien que ce dernier dispose de nombreuses options configurables, il n'est pas aussi performant que ProFTPD en ce qui concerne l'hébergement virtuel, les restrictions de répertoire et le verrouillage des utilisateurs dans leurs répertoires personnels.

ProFTPD utilise généralement un seul fichier de configuration, trouvé dans /etc/proftpd.conf. Ce fichier est composé de directives, chacune d'elles occupant généralement une seule ligne et ayant un nom et une valeur. Chaque directive définit une seule option configurable, telle que le nom d'un fichier caché ou le chemin d'accès à un message de bienvenue. Il existe également des directives de conteneur spéciales pour regrouper d'autres directives qui s'appliquent uniquement à un seul serveur virtuel ou répertoire, qui s'étendent sur plusieurs lignes.

Le module serveur ProFTPD

L'icône du module ProFTPD Server se trouve dans Webmin sous l'onglet Serveurs du menu principal. Lorsque vous cliquez dessus, la page principale du module, comme indiqué dans l'image ci-dessous, apparaît, en supposant que le serveur est réellement installé.


Le module Serveur ProFTPD

Si la page principale affiche à la place un message d'erreur du type *Le serveur ProFTPD /usr/sbin/proftpd est introuvable sur votre système*, le serveur n'est probablement pas installé et le module ne peut donc pas être utilisé. La plupart des distributions Linux incluent un package ProFTPD sur leur CD ou leur site Web, utilisez donc le module Software Packages (traité au chapitre 12) pour l'installer. Si aucun package n'existe, téléchargez le code source depuis www.proftpd.org, compilez-le et installez-le.

Si vous avez déjà installé un autre serveur FTP, vous devez d'abord le supprimer afin qu'il n'y ait pas de conflit.

Une autre erreur que la page principale peut afficher est *Le programme /usr/sbin/ftpd ne semble pas être le serveur ProFTPD*. Cela se produira si Webmin détecte qu'un autre serveur FTP est installé à la place - si c'est le cas, vous devrez le supprimer et installer ProFTPD.

ProFTPD peut être exécuté dans deux modes différents - soit en tant que processus démon autonome qui écoute les connexions FTP, soit à partir d'un super-serveur comme inetd ou xinetd. Le premier accepte les connexions plus rapidement, mais au prix de plus de mémoire utilisée par un processus qui s'exécute tout le temps. Ce dernier est préférable pour les systèmes qui ne s'attendent pas à recevoir beaucoup de trafic FTP, car le programme ProFTPD ne s'exécute que lorsqu'il est nécessaire.

Étant donné que le mode autonome est plus facile à configurer et que la mémoire est abondante sur la plupart des systèmes, ce chapitre suppose que vous l'exécuterez dans ce mode. Pour démarrer le processus du serveur ProFTPD, suivez ces étapes :

  1. Dans le module Services et protocoles Internet (traité dans les services Internet), assurez-vous que tout service existant nommé ftp a Programme désactivé ou Aucun programme attribué choisi. Cela garantit qu'aucun service FTP ne sera exécuté par inetd. Si vous désactivez un service, assurez-vous de cliquer sur Appliquer les modifications sur la page principale de ce module pour activer vos modifications.
  2. Dans le module Services Internet étendus, assurez-vous que tous les services dont le nom contient ftp (tels que wu-ftpd, proftpd ou vsftpd) ont leur service activé ? champ défini sur Non . Encore une fois, vous devrez appuyer sur les modules Appliquer les modifications pour activer les modifications.
  3. De retour dans le module ProFTPD Server, cliquez sur l'icône Options de mise en réseau.
  4. Sélectionnez Démon autonome à partir du type de serveur menu.
  5. Cliquez sur Enregistrer bouton en bas de la page.
  6. De retour sur la page principale du module, un bouton intitulé Démarrer le serveur devrait apparaître en bas. Appuyez dessus pour démarrer le démon ProFTPD.
  7. Si vous souhaitez que le démon soit redémarré au démarrage, utilisez le module Bootup and Shutdown pour créer une action appelée proftpd qui exécute la commande /usr/sbin/proftpd au démarrage. Le chemin réel peut être /usr/local/sbin/proftpd ou /usr/sbin/in.proftpd selon la distribution Linux que vous utilisez ou si vous avez compilé et installé le programme vous-même au lieu d'utiliser un package. De plus, certains packages ProFTPD peuvent déjà inclure un script de démarrage comme celui-ci, que vous devrez peut-être simplement activer.

Une fois ProFTPD démarré, vous pouvez le tester en utilisant le client FTP Unix en ligne de commande pour vous connecter à votre propre système. Exécutez simplement ftp localhost et assurez-vous que vous pouvez vous connecter en tant qu'utilisateur autre que root. Vous pouvez vérifier que le serveur est bien ProFTPD en vérifiant la version affichée par la commande ftp juste avant qu'elle ne demande un nom d'utilisateur, à moins qu'elle n'ait été configurée par défaut pour ne pas afficher les informations de version.

Exécuter ProFTPD depuis inetd ou xinetd

Configurer ProFTPD pour qu'il s'exécute à partir d'un super-serveur n'est pas trop difficile non plus, et peut être une bonne idée si votre système manque de mémoire ou ne reçoit presque jamais de connexions FTP. Avant de pouvoir le faire, vous devez tuer tout processus de serveur proftpd existant (facile à faire avec le module Processus en cours d'exécution) et désactiver ou supprimer toute action qui le démarre au démarrage.

Si votre système utilise le supérieur xinetd, suivez ces instructions pour configurer le service FTP. Étant donné que de nombreux packages incluent un fichier de configuration /etc/xinetd.d pour le serveur, certains des champs expliqués ci-dessous peuvent déjà être remplis correctement.

  1. Accédez à la catégorie Réseaux de Webmin et cliquez sur l'icône * Services Internet étendus *. S'il n'existe pas, xinetd n'est pas installé et vous devrez configurer le serveur à l'aide d'inetd à la place.
  2. Sur la page principale du module, recherchez un service existant nommé ftp ou proftp. S'il existe, cliquez dessus - sinon, suivez la procédure Créer un nouveau service Internet lien au-dessus ou au-dessous du tableau.
  3. Dans le nom du service champ, entrez ftp (sauf s'il a déjà été rempli).
  4. Assurez-vous que Oui l'option est sélectionnée dans le Service activé ? domaine.
  5. Laissez Lier à l'adresse champ défini sur Tous , et le *Numéro de port* sur Standard ou 21 .
  6. Sélectionnez Diffusion à partir du Type de socket menu, et Par défaut ou TCP du Protocole liste.
  7. Dans le Service géré par champ, sélectionnez le Programme serveur option et entrez le chemin vers l'exécutable proftpd (tel que /usr/sbin/proftpd ) dans la zone de texte adjacente. Le chemin varie selon que vous avez installé le programme à partir d'un package ou que vous l'avez compilé à partir du code source.
  8. Dans la section Exécuter en tant qu'utilisateur champ, entrez racine .
  9. Sélectionnez Non pour le Attendre la fin ? domaine.
  10. Laissez tous les autres champs définis sur leurs valeurs par défaut et cliquez sur Enregistrer ou Créer bouton en bas du formulaire.
  11. De retour sur la page principale du module, cliquez sur Appliquer les modifications sous la liste des services.

Sinon, pour configurer un service inetd pour ProFTPD à l'aide du module Services et protocoles Internet, suivez ces étapes :

  1. Accédez à la catégorie Réseaux de Webmin et cliquez sur l'icône * Services et protocoles Internet*. S'il n'existe pas, votre système utilise probablement xinetd à la place - consultez les étapes du paragraphe précédent pour savoir comment le configurer.
  2. Sur la page principale du module, cliquez sur ftp dans le tableau *Services Internet*. S'il n'est pas visible, saisissez ftp dans le champ *Modifier le service* et cliquez sur le bouton. Dans tous les cas, la même page de modification du service de protocole FTP s'affichera.
  3. Dans le Programme Serveur section, sélectionnez Programme activé .
  4. Dans le champ Programme , sélectionnez la Commande option et entrez le chemin complet vers l'exécutable du serveur ProFTPD dans le champ à côté, comme /usr/sbin/proftpd . Dans les arguments champ, saisissez simplement proftpd . Le chemin varie selon que vous avez installé le programme à partir d'un package ou que vous l'avez compilé à partir du code source.
  5. Définir le mode d'attente à N'attendez pas , et entrez racine dans Exécuter en tant qu'utilisateur domaine. Tous les autres peuvent rester inchangés.
  6. Cliquez sur Enregistrer , puis de retour sur la page principale du module, appuyez sur Appliquer les modifications .

Une fois que ProFTPD a été configuré pour s'exécuter à partir d'inetd ou de xinetd, vous pouvez le tester en utilisant le client FTP Unix en ligne de commande pour vous connecter à votre propre système. Exécutez simplement ftp localhost et assurez-vous que vous pouvez vous connecter en tant qu'utilisateur autre que root. Si votre connexion de test échoue avec une erreur telle que Service non disponible , la cause la plus probable est que ProFTPD est configuré pour s'exécuter en tant que serveur autonome. Ce problème peut être facilement résolu en suivant ces étapes :

  1. Accédez au module ProFTPD Server et cliquez sur l'icône *Networking Options* sur la page principale.
  2. À partir du type de serveur menu dans le formulaire qui apparaît, sélectionnez Exécuter à partir d'Inetd .
  3. Cliquez sur Enregistrer bouton en bas de la page.

Les instructions dans le reste de ce chapitre fonctionneront correctement quel que soit le mode dans lequel ProFTPD s'exécute. La seule différence est que le bouton Appliquer les modifications n'apparaîtra pas sur la page principale, car il n'est pas nécessaire de redémarrer un processus serveur pour que les modifications de configuration prennent effet. Au lieu de cela, les modifications s'appliqueront à la prochaine session FTP démarrée.

Utilisation du module serveur ProFTPD

ProFTPD utilise un format de fichier de configuration très similaire à Apache, et donc l'interface utilisateur de ce module est la même à bien des égards que le module de configuration Apache. Au niveau le plus élevé de la configuration se trouvent les paramètres globaux qui affectent l'ensemble du serveur. En dessous se trouvent les serveurs virtuels, puis les options FTP anonymes, les options par répertoire et les options qui s'appliquent uniquement à certaines commandes FTP.

Les options qui s'appliquent à chaque connexion ou commande FTP sont déterminées par le serveur virtuel auquel est connecté, le type de connexion, le répertoire dans lequel se trouve le fichier demandé et la commande FTP spécifique utilisée. Les options définies par les objets inférieurs dans la hiérarchie remplacent celles des niveaux supérieurs, de sorte que vous pouvez empêcher le téléchargement vers un serveur, mais l'autoriser pour un répertoire. De même, les options d'un répertoire plus spécifique (comme /usr/local/upload) remplacent celles de ses parents (comme /usr/local).

Un cas particulier est le serveur par défaut, qui définit les paramètres des clients qui ne se connectent à aucun serveur virtuel spécifique. Contrairement à Apache, les options définies dans le serveur par défaut n'affectent pas les serveurs virtuels. Au lieu de cela, si vous souhaitez spécifier un paramètre qui les affecte tous, cela doit être dans la section globale spéciale de la configuration ProFTPD. Cela s'applique également aux options spécifiques aux répertoires et aux commandes FTP.

Le module dispose d'une page d'options d'édition pour chaque objet de l'arborescence, qui contient des icônes liées aux objets plus bas. Par exemple, sur la page des options du serveur virtuel se trouvent des icônes pour les différentes catégories d'options qui s'appliquent à ce serveur (telles que la journalisation, l'utilisateur et le groupe), ainsi que des icônes pour tous les répertoires ou commandes FTP qui ont leurs propres options dans le serveur virtuel. serveur. Il existe également une icône pour les options spécifiques aux connexions FTP anonymes.

Sur chaque page de la hiérarchie se trouvent des formulaires pour ajouter des objets (tels qu'un répertoire ou un groupe de commandes FTP) en dessous, et un Configurer icône pour modifier ou supprimer l'objet courant. Chaque page contient également un Modifier les directives icône vous permettant de visualiser et de modifier manuellement les directives ProFTPD pour le répertoire, le serveur virtuel ou quoi que ce soit que la page représente. L'exception est la page du serveur par défaut, qui n'a pas de telles icônes car elle ne peut pas être modifiée ou supprimée et parce que ses directives ne peuvent pas être séparées du reste du fichier de configuration.

À première vue, certains des formulaires du module peuvent sembler intimidants car ils affichent des champs pour presque toutes les options ProFTPD disponibles dans une catégorie liée à un objet. Cependant, bon nombre de ces options sont extrêmement spécialisées et peuvent être ignorées la plupart du temps. Les étapes des différentes sections de ce chapitre expliquent celles que vous devez modifier pour obtenir un résultat - les autres peuvent être laissées telles quelles, car leurs valeurs par défaut sont généralement adéquates.

Étant donné que chaque nouvelle version de ProFTPD publiée prend en charge de nouvelles directives, ce module peut détecter la version que vous exécutez et ajuster son interface utilisateur pour afficher uniquement les champs valides pour votre version. Cela signifie que les formulaires peuvent ne pas avoir exactement la même apparence sur tous les systèmes et que certaines parties des instructions de ce chapitre peuvent ne pas être valides pour votre serveur FTP si vous utilisez une version plus ancienne.

Créer des serveurs virtuels

La fonctionnalité la plus utile de ProFTPD est probablement sa prise en charge des serveurs FTP virtuels. Cela vous permet de définir un ensemble d'options totalement différent qui s'applique aux clients se connectant à une adresse IP particulière. À bien des égards, ils sont similaires aux serveurs virtuels basés sur IP d'Apache, que la plupart des administrateurs de sites Web devraient connaître.

Les serveurs virtuels ne sont vraiment utiles que si votre système possède plusieurs adresses IP. Généralement, cela se fait en ajoutant des adresses IP virtuelles supplémentaires à votre interface réseau connectée à Internet, comme expliqué sur la page de configuration du réseau. Comme d'habitude, toute adresse IP supplémentaire doit être correctement acheminée vers votre système - si vous êtes connecté à un FAI et qu'une seule adresse statique vous est attribuée, vous ne pouvez pas simplement ajouter des interfaces virtuelles supplémentaires et vous attendre à ce qu'elles fonctionnent. Contrairement à Apache, ProFTPD ne prend pas en charge les serveurs virtuels basés sur le nom car il n'y a aucune disposition dans le protocole FTP pour eux. Les clients ne disent jamais au serveur le nom d'hôte auquel ils se connectent, de sorte que le serveur FTP ne peut utiliser que l'adresse IP sur laquelle une connexion a été reçue pour déterminer quel serveur virtuel le client souhaite.

Lorsque votre système reçoit une connexion FTP, ProFTPD comparera l'adresse connectée avec celles de tous les serveurs virtuels configurés. Le premier correspondant définit les options qui s'appliquent à la connexion. Si aucune correspondance n'est trouvée, le serveur par défaut est utilisé à la place.

Pour ajouter un nouveau serveur FTP virtuel à votre système, les étapes à suivre sont :

  1. Dans le module de configuration réseau, ajoutez une nouvelle adresse IP virtuelle à l'interface réseau externe de votre système. Assurez-vous qu'il sera activé au démarrage et qu'il est actif maintenant.
  2. De retour dans le module ProFTPD Server, faites défiler jusqu'au formulaire *Créer un serveur virtuel* en bas de la page principale.
  3. Dans l'Adresse champ, entrez l'adresse IP que vous venez d'attribuer. Il ne doit être utilisé par aucun autre serveur virtuel déjà défini.
  4. Quittez le port champ défini sur Par défaut .
  5. Dans le Nom du serveur champ, sélectionnez le deuxième bouton radio et entrez un nom pour ce serveur qui sera affiché pour les clients qui se connectent. Par exemple, vous pouvez entrer le serveur FTP de _Example Corporation_. Si par défaut est sélectionné, les clients verront un message comme ProFTPD 1.2.2rc2 Server à la place.
  6. Cliquez sur Créer bouton pour ajouter le serveur. Une fois créé, vous serez redirigé vers la page d'options du nouveau serveur.
  7. Revenez à la page principale du module et cliquez sur Appliquer les modifications bouton pour le rendre actif.

Une fois qu'un serveur virtuel a été créé, vous pouvez définir les options qui s'y appliquent en cliquant sur son icône sur la page principale, puis sur l'une des icônes de catégorie. Certaines d'entre elles sont expliquées plus en détail plus loin dans le chapitre. Il est également possible de modifier les attributs d'un serveur virtuel en cliquant sur le bouton Configurer le serveur virtuel en éditant les champs du formulaire (qui ont la même signification que ceux du formulaire de création) et en cliquant sur Enregistrer . Ou vous pouvez le supprimer complètement en cliquant sur Supprimer le serveur virtuel bouton sur le formulaire de configuration.

Configuration d'un FTP anonyme

Dans sa configuration par défaut, ProFTPD permettra généralement à tous les utilisateurs Unix de se connecter avec leurs mots de passe normaux et d'accéder à tous les fichiers du système avec les mêmes autorisations qu'ils auraient s'ils étaient connectés via telnet ou SSH. Certains packages ont également activé le FTP anonyme pour le serveur par défaut, afin que n'importe qui puisse se connecter en tant qu'utilisateur anonyme et afficher les fichiers dans un répertoire spécifique. Pour configurer un FTP anonyme pour un nouveau serveur virtuel, configurez ce que les clients peuvent faire et les répertoires auxquels ils peuvent accéder, suivez ces étapes :

  1. Sur la page principale du module, cliquez sur l'icône du serveur par défaut ou virtuel pour lequel vous souhaitez configurer le FTP anonyme.
  2. Sur la page des options du serveur virtuel, cliquez sur l'icône *FTP anonyme*. Si c'est la première fois qu'il est configuré pour ce serveur, un petit formulaire apparaîtra pour entrer les paramètres FTP anonymes.
  3. Dans le Limiter au répertoire , entrez le répertoire auquel les clients anonymes doivent être limités, comme /home/example.com/anonftp .
  4. Dans Accéder aux fichiers en tant qu'utilisateur option, sélectionnez le deuxième bouton radio et entrez le nom d'un utilisateur Unix non privilégié tel que ftp ou personne . Les clients ne seront pas seulement limités au répertoire choisi, mais ne pourront également accéder aux fichiers qu'avec les autorisations de cet utilisateur Unix. Naturellement, vous devez vous assurer qu'il peut réellement lire et répertorier le répertoire et les fichiers qu'il contient. Cet utilisateur ne doit pas être dans la liste refusée de ProFTPD, ou avoir un shell invalide. Voir la limitation des personnes autorisées à se connecter section plus loin dans le chapitre pour plus d'informations sur la modification de cette liste et l'autorisation des utilisateurs avec n'importe quel shell.
  5. Si vous acceptez que les clients utilisent les autorisations de groupe de l'utilisateur définies dans le champ précédent, laissez le champ *Accéder aux fichiers en tant que groupe* défini sur Par défaut . Sinon, sélectionnez le deuxième bouton radio et entrez un nom de groupe dans son champ.
  6. Cliquez sur Créer pour définir la configuration initiale du FTP anonyme. En supposant qu'il réussisse, le navigateur sera redirigé vers la page des options FTP anonymes sur laquelle se trouvent des icônes pour les différentes catégories d'options configurables liées aux connexions FTP anonymes.
  7. Cliquez sur Authentification et dans le tableau des alias de nom d'utilisateur, entrez anonymous sous Nom d'utilisateur de connexion , et le nom de l'utilisateur que vous avez choisi à l'étape 4 sous Nom d'utilisateur réel . Cela indique à ProFTPD que les clients se connectant en tant qu'anonyme doivent recevoir les autorisations de cet utilisateur.
  8. Cliquez sur Enregistrer bouton pour revenir à la page des options FTP anonyme.
  9. Dans les commandes FTP champ, entrez WRITE et cliquez sur Créer pour démarrer le processus de définition des options qui s'appliquent aux commandes FTP qui modifient les données sur le serveur. Vous serez redirigé vers la page d'options par commande.
  10. Cliquez sur Contrôle d'accès et sélectionnez Refuser tous les clients dans le Contrôle d'accès domaine politique. Cela indique à ProFTPD de bloquer les tentatives de clients anonymes de télécharger, supprimer ou renommer des fichiers.
  11. Cliquez sur Enregistrer bouton.
  12. Revenez à la page principale du module et appuyez sur Appliquer les modifications . Pour vous assurer que tout fonctionne, essayez de vous connecter au serveur virtuel en tant qu'utilisateur anonyme et de télécharger certains fichiers.

Si vous utilisez votre système pour héberger plusieurs sites Web et FTP pour différents clients, chacun peut recevoir son propre serveur anonyme virtuel pour rendre les fichiers accessibles aux personnes via FTP. Les navigateurs supposent que les URL ftp:// nécessitent une connexion anonyme et la plupart ne gèrent pas bien les serveurs FTP qui nécessitent une authentification.

Restriction des utilisateurs à leurs répertoires personnels

Par défaut, les clients qui se connectent à ProFTPD en tant qu'utilisateur Unix valide (non anonyme) peuvent parcourir l'ensemble du système de fichiers de votre système, comme ils le feraient si l'utilisateur se connectait via SSH ou telnet. Cependant, cela n'est pas toujours souhaitable sur un système qui a plusieurs utilisateurs non fiables dont vous voulez empêcher de voir les fichiers les uns des autres. Même si les autorisations Unix peuvent être utilisées pour empêcher les utilisateurs de lister les répertoires les uns des autres, elles causent des problèmes si vous utilisez également un serveur Web et avez besoin que son utilisateur httpd ait accès aux fichiers de tout le monde.

Heureusement, ProFTPD permet de restreindre facilement les utilisateurs à leurs répertoires personnels ou à un autre répertoire. Parce que cela ne s'applique qu'aux connexions FTP, il est assez inutile si ces mêmes utilisateurs peuvent entrer telnet ou SSH. Cependant, il est facile d'autoriser un utilisateur à se connecter uniquement via FTP en lui donnant un shell comme /bin/false. Sur un serveur d'hébergement virtuel, les utilisateurs n'ont vraiment besoin que de télécharger des fichiers pour leurs sites Web et n'ont pas du tout besoin d'un accès au shell Unix. Assurez-vous simplement que /bin/false ou tout shell non fonctionnel que vous choisissez est inclus dans le fichier /etc/shells afin que ProFTPD ne refuse pas l'accès aux utilisateurs.

Pour restreindre les répertoires auxquels les clients FTP peuvent accéder, procédez comme suit :

  1. Si vous souhaitez que la restriction ne s'applique qu'à un seul serveur virtuel, cliquez sur son icône sur la page principale du module, puis sur les Fichiers et répertoires icône sur la page des options du serveur virtuel. Cependant, cela n'est pas conseillé car cela peut permettre aux utilisateurs d'éviter la restriction en se connectant à un autre serveur virtuel. Au lieu de cela, vous devez simplement appuyer sur Fichiers et répertoires icône dans la Configuration globale sur la page principale - toutes les restrictions qui y sont définies s'appliqueront à tous les serveurs. Dans tous les cas, la page permettant de configurer la façon dont le serveur répertorie les répertoires et ceux qui sont disponibles (illustrés dans la capture d'écran ci-dessous) apparaîtra.
  2. Le Limiter les utilisateurs aux répertoires Le champ est en fait une table qui vous permet d'entrer une limitation de répertoire à la fois. Il aura toujours une ligne vide, et s'il s'agit de la première restriction de ce type que vous avez créée, c'est tout ce qu'il contiendra. Dans l'Annuaire colonne, sélectionnez Répertoire d'accueil si c'est là que vous voulez que les utilisateurs soient limités. Alternativement, vous pouvez sélectionner le troisième bouton radio et entrer un chemin comme /home ou /var/www pour limiter les utilisateurs à ce répertoire. Il est également possible d'entrer un chemin relatif aux répertoires personnels des utilisateurs, comme ~/public_html . Dans les groupes Unix colonne, sélectionnez Tout le monde pour que la restriction s'applique à tous les utilisateurs, ou sélectionnez le deuxième bouton radio et entrez un nom de groupe pour qu'il s'applique uniquement aux membres de ce groupe. Plusieurs groupes peuvent être entrés en séparant leurs noms par des virgules, comme utilisateurs, personnel .
  3. Cliquez sur Enregistrer pour revenir à la page des options du serveur virtuel. Si vous souhaitez ajouter une autre restriction (par exemple pour un groupe et un répertoire différents), cliquez sur Fichiers et répertoires à nouveau et remplissez la nouvelle ligne vide du tableau.
  4. Lorsque vous avez terminé, revenez à la page principale du module et cliquez sur le bouton *Apply Changes* pour activer les restrictions.


Le formulaire fichiers et répertoires

À partir de maintenant, lorsque les utilisateurs restreints se connecteront, ils ne pourront pas voir les fichiers en dehors du répertoire spécifié ou même déterminer à quel répertoire ils ont été limités. Contrairement à certains autres serveurs FTP qui prennent en charge ce type de restriction, il n'est pas nécessaire de copier des fichiers ou des bibliothèques comme /bin/ls dans le répertoire, car ProFTPD ne dépend d'aucun programme externe.

Limiter qui peut se connecter

ProFTPD n'autorise pas tous les utilisateurs Unix à se connecter, même s'ils ont des noms d'utilisateur et des mots de passe valides. Le fichier séparé /etc/ftpusers répertorie les utilisateurs qui ne sont pas autorisés à s'authentifier, ce qui inclut généralement des comptes système tels que bin, daemon et uucp. De plus, il existe une option de configuration distincte qui contrôle si l'utilisateur root est autorisé à se connecter ou non. Par défaut, ce n'est pas le cas, car les mots de passe envoyés par le protocole FTP ne sont pas cryptés et permettre ainsi à root de s'authentifier pourrait constituer un risque de sécurité majeur.

Par défaut, ProFTPD empêche également les utilisateurs sans shell valide de se connecter. Un shell valide est répertorié dans le fichier /etc/shells. Cette fonctionnalité peut être utile pour empêcher un grand groupe d'utilisateurs de se connecter, tels que ceux qui sont censés ne pouvoir se connecter qu'à un serveur POP3 pour télécharger leur courrier électronique. Cependant, il peut être désactivé si nécessaire.

Pour modifier la liste des utilisateurs refusés et d'autres restrictions de connexion, procédez comme suit :

  1. Sur la page principale du module, cliquez sur Utilisateurs FTP refusés icône. Dans le formulaire qui apparaît, une zone de texte répertorie tous les utilisateurs Unix bloqués. Modifiez-le pour ajouter ou supprimer ceux qui ne devraient pas ou devraient être autorisés à se connecter, et cliquez sur Enregistrer bouton.
  2. Pour autoriser l'utilisateur root à se connecter, cliquez sur Authentification et modifiez l'icône Autoriser la connexion par root ? champ sur Oui .
  3. Pour autoriser les utilisateurs avec des shells non répertoriés à se connecter, définissez le champ * Autoriser uniquement la connexion par les utilisateurs avec un shell valide ?* sur Oui aussi bien.
  4. Cliquez sur Enregistrer pour revenir à la page principale, puis cliquez sur Appliquer les modifications pour activer les nouvelles restrictions.

Les options permettant à l'utilisateur root et aux utilisateurs avec des shells non valides de se connecter peuvent également être définies sur une base par serveur virtuel également, sous Authentification icône sur la page des options du serveur virtuel. Cependant, il n'est généralement pas utile du point de vue de la sécurité d'autoriser les clients d'un seul serveur à se connecter, car les utilisateurs peuvent choisir n'importe quel serveur auquel se connecter.

Configuration des options de liste de répertoires

Normalement, lorsqu'un client FTP demande une liste de répertoires, ProFTPD renverra une liste complète et précise dans le format produit par la commande ls -l. Parfois, cela donne trop d'informations sur votre système, telles que les noms des utilisateurs et des groupes ou les destinations des liens symboliques. Souvent, il peut être utile de cacher certains fichiers qui ne sont pas pertinents pour les clients car ils doivent être conservés dans un répertoire accessible par FTP pour d'autres raisons. Ce type de masquage d'informations s'applique mieux aux utilisateurs FTP anonymes, car ils ne devraient pas être en mesure de découvrir quoi que ce soit sur votre système qu'ils n'ont pas besoin de savoir.

Pour modifier le format des listes de répertoires, procédez comme suit :

  1. Sur la page principale du module, cliquez sur l'icône du serveur par défaut ou virtuel pour lequel vous souhaitez modifier les listes de répertoires pour afficher sa page d'options.
  2. En supposant que vous ne souhaitiez modifier que les informations répertoriées pour les clients anonymes, cliquez sur FTP anonyme icône pour accéder à la page des options de FTP anonyme. Sinon, les utilisateurs normaux d'Unix seront également affectés.
  3. Cliquez sur Fichiers et répertoires pour afficher un formulaire similaire à celui de la Figure 40-3 pour définir les différentes options de liste.
  4. Pour masquer les fichiers appartenant à certains propriétaires de groupe, saisissez un ou plusieurs noms de groupe séparés par des espaces dans le champ *Masquer les fichiers appartenant à des groupes*. Sachez que les fichiers masqués de cette manière peuvent toujours être téléchargés, renommés ou supprimés à moins que les autorisations Unix ou la configuration du serveur ne l'empêchent.
  5. De même, pour masquer les fichiers appartenant à certains utilisateurs, remplissez le champ Masquer les fichiers appartenant aux utilisateurs champ avec une liste de noms d'utilisateurs Unix.
  6. Pour masquer les fichiers que l'utilisateur FTP anonyme ne pourrait pas lire, modifiez l'option Masquer les fichiers inaccessibles ? champ sur Oui .
  7. Pour que ProFTPD convertisse les liens symboliques dans les listes vers leurs autorisations et leur taille de fichier cible, modifiez le champ *Afficher les liens symboliques ?* sur Oui . Normalement, le lien et le nom de la cible sont affichés, et les autorisations et la propriété affichées sont celles du lien. Cependant, même avec cette fonctionnalité activée, la cible du lien doit toujours se trouver dans le répertoire FTP anonyme.
  8. Normalement, les listes de répertoires incluent l'utilisateur réel et les propriétaires de groupes de fichiers. Pour changer cela, définissez le champ *Fake group in directory listings?* sur Oui, en tant que groupe . Ensuite, dans la case ci-dessous, sélectionnez soit ftp pour forcer le propriétaire du groupe à toujours s'afficher en tant que ftp, ou le troisième bouton radio pour qu'il s'affiche en tant que groupe que vous avez entré dans la zone de texte adjacente. L'option *Groupe connecté* n'a vraiment de sens que pour les clients non anonymes, car elle donne l'impression que les fichiers appartiennent au groupe principal de l'utilisateur connecté.
  9. De même, vous pouvez modifier le propriétaire utilisateur Unix des fichiers avec le Fake user in directory listings ? domaine. Si *Utilisateur connecté* est choisi, les fichiers apparaîtront comme appartenant à l'utilisateur actuellement connecté au serveur FTP.
  10. Par défaut, ProFTPD affichera les permissions réelles des fichiers Unix dans les listes. Pour forcer l'affichage des fakes à la place, sélectionnez la deuxième option dans les Fake permissions in directory listings champ et entrez un nombre octal comme 0644 du type utilisé par la commande chmod. Cela n'a aucun effet sur les autorisations réelles qui s'appliquent si un client essaie de télécharger ou de télécharger un fichier bien sûr.
  11. Pour masquer les fichiers de points tels que .login et .profile dans les listes (comme le fait généralement la commande ls), définissez *Afficher les fichiers commençant par . dans les annonces ?* champ Oui .
  12. Finally, hit the Save button at the bottom of the page to update the ProFTPD configuration file.
  13. Return to the module's main page and press the Apply Changes button to make the settings active.

As well as hiding certain files (as explained in steps 4 and 5), you can also prevent clients from reading or writing those files altogether. This can be done using the Make hidden files inaccessible? field, explained in the Restricting access to FTP commands section later in the chapter.

Message and readme files

ProFTPD can be configured to display messages to clients when they login or enter certain directories. This can be useful for notifying users of possible mirror sites, the locations of various common files on the server, and the details of the contents of a directory.

To set the messages that are displayed to clients, follow these steps :

  1. If you want the messages to be used by all virtual servers, click on the Authentication icon on the module's main page. To set messages for a specific virtual server, click on its icon and then on Authentication on the server options page. Either way, the same form will be displayed. It is also possible to set most of the message file options below for only anonymous clients by clicking on the Anonymous FTP icon on the virtual server page and then on Authentication . Naturally, you cannot set the pre-login message because the server does not know if a client is anonymous or not at that stage.
  2. In the Pre-login message file field, enter the full path to a file whose contents should be sent to clients as soon as they connect. If you don't want any message file to be used at all, select None Au lieu.
  3. In the Post-login message file field, enter the path to a text file whose contents will be sent to clients after they have been properly authenticated. If the client is limited to a directory (because it logged in anonymously or has a home directory restriction in force), the file must be within and relative to that directory. If the filename is relative (like welcome.txt ), it will be searched for in the directory that the client is initially placed in.
  4. To set a message sent to clients when they request to disconnect, fill in the Logout message file domaine. Again, this must be relative to and under any directory that the client is restricted to.
  5. If you have a restriction on the maximum number of simultaneous logins in force, you can set the message sent to clients blocked by it by filling in the Too many connections message file domaine. You should enter a full path, which can be anywhere on your system. See the Limiting concurrent logins section for more details.# Hit the Save button at the bottom of the page to go back to the global, virtual server or anonymous FTP options page.
  6. Click on the Files and Directories icon on the same page.
  7. In the Directory README filename field, enter a relative name like readme.txt that will be searched for in each directory that a client enters. If this is the first time the client has entered the directory in this session (or if the file has changed since the last time), its contents will be sent to the FTP client.
  8. To have the server send a message to clients suggesting that a particular file should be read, fill in the *Notify user of readme files matching* field. If files in the directory matching the specified regular expression (like README.* ) exist, a short message containing their names and modification times will be sent.
  9. Cliquez sur Enregistrer button on this form, then return to the module's main page. Finally click the Apply Changes button to activate the new message file settings.

The files sent to the client by the options covered above can contain certain special cookies that start with a %, which are replaced by ProFTPD with text determined at the time of sending. According to the ProFTPD documentation, the currently supported cookies are :

Not all may make sense in all situations though - for example, %U will not be set in the pre-login message file.

Setting per-directory options

The ProFTPD module allows you to set options that apply only to a specific directory, rather than globally or to an entire virtual server. This allows you to do things like hide a directory from clients, allow uploads by anonymous clients in just one location, or set the user and group ownership of files added to a directory.

To create a new set of per-directory options, follow these steps:

  1. If you want the options to apply to all virtual servers, enter the directory into the Directory path field in the *Add per-directory options for* form on the module's main page and hit the Create bouton. Alternately, you can limit them to a particular virtual server by clicking on its icon and using the same form on the virtual server options page. Or you can define options that only apply to anonymous clients by hitting the Anonymous FTP icon for a virtual server and using its directory options creation form. In all cases, the directory should be entered as an absolute path like /usr/local . It is also possible to specify a path relative to the connecting user's home directory, like ~/public_html . You can even enter a path in a particular user's home directory, like ~jcameron/www . Normally, the options will apply to the directory and all its contents and subdirectories. To have them apply to only the contents and not the directory itself, add /* to the end of the path that you enter, like /usr/local/* .
  2. After hitting Create , you will be taken to a page of option category icons for the directory as shown in Figure 40-4. As usual, clicking on these icons will take you to forms for configuring various settings that apply only to requests for and listings of that directory.
  3. To totally deny access to clients, click on Access Control and change the Access control policy field to Deny all clients, then click Save .
  4. Normally, files uploaded by clients will end up owned by the Unix user that the client logged in as. To change this, click on the User and Group icon and enter a username for the *Owner of uploaded files* field. Uploaded files' group will be the primary group of the specified user, unless you fill in the Group owner of uploaded files field as well. Again, click Save after making any changes to return to the per-directory options page.
  5. To limit only the uploading or downloading of files in this directory, you will need to create a set of per-command options under it. The Restricting access to FTP commands section explains how.
  6. To activate your changes for this directory, return to the module's main page and hit the Apply Changes bouton.


The per-directory options page

You can also remove a directory options object from the ProFTPD configuration entirely by clicking on Configure Directory and then hitting the Delete directory config bouton. All settings and per-command options for the directory will be immediately and permanently deleted from the FTP server's configuration.

If you define options for both a directory and one of its children (such as /usr/local and /usr/local/bin ), ProFTPD will always give precedence to the most specific directory when deciding which options to apply to a particular client request. This means that a setting made for /usr/local will apply to a download of /usr/local/bin/foo, unless it is overridden by a setting for /usr/local/bin.

Restricting access to FTP commands

When a client wants to download or upload a file, list a directory or perform any other operation it sends a command to the server. ProFTPD can be configured to restrict which commands a client can use for a particular virtual server or directory, or when logged in anonymously. However, before you can do this you need to have a basic understanding of which FTP commands exist and what they do. The table below lists the ones that are relevant for access control purposes :

ProFTPD allows you to define options that only apply to particular client commands or groups of commands. Typically, this is used to deny access to certain operations, such as uploading by anonymous FTP users. It is also possible to allow or deny only certain Unix users, or only clients connecting from certain addresses.

To create a new set of per-command options, follow these steps:

  1. First decide if the options should apply to commands only in a particular directory, only to clients of a virtual server, only to anonymous clients or to all users of your FTP server. On the per-directory, virtual server, anonymous FTP and main pages is a form titled Add per-command options for . In the FTP commands field, enter one or more commands from the list above, separated by spaces. When you hit the Create button, your browser will be taken to the page shown in Figure 40-5.
  2. Click on the Access Control icon to bring up a form for restricting who can use these commands.
  3. To completely deny access to everyone, change the *Access control policy* field to Deny all clients . Conversely, to allow access select Allow all clients Au lieu. This is most useful if you are editing options for commands within a directory and there is a set of options for the same commands at a higher level (such as for the virtual server or anonymous FTP) that denies access. For example, typically anonymous clients cannot use the WRITE commands, but you may want to allow it for a particular directory.
  4. To only allow certain Unix users or members of certain group access to the commands, fill in the Only allow users and Only allow group fields. Multiple user or group names must be entered separated by spaces.
  5. Similarly, to deny certain users and groups while allowing everyone else access to the FTP commands, fill in the *Deny users* and Deny groups fields.
  6. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from using the commands. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will contain. In the empty row select either Allow or Deny from the Action menu. Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied. *All *All clients match, no matter where they are from. *None *No clients match the rule. *IP address *Only clients from the IP address entered in the adjacent text field match. *Network *Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. . *Hostname *Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com . If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action menu.
  7. When you are done choosing who can use the FTP commands, hit the Save bouton. Then return to the module's main page and click Apply Changes to make the restrictions active.


The per-command options page

Configuring logging

By default, ProFTPD logs all transfers to the file /var/log/xferlog in the standard FTP logging format (unless a different path has been selected at compile time). However, you can configure the server to log transfers to and from each virtual server differently, and anonymous FTP traffic as well. This is most useful in a virtual hosting environment, in which your system hosts FTP sites for many different customers.

It is also possible to define additional log files that use different formats, and optionally include only a subset of FTP commands. This can be useful if you only care about uploads, and don't want your log files clogged up with useless information.

To configure where and how logs are written globally or for an individual virtual server, the steps to follow are :

  1. If you want to change the location of the global log file that is used for all transfers (unless overridden by a virtual server), click on the Logging icon on the main page. Alternately, if you want to configure a specific virtual server to use a different log file, click on its icon and then on Logging on the virtual server options page. To change the logging settings for anonymous clients only, click on a virtual server icon, then on Anonymous FTP and finally on the Logging icon on the anonymous FTP options page.
  2. On the resulting logging options form, the *FTP transfers logfile* field controls where logs are written to. To specify a file, select the last option and enter a full path like /var/log/example.com.xfers into the adjacent text field. To turn off logging altogether, select Logging disabled . To use the global default, select the Default option (if you are editing the global logging settings, ProFTPD will use the compiled-in default log file /var/log/xferlog).
  3. The Custom logfiles table can be used to define additional logs for specific commands and with arbitrary formats. As usual, it will always have one empty row for adding a new custom log file. To add one, fill in the fields under these headings :*Logfile *The full path to the log file, such as /home/example.com/ftplog . For FTP commands *If *All is selected, all FTP commands will be logged. However, if you choose the second option only those command classes in the adjacent text box will be included. Recognized classes are NONE (no commands), ALL (all commands), INFO (information requests), DIRS (directory navigation), READ (file download), WRITE (file upload and directory creation), SITE (non-standard commands like CHMOD) and MISC (other miscellaneous commands). Multiple classes must be separated by commas, like READ,WRITE . You cannot use the names documented in the Restricting access to FTP commands section. *Log format If *Default is selected, the standard FTP log format will be used. But if the second option is chosen, you must enter a recognized log format name into the text box. The next paragraph explains how to set up named log formats. Because only one empty row appears in the table, you can only add one custom log at a time. To add more, click on the Logging icon again after saving and fill in the new blank row. To delete a custom log, just clear out its field in the Logfile colonne.
  4. Cliquez sur Enregistrer button to save the new settings, and then *Apply Changes* on the main page to activate them.

If you want to use your own custom formats for log files, they must first be defined globally. The steps to create a format are :

  1. On the module's main page, click on the Logging icon to bring up the global log file options page.
  2. The Custom log formats table is for defining your own formats. In the first blank field under Format name , enter a short name for your new format such as filesonly . In the field next to it under Format string , enter text containing the log codes recognized by ProFTPD, like Downloaded %f at %t . The special codes in the string starting with % are replaced by the server with information about the command, as explained in the table below. As usual, you can add more than one custom format by re-entering the page after saving so that a new blank row appears. A format can be deleted by just clearing out its Format name domaine.
  3. Cliquez sur Enregistrer button to return to the main page, and then click Apply Changes . The new format can now be used in custom log files.

Limiting concurrent logins

If your system is configured to allow anonymous FTP logins and you expect to receive a lot of traffic, it makes sense to limit the number of connections that can be open to the FTP server at any one time. This puts a ceiling on the network and CPU load that FTP transfers can generate, which is important if the system is being used for some other purpose (such as running a web server).

This limit can be set globally, on a per-virtual server basis or just for anonymous clients. This means that you can set a limit that applies to all servers, and then increase or decrease it for a particular virtual host. Or you can set a lower limit for anonymous clients versus those that have valid logins.

ProFTPD can also be configured to limit the number of concurrent connections that a single client host can have. This is useful if you want to stop people downloading more than one file at a time from your server, and thus taking more than their fair share of bandwidth.

To set a connection limit for your server, follow these steps:

  1. If you want to set a global limit, click on the *Networking Options* icon on the module's main page. To set a limit for a single virtual server, click on its icon and then on *Networking Options*. To define a limit that applies only to anonymous clients, click on the icon for a virtual server, then on *Anonymous FTP* and finally on the Networking Options icon on the anonymous FTP options page.
  2. On the form that appears, find the Maximum concurrent logins domaine. To set a limit, select the third radio button and enter a number in the text box next to it. Alternately, you can select Unlimited to turn off any restriction that applies to this virtual server that has been set globally.
  3. To define an error message sent to clients that try to connect when the limit has been reached, enter it into the *Login error message* box in the Maximum concurrent logins domaine. If the message contains the special code %m it will be replaced with the maximum allowed number.
  4. To set the per-client host limit, fill in the *Maximum concurrent logins per host* field in the same way. It also has a *Login error message* box that can be used to set a message sent to FTP clients that exceed the limit.
  5. If you are editing the global networking options, you can also set a limit on the total number of ProFTPD sub-processes that can be active at any one time. This is useful for protecting your system from denial-of-service using hundreds of useless connections. Just select the second option for the *Maximum concurrent sessions* field and enter a number into its adjacent text box. If Default is selected, no limit will be enforced. If you are running the server from a super-server like inetd or xinetd, this limit will have no effect. Fortunately, both those servers have configuration options that can be used to achieve the same result.
  6. When you are done editing client restrictions, hit the *Save *button at the bottom of the form to update the ProFTPD configuration, and then the Apply Changes button back on the main page.

Restricting clients by IP address

By default, ProFTPD will allow clients to connect from any IP address. However, like everything else this is configurable so that you can restrict access to systems on your own network, either globally or for particular virtual servers. This comes in handy if you are setting up an FTP server that is for internal use only, even though the system it is running on is accessible from the Internet.

To restrict clients by address, follow these steps:

  1. To create a global restriction that will apply to all virtual servers, enter LOGIN into the FTP commands field of the Add per-command options for form on the module's main page, then click Create . If you only want to limit who can connect to a particular virtual server, click on its icon before entering LOGIN into the same form on the virtual server options page.
  2. Regardless of what level the restriction is being defined at, you will be taken to the per-command options page shown above. Click on the Access Control icon to go to the aptly-named access control form.
  3. The Restrict access table can be used to block clients from certain IP addresses by entering a series of rules. The three radio buttons at the top control the order in which entries in the table are evaluated. If Deny then allow is selected, any client that matches a Deny row or which does not match an Allow row will be blocked. Conversely, if Allow then deny is chosen only clients that match a Deny row and do not match an Allow will be prevented from logging in. This mode is also the default. The table will always have one empty row for adding a new rule, and because this is a new set of per-commands options that is all it will initially contain. In the empty row select either Allow or Deny from the Action menu. Then from the Condition menu choose one of the following to determine which clients match and thus are allowed or denied.
  • All
    All clients match, no matter where they are from. *None *No clients match the rule.
    IP address
    Only clients from the IP address entered in the adjacent text field match.
    Network
    Only clients from the IP network entered match. The network address must be a partial IP with a trailing dot, like 192.168.1. .
    Hostname
    Only clients whose IP address reverse-resolves to the entered name match. You can specify an entire domain by putting a dot at the front, like .example.com . If you want to add more than one rule, you will need to re-enter this page after saving so that a new blank row appears. To delete a rule, select the blank option from the Action menu.
  1. When you are finished entering client restrictions, hit the Save button at the bottom of the form. Then return to the main page and click Save and Apply to activate them.

Commonly, you will want to give only clients on a single network access. To do this, select the Deny then allow option, choose Allow from the Action menu , Network from the Condition menu and enter the network address with a trailing dot (like 10.254.1.) into the condition text box.

Limiting uploads

If clients are allowed to upload files to your server, they will be able to choose any name that they wish for uploaded files. Sometimes this is not desirable though - you may want to allow the storing of only image files whose names end with .gif or .jpg, or prevent the uploading of Windows executables with filenames ending in .exe or .com. Fortunately, ProFTPD has configuration options that allow you to set this up.

There are also several other settings that apply to uploads, which control whether clients are allowed to overwrite files and if partially transferred files are visible. All can be set globally, for a single virtual server or for anonymous clients only. The steps to set these options are :

  1. If you want to the settings to be global, click on the *Files and Directories* icon on the module's main page. To have them apply to just a single virtual server, click on its icon and then on Files and Directories . Or to effect just clients that login anonymously, click on a virtual server icon, then on Anonymous FTP and finally on Files and Directories icon on the virtual server options page. No matter which configuration object you chose, the files and directories form that appears will be almost identical.
  2. To hide files that are in the process of being uploaded, change the Hide files during upload? field to Yes . This tells ProFTPD to use a temporary file whose name starts with .in. for transferred data, which is only renamed to the real filename when the upload is complete. This prevents incomplete partial uploads, and stops files being downloaded or accessed while they are still being sent.
  3. To have ProFTPD delete uploaded files that are not fully transferred, select Yes for the Delete aborted uploads? domaine. Again, this prevents corrupt partially uploaded files from being created on your system.
  4. To allow users to only create files whose relative names match a certain pattern, fill in the *Allowed uploaded filename regex* field with a Perl regular expression. For example, to only allow GIF files you might enter ^.*\.gif$ . Because clients are normally allowed to rename files, this option alone is not enough to stop the creation of invalid filenames. You will also need to block access to the RNFR command, as explained in the Restricting access to FTP commands section.
  5. Alternately, you can block the use of certain filenames by filling in the Denied uploaded filename regex field with a regular expression like ^.*\.exe$ . If both this and the previous field are set, only files that match the allow expression but not this deny expression will be permitted. Another common use of this option is blocking the upload of .ftpaccess or .htaccess files, which set per-directory ProFTPD and Apache options.
  6. Cliquez sur Enregistrer button at the bottom of the page.
  7. If you want to stop clients overwriting files with new uploads, click on the Access Control icon and change the *Allow overwriting of files?* field to No . This can be useful on an server that allows anonymous users to upload to a particular directory, perhaps for incoming files of some kind. Don't forget to click Save if you make this change.
  8. Return to the module's main page and hit the Apply Changes button to activate your new filename restrictions.

Manually editing directives

If you prefer to manually edit your ProFTPD configuration file in some cases or just want to see which directives an action in Webmin has set, you can do so using this module. Except for the default server, every object's options page (virtual server, per-directory and per-command) has an icon labeled Edit Directives . When clicked on it will take you to a form containing a large text box showing the lines from the configuration file in the section related to the object. You can edit them to your heart's content, then click the Save button to update the actual file. Be aware though that no validation of your input is done. Also, you will need to use the Apply Changes button on the module's main page to activate any changes, as usual.

To view and edit the entire ProFTPD configuration, use the *Edit Config Files* icon on the module's main page. This will bring up a similar form, but showing and allowing the editing of a complete configuration file at once. Because ProFTPD can read multiple configuration files (though the use of Include directives), at the top of the form is a button labeled Edit Directives in File with a menu of filenames next to it. To switch the view to a different file, just select the one you want and hit the button. Normally though only a single proftpd.conf file will be used.


Webmin
  1. Serveur WU-FTPD

  2. Comment installer ProFTPD sur CentOS 7

  3. Comment installer ProFTPD sur Ubuntu 14.04

  4. Serveur FTP Ubuntu de base ?

  5. Comment installer un serveur FTP sur CentOS 7

Comment installer un serveur FTP ?

Comment installer le serveur FTP sur Ubuntu ?

Comment configurer un serveur FTP avec ProFTPD dans Ubuntu 18.04

Comment installer un serveur FTP avec ProFTPD sur RockyLinux 8

Comment installer FTP sur Ubuntu 18.04 ?

Installer FTP sur Windows Server 2012 (R2)