Logiciels

Installation d’un serveur ftp sécurisé avec Pure-ftpd et MySQL sur Ubuntu Server : guide complet étape par étape

Pour les entreprises cherchant à gérer efficacement leurs fichiers et à partager des données en toute sécurité, l’installation d’un serveur FTP sécurisé constitue une solution idéale. Un serveur FTP (File Transfer Protocol) permet le transfert de fichiers entre ordinateurs via un réseau, offrant ainsi un moyen fiable de stocker et d’échanger des informations. Cependant, la sécurité de ce serveur est primordiale, surtout dans un environnement professionnel. Cet article explore les étapes essentielles pour mettre en place un serveur FTP sécurisé en utilisant Pure-ftpd, un logiciel réputé pour sa simplicité et sa robustesse. Nous aborderons les prérequis, l’installation, la configuration, ainsi que les meilleures pratiques pour garantir une sécurité optimale de votre serveur FTP. Que vous soyez novice ou expérimenté, ce guide vous fournira les connaissances nécessaires pour sécuriser vos transferts de fichiers et protéger les données sensibles de votre entreprise.

Prérequis et préparation initiale

Avant d’installer un serveur FTP sécurisé, certaines préparations sont nécessaires. Pure-ftpd, notre logiciel de choix, est reconnu pour sa simplicité et sa sécurité intrinsèque. En comparaison avec d’autres serveurs comme Proftpd ou vsftpd, Pure-ftpd offre une interface facile à appréhender, idéale pour les débutants tout en étant suffisamment robuste pour les entreprises. Par exemple, des sociétés telles qu’OVH utilisent Pure-ftpd en production, témoignant ainsi de sa fiabilité.

Pour commencer, vous aurez besoin d’une version d’Ubuntu Server, de préférence la 20.04 LTS, et du paquet Pure-FTPD-Mysql. L’installation d’Ubuntu Server ne sera pas détaillée ici, mais quelques ajustements doivent être faits avant de passer à l’installation du serveur FTP. Il est recommandé de modifier la coloration syntaxique de vi pour une meilleure visibilité des fichiers de configuration. Cette modification peut être effectuée en ajoutant la ligne suivante à la fin du fichier : :colorscheme desert.

Ensuite, il est crucial d’assigner une IP statique à votre serveur FTP. Depuis la transition d’Ubuntu à Netplan pour la configuration réseau, cette tâche se réalise dans un fichier .yaml situé dans /etc/netplan/. Une fois les modifications apportées, utilisez la commande netplan apply pour les appliquer.

De plus, désactiver AppArmor, une extension de sécurité similaire à SELinux, peut être judicieux. Bien que cette extension offre une sécurité étendue, elle est souvent source de problèmes. Pour désactiver AppArmor, exécutez les commandes suivantes : service apparmor stop, update-rc.d -f apparmor remove, et apt-get remove apparmor apparmor-utils.

Enfin, mettez à jour votre installation Linux en éditant le fichier /etc/apt/sources.list pour commenter ou supprimer la ligne concernant le CD d’installation, et assurez-vous que les dépôts universe et multiverse sont activés. Ensuite, mettez à jour votre système avec les commandes apt-get update et apt-get upgrade. Si un nouveau noyau est installé, redémarrez le système avec la commande reboot. Avec ces prérequis en place, vous êtes prêt à installer et configurer MySQL, ce qui constitue notre prochaine étape.

Installation et configuration de MySQL

Pour gérer les utilisateurs FTP ainsi que leurs propriétés, telles que les quotas et la bande passante, une base de données MySQL s’avère indispensable. Commencez par installer MySQL en utilisant la commande sudo apt install mysql-server. Cette commande installe MySQL sans demander de mots de passe ou autres configurations initiales. Une fois l’installation terminée, il est recommandé d’exécuter le script de sécurité MySQL pour améliorer la sécurité par défaut. Ce script, accessible via la commande sudo mysql_secure_installation, vous guide à travers une série d’invites pour configurer des options de sécurité telles que les connexions root distantes et les utilisateurs d’exemple.

Le script vous demandera si vous souhaitez configurer le plugin Validate Password, qui teste la robustesse de vos mots de passe MySQL. Si vous choisissez d’utiliser ce plugin, vous devrez sélectionner un niveau de validation, le niveau le plus élevé étant 2, exigeant des mots de passe avec au moins huit caractères, incluant un mélange de majuscules, minuscules, chiffres et caractères spéciaux.

