Installer ProFTP
L’installation de ce serveur est extrèmement simple. Il suffit de lancer cette commande dans un terminal :
sudo apt-get install proftpd
Il vous sera alors demandé si vous souhaitez lancer proftpd indépendamment ou via inet. La différence ?
En tant que service indépendant proftpd sera lancé en permanence et à l’écoute sur le port 21 (par défaut). Si vous utilisez inet le service ne sera lancé que lorsqu’une requête ftp arrivera sur le port 21. C’est le super-daemon inet qui se chargera d’écouter sur le port 21 et de lancer proftpd si besoin est.
Mode Passif/Mode Actif
Le service FTP accepte deux modes de fonctionnement : actif et passif. Par défaut proftpd utilise le mode actif.
Je n’entrerai pas dans le détail du fonctionnement de ces deux modes, aussi je résumerai.
mode actif
Le mode actif représente la méthode utilisée à l’origine par le protocole FTP pour transférer des données à l’application cliente. Lorsqu’un transfert de données en mode actif est engendré par le client FTP, le serveur établit une connexion depuis le port 20 vers l’adresse IP et un port aléatoire supérieur à 1024 spécifié par le client. Dans une telle situation, l’ordinateur client doit être autorisé à accepter des connexions sur tout port supérieur à 1024. Avec le nombre croissant de réseaux non-sécurisés, tels que l’Internet, l’utilisation de pare-feu pour protéger les ordinateurs clients est désormais très répandue. Étant donné que ces pare-feu côté client refusent souvent les connexions entrantes originaires de serveurs FTP en mode actif, il est recommandé d’utiliser le mode passif.
mode passif
Le mode passif, tout comme le mode actif, est engendré par l’application client FTP. Lors d’une demande de données auprès du serveur, le client FTP indique qu’il souhaite accéder aux données en mode passif, le serveur fournit ALORS une adresse IP et un port aléatoire supérieur à 1024 sur le serveur. Le client se connecte alors à ce port sur le serveur afin de télécharger les informations demandées.
Alors que le mode passif résout les problèmes d’interférence du pare-feu côté client avec des connexions aux données, il peut rendre plus complexe l’administration du pare-feu côté serveur. En limitant dans le fichier de configuration du serveur FTP, l’éventail des ports non-privilégiés disponibles pour des connexions passives, il est possible de restreindre le nombre de ports ouverts sur un serveur, ce qui permet également de simplifier la création de règles de pare-feu pour le serveur.
Pour plus d’explications concernant le protocole FTP, je vous encourage à consulter le site de Christian Caleca
Pour configurer la plage de ports utilisée on rajoute au fichier dans la partie générale en indiquant le port de début et le port de fin :
PassivePorts 1024 1124
La plage de port utilisée ici n’est qu’un exemple vous pouvez utiliser celle que vous souhaitez. Cependant deux conditions sont à respecter.
- Utilisez toujours une plage de port supérieure à 1024, les ports 0 à 1023 étant réservés.(RFC100 de l’IANA)
Le serveur doit également spécifier son adresse ip publique. Il faut donc l’indiquer dans le fichier de configuration.
Rajoutez donc cette ligne dans votre fichier de configuration (Remplacez XXX.XXX.XXX.XXX par votre IP Internet)
MasqueradeAddress XXX.XXX.XXX.XXX
Attention si vous disposez d’une IP dynamique il est fortement déconseillé d’utiliser le mode passif.
Restreindre les utilisateurs à leur répertoire personnel
sudo gedit /etc/proftpd.conf
Recherchez cette ligne
...
DenyFilter \*.*/
...
Ajoutez la ligne suivante juste après
DefaultRoot ~
enregistrez le fichier et redémarrez le service par la commande suivante
sudo /etc/init.d/proftpd restart
Autoriser les utilisateurs anonymes en lecture seule
sudo gedit /etc/proftpd.conf
Ajoutez les lignes suivantes à la fin du fichier
<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
enregistrez le fichier et redémarrez le service par la commande suivante
sudo /etc/init.d/proftpd restart
Autoriser les utilisateurs anonymes en lecture/écriture (DANGEREUX)
sudo gedit /etc/proftpd.conf
Ajoutez les lignes suivantes à la fin du fichier
<i><Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
</Anonymous></i>
enregistrez le fichier et redémarrez le service par la commande suivante
sudo /etc/init.d/proftpd restart
Comment rediriger les utilsateurs anonymes en dehors de /home/ftp
sudo gedit /etc/proftpd.conf
Ajoutez les lignes suivantes à la fin du fichier
<Anonymous /emplacement_du_dossier/>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
enregistrez le fichier et redémarrez le service par la commande suivante
sudo /etc/init.d/proftpd restart
Comment changer le port par défaut
Considérons que le nouveau port est 2121
sudo gedit /etc/proftpd.conf
Recherchez cette ligne
Port 21
et remplacez la par la ligne suivante :
Port 2121
enregistrez le fichier et redémarrez le service par la commande suivante
sudo /etc/init.d/proftpd restart
//////////////////////////////////////////////////////
L'ensemble de ce site est placé sous license GNU FDL et CC BY-SA
Auteur : Frédéric Bouby