Búsqueda de sitios web

Conexiones ProFTPD seguras mediante el protocolo TLS/SSL en RHEL/CentOS 7


Por su naturaleza, el protocolo FTP fue diseñado como un protocolo inseguro y todos los datos y contraseñas se transfieren en texto plano, lo que hace que el trabajo de un tercero sea muy fácil de interceptar todas las transacciones cliente-servidor FTP, especialmente los nombres de usuario y contraseñas utilizadas en el proceso de autenticación.

Requisitos

  1. Instalación del servidor ProFTPD en RHEL/CentOS 7
  2. Habilite una cuenta anónima para el servidor Proftpd en RHEL/CentOS 7

Este tutorial le guiará sobre cómo proteger y cifrar la comunicación FTP en el servidor ProFTPd en CentOS/RHEL 7. , usando TLS (Seguridad de la capa de transporte) con extensión FTPS explícita (piense en FTPS como lo que HTTPS es para el protocolo HTTP).

Paso 1: Crear el archivo de configuración del módulo Proftpd TLS

1. Como se analizó en el tutorial anterior de Proftpd sobre la cuenta anónima, esta guía también utilizará el mismo enfoque para administrar los archivos de configuración futuros de Proftpd como módulos, con la ayuda de enabled_mod y < b>disabled_mod, que albergarán todas las capacidades extendidas del servidor.

Entonces, cree un nuevo archivo con su editor de texto favorito llamado tls.conf en la ruta Proftpd disabled_mod y agregue las siguientes directivas.

nano /etc/proftpd/disabled_mod/tls.conf

Agregue el siguiente extracto de configuración del archivo TLS.

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
 
TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

#TLSCACertificateFile                                     /etc/ssl/certs/CA.pem
TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient                         off
TLSRequired                             on
TLSRenegotiate                          required on
</IfModule>

2. Si utiliza navegadores o clientes FTP que no admiten conexiones TLS, comente la línea TLSRequired on para permitir conexiones TLS y no TLS al mismo tiempo y Evite el mensaje de error como en la captura de pantalla a continuación.

Paso 2: cree archivos de certificado SSL para TLS

3. Después de haber creado el archivo de configuración del módulo TLS. que habilitará FTP sobre TLS en Proftpd, debe generar un certificado y una clave SSL para poder utilizar una comunicación segura a través del servidor ProFTPD con la ayuda del paquete OpenSSL.

yum install openssl

Puede usar un único comando largo para generar certificados SSL y pares de claves, pero para simplificar las cosas, puede crear un script bash simple que generará pares SSL con el nombre que desee y asignará los permisos correctos para el archivo de claves.

Cree un archivo bash llamado proftpd_gen_ssl en /usr/local/bin/ o en cualquier otra ruta ejecutable del sistema (definida por la variable ` PATH ).

nano /usr/local/bin/proftpd_gen_ssl

Agregue el siguiente contenido.

#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
 openssl req -x509 -newkey rsa:1024 \
          -keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
          -nodes -days 365\

 chmod 0600 /etc/ssl/private/$name.key

4. Después de haber creado el archivo anterior, asígnele permisos de ejecución, asegúrese de que exista el directorio /etc/ssl/private y ejecute el script para crear el certificado y la clave SSL. pares.

chmod +x /usr/local/bin/proftpd_gen_ssl
mkdir -p /etc/ssl/private
proftpd_gen_ssl

Proporcione el certificado SSL con la información solicitada requerida que se explica por sí misma, pero preste atención al Nombre común para que coincida con el Nombre de dominio completo de su host: FQDN.

Paso 3: habilite TLS en el servidor ProFTPD

5. Como el archivo de configuración TLS creado anteriormente ya apunta al certificado SSL y al archivo de clave correctos, lo único que queda es activar el módulo TLS creando un enlace simbólico de tls.conf al directorio enabled-mod y reinicie el demonio ProFTPD para aplicar los cambios.

ln -s /etc/proftpd/disabled_mod/tls.conf  /etc/proftpd/enabled_mod/
systemctl restart proftpd

6. Para deshabilitar el módulo TLS simplemente elimine el enlace simbólico tls.conf del directorio enabled_mod y reinicie el servidor ProFTPD para aplicar los cambios.

rm /etc/proftpd/enabled_mod/tls.conf
systemctl restart proftpd

Paso 4: abra el firewall para permitir la comunicación FTP sobre TLS

7. Para que los clientes accedan a ProFTPD y transfieran archivos de forma segura en el modo pasivo, debe abrir todo el rango de puertos entre 1024 y . 65534 en RHEL/CentOS Firewall, usando los siguientes comandos.

firewall-cmd --add-port=1024-65534/tcp  
firewall-cmd --add-port=1024-65534/tcp --permanent
firewall-cmd --list-ports
firewall-cmd --list-services
firewall-cmd --reload

Eso es todo. Ahora su sistema está listo para aceptar comunicación FTP a través de TLS desde el lado del Cliente.

Paso 5: acceda a ProFTPD a través de TLS desde los clientes

8. Los navegadores web generalmente no tienen soporte integrado para FTP sobre el protocolo TLS, por lo que todas las transacciones se entregan a través de FTP no cifrado. Uno de los clientes FTP más excelentes es FileZilla, que es completamente de código abierto y puede ejecutarse en casi todos los principales sistemas operativos.

Para acceder a FTP sobre TLS desde FileZilla, abra el Administrador del sitio, elija FTP en Protocolo y Requerir FTP explícito sobre TLS en En el menú desplegable Cifrado, seleccione su Tipo de inicio de sesión como Normal, ingrese sus credenciales de FTP y presione Conectar para comunicarse. con el servidor.

9. Si es la primera vez que se conecta al servidor ProFTPD, debería aparecer una ventana emergente con el nuevo certificado, marque la casilla que dice Confiar siempre en el certificado para el futuro. sesiones y presione Aceptar para aceptar el certificado y autenticarse en el servidor ProFTPD.

Si planea utilizar otros clientes además de FileZilla para acceder de forma segura a los recursos FTP, asegúrese de que admitan FTP sobre el protocolo TLS. Algunos buenos ejemplos de clientes FTP que pueden hablar FTPS son WinSCP para plataformas Windows y gFTP o LFTP (línea de comando) para NIX.