Pure FTPd est un serveur FTP open source et sécurisé. C'est l'un des serveurs FTP les plus utilisés pour sa sécurité, sa facilité d'utilisation et sa capacité à se connecter à une base de données.
Dans cet article, nous allons installer et configurer FTPd sur CentOS 8.
Obtenez le référentiel EPEL pour CentOS 8 :
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Installez FTPd à l'aide de la commande suivante :
dnf install pure-ftpd
Créez maintenant un utilisateur et un groupe pour le serveur FTPd.
nano /etc/pure-ftpd/pure-ftpd.conf
apportez les modifications suivantes :
ChrootEveryone yes
MaxClientsNumber 50
MaxClientsPerIP 2
VerboseLog yes
AnonymousOnly no
NoAnonymous yes
MaxIdleTime 15
MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf
PAMAuthentication no
UnixAuthentication no
Nous allons maintenant éditer le fichier de configuration mysql pure-ftpd.
nano /etc/pure-ftpd/pureftpd-mysql.conf
Décommentez les lignes suivantes :
# Optional : MySQL server name or IP. Don't define this for unix sockets.
MYSQLServer 127.0.0.1
# Optional : MySQL port. Don't define this if a local unix socket is used.
MYSQLPort 3306
mettez à jour les valeurs suivantes :
MYSQLUser pureftpd
MYSQLPassword password
MYSQLDatabase pureftpd
MYSQLCrypt md5
Autoriser le service ftp via le pare-feu.
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
Activez et démarrez le service FTPd pur.
systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service
systemctl status pure-ftpd.service
Après l'installation, nous le configurerons pour mariaDB.
Installez MariaDB à l'aide de la commande suivante :
dnf install @mariadb
Démarrer et activer le service MariaDB.
systemctl enable --now mariadb
systemctl status mariadb
Nous allons maintenant définir le mot de passe root pour MariaDB et d'autres contrôles de sécurité car il n'y a pas de mot de passe root défini maintenant, utilisez la commande suivante :
mysql_secure_installation
Une invite vous demandera de définir le mot de passe root pour MariaDB. Une fois que vous avez fait cela, le script vous demandera de supprimer l'utilisateur anonyme, de restreindre l'accès de l'utilisateur root et de supprimer la base de données de test. Vous devez répondre "O" (oui) à toutes les options.
Nous allons maintenant nous connecter à mariaDB et créer la base de données, la table et l'utilisateur et stocker les informations en conséquence.
mysql -u root -p
Saisissez maintenant les commandes suivantes :
CREATE DATABASE pureftpd;
GRANT ALL ON pureftpd.* to 'pureftpd'@'localhost' IDENTIFIED BY '_password_';
FLUSH PRIVILEGES;
use pureftpd;
CREATE TABLE `users` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`User` varchar(32) NOT NULL DEFAULT '',
`Password` varchar(64) NOT NULL DEFAULT '',
`Uid` int(3) NOT NULL DEFAULT '500',
`Gid` int(3) NOT NULL DEFAULT '500',
`Dir` varchar(255) NOT NULL DEFAULT '',
`QuotaSize` int(4) NOT NULL DEFAULT '50',
`Status` enum('0','1') NOT NULL DEFAULT '1',
`ULBandwidth` int(2) NOT NULL DEFAULT '100',
`DLBandwidth` int(2) NOT NULL DEFAULT '100',
`Date` date NOT NULL DEFAULT '0000-00-00',
`LastModif` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`ID`),
UNIQUE KEY `User` (`User`),
KEY `Uid` (`Uid`),
KEY `Gid` (`Gid`),
KEY `Dir` (`Dir`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
quit;
Nous avons terminé la configuration pure-ftpd, nous devons maintenant tester notre configuration en créant notre premier compte ftp. Pour tester notre configuration, nous devons d'abord créer un utilisateur dans le système Linux. Après cela, nous utiliserons l'UID et le GID de ces utilisateurs pour créer nos comptes FTP virtuels.
useradd ftp1
passwd ftp1
Exécutez maintenant la commande suivante pour obtenir l'UID et le GID de ce compte.
cat /etc/passwd | grep ftp1
Selon la sortie de la commande ci-dessus, l'UID et le GID de cet utilisateur sont 1000.
Maintenant, connectez-vous à mariaDB et créez votre compte.
mysql -u root -p
Exécutez les commandes suivantes :
use pureftpd;
INSERT INTO `users` (`User`, `Password`, `Uid`, `Gid`, `Dir`, `QuotaSize`,
`Status`, `ULBandwidth`, `DLBandwidth`, `Date`, `LastModif`)
VALUES ('ftpuser1', md5('_password_'), '1000', '1000', '/home/ftp1',
'20', 2, '10', '10', now(), '');
quit
Vous pouvez maintenant vous connecter au compte ftp.
Vous pouvez maintenant créer des fichiers et des répertoires à l'aide de FTP. Nous allons créer un répertoire nommé test en utilisant pur FTPd.
Vous pouvez maintenant utiliser Pure FTPd selon vos besoins.