Pure-FTPd est un serveur FTP rapide et léger conçu pour la sécurité. Dans ce tutoriel, je vais vous montrer comment installer et utiliser Pure FTP en 4 étapes simples. Ce guide explique comment installer Pure FTPd sur Debian 9.
Première étape - Installation
Pure-FTPd est dans le référentiel stable de Debian, il n'est donc pas nécessaire d'ajouter des référentiels supplémentaires à votre système.
Exécutez la commande suivante avec des privilèges root:
apt install -y pure-ftpd-common pure-ftpd
Étape deux - Configuration
Il existe de nombreuses options que vous pouvez utiliser pour modifier le comportement de l'application. Ces options peuvent être appliquées au démon de Pure-FTPd au démarrage ou vous pouvez les rendre persistantes en créant les fichiers nécessaires dans le confrépertoire.
Nous voulons:
- Créez des utilisateurs virtuels.
- Créez automatiquement des répertoires personnels pour les utilisateurs.
- Limitez les
chrootutilisateurs ( ) à accéder uniquement à leur propre répertoire personnel.
Activez la base de données de Pure-FTPd et désactivez l'authentification PAM et Unix pour activer les utilisateurs virtuels:
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure
echo no > /etc/pure-ftpd/conf/PAMAuthentication
echo no > /etc/pure-ftpd/conf/UnixAuthentication
Définissez Pure-FTPd pour créer des répertoires personnels pour les utilisateurs lors de leur première connexion:
echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir
Chroot tout le monde.
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
Si vous souhaitez en savoir plus sur les autres options, visitez la page de documentation officielle .
Troisième étape - Créer des utilisateurs
Pure-FTPd peut gérer les utilisateurs virtuels, ce qui signifie qu'ils sont conservés dans la base de données de Pure-FTPd et ne sont pas liés aux utilisateurs du système Linux.
Afin que Pure-FTPd gère les fichiers avec des utilisateurs virtuels, nous devons créer un utilisateur et un groupe Linux dans lesquels tous les utilisateurs virtuels seront associés. Tous les utilisateurs virtuels peuvent utiliser le même utilisateur et groupe système tant qu'ils ont été chrootés.
Exécutez les commandes suivantes pour créer l'utilisateur et le groupe système:
groupadd ftpusr
useradd -g ftpusr -d /dev/null -s /etc ftpusr
Remarque : Nous ne voulons pas que cet utilisateur ait un répertoire personnel ou une capacité de connexion.
Créez notre répertoire racine FTP:
mkdir /home/FTP
Créez un utilisateur virtuel dans Pure-FTPd:
pure-pw useradd alex -u ftpusr -g ftpusr -d /home/FTP/alex
Nous avons ajouté notre premier utilisateur virtuel ( alex) et l' avons associé à l'utilisateur / groupe système ( ftpusr). Tous les fichiers avec lesquels vous écrivez alexappartiendront ftpusrau système.
Mettre à jour la base de données de Pure-FTPd:
pure-pw mkdb
Vérifiez les informations de l'utilisateur:
pure-pw show alex
Login : alex
Password : <encrypted password>
UID : 1000 (ftpusr)
GID : 1000 (ftpusr)
Directory : /home/FTP/alex/./
Full name :
Download bandwidth : 0 Kb (unlimited)
Upload bandwidth : 0 Kb (unlimited)
Max files : 0 (unlimited)
Max size : 0 Mb (unlimited)
Ratio : 0:0 (unlimited:unlimited)
Allowed local IPs :
Denied local IPs :
Allowed client IPs :
Denied client IPs :
Time restrictions : 0000-0000 (unlimited)
Max sim sessions : 0 (unlimited)
Pour vous faciliter la vie, utilisez le script suivant pour ajouter des comptes FTP:
echo -e '#!/bin/bash\nread -p "Enter UserName: " usrname\npure-pw useradd $usrname -u ftpusr -g ftpusr -d /home/FTP/$usrname && pure-pw mkdb' > /usr/sbin/ftp-createacc
chmod u+x /usr/sbin/ftp-createacc
Maintenant, la création de comptes FTP est simple:
ftp-createacc
Enter UserName: mike
Password:
Enter it again:
Étape quatre - Prise en charge TLS
Tout d'abord, nous devons installer OpenSSL.
apt install -y openssl
Forcer Pure-FTPd à utiliser TLS, ou nous pouvons le rendre facultatif, ce qui signifie que les connexions non sécurisées et TLS sont acceptées
# force TLS
echo 2 > /etc/pure-ftpd/conf/TLS
# insecure + TLS
echo 1 > /etc/pure-ftpd/conf/TLS
Créez un répertoire pour stocker nos clés.
mkdir -p /etc/ssl/pure-ftpd
Générez une clé de bundle (clé privée et clé publique).
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Redémarrez le pure-ftpddémon.
systemctl restart pure-ftpd
Si un pare-feu est installé sur votre système ou si votre serveur est derrière NAT, vous devez définir des ports passifs dans Pure-FTPd et ouvrir ces ports dans votre pare-feu, sinon vous recevrez des erreurs telles que celles-ci:
Server sent passive reply with unroutable address. Passive mode failed.
Failed to retrieve directory listing.
500 I won't open a connection to 192.168.1.4 (only to 10.10.10.10).
Définissez les ports passifs dans Pure-FTPd:
echo "40110 42210" > /etc/pure-ftpd/conf/PassivePortRange
Redémarrez pure-ftpdpour appliquer la modification.
systemctl restart pure-ftpd
Dans votre pare-feu, ouvrez la plage de ports entrants de 40110 à 42210 , protocole TCP.
Le FTP n'est pas sécurisé par nature, mais il est également rapide et facile à configurer. Pour une solution plus sécurisée, utilisez plutôt SFTP.