Avec VsFTPd et Pure-FTPd, ProFTPD fait aujourd'hui partie des serveurs FTP les plus populaires dans les environnements de type Fedora, Ubuntu et Unix. C'est un logiciel gratuit et open source, compatible avec les systèmes de type Unix. Il expose de nombreuses options de configuration aux utilisateurs par rapport à ses homologues.
Dans ce tutoriel, je vous guide pour configurer le serveur FTP en utilisant ProFTPD sur Debian 10.
A notez que cela doit aussi fonctionner sur la distribution Ubuntu.
Table des matières
ProFTPD : configurer un serveur FTP sur Debian 10
Pour obtenir des infos sur le fonctionnement du protocole FTP :
Installer ProFTPD
On installe le paquet proftpd via APT.
Le paquet openssl est utile si vous désirez mettre en place la connexion chiffrée (TLS).
apt-get install proftpd openssl
Créer le groupe et utilisateur FTP
Ensuite, il faut créer les utilisateurs FTP.
Par défaut, ProFTPD utilise pam.d, ainsi il faut créer un utilisateur UNIX.
On peut toutefois définir un shell qui prévient toute connexion SSH via /bin/false.
Pour commencer, on créé le groupe ftpgroup.
addgroup ftpgroup
Puis on ajoute l'utilisateur FTP kevin :
adduser kevin -shell /bin/false -home /ftpshare
- -shell /bin/false ne donne pas accès au shell. Si l'utilisateur doit pouvoir se connecter en SSH alors n'utilisez pas le paramètre -shell
- -home /ftpshare attribue le dossier FTP par défaut
Enfin on ajoute l'utilisateur le groupe ftpgroup :
adduser kevin ftpgroup
Plus d'informations sur la création d'utilisateur Linux :
Enfin on applique les permissions sur le dossier /ftpshare :
chmod -R 1777 /ftpshare/
Configurer le serveur FTP ProFTPD
Le fichier de configuration ProFTPD est /etc/proftpd/proftpd.conf.
Toutefois sur Debian, vous pouvez placer un fichier de configuration personnalisée dans /etc/proftpd/conf.d/.
Ainsi lors d'une mise à jour de paquet via APT, votre configuration ne sera pas écrasée.
Créez le fichier suivant :
vim /etc/proftpd/conf.d/personnalises.conf
Puis inspirez-vous de ce contenu.
Vous pouvez reprendre les paramètres de /etc/proftpd/proftpd.conf.
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
# 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>
Configurer ProFTPD TLS
Pour configurer et exécuter TLS, nous devons d'abord générer un certificat
mkdir /etc/proftpd/ssl
Générez un certificat auto-signé en exécutant la commande ci-dessous. Il vous demandera des informations, veuillez fournir des informations en conséquence.
openssl req -new -x509 -keyout /etc/proftpd/ssl/proftpd.key.pem -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem
Generating a RSA private key
...........................................................+++++
......................................+++++
writing new private key to '/etc/proftpd/ssl/proftpd.key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:FRANCE
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:malekal.com
Organizational Unit Name (eg, section) []:Kevin
Common Name (e.g. server FQDN or YOUR name) []:malekal.com
Email Address []:Kevin@malekal.com
Puis on attribue les permissions aux fichiers de clés.
Le fichier proftpd.key doit être lisible par root uniquement. Pour sécuriser l'environnement, exécutez la commande ci-dessous.
chmod 600 /etc/proftpd/ssl/proftpd.*
Enfin ajoutez le fichier suivant :
vi /etc/proftpd/conf.d/tls.conf
Puis copiez/collez ce contenu :
<IfModule mod_tls.c>
[::]
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell no
TLSOptions NoSessionReuseRequired
</IfModule>
TLSRequired peut générer des problèmes de connexion :
- Le paramètre «on» active les exigences SSL / TLS sur les canaux de contrôle et de données; "off" désactive les exigences sur les deux canaux. Utilisez "ctrl" et "data" pour exiger SSL / TLS sur l'un ou l'autre des canaux individuellement.
- Le paramètre "auth" nécessite que SSL / TLS soit utilisé sur le canal de contrôle, mais uniquement pour l'authentification. Pour utiliser ce paramètre et exiger SSL / TLS pour les transferts de données, utilisez le paramètre «auth + data».
Redémarrez ProFTPD
Enfin relancez le service ProFTPD :
service proftpd restart
Vérifiez que le serveur FTP est bien en écoute sur le port 21 avec la commande netstat :
netstat -lpn|grep proftpd
tcp6 0 0 :::21 :::* LISTEN 24557/proftpd:
Se connecter au serveur FTP ProFTPD
Enfin il ne reste plus qu'à tester la connexion FTP, par exemple avec le client ncftp ou FileZilla :
ncftp -u <utilisateur> <adresse serveur>
Du côté du serveur, dans les logs :
Apr 8 07:34:32 ksxxxx proftpd: pam_unix(proftpd:session): session opened for user kevin by (uid=0)
Liens
- Fonctionnement du FTP pour partager ses fichiers
- Créer et se connecter en FTP avec un lecteur réseau sur Windows
- Le mode actif et passif en FTP : les différences, fonctionnement, lequel choisir ?
- FileZilla : transférer des fichiers par FTP pour Windows et Ubuntu
- FileZilla Server : configurer un serveur FTP sur Windows
- ncftp, ncftpput, ncftpget : exemples d'utilisation du client FTP pour Linux
- ProFTPD : configurer un serveur FTP sur Debian 10
Vous êtes autorisé à partager et modifier cet article, à condition de créditer le site ainsi que la licence, d'utiliser la même licence si vous modifiez l'oeuvre et de ne pas en faire d'utilisation commerciale.
Trouver la solution sur le forum d'aide
Vous êtes arrivé au terme de l'article ProFTPD : configurer un serveur FTP sur Debian 10 mais vous n'avez pas trouvé la solution à votre problème...Suivez ces articles du forum pour trouver une réponse :
Sinon créez votre propre demande pour obtenir de l'aide gratuite.
Plus de détails : Comment obtenir de l'aide sur le forum