Comment installer ProFTPD avec TLS sur Ubuntu 18.04 LTS

ProFTPD est un serveur FTP gratuit, open source et le plus populaire pour les systèmes d’exploitation de type Unix. ProFTPD te permet de créer une connexion FTP entre ton ordinateur local et le serveur distant. C’est un serveur FTP polyvalent qui prend en charge TLS (SSL) pour les connexions sécurisées.

Caractéristiques

  • Prend en charge IPv4 et IPv6.
  • Prend en charge .ftpaccess pour sécuriser chaque répertoire.
  • Permet de configurer plusieurs serveurs FTP virtuels et des services FTP anonymes.
  • Prend en charge le mot de passe shadow, utmp/wtmp, le cryptage SSL/TLS et RADIUS.
  • Peut fonctionner en tant que serveur autonome ou depuis inetd/xinetd.

Dans ce tutoriel, nous allons apprendre à installer ProFTPD et à le sécuriser avec TLS sur le serveur Ubuntu 18.04

Exigences

  • Un serveur exécutant Ubuntu 18.04.
  • Une adresse IP statique 192.168.0.101 est configurée sur le serveur.
  • Un mot de passe root est configuré sur ton serveur.

Pour commencer

Avant de commencer, tu dois mettre à jour ton système avec la dernière version. Tu peux le faire en exécutant la commande suivante :

apt-get update -y
apt-get upgrade -y

Une fois que ton serveur est mis à jour, redémarre ton serveur pour appliquer les changements.

Installer ProFTPD

Par défaut, ProFTPD est disponible dans le dépôt par défaut d’Ubuntu 18.04. Tu peux l’installer en exécutant simplement la commande suivante :

apt-get install proftpd -y

Après avoir installé ProFTPD, démarre le service ProFTPD et active-le pour qu’il démarre au démarrage avec la commande suivante :

systemctl start proftpd
systemctl enable proftpd

Tu peux vérifier l’état du service ProFTPD avec la commande suivante :

systemctl status proftpd

Tu devrais voir la sortie suivante :

? proftpd.service - LSB: Starts ProFTPD daemon
   Loaded: loaded (/etc/init.d/proftpd; generated)
   Active: active (running) since Sat 2019-05-25 09:18:19 UTC; 31s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 1 (limit: 1114)
   CGroup: /system.slice/proftpd.service
           ??1927 proftpd: (accepting connections)

May 25 09:18:19 ubuntu1804 systemd[1]: Starting LSB: Starts ProFTPD daemon...
May 25 09:18:19 ubuntu1804 proftpd[1906]:  * Starting ftp server proftpd
May 25 09:18:19 ubuntu1804 proftpd[1906]:    ...done.
May 25 09:18:19 ubuntu1804 systemd[1]: Started LSB: Starts ProFTPD daemon.

Le fichier de configuration par défaut de ProFTPD se trouve dans /etc/proftpd/proftpd.conf. Tu peux le voir avec la commande suivante :

cat /etc/proftpd/proftpd.conf

Tu devrais voir la sortie suivante :

#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
# 

# Includes DSO modules

Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6                         on
# If set on you can experience a longer connection delay in many cases.
IdentLookups                    off

ServerName                      "Debian"
# Set to inetd only if you would run proftpd by inetd/xinetd.
# Read README.Debian for more information on proper configuration.
ServerType                              standalone
DeferWelcome                    off

MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on

TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200

DisplayLogin                    welcome.msg
DisplayChdir                    .message true
ListOptions                     "-l"

DenyFilter                      \*.*/

# Use this to jail all users in their homes 
# DefaultRoot                   ~
# Port 21 is the standard FTP port.
Port                            21
MaxInstances                    30
# Set the user and group that the server normally runs at.
User                            proftpd
Group                           nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask                           022  022
# Normally, we want files to be overwriteable.
AllowOverwrite                  on
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

