GNU/Linux >> Tutoriales Linux >  >> Panels >> cPanel

Cómo proteger vsFTPd con SSL/TLS

Demonio FTP muy seguro, o simplemente vsFTPd es una pieza ligera de software con gran capacidad de personalización. En este tutorial vamos a asegurar una instalación ya existente en un sistema Debian utilizando nuestro propio certificado SSL/TLS autofirmado. A pesar de que está escrito para Debian, debería funcionar en la mayoría de las distribuciones de Linux, como Ubuntu y CentOS, por ejemplo.

Instalación de vsFTPd

En un nuevo VPS de Linux, primero debe instalar vsFTPd. Aunque encontrarás los pasos básicos para instalar vsFTPd en este tutorial le recomiendo que lea también estos dos tutoriales más detallados:Configuración de vsFTPd en Debian/Ubuntu e Instalación de vsFTPd en CentOS. Todos los pasos relacionados con la instalación se explican con más detalle allí.

Instalación en Debian/Ubuntu:

apt-get install vsftpd

Instalación en CentOS:

yum install epel-release
yum install vsftpd

Configuración Abra el archivo de configuración:/etc/vsftpd.conf en tu editor de texto favorito, en este tutorial usamos nano .

nano /etc/vsftpd.conf

Pegue las siguientes líneas en la configuración:

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES

Termine reiniciando su demonio vsFTPd:

/etc/init.d/vsftpd restart

Ahora debería poder iniciar sesión como cualquier usuario local a través de FTP, ahora avancemos y protejamos este software.

Generar un certificado autofirmado

Un certificado autofirmado generalmente se usa en un protocolo de acuerdo de clave pública, ahora usará openssl para generar una clave pública y una clave privada correspondiente. En primer lugar, debemos crear un directorio para almacenar estos dos archivos clave, preferiblemente en una ubicación segura a la que los usuarios normales no puedan acceder.

mkdir -p /etc/vsftpd/ssl

Ahora, para la generación real del certificado, almacenaremos ambas claves en el mismo archivo (/etc/vsftpd/ssl/vsftpd.pem ):

openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/vsftpd/ssl/vsftpd.pem -out /etc/vsftpd/ssl/vsftpd.pem

Después de ejecutar el comando, se le harán algunas preguntas, como el código de país, estado, ciudad, nombre de la organización, etc. Use su propia información o la de su organización. Ahora la línea más importante es el Nombre común que debe coincidir con la dirección IP de su VPS, o un nombre de dominio que apunte a él.

Este certificado tendrá una validez de 365 días (~1 año), utilizará el protocolo de acuerdo de clave RSA con una longitud de clave de 4096 bits, y el archivo que contiene ambas claves se almacenará en el nuevo directorio que acabamos de crear. Para obtener más detalles sobre la longitud de la clave y su relación con la seguridad, consulte:Recomendaciones de cifrado II.

Instalar el nuevo certificado en vsFTPd

Para comenzar a usar nuestro nuevo certificado y así proporcionar cifrado, necesitamos abrir el archivo de configuración nuevamente:

nano /etc/vsftpd.conf

Necesitamos agregar las rutas a nuestro nuevo certificado y archivos clave. Dado que se almacenan en el mismo archivo, también debería ser lo mismo dentro de la configuración.

rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.pem

Debemos agregar esta línea para asegurarnos de que SSL esté habilitado:

ssl_enable=YES

Opcionalmente, podemos bloquear el uso de SSL por parte de usuarios anónimos, ya que no se necesita cifrado en un servidor FTP público.

allow_anon_ssl=NO

A continuación, debemos especificar cuándo usar SSL/TLS, esto habilitará el cifrado tanto para la transferencia de datos como para las credenciales de inicio de sesión

force_local_data_ssl=YES
force_local_logins_ssl=YES

También podemos especificar qué versiones y protocolos se utilizarán. TLS generalmente es más seguro que SSL y, por lo tanto, podemos permitir TLS y al mismo tiempo bloquear versiones anteriores de SSL.

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Requerir la reutilización de SSL y el uso de cifrados altos también ayudará a mejorar la seguridad. De las páginas man de vsFTPd:

require_ssl_reuse Si se establece en sí, se requiere que todas las conexiones de datos SSL exhiban la reutilización de la sesión SSL (lo que prueba que conocen el mismo secreto maestro que el canal de control). Aunque este es un valor predeterminado seguro, puede dañar muchos clientes FTP, por lo que es posible que desee deshabilitarlo. Para una discusión de las consecuencias, vea http://scarybeastsecurity.blogspot.com/2009/02/vsftpd-210-released.html (Agregado en v2.1.0).

cifrados_ssl Esta opción se puede utilizar para seleccionar qué cifrados SSL vsftpd permitirá conexiones SSL cifradas. Consulte la página del manual de cifrados para obtener más detalles. Tenga en cuenta que restringir los cifrados puede ser una medida de seguridad útil, ya que evita que partes remotas malintencionadas fuercen un cifrado con el que han encontrado problemas.

require_ssl_reuse=YES
ssl_ciphers=HIGH

Termine reiniciando vsftpd demonio

/etc/init.d/vsftpd restart

Confirmar instalación

Y eso es todo, ahora debería poder conectarse a su servidor y confirmar que todo funciona. Si está utilizando FileZilla, se debe abrir un cuadro de diálogo que contiene la información de su organización (o lo que haya ingresado al generar el certificado anteriormente) al conectarse. La salida debería verse similar a esto:

Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.

Para obtener más información sobre vsFTPd, consulte las páginas del manual:

man vsftpd

cPanel
  1. Cómo proteger sus servicios de correo electrónico de Linux con SSL/TLS

  2. Cómo asegurar una cuenta habilitada para cPanel con un certificado Lets Encrypt SSL

  3. Cómo proteger una cuenta habilitada para cPanel con un certificado SSL de Sectigo

  4. Instale Vsftpd con SSL/TLS en Ubuntu 20.04

  5. Cómo asegurar una conexión SSL con Apache en Ubuntu 18.04

Cómo instalar el servidor FTP vsftpd con TLS en Debian 10

Cómo proteger el socket TCP de Docker con TLS

Cómo proteger un nombre de host de Plesk con SSL

Cómo monitorear certificados SSL/TLS con Checkmk

Cómo proteger Nginx con el certificado SSL de Let's Encrypt

Cómo configurar vsftpd para usar SSL/TLS en Ubuntu 20.04