Pure FTPd es un servidor FTP seguro y de código abierto. Es uno de los servidores FTP más utilizados por su seguridad, facilidad de uso y capacidad para conectarse a una base de datos.
En este artículo instalaremos y configuraremos FTPd en CentOS 8.
Obtenga el repositorio EPEL para CentOS 8:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Instale FTPd usando el siguiente comando:
dnf install pure-ftpd
Ahora cree un usuario y un grupo para el servidor FTPd.
nano /etc/pure-ftpd/pure-ftpd.conf
realice los siguientes cambios:
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
Ahora editaremos el archivo de configuración mysql pure-ftpd.
nano /etc/pure-ftpd/pureftpd-mysql.conf
Descomente las siguientes líneas:
# 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
actualice los siguientes valores:
MYSQLUser pureftpd
MYSQLPassword password
MYSQLDatabase pureftpd
MYSQLCrypt md5
Permitir el servicio ftp a través del cortafuegos.
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
Habilite e inicie el servicio FTPd puro.
systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service
systemctl status pure-ftpd.service
Después de la instalación, lo configuraremos para mariaDB.
Instale MariaDB usando el siguiente comando:
dnf install @mariadb
Inicie y habilite el servicio MariaDB.
systemctl enable --now mariadb
systemctl status mariadb
Ahora estableceremos la contraseña de root para MariaDB y otras comprobaciones de seguridad porque no hay una contraseña de root configurada ahora, use el siguiente comando:
mysql_secure_installation
Un mensaje le pedirá que configure la contraseña de root para MariaDB. Una vez que haga eso, el script le pedirá que elimine el usuario anónimo, restrinja el acceso del usuario raíz y elimine la base de datos de prueba. Debe responder "Y" (sí) a todas las opciones.
Ahora iniciaremos sesión en mariaDB y crearemos una base de datos, una tabla y un usuario y almacenaremos la información correspondiente.
mysql -u root -p
Ahora ingrese los siguientes comandos:
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;
Hemos completado la configuración de ftpd puro. Ahora necesitamos probar nuestra configuración creando nuestra primera cuenta de ftp. Para probar nuestra configuración, primero debemos crear un usuario en el sistema Linux. Después de eso, usaremos el UID y el GID de ese usuario para crear nuestras cuentas ftp virtuales.
useradd ftp1
passwd ftp1
Ahora ejecute el siguiente comando para obtener el UID y el GID de esta cuenta.
cat /etc/passwd | grep ftp1
Según el resultado del comando anterior, el UID y el GID de este usuario son 1000.
Ahora, inicie sesión en mariaDB y cree su cuenta.
mysql -u root -p
Ejecute los siguientes comandos:
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
Ahora puede iniciar sesión en la cuenta ftp.
Ahora puede crear archivos y directorios mediante FTP. Crearemos un directorio llamado test usando FTPd puro.
Ahora puede usar Pure FTPd según sus necesidades.