FTP (File Transfer Protocol) est probablement la méthode la plus populaire pour télécharger des fichiers sur un serveur. ProFTPD est un serveur FTP populaire et facile à configurer pour les systèmes Linux qui prend en charge le cryptage SSL/TLS.
FTP est un protocole non sécurisé car tous les mots de passe et toutes les données sont transférés en clair (en texte brut). En utilisant TLS, toute la communication peut être cryptée, faisant ainsi de FTP un protocole sûr pour transférer des fichiers. Cet article décrit comment configurer proftpd avec TLS dans le serveur Ubuntu 15.04 .
Prérequis
- Serveur Ubuntu 15.04 64 bits
- privilèges sudo/root
Ce que nous allons faire dans ce didacticiel :
- Installer Proftpd et OpenSSL
- Configurer Proftpd
- Configurer l'utilisateur
- Configurer TLS avec proftpd
- Test
Installer Proftpd et OpenSSL
Proftpd et OpenSSL sont disponibles dans le référentiel Ubuntu et peuvent être installés avec la commande apt. Comme d'habitude avec les commandes d'installation, nous exécutons la commande apt via sudo pour l'exécuter avec les privilèges root :
sudo apt-get install -y proftpd openssl
Lorsque l'installation commence, il vous sera demandé si vous souhaitez exécuter Proftpd en tant que service inetd ou autonome. Choisissez l'option autonome ici, puis OK.
Configurer Proftpd
Une fois Proftpd installé, vous devrez modifier certains fichiers de configuration. Le fichier de configuration Proftpd se trouve dans le répertoire /etc/proftpd/. Je vais modifier le fichier proftpd.conf avec l'éditeur nano.
cd /etc/proftpd/
nano proftpd.conf
Sur la ligne ServerName, remplacez le nom par votre nom d'hôte ou votre domaine :
ServerName "myhostname"
Décommenter DefaultRoot :
# Use this to jail all users in their homes DefaultRoot ~
et redémarrez Proftpd :
systemctl restart proftpd
Ajouter un utilisateur FTP
Il existe deux manières courantes d'accéder à un serveur FTP :
1.FTP anonyme , le serveur FTP donne accès à n'importe qui sans avoir besoin d'un compte utilisateur et d'un mot de passe.
2. Accès avec nom d'utilisateur et mot de passe , seuls les utilisateurs disposant d'un compte utilisateur et d'un mot de passe peuvent accéder au serveur FTP.
Je vais configurer l'option 2 ici. Le FTP anonyme a été populaire au début de l'ère Internet, mais aujourd'hui, il y aurait tellement d'utilisation abusive des serveurs FTP anonymes que cette option n'est utilisable que dans des environnements fermés comme un réseau domestique ou d'entreprise.
Avant de créer un utilisateur pour Proftpd, veuillez ajouter /bin/false à votre fichier /etc/shells.
echo "/bin/false" >> /etc/shells
et maintenant vous allez créer un utilisateur avec un répertoire d'accueil auquel il aura accès par FTP. Je vais désactiver l'accès au shell pour cet utilisateur en lui attribuant le shell "/bin/false" pour m'assurer qu'il ne peut pas se connecter par SSH. Mon nom d'utilisateur s'appelle "yuuki", veuillez remplacer yuuki par votre nom d'utilisateur dans la commande suivante.
adduser --home /home/yuuki --shell /bin/false yuuki
La commande ci-dessus créera un nouvel utilisateur appelé yuuki avec le répertoire personnel /home/yuuki/ et sans accès au shell /bin/false.
Et maintenant configurez Proftpd pour permettre à l'utilisateur yuuki d'accéder au serveur FTP.
cd /etc/proftpd/
nano proftpd.conf
ajoutez cette configuration pour permettre à l'utilisateur yuuki de se connecter et de charger/télécharger un fichier vers/depuis son répertoire personnel /home/yuuki :
<Directory /home/yuuki> Umask 022 022 AllowOverwrite off <Limit LOGIN> AllowUser yuuki DenyALL </Limit> <Limit ALL> Order Allow,Deny AllowUser yuuki Deny ALL </Limit> <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD> AllowUser yuuki Deny ALL </Limit> </Directory>
puis redémarrez le Proftpd.
systemctl restart proftpd
Jusqu'à ce stade, le FTP peut déjà être utilisé sans chiffrement. Nous allons maintenant le sécuriser en activant TLS.
Configurer TLS dans Proftpd
Pour utiliser TLS, vous devez créer un certificat SSL. Je vais générer le certificat SSL avec la commande OpenSSL :
openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
La commande 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/.
Définissez les autorisations de fichier des fichiers de certificat sur 600 pour interdire l'accès aux autres utilisateurs :
chmod 600 /etc/ssl/certs/proftpd.crt
chmod 600 /etc/ssl/private/proftpd.key
Maintenant, revenez au répertoire Proftpd et configurez Proftpd pour utiliser SSL le certificat que vous avez généré.
cd /etc/proftpd/
nano proftpd.conf
Décommentez la ligne tls :
Include /etc/proftpd/tls.conf
Enregistrez-le et modifiez le fichier tls :
nano 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 TLSVerifyClient off TLSRequired on
Sauvegarder et quitter. La dernière étape consiste à redémarrer le serveur Proftpd :
systemctl restart proftpd
Tests
Pour tester la configuration, essayez de vous connecter à votre serveur FTP avec un client FTP. J'utiliserai FileZilla ici. Renseignez l'IP du serveur, le nom d'utilisateur, le mot de passe et le port :
Server IP : 192.168.1.108 username : yuuki Password ****** Port : 21
puis cliquez sur Quickconnect. Il vous sera demandé de confirmer le certificat SSL, cliquez simplement sur OK.
Vous êtes maintenant connecté au serveur FTP avec un certificat TLS/SSL .