Cómo configurar PureFTPd en CentOS 7
Hola a todos, hoy, en este tutorial, compilaremos e instalaremos PureFTPd desde la fuente en CentOS 7. Pure-ftpd es un demonio FTP ligero y estable que admite varios backends de autenticación como usuarios del sistema Linux, puredb, MySQL y PostgeSQL.
1. Instalación de Pureftpd
Instale la cadena de herramientas de desarrollo de CentOS.
# yum -y groupinstall 'Development Tools'
Instale los archivos de desarrollo de MariaDB.
# yum -y install mariadb-devel
Descargue los archivos fuente pure-ftpd y descomprima el archivo.
# cd /usr/local/src # wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.bz2 # tar xvjpf pure-ftpd-1*.tar.bz2 # cd pure-ftpd-1*
Ejecute el comando configure para preparar la compilación. Para obtener una descripción general de todas las opciones de compilación, ejecute ./configure –help.
# ./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/libexec --datadir=/usr/share --sysconfdir=/etc --sharedstatedir=/usr/com --localstatedir=/var --libdir=/usr/lib64 --includedir=/usr/include --infodir=/usr/share/info --mandir=/usr/share/man --with-mysql --with-virtualchroot --with-everything
y compile el binario ftpd puro:
# make
# make install
2. Creación de archivos de configuración y scripts de inicio
Primero creamos el script de inicio. Para esta compilación, usaremos el script de inicio de CentOS 6.5 que aún funciona bien en CentOS 7.
# nano /etc/init.d/pure-ftpd
#!/bin/bash # # Startup script for the pure-ftpd FTP Server $Revision: 1.1 $ # # chkconfig: - 85 15 # description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd # processname: pure-ftpd # pidfile: /var/run/pure-ftpd.pid # config: /etc/pure-ftpd/pure-ftpd.conf
# Source function library. . /etc/init.d/functions
# Source networking configuration. . /etc/sysconfig/network
# Check that networking is configured. # [ ${NETWORKING} = "no" ] && exit 0
RETVAL=0
prog="pure-ftpd"
# Path to the pure-ftp binaries. fullpath=/usr/sbin/pure-ftpd pureftpwho=/usr/sbin/pure-ftpwho pure_config=/etc/pure-ftpd/pure-ftpd.conf pure_launch_script=/usr/sbin/pure-config.pl start() { echo -n $"Starting $prog: " daemon "$pure_launch_script $pure_config --daemonize > /dev/null" RETVAL=$? [ $RETVAL = 0 ] && touch /var/lock/subsys/pure-ftpd echo }
stop() { echo -n $"Stopping $prog: " killproc pure-ftpd RETVAL=$? [ $RETVAL = 0 ] && rm -f /var/lock/subsys/pure-ftpd echo }
# See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; reload) echo -n $"Reloading $prog: " killproc pure-ftpd -HUP RETVAL=$? echo ;; condrestart) if [ -f /var/lock/subsys/pure-ftpd ] ; then stop # avoid race sleep 3 start fi ;; status) status pure-ftpd RETVAL=$? if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then $pureftpwho fi ;; *) echo $"Usage: pure-ftpd {start|stop|restart|reload|condrestart|status}" RETVAL=1 esac exit $RETVAL
3. Configuración de permisos de archivo
Ahora, necesitaremos proporcionar los permisos de archivo requeridos mediante los comandos a continuación, que incluyen la configuración de elementos posteriores a la instalación.
# chmod +x /etc/init.d/pure-ftpd # mkdir /etc/pure-ftpd/
# cp configuration-file/pure-ftpd.conf /etc/pure-ftpd/pure-ftpd.conf # cp configuration-file/pure-config.pl /usr/sbin/pure-config.pl # chmod 744 /etc/pure-ftpd/pure-ftpd.conf # chmod 755 /usr/sbin/pure-config.pl
Entonces cree los enlaces de inicio del sistema e inicie PureFTPd:
# chkconfig --levels 235 pure-ftpd on # systemctl start pure-ftpd.service
4. Configuración de TLS con OpenSSL
Ahora configuramos PureFTPd para permitir sesiones FTP y TLS. FTP sin TLS es un protocolo muy inseguro porque todas las contraseñas y todos los datos se transfieren en texto claro. Al usar TLS, toda la comunicación se puede cifrar, lo que hace que FTP sea mucho más seguro.
TLS necesita OpenSSL; para instalar OpenSSL, simplemente ejecutamos:
# yum -y install openssl
Abra /etc/pure-ftpd/pure-ftpd.conf …
# nano /etc/pure-ftpd/pure-ftpd.conf
Si desea permitir sesiones de FTP y TLS, establezca TLS en 1:
# Esta opción puede aceptar tres valores:
# 0: deshabilita la capa de cifrado SSL / TLS (predeterminado).
# 1: acepte sesiones tradicionales y encriptadas.
# 2: rechace las conexiones que no utilicen mecanismos de seguridad SSL / TLS,
# incluyendo sesiones anónimas.
# No _ descomente esto a ciegas. Asegúrese de que:
# 1) Su servidor ha sido compilado con soporte SSL / TLS (–with-tls),
# 2) Se cuenta con un certificado válido,
# 3) Solo los clientes compatibles iniciarán sesión.
Para utilizar TLS, debemos crear un certificado SSL. Lo creo en / etc / ssl / private /, por lo tanto, creo ese directorio primero:
mkdir -p / etc / ssl / private /
Posteriormente, podemos generar el certificado SSL de la siguiente manera:
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Cambie los permisos del certificado SSL:
# chmod 600 /etc/ssl/private/pure-ftpd.pem
Finalmente reinicie PureFTPd:
# systemctl stop pure-ftpd.service # systemctl start pure-ftpd.service
Conclusión
Hurra, hemos instalado y configurado con éxito pureftpd. Ahora podemos disfrutar de la transferencia de datos FTP con seguridad TLS. Tenga en cuenta que, al conectar el servidor FTP, debemos configurar nuestro cliente FTP para usar TLS si instaló y configuró los certificados SSL correctamente. Y de forma predeterminada, pureftpd abrirá el puerto 21 para comunicarse con el cliente. Si tienes algún problema, consulta o duda comenta a continuación sin dudarlo para que podamos actualizar y mejorar más nuestros blogs y contenidos.