En configurant le plugin Validate Password, vous serez ensuite invité à définir un mot de passe pour l’utilisateur root de MySQL. Après avoir saisi et confirmé le mot de passe, vous pouvez poursuivre avec les valeurs par défaut pour les autres options de sécurité. Cela supprimera les utilisateurs anonymes et la base de données de test, désactivera les connexions root à distance, et appliquera les nouvelles règles.

Dans les versions plus récentes d’Ubuntu utilisant MySQL 5.7 et supérieures, l’utilisateur root de MySQL est configuré pour s’authentifier via le plugin auth_socket plutôt qu’avec un mot de passe. Bien que cette méthode soit plus pratique, certaines applications peuvent ne pas la supporter. Pour utiliser un mot de passe pour l’utilisateur root, changez le mode d’authentification en utilisant la commande suivante : ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;.

Pour vérifier la configuration, utilisez la commande systemctl status mysql.service. Vous devriez voir une sortie indiquant que le service MySQL est actif. Pour une vérification supplémentaire, connectez-vous à la base de données avec la commande sudo mysqladmin -p -u root version. Une fois MySQL configuré, nous pouvons passer à l’installation de Pure-ftpd.

Installation et configuration de Pure-ftpd

L’installation de Pure-ftpd, en particulier sa version MySQL pour l’authentification par base de données, est une étape cruciale. Commencez par installer Pure-ftpd avec la commande apt-get install pure-ftpd-mysql. Ensuite, créez un groupe ftp (ftpgroup) et un utilisateur (ftpuser) auxquels tous les utilisateurs virtuels seront associés. Utilisez les commandes suivantes pour ce faire : groupadd -g 2001 ftpgroup et useradd -u 2001 -s /bin/false -d /bin/null -c « pureftpd user » -g ftpgroup ftpuser.

Pour configurer la base de données, créez un utilisateur MySQL admin pour gérer la base de données FTP, sans utiliser l’utilisateur root. Utilisez les commandes suivantes :

  • CREATE USER admin_ftp@localhost IDENTIFIED BY ‘Mon-Password’;
  • GRANT ALL PRIVILEGES ON *.* TO admin_ftp@localhost WITH GRANT OPTION;
  • ALTER USER admin_ftp@localhost REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

Ensuite, créez une base de données pour Pure-ftpd et donnez les droits sur cette base au nouvel utilisateur admin_ftp. Utilisez les commandes : CREATE DATABASE IF NOT EXISTS PUREFTPD_BDD; et GRANT ALL PRIVILEGES ON PUREFTPD_BDD.* TO admin_ftp@localhost;.

Pour stocker les informations des utilisateurs, créez une table avec le schéma suivant :

USE PUREFTPD_BDD;
CREATE TABLE users (
User varchar(16) NOT NULL default  »,
status enum(‘0′,’1’) NOT NULL default ‘0’,
Password varchar(64) NOT NULL default  »,
Uid varchar(11) NOT NULL default ‘-1’,
Gid varchar(11) NOT NULL default ‘-1’,
Dir varchar(128) NOT NULL default  »,
ULBandwidth smallint(5) NOT NULL default ‘0’,
DLBandwidth smallint(5) NOT NULL default ‘0’,
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default ‘*’,
QuotaSize smallint(5) NOT NULL default ‘0’,
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User), UNIQUE KEY User (User)
) ENGINE=MyISAM;

Les champs de cette table incluent l’identifiant utilisateur, le statut (0 pour désactivé, 1 pour activé), le mot de passe (stocké en clair), l’UID et le GID (identifiants utilisateur et groupe sur le serveur), le répertoire de base, la bande passante en upload et download, des commentaires, l’accès IP, la taille du quota et le nombre de fichiers.

Configurez ensuite le serveur Pure-ftpd en modifiant les fichiers de configuration dans le répertoire /etc/pure-ftpd/. Par exemple, pour la connexion à la base de données, éditez le fichier /etc/pure-ftpd/db/mysql.conf avec les paramètres de votre base de données. Ajoutez des options de configuration telles que la suppression de l’authentification UNIX, la création automatique de répertoires, le chroot des comptes FTP, et la limitation du nombre de clients.

