FTPd puro es un servidor FTP gratuito y seguro. No proporciona campanas y silbatos inútiles, sino que se centra en la eficiencia y la facilidad de uso. Proporciona respuestas simples a las necesidades comunes, además de características únicas y útiles para usuarios personales y proveedores de alojamiento.
Esta guía práctica lo ayudará a configurar Pure-FTPD con MySQL como base de datos de usuario. También proporciona instrucciones detalladas para crear usuarios y pruebas.
Paso 1:Instalar MySQL (Omitir si ya lo tiene)
En primer lugar, debemos instalar MySQL en nuestro sistema siguiendo los siguientes pasos de comando.
# yuminstall mysql mysql-server
haga clic aquí para obtener instrucciones detalladas para la instalación de mysql.
Paso 2:Instalar Pure-FTPD
Use el siguiente comando para instalar pure-ftpd en su sistema Linux.
# yuminstall pure-ftpd
Paso 3:Crear usuario y base de datos MySQL
Después de la instalación del paquete pure-ftpd, creemos una base de datos mysql, una tabla y un usuario para almacenar la información del usuario.
#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
Paso 4:Configurar Pure-FTPD
Vamos a configurar pure-ftpd para almacenar los detalles de inicio de sesión del usuario en la base de datos mysql. Primero edite el archivo de configuración principal pure-ftpd
# vim /etc/pure-ftpd/pure-ftpd.conf
y realice los siguientes cambios.
ChrootEveryoneyes MaxClientsNumber50 MaxClientsPerIP2 VerboseLogyes AnonymousOnlyno NoAnonymousyes MaxIdleTime15 MySQLConfigFile/etc/pure-ftpd/pureftpd-mysql.conf PAMAuthenticationno UnixAuthenticationno
Después de hacer cambios en la configuración de pure-ftpd, edite el archivo de configuración mysql de pure-ftpd
# vim /etc/pure-ftpd/pureftpd-mysql.conf
y actualizar las siguientes variables
MYSQLUserpureftpd MYSQLPassword_password_ MYSQLDatabasepureftpd MYSQLCryptmd5
Paso 5:Pruebe la configuración de FTPD puro
En este paso, hemos completado la configuración de ftpd puro. Ahora debemos 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.
Crear cuenta de usuario:
# useradd demouser1 # passwd demouser1
Obtener UID y GID de esta cuenta:
# cat /etc/passwd | grep demouser1 demouser1:x:504:505::/home/demouser1:/bin/bash
Según el resultado anterior, encontramos que el UID de usres es 504 y el GID es 505.
Crear cuenta FTP
Inicie sesión en el servidor mysql o acceda a través de phpMyAdmin y cree su primera cuenta. Para este tutorial, estoy usando la línea de comandos.
# 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
Según la consulta anterior, hemos creado con éxito nuestra primera cuenta ftp
Conéctese al servidor FTP utilizando una cuenta ftp recién creada e intente cargar un archivo de prueba.
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:>
Según los resultados anteriores, nos hemos conectado con éxito al usuario ftp y subido un archivo de prueba. Revisemos los permisos de esos archivos en el servidor.
# ls -l /home/demouser1/test.txt -rw-r--r-- 1 demouser1 demouser1 2525 Dec 4 21:39 /home/demouser1/test.txt
Ahora puede ver que los archivos obtienen los permisos de ese usuario cuyo UID, GID hemos usado para esas cuentas FTP.