Mettre en place un serveur FTP PROFTPD sous Debian

Pour information: Un script est disponible pour les membres.

Commençons par installer les paquets nécessaires:

sudo apt-get install proftpd openssl

On créer un groupe d’utilisateurs FTP:

sudo addgroup ftpgroup

On ajoute votre utilisateur au groupe:

ATTENTION: Prenez bien soin et remplacer chaque $USERNAME par le nom d’utilisateur que vous désirez.
sudo adduser $USERNAME ftpgroup

On configure PROFTPD:

sudo rm /etc/proftpd/proftpd.conf
sudo nano /etc/proftpd/proftpd.conf

Et on colle la configuration suivante:

ServerName                      "Debian" #la bannière qui apparaît à la connexion

UseIPv6 off # Pas de connexion IPv6
RootLogin       off # Interdire le login en root
RequireValidShell off # Pas besoin d'un shell valide (pour /bin/false)

# Le port 21 est le port FTP standard.
Port                            21
PassivePorts                  49152 65535
# pour restreindre l'accès des utilisateurs à leurs dossiers de départ uniquement
DefaultRoot  ~

# interdire les connexions hors du groupe ftpgroup ... si vous devez autoriser par exemple www-data, ne pas mettre ou ajoutez ce dernier dans le groupe FTP.
<Limit LOGIN>
    DenyGroup !ftpgroup
</Limit>

#definition du nombre de connexions max par clients, etc.
<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

SystemLog   /var/log/proftpd/proftpd.log

Vous pouvez constater que le port FTP sera le 21 et le login via root sera désactivé.

ATTENTION: Si vous avez un pare-feu il va falloir l’adapter de la façon suivante.
sudo nano /etc/init.d/firewall

Et ajoutez sous le bloc FTP les lignes suivantes:

# Autoriser FTP PassivePorts
iptables -t filter -A INPUT -p tcp --dport 49152:65535 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 49152:65535 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 49152:65535 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 49152:65535 -j ACCEPT

Enfin on redémarre les services:

sudo service proftpd restart
sudo /etc/init.d/firewall stop
sudo /etc/init.d/firewall start

Fail2Ban:

Si vous avez suivi le tuto concernant Fail2Ban:

sudo sed -i '/^\[proftpd\].*/a enabled = true' /etc/fail2ban/jail.local
sudo service fail2ban restart