Redémarrez le service avec la commande service pure-ftpd-mysql restart. Enfin, pour ajouter des utilisateurs à la base de données, utilisez le shell MySQL avec une commande d’insertion telle que :

mysql -u root -p
USE PUREFTPD_BDD;
INSERT INTO users (User, status, Password, Uid, Gid, Dir, ULBandwidth, DLBandwidth, comment, ipaccess, QuotaSize, QuotaFiles) VALUES (‘guillaume’, ‘1’, MD5(‘guillaume’), ‘2001’, ‘2001’, ‘/home/guillaume’, ‘1000’, ‘1000’,  »,  », ’50’, ‘0’);

Testez ensuite la connexion avec un client FTP. Si la connexion réussit, félicitations ! Sinon, vérifiez les fichiers de log pour diagnostiquer les problèmes.

Suivi et maintenance

Pour garantir le bon fonctionnement de votre serveur FTP, il est essentiel de surveiller régulièrement les logs et l’activité du serveur. Les fichiers de log importants incluent /var/log/syslog et /var/log/auth.log. Pour activer le mode debug de Pure-ftpd, utilisez la commande echo ‘yes’ > /etc/pure-ftpd/conf/VerboseLog.

Pour suivre l’activité des utilisateurs connectés, la commande pure-ftpwho est très utile. Elle affiche des informations telles que le PID, l’utilisateur, la durée de connexion, la vitesse, l’action en cours, le fichier et l’adresse IP de l’utilisateur. En surveillant ces informations, vous pouvez rapidement identifier et résoudre les problèmes potentiels avant qu’ils n’affectent les opérations de votre entreprise.

La mise en place d’un serveur FTP sécurisé avec Pure-ftpd pour votre entreprise n’est pas seulement une question de technologie, mais aussi de sécurité et de gestion efficace des données. En suivant les étapes décrites dans cet article, vous pouvez assurer des transferts de fichiers sécurisés et fiables, protégeant ainsi les informations sensibles de votre entreprise. N’oubliez pas de maintenir votre serveur à jour et de surveiller régulièrement les logs et l’activité pour garantir une sécurité continue. Avec ces précautions en place, votre serveur FTP deviendra un atout précieux pour votre infrastructure informatique.

Étape Description
Prérequis et préparation initiale Configurer Ubuntu Server, assigner une IP statique, désactiver AppArmor, mettre à jour le système.
Installation et configuration de MySQL Installer MySQL, exécuter le script de sécurité, configurer l’authentification root.
Installation et configuration de Pure-ftpd Installer Pure-ftpd, créer un groupe et utilisateur FTP, configurer la base de données, ajouter des utilisateurs, tester la connexion.

FAQ

  • Quels sont les avantages de Pure-ftpd par rapport à d’autres serveurs FTP?
    Pure-ftpd est reconnu pour sa simplicité et sa robustesse, offrant une interface facile à utiliser idéale pour les débutants et les entreprises.
  • Comment assigner une IP statique à mon serveur FTP sous Ubuntu?
    Modifiez le fichier .yaml dans /etc/netplan/ et utilisez la commande netplan apply pour appliquer les changements.
  • Pourquoi devrais-je désactiver AppArmor sur mon serveur FTP?
    AppArmor peut causer des problèmes de compatibilité. Le désactiver peut simplifier la configuration et le fonctionnement du serveur FTP.
  • Quelle est l’importance d’utiliser MySQL avec Pure-ftpd?
    MySQL permet de gérer les utilisateurs FTP et leurs propriétés telles que les quotas et la bande passante, offrant une gestion centralisée et sécurisée.
  • Comment puis-je surveiller l’activité de mon serveur FTP?
    Utilisez les fichiers de log tels que /var/log/syslog et /var/log/auth.log, ainsi que la commande pure-ftpwho pour suivre l’activité des utilisateurs connectés.

Léonard

J'ai toujours été passionné par l'univers du numérique et du web. Des avancées technologiques aux innovations logicielles, je suis toujours ravi de partager mes découvertes. À travers mes articles pour web-actu.fr, j'espère vous apporter des informations utiles et intéressantes.

Articles similaires

Bouton retour en haut de la page