Pure FTPd je open source a zabezpečený FTP server. Je to jeden z široce používaných FTP serverů pro svou bezpečnost, snadné použití a možnost připojení k databázi.
V tomto článku nainstalujeme a nakonfigurujeme FTPd na CentOS 8.
Získejte úložiště EPEL pro CentOS 8:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Nainstalujte FTPd pomocí následujícího příkazu:
dnf install pure-ftpd
Nyní vytvořte uživatele a skupinu pro FTPd server.
nano /etc/pure-ftpd/pure-ftpd.conf
proveďte následující změny:
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
Nyní upravíme konfigurační soubor pure-ftpd mysql.
nano /etc/pure-ftpd/pureftpd-mysql.conf
Odkomentujte následující řádky:
# 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
aktualizujte následující hodnoty:
MYSQLUser pureftpd
MYSQLPassword password
MYSQLDatabase pureftpd
MYSQLCrypt md5
Povolit službu ftp přes bránu firewall.
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

Povolit a spustit čistou službu FTPd.
systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service
systemctl status pure-ftpd.service

Po instalaci jej nakonfigurujeme pro mariaDB.
Nainstalujte MariaDB pomocí následujícího příkazu:
dnf install @mariadb

Spusťte a povolte službu MariaDB.
systemctl enable --now mariadb
systemctl status mariadb

Nyní nastavíme heslo root pro MariaDB a další bezpečnostní kontroly, protože nyní není nastaveno žádné root heslo, použijte následující příkaz:
mysql_secure_installation
Výzva vás požádá o nastavení hesla root pro MariaDB. Jakmile to uděláte, skript vás požádá o odebrání anonymního uživatele, omezení přístupu uživatele root a odstranění testovací databáze. Na všechny možnosti byste měli odpovědět „Y“ (ano).

Nyní se přihlásíme do mariaDB a vytvoříme databázi, tabulku a uživatele a podle toho uložíme informace.
mysql -u root -p
Nyní zadejte následující příkazy:
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;

Dokončili jsme nastavení čistého ftpd, nyní musíme otestovat naše nastavení vytvořením našeho prvního ftp účtu. Abychom otestovali naše nastavení, musíme nejprve vytvořit uživatele v systému linux. Poté použijeme UID a GID uživatelů k vytvoření našich virtuálních ftp účtů.
useradd ftp1
passwd ftp1
Nyní proveďte následující příkaz, abyste získali UID a GID tohoto účtu.
cat /etc/passwd | grep ftp1

Podle výstupu výše uvedeného příkazu je UID a GID tohoto uživatele 1000.
Nyní se přihlaste do mariaDB a vytvořte si účet.
mysql -u root -p
Spusťte následující příkazy:
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

Nyní se můžete přihlásit k ftp účtu.

Nyní můžete vytvářet soubory a adresáře pomocí FTP. Vytvoříme adresář s názvem test pomocí čistého FTPd.

Nyní můžete používat Pure FTPd podle svých potřeb.