Tu peux modifier les paramètres ci-dessus en fonction de tes besoins, comme indiqué ci-dessous :

  • ServerName : Tu peux le modifier comme ton nom de serveur par défaut.
  • UseIPV6 : Tu peux le désactiver en le mettant sur off.
  • DefaultRoot : Tu peux décommenter cette ligne pour limiter les utilisateurs avec leurs dossiers personnels.
  • Port : Tu peux définir ton propre port en le modifiant.
  • SystemLog : L’emplacement par défaut du fichier journal. Tu peux le modifier en fonction de tes besoins.

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Sécurise ProFTPD avec TLS

ProFTPD est maintenant installé. Maintenant, tu vas devoir configurer ProFTPD avec TLS pour des connexions FTP sécurisées.

Avant de commencer, tu dois installer OpenSSL sur ton serveur. Tu peux l’installer en exécutant simplement la commande suivante :

apt-get install openssl -y

Une fois l’installation terminée, génère des certificats SSL pour ProFTPd avec la commande suivante :

openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365

Réponds à toutes les questions comme indiqué ci-dessous :

Generating a 1024 bit RSA private key
.++++++
.......................++++++
writing new private key to '/etc/ssl/private/proftpd.key'
-----
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]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:Junagadh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IT
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:[email protected]

La commande ci-dessus va générer deux fichiers /etc/ssl/private/proftpd.key et /etc/ssl/certs/proftpd.crt.

Ensuite, donne les autorisations appropriées aux fichiers générés avec la commande suivante :

chmod 600 /etc/ssl/private/proftpd.key
chmod 600 /etc/ssl/certs/proftpd.crt

Une fois que tu l’as fait, tu peux passer à l’étape suivante.

Configure ProFTPD pour utiliser SSL

Ensuite, tu devras configurer ProFTPD pour qu’il utilise des certificats SSL. Tu peux le faire en modifiant le fichier /etc/proftpd/proftpd.conf :

nano /etc/proftpd/proftpd.conf

Décommente la ligne suivante :

Include /etc/proftpd/tls.conf

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, ouvre le fichier /etc/proftpd/tls.conf :

nano /etc/proftpd/tls.conf

Modifie les lignes suivantes :

TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRequired on
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, redémarre le service ProFTPD avec la commande suivante :

systemctl restart proftpd

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Créer un utilisateur pour ProFTPD

Ensuite, tu devras créer un utilisateur ProFTPD pour accéder au serveur. Tu peux le faire avec la commande suivante :

adduser ftp1

Réponds à toutes les questions comme indiqué ci-dessous :

Adding user `ftp1' ...
Adding new group `ftp1' (1006) ...
Adding new user `ftp1' (1002) with group `ftp1' ...
Creating home directory `/home/ftp1' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for ftp1
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y

Une fois que tu l’as fait, tu peux passer à l’étape suivante.

Accéder au serveur ProFTPD à l’aide de FileZilla

ProFTPD est maintenant installé et configuré, il est temps d’accéder à ProFTPD via FileZilla depuis le système Client.

Tout d’abord, tu dois installer FileZilla sur ton système Client. Tu peux l’installer en exécutant simplement la commande suivante :

apt-get install filezilla -y

Une fois l’installation terminée, tu peux ouvrir FileZilla à partir du tableau de bord d’Unity, comme indiqué ci-dessous :

FileZilla FTP Client

Maintenant, clique sur le Site Manager dans le panneau latéral gauche et crée un nouveau site. Tu devrais voir la page suivante :

Connexion FTP sécurisée par TLS

Maintenant, indique l’adresse IP de ton serveur FTP, sélectionne le protocole, sélectionne le cryptage, sélectionne le type de connexion, indique le nom d’utilisateur et le mot de passe. Ensuite, clique sur le bouton Connecter. Tu devrais voir la page suivante :

Accept server SSL cert

Maintenant, accepte le certificat, coche la case « Toujours faire confiance au certificat dans les futures sessions » et clique sur le bouton OK. Après une connexion réussie, tu devrais voir la page suivante :

Connexion FTP réussie

Tu es maintenant en mesure de transférer des fichiers en toute sécurité via SSL/TLS.

Félicitations ! Tu as réussi à installer et à configurer le serveur ProFTPD et à le sécuriser avec le cryptage SSL/TLS. Tu peux maintenant transférer ton fichier de ton ordinateur local au serveur FTP facilement avec un cryptage sécurisé. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...