Dans ce tutoriel, vous allez apprendre à installer un serveur FTP Debian (ici proftpd) et à configurer cet environnement en fonction de vos besoins.
Première étape pour notre FTP, nous allons avoir besoin d’installer un serveur (proftpd) mais
également un client ! J’utiliserais sur ce tutoriel Filezilla.
J’installe proftpd & Filezilla en même temps
Je vais ensuite tester Filezilla mais également la connexion à mon serveur proftpd.
Pour cela sur l’application Filezilla, vous devrez rentrer les éléments suivants :
Une fois que vous avez lancé la connexion avec le bouton “Connexion rapide”. Vous aurez à confirmer une connexion “non sécurisée” en effet, vous n’avez pas de certificat. Comme vous pouvez le remarquer, il m’a rempli par défaut le port “21” qu’est celui utilisé par le protocole FTP.
Je peux valider et continuer.
Je serais alors connecté et on peut voir que je suis envoyé par défaut dans /home/ilan, vu que je me suis connecté avec l’utilisateur ilan
J’ai accès à mon Bureau, mes Images, mes Documents, etc… donc je suis bien connecté !
J’essaie de :
Dans mon cas, ci-dessous j’ai téléchargé un fichier “test.txt” étant sur le “Bureau” de mon serveur, vers le dossier “Image” de ma machine client.
Dans la configuration de Proftpd, faites bien attention a vos entrées dans le fichier de configuration.
Des éléments que vous appelez/avez configurés plus haut dans le fichier peuvent impacter des éléments plus bas. Faites donc bien attention à respecter les différentes lignes précisés dans ce fichier pour ne pas être trop impacté par la suite.
J'ajoute des règles afin d'autoriser l'entrée sur le port 21 (commandes) et 20 (data)
Pour commencer, je vais faire en sorte que les utilisateurs ne puissent pas se déplacer sur le serveur ailleurs que dans leur répertoire home.
Pour cela je vais modifier le fichier de configuration principal de proftpd.
Vous pouvez ensuite décommenter “DefaultRoot”, qui se situe par défaut ligne n°36. Cette ligne (comme précisé dans le commentaire juste au dessus) permet “d’emprisonner” tous les utilisateurs dans leurs “home”. Une fois la modification effectuée, enregistrez et quittez.
Ensuite redémarrez proftpd
Vérifiez en vous connectant sur filezilla si les accès ont bien changé.
Nous allons changer le port par défaut de proftpd, chaque serveur FTP par défaut utilise le port 21, afin de “sécuriser” un peu plus les accès, nous allons changer le port 21 en port 5000.
Première étape, nous allons modifier le fichier de configuration de proftpd.
Je me rends ligne 43 pour ensuite remplacer le port 21 par 5000
Je redémarre ensuite proftpd
Si je me connecte depuis ma machine client avec cette fois-ci le port 5000.
Connexion réussie ! Donc on est bon !
Je vais maintenant limiter la connexion au serveur à un seul groupe, en effet par défaut proftpd permet la connexion à TOUS les utilisateurs de votre serveur Linux (sauf root).
Pour ma part, je souhaite faire en sorte que seuls les utilisateurs membres du groupe “testftp”
puissent se connecter.
Première étape, je retourne modifier le fichier “proftpd.conf”
Je vais ensuite ajouter les éléments suivants ;
Je redémarre ensuite proftpd.
Je vais créer mon groupe testftp.
J’ajoute l’utilisateur “ilan” au groupe “testftp”
Lorsque je me connecte avec filezilla à “ilan” qui fait maintenant parti du groupe testftp cela fonctionne
MAIS lors de ma connexion avec Filezilla à “toto” qui ne fait pas partie du groupe testftp, j’ai une erreur “impossible d’établir une connexion au serveur”.
Pour ajouter un certificat SSL/TLS et ainsi sécuriser les accès à mon serveur. Vous devrez suivre les étapes suivantes.
En premier, je vais générer le certificat :
Ensuite nous allons renseigner le contenu du certificat (ici par exemple : CountryCode = FR, State = Nouvelle-Aquitaine, etc...)
Je vais ensuite aller déplacer le certificat et la clé dans /etc/ssl/private
La clé :
Le certificat :
Ensuite je vais aller modifier le fichier de configuration tls.conf qui contient la configuration de mon serveur concernant le SSL/TLS.
Modifiez les lignes ci-dessous, je vous ai ajouté le numéro de ligne sur la gauche afin que vous sachiez vers quelle ligne la modification doit être effectuée
Je modifie le fichier de configuration proftpd.conf (le fichier de configuration principal)
Je vais ensuite pouvoir inclure le fichier “tls.conf” dans la configuration globale
En essayant de me connecter avec l’utilisateur “ilan”, le certificat apparaît avec les informations que je lui ai renseignées !
La connexion est établie en validant le certificat
J’ai enfin bien accès à mon “site distant” sans erreurs !
J’ai la possibilité de créer des fichiers de configuration personnalisés ! Cela me sera très utile si je dois faire une configuration adaptée à par exemple plusieurs groupes d’utilisateurs (ex : un groupe Compta et un groupe Marketing)
Je créer un fichier test.conf
Je vais ensuite aller lui renseigner exactement les mêmes éléments que pour l’étape “limitation de connexion au serveur”.
Je vais limiter la connexion uniquement aux membres du groupe “testftp” le reste sera refusé.
Je retourne ensuite dans le fichier “proftpd.conf”
Je redémarre proftpd pour appliquer la nouvelle configuration
Je vérifie ma configuration en me connectant d’abord avec l’utilisateur “ilan” (succès car membre du groupe testftp)
Je vérifie ensuite en me connectant avec l’utilisateur “toto” (échec car il n’est pas membre du groupe testftp)
Nous allons maintenant créer un dossier qui appartient uniquement à un groupe d'utilisateurs et
dans lequel ils seront bloqués.
Première étape, je crée le dossier à la racine de mon serveur.
Ensuite je vais modifier les droits d’accès de sorte à ce que le propriétaire et le groupe ait un contrôle total mais que personne d’autre n’ai d’accès.
Je change le propriétaire et le groupe
Je vérifie que mes changements sont bien appliqués (avec la commande ls -l ou ll)
Je vais ensuite créer et modifier le fichier de configuration personnalisé.
J’ajoute un “DefaultRoot” qui correspond au dossier du nom de /tesftp pour le groupe testftp puis j’enregistre et je quitte.
Je vais ensuite modifier le fichier de configuration original.
Je redémarre ensuite proftpd pour appliquer la nouvelle configuration
Je peux ensuite retourner dans Filezilla et essayer de me connecter.
Je suis présent dans un dossier identifié “/” je vais donc créer un fichier texte pour être sûr que je suis bien au bon endroit et je vérifierais ensuite en actualisant que je suis au bon endroit.
En réactualisant sur Filezilla, le fichier test.txt devrait apparaître avec l’utilisateur “root” en propriétaire
Il apparaît bien !
Voilà, vous savez maintenant comment créer un dossier propre à un seul groupe d’utilisateurs !
Vous savez maintenant comment configurer proftpd sur un environnement Linux.
Vous pouvez aller plus loin, si vous le souhaitez, n’hésitez pas à me contacter dans ce cas ou à vous renseigner sur les autres tutos présents sur mon wiki ou directement sur Google !
Si vous souhaitez avoir plus d’informations ou si vous avez découvert une coquille sur ce tutoriel, merci de me contacter à l’adresse i.martel@imweb.ovh
v2 - Merci à Antoine Armandy de m’avoir fait remarquer mon oublie concernant les commandes de
déplacement des fichiers de certificats dans la partie “ajouter un certificat SSL/TLS”
v1 - Version initiale
v2 - Modification de la partie “ajouter un certificat SSL/TLS”