Dans cet article, vous allez apprendre à configurer un serveur FTP sur un VPS Ubuntu. Nous utiliserons un serveur vsftpd, largement considéré comme le serveur FTP le plus rapide et le plus sécurisé pour les systèmes de type UNIX.
Qu'est-ce que FTP ?
FTP, ou File Transfer Protocol, est un moyen de partager des fichiers entre ordinateurs via une connexion Internet à l'aide du protocole TCP/IP. Il utilise également un cadre client-serveur et une sécurité SSL/TLS pour assurer un transfert de données sécurisé et fiable.
Ceci est quelque peu similaire à HTTP (HypertText Transfer Protocol) ou SMTP (Simple Mail Transfer Protocol). La différence est que FTP est responsable du transport des fichiers via Internet, tandis que HTTP et SMTP gèrent respectivement le transfert des pages Web et des e-mails.
Avant de commencer, gardez à l'esprit que nous allons vous guider dans la configuration d'un serveur FTP sur Ubuntu 18.04. Par conséquent, vous devez vous assurer que votre VPS fonctionne sur ce système d'exploitation particulier.
Comment configurer un serveur FTP sur Ubuntu
Ce tutoriel nécessite que vous sachiez vous connecter à un serveur via SSH. Si vous possédez le VPS de Hostinger, les informations de connexion sont disponibles dans le Serveur onglet du hPanel.
Étape 1 – Installation de vsftpd
- Tout d'abord, nous devrons obtenir les mises à jour de nos packages avant de poursuivre avec le vsftpd installation. Pour commencer, exécutez la commande suivante :
sudo apt-get update
Attendez que tous les processus soient terminés et vous verrez une confirmation dès que la mise à jour sera terminée.
- Une fois que c'est fait, installez le vsftpd démon à l'aide de la commande ci-dessous :
sudo apt-get install vsftpd
Vous serez invité avec un message de confirmation, qui vous demandera de taper Y et appuyez sur Entrée pour continuer l'installation.
- Une fois l'installation terminée, vous devez sauvegarder le fichier d'origine afin de pouvoir commencer avec un fichier de configuration vierge :
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
Nous sommes maintenant prêts à configurer le pare-feu.
Étape 2 – Autoriser le trafic FTP depuis le pare-feu
- Pour permettre au serveur FTP d'Ubuntu de communiquer via Internet, il doit traverser le pare-feu. Mais d'abord, voyons simplement si le pare-feu est déjà activé sur votre machine ou non. Exécutez simplement cette commande pour vérifier le statut :
sudo ufw status
Si vous voyez le message suivant :
ufw: command not found
Cela signifie que le pare-feu n'est pas installé. Vous pouvez l'installer et l'activer en tapant :
sudo apt-get install ufw sudo ufw enable
- S'il est déjà actif, vous devez toujours vous assurer que le trafic FTP est autorisé. Pour ce faire, exécutez les commandes suivantes une par une :
sudo ufw allow OpenSSH sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp
Cette série de commandes ouvrira plusieurs ports :
- OpenSSH est nécessaire si vous souhaitez toujours accéder à votre serveur via SSH. Parfois, cette option est activée par défaut.
- ports 20 et 21 pour le trafic FTP.
- ports 40000:50000 sera réservé à la plage de ports passifs qui sera éventuellement définie dans le fichier de configuration.
- port 990 sera utilisé lorsque TLS est activé.
- Regardons à nouveau le statut :
sudo ufw status
Le résultat devrait ressembler à ceci :
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 990/tcp ALLOW Anywhere 20/tcp ALLOW Anywhere 21/tcp ALLOW Anywhere 40000:50000/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 20/tcp (v6) ALLOW Anywhere (v6) 21/tcp (v6) ALLOW Anywhere (v6) 990/tcp (v6) ALLOW Anywhere (v6) 40000:50000/tcp (v6) ALLOW Anywhere (v6)
Étape 3 - Création du répertoire utilisateur
- Une fois le pare-feu configuré, nous devons créer l'utilisateur qui va utiliser l'accès FTP. Voici comment procéder :
sudo adduser hostinger
N'oubliez pas de modifier le nom d'utilisateur selon vos propres préférences.
- Ensuite, saisissez un mot de passe pour l'utilisateur et remplissez tous les détails requis.
Idéalement, FTP devrait être limité à un répertoire spécifique pour des raisons de sécurité. C'est pourquoi vsftpd utilise les prisons chroot , qui limite un utilisateur local à son répertoire personnel par défaut.
Cependant, il est possible qu'à cause de vsftpd sécurité, un utilisateur peut ne pas être en mesure d'écrire dans ce répertoire. Pour résoudre ce problème, nous n'avons pas besoin de supprimer les privilèges d'écriture du dossier de départ. Au lieu de cela, nous allons créer un répertoire ftp qui agit comme chroot . Il contient un répertoire accessible en écriture qui sera chargé de contenir les fichiers requis. - Utilisez la commande suivante pour créer le dossier FTP :
sudo mkdir /home/hostinger/ftp
Ensuite, définissez la propriété en utilisant :
sudo chown nobody:nogroup /home/hostinger/ftp
Enfin, supprimez l'autorisation d'écriture :
sudo chmod a-w /home/hostinger/ftp
Maintenant, utilisez la commande suivante pour vérifier les autorisations :
sudo ls -la /home/hostinger/ftp
La sortie devrait ressembler à :
total 8 dr-xr-xr-x 2 nobody nogroup 4096 Oct 8 11:32 . drwxr-xr-x 3 hostinger hostinger 4096 Oct 8 11:32 ..
- Ensuite, nous allons créer le répertoire contenant les fichiers et attribuer la propriété :
sudo mkdir /home/hostinger/ftp/files sudo chown hostinger:hostinger /home/hostinger/ftp/files
Enfin, ajoutez un fichier de test au répertoire qui sera utilisé lorsque nous testerons tout plus tard :
echo "vsftpd sample file" | sudo tee /home/hostinger/ftp/files/sample.txt
Étape 4 – Configuration de vsftpd
L'étape suivante consiste à configurer vsftpd et notre accès FTP. Dans cet exemple, nous autoriserons un seul utilisateur à se connecter en utilisant un compte shell local. Les deux configurations de clé requises pour cela sont déjà définies dans la configuration (vsftpd.conf ) fichier.
- Pour commencer, utilisez la commande nano pour ouvrir vsftpd fichier de configuration.
sudo nano /etc/vsftpd.conf
Vérifiez que le contenu a des paramètres similaires à ceci :
. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES . . .
Dans le même fichier, nous supprimerons # (décommentez) et assurez-vous que nous activons le write_enable .
. . . write_enable=YES . . .
- Vous devez également décommenter chroot pour s'assurer que l'utilisateur FTP n'accède qu'aux fichiers du répertoire autorisé. Changez le NON valeur sur OUI , aussi bien. Gardez à l'esprit qu'il y a deux lignes comme celle-ci et que vous devez les décommenter toutes les deux.
. . . chroot_local_user=YES . . .
- Il y a quelques nouvelles valeurs que vous devriez également ajouter au bas du fichier. Le premier est user_sub_token dans le chemin du répertoire racine_local . Cela permettra à la configuration de fonctionner avec l'utilisateur actuel ou tout autre utilisateur ajouté par la suite :
user_sub_token=$USER local_root=/home/$USER/ftp
- Pour garantir qu'un nombre substantiel de connexions sont disponibles, nous limiterons le nombre de ports du fichier de configuration :
pasv_min_port=40000 pasv_max_port=50000
- Dans ce didacticiel, nous avons l'intention d'autoriser l'accès au cas par cas. Par conséquent, nous définirons la configuration pour accorder l'accès uniquement aux utilisateurs que vous avez explicitement ajoutés à la liste :
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Lorsque vous définissez l'indicateur userlist_deny à NON , seuls les utilisateurs spécifiés seront autorisés à accéder. Une fois terminé, cliquez sur CTRL+X suivi de Y pour l'enregistrer, puis Entrée pour confirmer les modifications du fichier.
- Enfin, nous allons créer une liste d'utilisateurs et ajouter un utilisateur au fichier :
echo "hostinger" | sudo tee -a /etc/vsftpd.userlist
Vérifiez que l'utilisateur est bien actif en exécutant la commande suivante :
cat /etc/vsftpd.userlist
La sortie doit être "hostinger" comme indiqué dans cette capture d'écran :
- Redémarrez le démon à l'aide de la commande suivante pour charger les modifications de configuration :
sudo systemctl restart vsftpd
Étape 5 – Rendre FTP sécurisé
- Par défaut, FTP ne crypte pas les données, nous utiliserons donc SSL/TLS certificat pour sécuriser le transfert de données. La première étape consiste à créer le certificat SSL pour le serveur FTP Ubuntu.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Les –jours flag rend le certificat valable un an et nous avons inclus un 2048-bit RSA privé saisissez la même commande.
- Une fois invité, saisissez les informations personnelles correspondantes dans le champ prévu à cet effet.
- Après avoir fini de créer le certificat, ouvrez à nouveau le fichier de configuration :
sudo nano /etc/vsftpd.conf
La fin du fichier doit contenir deux lignes commençant par rsa .
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Maintenant, nous allons pointer le fichier de configuration vers le certificat que nous venons de créer. Ajoutez les répertoires suivants juste en dessous des lignes précédentes :
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- Ensuite, nous allons activer SSL et veiller à ce que seuls les clients disposant d'un SSL actif puissent nous contacter. Entrez simplement cette ligne :
ssl_enable=YES
Ajoutez ensuite les lignes suivantes pour interdire toute connexion anonyme via SSL :
allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES
Configurez le serveur pour utiliser TLS en utilisant :
ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO
- Nous allons maintenant modifier deux autres options. Tout d'abord, désactivez la réutilisation SSL pour empêcher les clients FTP de tomber en panne. Deuxièmement, nous utiliserons des suites de chiffrement à chiffrement élevé, qui garantissent que les longueurs de clé sont égales ou supérieures à 128 bits.
require_ssl_reuse=NO ssl_ciphers=HIGH
Enregistrez à nouveau le fichier en appuyant sur CTRL+X suivi de Y , puis appuyez sur Entrée .
- Redémarrons vsftpd encore une fois pour appliquer les nouvelles configurations :
sudo systemctl restart vsftpd
Bon travail! Vous avez maintenant configuré le serveur FTP sur votre VPS Ubuntu pour qu'il fonctionne avec le protocole SSL/TLS.
Étape 6 – Tester la connexion avec FileZilla
De nos jours, la plupart des clients FTP prennent en charge les configurations de cryptage TLS. C'est un excellent moyen de tester si votre serveur FTP Ubuntu fonctionne correctement. Pour tester la connexion, nous utiliserons un client FTP FileZilla.
- Pour commencer, lancez FileZilla et cliquez sur le Gestionnaire de site icône. Ensuite, cliquez sur Nouveau site dans la fenêtre d'invite pour entrer les détails du serveur FTP Ubuntu.
- Remplissez toutes les colonnes requises avec les informations de votre serveur FTP Ubuntu nouvellement créé. Puisque nous l'avons configuré pour utiliser TLS, nous pouvons également choisir l'option Utiliser un FTP explicite sur TLS option. La configuration finale devrait ressembler à ceci :
- Une fois prêt, cliquez sur Se connecter, et un écran demandant d'entrer le mot de passe de l'utilisateur FTP apparaîtra. Après cela, appuyez sur OK .
- Enfin, vous devrez vérifier le certificat SSL de votre serveur FTP sur Ubuntu VPS. Après confirmation, le répertoire racine avec le fichier de test devrait maintenant apparaître sur votre écran.
C'est tout! Maintenant, vous pouvez effectuer divers transferts de fichiers de votre ordinateur vers le serveur FTP Ubuntu et vice versa.
Conclusion
Avoir un serveur FTP Ubuntu vous permet de partager facilement des fichiers entre votre VPS/serveur Ubuntu et votre ordinateur. C'est une méthode de transfert de données sécurisée et fiable, grâce à la sécurité SSL/TLS et au protocole TCP/IP.
Dans ce didacticiel, vous avez appris à configurer un serveur FTP sur Ubuntu 18.04 à l'aide de vsftpd. Il y a cinq étapes que vous devez suivre. Jetons-y un coup d'œil une fois de plus.
- Installervsftpd sur votre serveur Ubuntu et sauvegardez le fichier de configuration d'origine.
- Autoriser les connexions FTP via le pare-feu.
- Créer un annuaire d'utilisateurs accessible uniquement aux utilisateurs spécifiés.
- Configurer vsftpd .
- Sécurisez le serveur FTP.
- Testez votre connexion FTP avec FileZilla.
Bonne chance et assurez-vous de consulter nos autres tutoriels VPS !