GNU/Linux >> Tutoriales Linux >  >> Cent OS

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 liviano y estable que admite varios backends de autenticación como usuarios del sistema Linux, puredb, MySQL y PostgeSQL.

1. Instalando 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 de ftpd puro 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 de configuración 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 compila 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, tendremos que proporcionar los permisos de archivo requeridos mediante los siguientes comandos, lo que incluye la configuración de productos 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

Luego 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 sin cifrar . Al usar TLS, toda la comunicación se puede cifrar , lo que hace que el 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 FTP y TLS, establezca TLS en 1:
# Esta opción puede aceptar tres valores:
# 0:deshabilitar la capa de cifrado SSL/TLS (predeterminado).
# 1:acepta sesiones tanto tradicionales como encriptadas.
# 2:rechazar 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) Existe un certificado válido,
# 3) Solo los clientes compatibles iniciarán sesión.

Para usar TLS, debemos crear un certificado SSL. Lo creo en /etc/ssl/private/, por lo tanto, primero creo ese directorio:
mkdir -p /etc/ssl/privado/

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

Cambiar 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 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 por defecto, pureftpd abrirá el puerto 21 para comunicarse con el cliente. Si tiene algún problema, consulta o pregunta, comente a continuación sin dudarlo para que podamos actualizar y mejorar más nuestros blogs y contenidos.


Cent OS
  1. Cómo configurar un servidor SFTP en CentOS

  2. Cómo configurar Textpattern CMS en CentOS 8

  3. Cómo configurar el servidor SysLog en CentOS 7 / RHEL 7

  4. Cómo configurar Pure-FTPD con MySQL en CentOS y RedHat

  5. Cómo configurar claves SSH en CentOS 8

Cómo configurar Kubernetes 1.5 con kubeadm en CentOS

Cómo configurar Icinga Web 2 en CentOS 8 / RHEL 8

Cómo configurar un Chef 12 en CentOS 7 / RHEL 7

Cómo configurar actualizaciones de seguridad automáticas en CentOS

Cómo instalar Pure-FTPd en CentOS

Cómo configurar un clúster de Redis en CentOS 8 - Parte 3