Installer et configurer le serveur ProFTPd
Historique
6 mars 2013 : Reprise de la page de l'ancien site de Païou et actualisation.
12 août 2013 : refonte, avec une page séparée des bases de FTP.
Difficulté
Pour : utilisateur un peu curieux.
Introduction
Le File Transfer Protocol est un protocole qui permet à des ordinateur distants d'échanger des fichiers à travers un réseau.
Les applications sont multiples :
- télécharger des fichiers depuis un serveur
- transférer vos pages web sur votre serveur web
- sauvegarder vos documents sur un autre ordinateur
- installer des postes à partir d'un serveur du réseau interne
- ...
Un peu de théorie
Regardez attentivement la page relative aux bases de FTP 
Elle vous sera très utile pour :
- savoir comment configurer votre serveur FTP
- savoir comment configurer votre client FTP
- savoir comment configurer le pare-feu de votre serveur FTP
- savoir comment configurer le pare-feu de votre client FTP
Installation
Le paquetage s'appelle proftpd. L'installation peut se faire :
- de manière entièrement graphique, par le Centre de Contrôle
- en ligne de commande, dans un terminal, en super-utilisateur, avec la commande
urpmi proftpd
Configuration
La configuration se fait grâce au fichier /etc/proftpd.conf.
Proftpd utilise une configuration "façon apache". Des modules additionnels permettent d'étendre les possibilités de proftpd.
Proftpd est bien indiqué pour un usage 'professionnel'.
Configuration par défaut
La configuration par défaut convient bien dans la plupart des cas.
Vous pouvez la découvrir ci-dessous
Pour les curieux, survolez :
La configuration par défaut, en détail
Configuration générale
La configuration par défaut, prévoit :
- la possibilité d'inclure des modules supplémentaires : Include /etc/proftpd.d/*.conf,
ModulePath /usr/lib/proftpd, ModuleControlsACLs insmod,rmmod allow user root et ModuleControlsACLs lsmod allow user *
- la possibilité de redéfinir le nom de votre serveur : ServerName "ProFTPD Default Installation"
- de pouvoir modifier le mode de démarrage du serveur : ServerType standalone (démarrage en même temps que la machine) ou inetd (par le démon xinet, à la demande)
- d'étendre le canal de contrôle pour pouvoir recevoir certaines réponses sur plusieurs lignes: MultilineRFC2228 on
- de définir un temps maxi d’inactivité avant de déconnecter = 10 mn (TimeoutNoTransfer 600)
- de définir un temps maxi sans recevoir de données en data = 10 mn (TimeoutStalled 600)
- de définir un temps maxi sans recevoir de données ni en data, ni en control = 20 mn (TimeoutIdle 1200)
- de ne donner aucune information relative au serveur utilisé : DeferWelcome off
- d'afficher un message lorsqu'un client se connecte : DisplayLogin welcome.msg
- d'afficher un message lorsqu'un client change de répertoire : DisplayChdir .message
- de permettre la reprise, après interruption, du transfert de fichiers vers le serveur : AllowStoreRestart on
- de limiter le nombre d'instances, pour éviter les attaques dos : MaxInstances 30
- de définir sous quelle identité est lancé le serveur : User nobody et Group nogroup
- de permettre de gérer la journalisation : TransferLog /var/log/proftpd/proftpd.log et SystemLog /var/log/proftpd/proftpd.log
Manipulations sur les fichiers/dossiers
La configuration par défaut, prévoit :
- de voir les liens symboliques : ShowSymlinks on
- d'afficher un fichier par ligne, pour le contenu des répertoires : ListOptions "-l"
- d'éviter les attaques dos avec ../../.. : DenyFilter \*.*/
- d'éviter que les fichiers ou répertoires créés puissent être modifiés par le monde entier : Umask 022 022
- de permettre de cantonner les utilisateurs dans leur répertoire, en modifiant la ligne : #DefaultRoot ~
- d'autoriser le remplacement des anciens fichiers par des nouveaux : AllowOverwrite on
Configuration réseau
La configuration par défaut, prévoit :
- de ne pas utiliser un adressage IP version 6 : UseIPv6 Off
- le port 21 est le port FTP standard : Port 21
- de permettre de spécifier la plage de ports passifs que ProFTPd utilisera pour répondre aux clients, en modifiant la ligne : #PassivePorts 49152 65534
- de permettre de désactiver une fonction qui optimise l'envoi de fichiers au client (enlevez le #) : #UseSendFile off
Configuration de l'authentification
La configuration par défaut, prévoit :
- de permettre de maintenir le mot de passe durant toute une session cantonnée, en modifiant la ligne : PersistentPasswd off
Configuration de l'accès anonyme
La configuration par défaut, prévoit :
Options pour les utilisateurs authentifiés
La configuration par défaut, prévoit :
En travaux 
La configuration se fait soit par le Centre de Contrôle, soit par l'édition du fichier de configuration.
Affiner avec un éditeur
Vous pouvez souhaiter affiner le configuration avec un éditeur.
Ouvrir un éditeur en administrateur
- Avec Xfce et Gnome, si vous avez installé gksu et mousepad
gksu mousepad /etc/proftpd.confLe mot de passe root sera demandé.
- Dans les autres cas
- Ouvrez un émulateur de terminal (Vous avez probablement une icône)
- Tapez la commande su Le mot de passe root sera demandé.
- Lancez votre éditeur, par exemple mousepad /etc/proftpd.conf
ou leafpad /etc/proftpd.conf
Sauvegardez le fichier d'origine
Enregistrez sous ... proftpd.conf.origine
Rechargez le fichier proftpd.conf
Limiter le nombre de ports passifs
Si vous avez un pare-feu, il est utile de limiter le nombre de ports à ouvrir.
Remplacez la ligne #PassivePorts 49152 65534 par PassivePorts 50000 50050
Pour ne pas donner d'info précise sur le serveur
Remplacez la ligne DeferWelcome on par DeferWelcome off
Franciser les messages d'accueil
Vous modifiez les deux lignes (en fin de fichier), comme par exemple :
AccessGrantMsg " -- Accès autorisé pour %u --"
AccessDenyMsg " !-!! ACCÈS REFUSÉ !!-! VOUS NE SEMBLEZ PAS Y ÊTRE AUTORISÉS !!"
Autorisez les accès anonymes
Vous souhaitez peut-être permettre un accès anonyme, c'est à dire un accès à n'importe quel usager, généralement en lecture seule, et à un répertoire bien défini.
Vous ajoutez les lignes suivantes :
# Include anonymous
Include /etc/proftpd-anonymous.conf
Par défaut, les utilisateurs anonymes auront accès aux seuls répertoires /var/ftp et ses sous-répertoires, en lecture seule.
Pour attribuer un autre répertoire, vous devez modifier le fichier /etc/proftpd-anonymous.conf, après avoir sauvegardé l'original, comme pour /etc/proftpd.conf
Remplacez, dans la ligne :
Anonymous ~ftp par votre répertoire, par exemple Anonymous /home/ftp
Démarrage
Maintenant que vous avez configuré, vous n'avez plus qu'à activer les changements.
Pour ceci, vous relancez le service proftpd.
- Dans le Centre de Contrôle, prenez l'onglet Système et la rubrique Gérer les services système...
- Cliquez sur le bouton Démarrer de la ligne proftpd, puis refermez la page des services.
Le serveur FTP est prêt. Ne refermez pas encore le Centre de Contrôle. Vous devez également configurer le pare-feu, s'il est actif.
Configuration du pare-feu
Si le serveur FTP intègre un pare-feu ou est placé derrière un pare-feu, vous devrez ouvrir les ports utilisés par FTP.
- Dans le Centre de Contrôle Mageia prenez l'onglet : Sécurité puis l'icône : Configurer votre pare-feu personnel
-
Cochez la case Serveur FTP
- Cliquez sur le mode Avancé
-
Ajoutez la plage des ports passifs (Ex 50000:50050/tcp)
-
Validez, puis continuez avec l'assistant, puis fermez le Centre de Contrôle.
Utilisateurs virtuels et hôte virtuel
Utilisateurs virtuels
Vous avez peut-être besoin de définir des permissions pour des utilisateurs autres que ceux qui sont enregistrés sur le serveur FTP (qui figurent dans le fichier /etc/passwd) : des utilisateurs virtuels.
Rendez-vous à la page Configurer le serveur ProFTPD pour des utilisateurs virtuels
.
Hôte virtuel
La même machine physique peut abriter un ou plusieurs serveurs ProFTPD supplémentaires : des hôtes virtuels.
Les utilisateurs peuvent y accéder en donnant une adresse IP différente ou un port différent (ou les deux).
Rendez-vous à la page Configurer le serveur ProFTPD pour des hôtes virtuels
.