Pure FTPd ist ein Open-Source- und sicherer FTP-Server. Es ist einer der weit verbreiteten FTP-Server wegen seiner Sicherheit, Benutzerfreundlichkeit und Fähigkeit, sich mit einer Datenbank zu verbinden.
In diesem Artikel werden wir FTPd auf CentOS 8 installieren und konfigurieren.
Holen Sie sich das EPEL-Repository für CentOS 8:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Installieren Sie FTPd mit dem folgenden Befehl:
dnf install pure-ftpd
Erstellen Sie nun einen Benutzer und eine Gruppe für den FTPd-Server.
nano /etc/pure-ftpd/pure-ftpd.conf
Nehmen Sie die folgenden Änderungen vor:
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
Jetzt bearbeiten wir die mysql-Konfigurationsdatei pure-ftpd.
nano /etc/pure-ftpd/pureftpd-mysql.conf
Entkommentieren Sie die folgenden Zeilen:
# 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
Aktualisieren Sie die folgenden Werte:
MYSQLUser pureftpd
MYSQLPassword password
MYSQLDatabase pureftpd
MYSQLCrypt md5
FTP-Dienst durch Firewall zulassen.
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

Reinen FTPd-Dienst aktivieren und starten.
systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service
systemctl status pure-ftpd.service

Nach der Installation werden wir es für MariaDB konfigurieren.
Installieren Sie MariaDB mit dem folgenden Befehl:
dnf install @mariadb

Starten und aktivieren Sie den MariaDB-Dienst.
systemctl enable --now mariadb
systemctl status mariadb

Wir werden jetzt das Root-Passwort für MariaDB und andere Sicherheitsüberprüfungen festlegen, da jetzt kein Root-Passwort festgelegt ist, verwenden Sie den folgenden Befehl:
mysql_secure_installation
Sie werden aufgefordert, das Root-Passwort für MariaDB festzulegen. Sobald Sie dies getan haben, fordert Sie das Skript auf, den anonymen Benutzer zu entfernen, den Root-Benutzerzugriff einzuschränken und die Testdatenbank zu entfernen. Sie sollten alle Optionen mit „Y“ (Ja) beantworten.

Wir melden uns jetzt bei mariaDB an und erstellen Datenbank, Tabelle und Benutzer und speichern Informationen entsprechend.
mysql -u root -p
Geben Sie nun folgende Befehle ein:
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;

Wir haben die reine FTP-Einrichtung abgeschlossen. Jetzt müssen wir unsere Einrichtung testen, indem wir unser erstes FTP-Konto erstellen. Um unser Setup zu testen, müssen wir zuerst einen Benutzer im Linux-System erstellen. Danach werden wir diese Benutzer-UID und -GID verwenden, um unsere virtuellen FTP-Konten zu erstellen.
useradd ftp1
passwd ftp1
Führen Sie nun den folgenden Befehl aus, um UID und GID dieses Kontos zu erhalten.
cat /etc/passwd | grep ftp1

Laut Ausgabe des obigen Befehls ist UID und GID dieses Benutzers 1000.
Melden Sie sich jetzt bei mariaDB an und erstellen Sie Ihr Konto.
mysql -u root -p
Führen Sie die folgenden Befehle aus:
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

Jetzt können Sie sich beim FTP-Konto anmelden.

Jetzt können Sie Dateien und Verzeichnisse mit FTP erstellen. Wir werden ein Verzeichnis namens test mit reinem FTPd erstellen.

Jetzt können Sie Pure FTPd nach Bedarf verwenden.