LINUX

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*

descargando la última pureftpd

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

configurar el paquete pureftpd

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

configurar el script de inicio

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

configuración de permisos de archivo

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.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar