Cómo asegurar un servidor FTP usando SSL/TLS para transferencia de archivos seguros en CentOS 7

Cómo asegurar un servidor FTP usando SSL/TLS para transferencia de archivos seguros en CentOS 7

Por su diseño original, Ftp (Protocolo de transferencia de archivos) no es seguro, lo que significa que no cifra los datos que se transmiten entre dos máquinas, junto con las credenciales del usuario. Esto plantea una amenaza masiva para los datos y la seguridad del servidor.

En este tutorial, explicaremos cómo habilitar manualmente los servicios de cifrado de datos en un servidor FTP en CentOS/RHEL 7 y Fedora; Realizaremos varios pasos para asegurar VSFTPD (Demonio ftp muy seguro) Servicios utilizando SSL/TLS certificados.

Prerrequisitos:

  1. Debe haber instalado y configurado un servidor FTP en CentOS 7

Antes de comenzar, tenga en cuenta que todos los comandos en este tutorial se ejecutarán como raíz, De lo contrario, use el comando sudo para obtener privilegios raíz si no está controlando el servidor utilizando la cuenta root.

Paso 1. Generar certificado SSL/TLS y clave privada

1. Necesitamos comenzar creando un subdirectorio en: /etc/ssl/ donde almacenaremos el SSL/TLS Certificado y archivos clave:

# mkdir/etc/ssl/privado 

2. Luego ejecute el comando a continuación para crear el certificado y la clave para VSFTPD En un solo archivo, aquí está la explicación de cada indicador utilizado.

  1. req - es un comando para x.509 Gestión de solicitud de firma de certificados (CSR).
  2. x509 - medios x.Gestión de datos de certificados 509.
  3. días - Define el número de días El certificado es válido para.
  4. nueva llave - Especifica el procesador de clave de certificado.
  5. RSA: 2048 - Procesador de clave RSA generará una clave privada de 2048 bits.
  6. llave - Establece el archivo de almacenamiento de clave.
  7. afuera - Establece el archivo de almacenamiento de certificado, tenga en cuenta que tanto el certificado como la clave se almacenan en el mismo archivo: /etc/ssl/private/vsftpd.pem.
# openssl req -x509 -nodes -keyout/etc/ssl/private/vsftpd.PEM -Out/Etc/SSL/Private/VSFTPD.PEM -Days 365 -Newkey RSA: 2048 

El comando anterior le pedirá que responda las preguntas a continuación, recuerde usar valores que se aplican a su escenario.

Nombre del país (código de 2 letras) [xx]:EN Nombre de estado o provincia (nombre completo) []:Parel inferior Nombre de la localidad (por ejemplo, ciudad) [Ciudad predeterminada]:Mumbai Nombre de la organización (por ejemplo, empresa) [Ltd de compañía predeterminada]:Tecmenta.comunicarse Nombre de la unidad organizacional (por ejemplo, sección) []:Linux y código abierto Nombre común (por ejemplo, su nombre o el nombre de host de su servidor) []:tecmenta Dirección de correo electrónico []:[correo electrónico protegido] 

Paso 2. Configuración de VSFTPD para usar SSL/TLS

3. Antes de realizar cualquier configuración de VSFTPD, abra los puertos 990 y 40000-50000 para permitir que las conexiones TLS y el rango de puertos de los puertos pasivos definan en el archivo de configuración VSFTPD respectivamente:

# firewall-cmd --zone = public --permanent --add-puerto = 990/tcp # firewall-cmd --zone = public --permanent --add-port = 40000-50000/tcp # firewall-cmd-- recargar 

4. Ahora, abra el archivo de configuración VSFTPD y especifique los detalles SSL en él:

# vi/etc/vsftpd/vsftpd.confusión 

Busque la opción ssl_enable y establecer su valor en Para activar el uso de SSL, además, ya que TSL es más seguro que SSL, restringiremos VSFTPD para emplear TLS, utilizando el ssl_tlsv1_2 opción:

ssl_enable = sí ssl_tlsv1_2 = sí ssl_sslv2 = no ssl_sslv3 = no 

5. Luego, agregue las siguientes líneas para definir la ubicación del certificado SSL y el archivo de clave:

rsa_cert_file =/etc/ssl/private/vsftpd.PEM RSA_PRIVATE_KEY_FILE =/ETC/SSL/Private/VSFTPD.pem 

6. A continuación, tenemos que evitar que los usuarios anónimos usen SSL, luego obligar a todos los inicios de sesión no anónimos a usar una conexión SSL segura para la transferencia de datos y enviar la contraseña durante el inicio de sesión:

persod_anon_ssl = no force_local_data_ssl = yes force_local_logins_ssl = sí 

