Ayant besoins d'un espace de stockage distant, j'ai mis en place un petit serveur FTP avec pure-ftpd. La configuration est relativement simple et rapide.
On commence par installer pure-ftpd. Comme d'habitude rien de très compliqué :
- /*
- apt-get install pure-ftpd
- */
On le configure en mode standalone.
- /*
- vim /etc/default/pure-ftpd-common
- STANDALONE_OR_INETD=standalone # La ligne existe déjà il suffit de remplacer inetd par standalone
- */
On crée un groupe et un user qui seront utilisés par la suite par nos utilisateurs virtuels
- /*
- groupadd ftpgroup
- useradd -g ftpgroup -d /dev/null -s /bin/false ftpuser
- */
On sécurise un peu tout ça , on crée un certificat .
- /*
- openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
- chmod 600 /etc/ssl/private/pure-ftpd.pem
- */
On autorise uniquement les clients qui utilisent des paramètres sécurisés .
- /*
- echo 2 > /etc/pure-ftpd/conf/TLS
- */
Il est possible d'utiliser l'option 1 qui permet d'utiliser le mode sécurisé et le mode clairtext .
Dans le mode passif il faut aussi configurer les ports
- /*
- echo "50000 50400" > /etc/pure-ftpd/conf/PassivePortRange
- */
On crée un utilisateur virtuel
- /*
- pure-pw useradd user -u ftpuser -g ftpgroup -d /home/user -m #un mot de passe sera demandé.
- */
Afin d'éviter les erreurs de connexions de type 530.
- /*
- ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/75puredb
- */
On peut maintenant relancer pure-ftpd.
Si vous êtes derrière une gateway. Il faut faire certaines redirections de ports.
- /*
- iptables -t nat -A PREROUTING -p tcp -i eth0 --dports 21 -j DNAT --to-destination ip_ftp_server:21
- iptables -t nat -A PREROUTING -p tcp -i eth0 -m multiport --dport 50000:50400 -j DNAT --to-destination ip_ftp_server
- */
Modifier le message d'accueil lors de la connexion.
- /*
- vim /etc/pure-ftpd/welcome #Mettre votre message , ne pas mettre ce fichier dans le répertoire conf.
- chmod 644 /etc/pure-ftpd/welcome
- echo /etc/pure-ftpd/welcome > /etc/pure-ftpd/conf/FortunesFile
- */
Si vous modifier les fichiers de conf users à la main ou si vous utilisez pas l'option -m . Lancer la commande suivante qui permet de mettre à jour la base.
- /*
- pure-pw mkdb
- */
Sur le serveur on peut rajouter un fail2ban rajouter ceci dans le fichier jail.conf .
- /*
- [pure-ftpd]
- enabled = true
- port = ftp,ftp-data,ftps,ftps-data
- filter = pure-ftpd
- logpath = /var/log/messages
- maxretry = 2
- */
Eh voila votre FTP est maintenant fonctionnel.
La documentation officielle ici .
How-to afin d'avoir des users virtuels en base de donnée mysql .