Configuración de un servidor FTP seguro usando SSL/TLS en Ubuntu

Configuración de un servidor FTP seguro usando SSL/TLS en Ubuntu

En este tutorial, describiremos cómo asegurar un Ftp servidor (VSFTPD representa "Demonio ftp muy seguro") usando SSL/TLS en Ubuntu 16.16/04.10.

Si está buscando configurar un servidor FTP seguro para distribuciones basadas en CentOS, puede leer: asegurar un servidor FTP usando SSL/TLS en CentOS

Después de seguir los diversos pasos de esta guía, habremos aprendido los fundamentos de habilitar los servicios de cifrado en un servidor FTP para transferencias de datos seguros es crucial.

Requisitos

  1. Debe instalar y configurar un servidor FTP en Ubuntu

Antes de avanzar, asegúrese de que todos los comandos en este artículo se ejecutarán como una cuenta privilegiada root o sudo.

Paso 1: Generación del certificado SSL/TLS para FTP en Ubuntu

1. Comenzaremos creando un subdirectorio en: /etc/ssl/ Para almacenar el SSL/TLS Certificado y archivos de clave si no existe:

$ sudo mkdir/etc/ssl/privado 

2. Ahora generemos el certificado y la clave en un solo archivo, ejecutando el comando a continuación.

$ sudo 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, no olvide ingresar valores que aplicen 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 en Ubuntu

3. Antes de realizar cualquier VSFTPD Configuraciones, para aquellos que tienen un firewall de UFW habilitado, debe abrir los puertos 990 y 40000-50000 Para permitir que las conexiones TLS y el rango de puertos de los puertos pasivos se establezcan en el archivo de configuración VSFTPD, respectivamente:

$ sudo UFW Permitir 990/TCP $ sudo UFW Permitir 40000: 50000/TCP $ SUDO UFW ESTADO 

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

$ sudo vi/etc/vsftpd/vsftpd.conf o $ sudo nano/etc/vsftpd/vsftpd.confusión 

Luego, agregue o localice la opción ssl_enable y establecer su valor en Para activar el uso de SSL, nuevamente, porque TLS es más seguro que SSL, restringiremos VSFTPD para usar TLS en su lugar, habilitando el ssl_tlsv1 opción:

ssl_enable = sí ssl_tlsv1 = sí ssl_sslv2 = no ssl_sslv3 = no 

5. A continuación, comente las líneas a continuación usando el # personaje de la siguiente manera:

#rsa_cert_file =/etc/ssl/private/ssl-cert-snakeOil.PEM #RSA_PRIVATE_KEY_FILE =/ETC/SSL/Private/SSL-CERT-SnakeOil.llave 

Posteriormente, agregue las líneas a continuación 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. Ahora, tambié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 usar las opciones a continuación para agregar más funciones de seguridad en el servidor FTP. Con opción require_ssl_reuse = sí, 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. Entonces, debemos deshabilitarlo.

require_ssl_reuse = no 

Además, podemos establecer qué cifras SSL VSFTPD permitirá para conexiones SSL cifradas con el ssl_ciphers opción. Esto ayudará a frustrar cualquier esfuerzo de los atacantes que intenten forzar un cifrado específico en el que posiblemente descubrieran vulnerabilidades:

SSL_CIPHERS = alto 

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

pasv_min_port = 40000 pasv_max_port = 50000 

9. Para habilitar la depuración de SSL, lo que significa que los diagnósticos de conexión OpenSSL se registran en el archivo de registro VSFTPD, podemos usar el debug_ssl opción:

debug_ssl = sí 

Finalmente guarde el archivo y cierre. Luego reinicie el servicio VSFTPD:

$ systemctl reiniciar vsftpd 

Paso 3: Verifique FTP con conexiones SSL/TLS en Ubuntu

10. Después de realizar todas las configuraciones anteriores, pruebe si VSFTPD ahora está utilizando las conexiones SSL/TLS intentando usar FTP desde la línea de comando como se muestra a continuación.

De la salida a continuación, hay un mensaje de error que nos dice que VSFTPD solo puede permitir a los usuarios (no anónimos) iniciar sesión en clientes seguros que admiten servicios de cifrado.

$ 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> 

La línea de comando no admite servicios de cifrado, por lo que resulta al error anterior. Por lo tanto, para conectarse de forma segura a un servidor FTP con servicios de cifrado habilitados, necesitamos un cliente FTP que admita las conexiones SSL/TLS de forma predeterminada, como Filezilla.

Paso 4: Instale fileZilla en los clientes para conectar FTP de forma segura

Filezilla es un cliente FTP multiplataforma potente y ampliamente utilizado que admite FTP sobre SSL/TLS y más. Para instalar fileZilla en una máquina cliente de Linux, use el siguiente comando.

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

12. Una vez que se complete la instalación, ábrala y vaya a Archivo => Sites Manager o (prensa Ctrl+S) para obtener el Administrador del sitio interfaz a continuación.

Manager del sitio de Filezilla

13. Ahora, defina 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 valores que se aplican a su escenario):

Haga clic en Nuevo sitio botón para configurar una nueva conexión de sitio/host.

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 
Configurar un nuevo sitio FTP en FileZilla

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

Verificar el certificado FTP SSL

15. Ahora, debería 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 Ubuntu FTP

dieciséis. Por último, transfiramos los archivos de la máquina local a FTP Sever en la carpeta de archivos, eche un vistazo al extremo inferior de la interfaz Filezilla para ver los informes sobre las transferencias de archivos.

Transferencia de archivo FTP segura utilizando FileZilla

Eso es todo! Recuerde siempre que instalar un servidor FTP sin habilitar servicios de cifrado tiene ciertas implicaciones de seguridad. Como explicamos en este tutorial, puede configurar un servidor FTP para usar conexiones SSL/TLS para implementar la seguridad en Ubuntu 16.16/04.10.

Si enfrenta algún problema al configurar SSL/TLS en el servidor FTP, use el formulario de comentarios a continuación para compartir sus problemas o pensamientos sobre este tutorial/tema.