Le transfert de fichiers via FTP (File Transfer Protocol) est probablement encore l'un des moyens les plus populaires de télécharger des fichiers sur un serveur. ProFTPD est un serveur FTP populaire et polyvalent disponible en tant que logiciel open source et prenant en charge TLS (SSL) pour des connexions sécurisées.
Par défaut, FTP est un protocole non sécurisé car les mots de passe et les données sont transférés en texte clair. En utilisant TLS, comme nous le faisons dans ce guide, toutes les communications peuvent être cryptées, ce qui rend le FTP plus sécurisé.
Cet article décrit comment configurer proftpd avec TLS sur le serveur Ubuntu 20.04 LTS .
Prérequis
- Serveur Ubuntu 20.04 64 bits
- privilèges sudo/root
Ce que nous allons faire dans ce tutoriel
- Installez ProFTPD et TLS.
- Configurer ProFTPD.
- Ajouter un utilisateur FTP.
- Configurer TLS dans ProFTPD.
- Test.
Installer Proftpd et OpenSSL
Proftpd et OpenSSL sont disponibles dans le référentiel Ubuntu, nous pouvons donc les installer avec la commande apt :
sudo apt-get install -y proftpd openssl
ProFTPD est installé comme indiqué ci-dessous. Le processus d'installation ne demandera aucune entrée.
Nous allons maintenant vérifier que proFTPD a été installé et démarré. Exécutez cette commande :
sudo proftpd --version
pour vérifier la version de ProFTPD installée. Ensuite, nous allons vérifier l'état du service, l'interroger avec la commande systemctl :
sudo systemctl status proftpd
Configurer ProFTPD
Une fois ProFTPD installé, vous devrez ajuster la configuration pour en faire un serveur entièrement fonctionnel et sécurisé. Le fichier de configuration ProFTPD se trouve dans le répertoire /etc/proftpd/ – éditez le fichier proftpd.conf.
sudo nano /etc/proftpd/proftpd.conf
Dans la ligne Servername, remplacez la valeur par votre hostname ou domaine :
ServerName "My FTP-Server"
Décommentez la ligne DefaultRoot pour activer jail pour tous les utilisateurs :
DefaultRoot ~
et redémarrez ProFTPD via la commande systemctl de la manière suivante.
sudo systemctl restart proftpd
Ajouter un utilisateur FTP
Il existe deux types d'utilisateurs FTP disponibles, l'utilisateur FTP anonyme et les utilisateurs FTP "normaux" :
- FTP anonyme : Le serveur FTP permet d'accéder à n'importe qui sans avoir besoin d'un compte d'utilisateur et d'un mot de passe. Cela ne doit pas être utilisé sur un serveur accessible au public, mais peut être une option pour un serveur domestique ou un réseau local d'entreprise.
- Utilisateur FTP :Seuls ceux qui ont un compte utilisateur et un mot de passe peuvent accéder au serveur FTP.
Avant de créer un utilisateur pour le serveur FTP, veuillez ajouter /bin/false à votre fichier /etc/shells.
sudo echo "/bin/false" >> /etc/shells
Et maintenant, créez un utilisateur avec un répertoire personnel spécifique, désactivez l'accès au shell, puis accordez-le au serveur FTP.
sudo useradd -m -s /bin/false tom sudo passwd tom
La commande ci-dessus créera un nouvel utilisateur appelé tom avec le répertoire personnel /home/tom/ et sans accès au shell /bin/false.
Maintenant, configurez ProFTPD pour autoriser l'accès de l'utilisateur tom au serveur FTP.
sudo nano /etc/proftpd/conf.d/tom.conf
Ajoutez ce fichier de configuration pour permettre à l'utilisateur tom de se connecter et de charger/télécharger le fichier vers/depuis le serveur :
<Directory /home/tom> Umask 022 022 AllowOverwrite off <Limit LOGIN> AllowUser tom DenyALL </Limit> <Limit ALL> Order Allow,Deny AllowUser tom Deny ALL </Limit> <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD> AllowUser tom Deny ALL </Limit> </Directory>
Le fichier doit ressembler à ceci :
Enregistrez le fichier et quittez nano. Redémarrez ensuite ProFTPD.
sudo systemctl restart proftpd
Vous pouvez déjà utiliser FTP à ce stade, mais nous le rendrons plus sûr en utilisant TLS à l'étape suivante.
Configurer TLS avec proftpd
Pour utiliser TLS, vous devez créer un certificat SSL. Générez un certificat SSL avec la commande OpenSSL :
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
La commande ci-dessus générera un fichier de certificat proftpd.crt dans le répertoire /etc/ssl/certs/ et un fichier de clé de certificat proftpd.key dans le répertoire /etc/ssl/private/.
Ensuite, modifiez l'autorisation du fichier de certificat sur 600 :
sudo chmod 600 /etc/ssl/certs/proftpd.crt sudo chmod 600 /etc/ssl/private/proftpd.key
Maintenant, revenez au répertoire /etc/proftpd et configurez ProFTPD pour utiliser le certificat SSL que vous avez généré.
nano /etc/proftpd/proftpd.conf
Décommentez la ligne TLS :
Include /etc/proftpd/tls.conf
Enregistrez le fichier tls.conf et quittez.
Modifiez ensuite le fichier de configuration TLS pour activer l'authentification sécurisée :
nano /etc/proftpd/tls.conf
Décommentez toutes ces lignes :
TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired TLSVerifyClient off TLSRequired on
Sauvegarder et quitter. La dernière étape consiste à redémarrer le serveur ProFTPD :
sudo systemctl restart proftpd
Test ProFTPD
Pour tester la configuration, essayez de vous connecter à votre serveur FTP avec un logiciel comme FileZilla (j'utilise FileZilla ici), et renseignez l'adresse IP, le nom d'utilisateur, le mot de passe et le port du serveur :
Server IP : 192.168.0.100 username : tom Password ****** Port : 21
Et puis cliquez sur Quickconnect.
Cliquez sur "OK" pour confirmer notre certificat SSL auto-signé.
Vous verrez que vous êtes connecté au serveur FTP avec un certificat TLS/SSL.
Liens
- Le projet logiciel ProFTPD. Lien