Monter un serveur FTP avec pure-ftpd

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é :

  1. /*
  2. apt-get install pure-ftpd
  3. */

On le configure en mode standalone.

  1. /*
  2. vim /etc/default/pure-ftpd-common
  3. STANDALONE_OR_INETD=standalone # La ligne existe déjà il suffit de remplacer inetd par standalone
  4. */

On crée un groupe et un user qui seront utilisés par la suite par nos utilisateurs virtuels

  1. /*
  2. groupadd ftpgroup
  3. useradd -g ftpgroup -d /dev/null -s /bin/false ftpuser
  4. */

On sécurise un peu tout ça , on crée un certificat .

  1. /*
  2. openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
  3. chmod 600 /etc/ssl/private/pure-ftpd.pem
  4. */

On autorise uniquement les clients qui utilisent des paramètres sécurisés .

  1. /*
  2. echo 2 > /etc/pure-ftpd/conf/TLS
  3. */

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

  1. /*
  2. echo « 50000 50400 » > /etc/pure-ftpd/conf/PassivePortRange
  3. */

On crée un utilisateur virtuel

  1. /*
  2. pure-pw useradd user -u ftpuser -g ftpgroup -d /home/user -m #un mot de passe sera demandé.
  3. */

Afin d’éviter les erreurs de connexions de type 530.

  1. /*
  2. ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/75puredb
  3. */

On peut maintenant relancer pure-ftpd.
Si vous êtes derrière une gateway. Il faut faire certaines redirections de ports.

  1. /*
  2. iptables -t nat -A PREROUTING -p tcp -i eth0 –dports 21 -j DNAT –to destination_ip_ftp_server:21
  3. iptables -t nat -A PREROUTING -p tcp -i eth0 -m multiport –dport 50000:50400 -j DNAT –to destination ip_ftp_server
  4. */

Modifier le message d’accueil lors de la connexion.

  1. /*
  2. vim /etc/pure-ftpd/welcome #Mettre votre message , ne pas mettre ce fichier dans le répertoire conf.
  3. chmod 644 /etc/pure-ftpd/welcome
  4. echo /etc/pure-ftpd/welcome > /etc/pure-ftpd/conf/FortunesFile
  5. */

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.

  1. /*
  2. pure-pw mkdb
  3. */

Sur le serveur on peut rajouter un fail2ban rajouter ceci dans le fichier jail.conf .

  1. /*
  2. [pure-ftpd]
  3. enabled = true
  4. port = ftp,ftp-data,ftps,ftps-data
  5. filter = pure-ftpd
  6. logpath = /var/log/messages
  7. maxretry = 2
  8. */

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 .

Related posts

Leave a Comment