7. Además, podemos agregar las opciones a continuación para aumentar la seguridad del servidor FTP. Cuando la opción require_ssl_reuse se establece en , Luego, se requieren todas las conexiones de datos SSL para exhibir la reutilización de la sesión SSL; demostrando que conocen el mismo secreto maestro que el canal de control.

Por lo tanto, tenemos que apagarlo.

require_ssl_reuse = no 

Nuevamente, necesitamos seleccionar qué cifras SSL VSFTPD permitirá para conexiones SSL cifradas con el ssl_ciphers opción. Esto puede limitar en gran medida los esfuerzos de los atacantes que intentan forzar un cifrado particular en el que probablemente descubrieron vulnerabilidades:

SSL_CIPHERS = alto 

8. Ahora, establezca el rango de puertos (puerto mínimo y máximo) de los puertos pasivos.

pasv_min_port = 40000 pasv_max_port = 50000 

9. Opcionalmente, permita la depuración de SSL, lo que significa que los diagnósticos de conexión OpenSSL se registran en el archivo de registro VSFTPD con el debug_ssl opción:

debug_ssl = sí 

Guarde todos los cambios y cierre el archivo. Entonces reiniciemos el servicio VSFTPD:

# SystemCTL reiniciar VSFTPD 

Paso 3: Probar el servidor FTP con conexiones SSL/TLS

10. Después de hacer todas las configuraciones anteriores, pruebe si VSFTPD está utilizando conexiones SSL/TLS intentando usar FTP desde la línea de comando de la siguiente manera:

# ftp 192.168.56.10 conectado a 192.168.56.10 (192.168.56.10). 220 Bienvenido a TecMint.Servicio COM FTP. Nombre (192.168.56.10: raíz): las sesiones no anónimas de Ravi 530 deben usar el cifrado. error de inicio de sesion. Servicio 421 no disponible, el servidor remoto tiene conexión cerrada FTP> 
Verificar la conexión SSL SECT FTP SSL

De la captura de pantalla anterior, podemos ver que hay un error informarnos que VSFTPD solo puede permitir al usuario iniciar sesión en los clientes que admiten servicios de cifrado.

La línea de comandos no ofrece servicios de cifrado, por lo tanto, produce el error. Entonces, para conectarse de forma segura al servidor, necesitamos un cliente FTP que admita las conexiones SSL/TLS como Filezilla.

Paso 4: Instale fileZilla para conectarse de forma segura a un servidor FTP

11. Filezilla es un cliente FTP moderno, popular y importante en la plataforma cruzada que admite conexiones SSL/TLS de forma predeterminada.

Para instalar FileZilla en Linux, ejecute el comando a continuación:

--------- En Centos/Rhel/Fedora --------- # yum instalar Epel-libeSease fileZilla --------- En Debian/Ubuntu --------- $ sudo apt-get instalación fileZilla 

12. Cuando se complete la instalación (o de lo contrario, si ya la tiene instalada), ábrala y vaya a Archivo => Sites Manager o (prensa Ctrl+S) para obtener el Administrador del sitio interfaz a continuación.

Haga clic en Nuevo sitio botón para agregar un nuevo sitio/detalles de conexión de host.

Agregue el nuevo sitio FTP en filezilla

13. A continuación, establezca el nombre del host/sitio, agregue la dirección IP, defina el protocolo para usar, encriptación e tipo de inicio de sesión como en la captura de pantalla a continuación (use los valores que se aplican a su escenario):

Anfitrión: 192.168.56.10 Protocolo: FTP - Protocolo de transferencia de archivos Cifrado: Requiere FTP explícito sobre #Tipo de inicio de sesión registrado: Solicitar contraseña #Usuario de reducción: nombre de usuario 
Agregue los detalles del servidor FTP en filezilla

14. Luego haga clic en Conectar Para ingresar la contraseña nuevamente, y luego verifique el certificado que se utiliza para la conexión SSL/TLS y haga clic en DE ACUERDO Una vez más para conectarse al servidor FTP:

Verificar el certificado FTP SSL

En esta etapa, deberíamos haber registrado con éxito el servidor FTP a través de una conexión TLS, verifique la sección de estado de conexión para obtener más información de la interfaz a continuación.

Conectado al servidor FTP a través de TLS/SSL

15. Por último, pero no menos importante, intente transferir archivos desde la máquina local a la carpeta FTP severa en la carpeta de archivos, eche un vistazo al extremo inferior del Filezilla interfaz para ver informes sobre transferencias de archivos.

Transferir archivos de forma segura utilizando FTP

Eso es todo! Tenga siempre en cuenta que FTP no es seguro de forma predeterminada, a menos que lo configuremos para usar conexiones SSL/TLS como le mostramos en este tutorial. Comparta sus pensamientos sobre este tutorial/tema a través del formulario de comentarios a continuación.