Pur-FTPd est un serveur FTP gratuit et sécurisé. Il ne fournit pas de cloches et de sifflets inutiles, mais se concentre sur l'efficacité et la facilité d'utilisation. Il fournit des réponses simples aux besoins courants, ainsi que des fonctionnalités utiles uniques pour les utilisateurs personnels ainsi que pour les hébergeurs.
Ce guide vous aidera à configurer Pure-FTPD avec MySQL en tant que base de données utilisateur. Fournit également des instructions détaillées pour créer un utilisateur et tester.
Étape 1 :Installer MySQL (Ignorer si déjà installé)
Tout d'abord, nous devons installer MySQL sur notre système en suivant les étapes de commande suivantes.
# yuminstall mysql mysql-server
cliquez ici pour des instructions détaillées sur l'installation de mysql.
Étape 2 :Installez Pure-FTPD
Utilisez la commande suivante pour installer pure-ftpd sur votre système Linux.
# yuminstall pure-ftpd
Étape 3 :Créer un utilisateur et une base de données MySQL
Après l'installation du package pure-ftpd, créons une base de données mysql, une table et un utilisateur pour stocker les informations utilisateur.
#mysql -u root -p Enter password: mysql> CREATE DATABASEpureftpd ; mysql> GRANT ALL ONpureftpd .* to 'pureftpd '@'localhost' IDENTIFIED BY '_password_ '; mysql> FLUSH PRIVILEGES; mysql> usepureftpd ; mysql> 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; mysql> quit
Étape 4 :Configurer Pure-FTPD
Nous allons configurer pure-ftpd pour stocker les informations de connexion des utilisateurs dans la base de données mysql. Éditez d'abord le fichier de configuration principal pure-ftpd
# vim /etc/pure-ftpd/pure-ftpd.conf
et apportez les modifications suivantes.
ChrootEveryoneyes MaxClientsNumber50 MaxClientsPerIP2 VerboseLogyes AnonymousOnlyno NoAnonymousyes MaxIdleTime15 MySQLConfigFile/etc/pure-ftpd/pureftpd-mysql.conf PAMAuthenticationno UnixAuthenticationno
Après avoir apporté des modifications à la configuration pure-ftpd, laissez éditer le fichier de configuration mysql pure-ftpd
# vim /etc/pure-ftpd/pureftpd-mysql.conf
et mettre à jour les variables suivantes
MYSQLUserpureftpd MYSQLPassword_password_ MYSQLDatabasepureftpd MYSQLCryptmd5
Étape 5 :Tester la configuration Pure-FTPD
À cette étape, 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.
Créer un compte utilisateur :
# useradd demouser1 # passwd demouser1
Obtenir l'UID et le GID de ce compte :
# cat /etc/passwd | grep demouser1 demouser1:x:504:505::/home/demouser1:/bin/bash
Selon la sortie ci-dessus, nous avons trouvé que usres UID est 504 et GID est 505.
Créer un compte FTP
Permet de se connecter au serveur mysql ou d'accéder via phpMyAdmin et de créer votre premier compte. Pour ce tutoriel, j'utilise la ligne de commande.
# mysql -u root -p Enter password: mysql> INSERT INTO `users` (`User`, `Password`, `Uid`, `Gid`, `Dir`, `QuotaSize`, `Status`, `ULBandwidth`, `DLBandwidth`, `Date`, `LastModif`) VALUES ('ftpuser1', md5('_password_'), '504', '505', '/home/demouser1', '20', 2, '10', '10', now(), ''); mysql> quit
Conformément à la requête ci-dessus, nous avons créé avec succès notre premier compte ftp
Se connecter au serveur FTP en utilisant un compte ftp nouvellement créé et essayez de télécharger un fichier de test.
C:>ftp ftp.tecadmin.net Connected to ftp.tecadmin.net. 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 1 of 50 allowed. 220-Local time is now 21:39. Server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. User (ftp.tecadmin.net:(none)):ftpuser1 331 User ftpuser1 OK. Password required Password: 230 OK. Current restricted directory is / ftp>put test.txt 200 PORT command successful 150 Connecting to port 57216 226-File successfully transferred 226 0.004 seconds (measured here), 0.65 Mbytes per second ftp: 2593 bytes sent in 0.00Seconds 2593.00Kbytes/sec. ftp> bye 221-Goodbye. You uploaded 3 and downloaded 0 kbytes. 221 Logout. C:>
Selon les résultats ci-dessus, nous avons réussi à nous connecter à l'utilisateur ftp et à télécharger un fichier de test. Vérifions les autorisations de ces fichiers sur le serveur.
# ls -l /home/demouser1/test.txt -rw-r--r-- 1 demouser1 demouser1 2525 Dec 4 21:39 /home/demouser1/test.txt
Vous pouvez maintenant voir que les fichiers obtiennent les autorisations de cet utilisateur, quel UID, GID nous avons utilisé pour ces comptes FTP.