GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer un serveur FTP sur Ubuntu VPS :Le guide ultime

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

  1. 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.

  2. 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.

  3. 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

  1. 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
  2. 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é.
  3. 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

  1. 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.

  2. 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.
  3. 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 ..
  4. 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.

  1. 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
    . . .
  2. 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
    . . .
  3. 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
  4. 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
  5. 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.

  6. 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 :

  7. 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é

  1. 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.

  2. Une fois invité, saisissez les informations personnelles correspondantes dans le champ prévu à cet effet.
  3. 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
  4. 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
  5. 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 .

  6. 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.

  1. 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.
  2. 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 :
  3. 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 .
  4. 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.

  1. Installervsftpd sur votre serveur Ubuntu et sauvegardez le fichier de configuration d'origine.
  2. Autoriser les connexions FTP via le pare-feu.
  3. Créer un annuaire d'utilisateurs accessible uniquement aux utilisateurs spécifiés.
  4. Configurer vsftpd .
  5. Sécurisez le serveur FTP.
  6. Testez votre connexion FTP avec FileZilla.

Bonne chance et assurez-vous de consulter nos autres tutoriels VPS !


Ubuntu
  1. Comment configurer un serveur FTP sur votre Raspberry Pi

  2. Comment configurer WireGuard VPN sur Ubuntu (un guide étape par étape)

  3. Comment autoriser l'utilisateur à utiliser sudo dans Ubuntu Linux

  4. Comment installer Ansible sur Ubuntu Server 21.04

  5. Comment installer le serveur FTP sur Ubuntu 20.04

Comment configurer le serveur proxy Shadowsocks-libev sur Ubuntu

Comment installer et configurer le serveur FTP VSFTPD sur Ubuntu

Comment installer le serveur FTP sur Ubuntu 20.04 LTS

Comment configurer un serveur Apt-cacher ?

Comment configurer un Vpn Pptp sur le propre serveur Ubuntu ?

Comment configurer un serveur FTP avec ProFTPD dans Ubuntu 18.04