Instale Vsftpd con SSL / TLS en Ubuntu 20.04

Vsftpd (es decir, un demonio FTP muy seguro) es un software de servidor FTP para Linux y otros sistemas similares a Unix. Un software de servidor FTP facilita la transferencia de archivos desde una computadora cliente al servidor y viceversa.

En este tutorial, aprenderá a instalar Vsftpd sobre Ubuntu 20.04 y habilite la transferencia segura de archivos (FTPS) a través de SSL / TLS.

Prerrequisitos

  • Un sistema Linux Ubuntu 20.04
  • Un usuario con sudo capacidad
  • Un cliente FTP habilitado para SSL como FileZilla

Instalar Vsftpd en Ubuntu

Vsftpd está disponible en el repositorio de paquetes predeterminado de Ubuntu. Puede comenzar actualizando los paquetes disponibles con el siguiente comando.

PS sudo actualización apta

A continuación, ejecute el siguiente comando para instalar Vsftpd.

PS sudo apto instalar vsftpd

Enter y si se le solicita que continúe con la instalación.

Una vez que Vsftpd se haya instalado correctamente, puede verificar la versión con el siguiente comando.

$ vsftpd -v

Además, verifique el estado del servidor Vsftpd de la siguiente manera.

PS sudo estado de systemctl vsftpd

Verifique el estado del servidor Vsftpd

El vsftpd el servicio ya debería estar activo. imprenta q para volver al símbolo del sistema.

Si el servicio vsftpd aún no está activo, puede iniciarlo con el siguiente comando.

PS sudo systemctl start vsftpd

Configurar Vsftpd

Hay muchas opciones que puede configurar para vsftpd, pero solo examinaremos los conceptos básicos en este tutorial. Abra el archivo de configuración vsftpd con el siguiente comando.

PS sudo nano /etc/vsftpd.conf

Verá que las distintas opciones de vsftpd están bien explicadas en el archivo de configuración. Solo necesita leer las instrucciones para comprender qué desea habilitar o deshabilitar. Abajo hay algunos ejemplos.

Configurar el acceso FTP anónimo

De forma predeterminada, el FTP anónimo está desactivado. Le recomendamos que deje esta configuración predeterminada como está. Sin embargo, si por alguna razón desea habilitar el acceso FTP anónimo con fines de prueba, cambie el valor de la anonymous_enable opción de NO a SI.

Por ahora, déjalo como está.

Configurar el acceso FTP anónimo para vsftpdConfigurar el acceso FTP anónimo para vsftpd

Permitir que los usuarios locales inicien sesión

Los usuarios locales pueden iniciar sesión de forma predeterminada. Si desea evitar que los usuarios locales inicien sesión en el servidor Vsftpd, cambie el valor de local_enable de SI a NO.

Permitir que los usuarios locales inicien sesión en el servidor VsftpdPermitir que los usuarios locales inicien sesión en el servidor Vsftpd

También puede permitir que solo usuarios locales específicos inicien sesión en el servidor Vsftpd. Para hacer eso, asegúrese de que local_enable es establecido en SÍ.

Después de eso, agregue las siguientes líneas debajo.

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Save y close el archivo vsftpd.conf.

A continuación, cree el archivo de lista de usuarios con el siguiente comando e ingrese los usuarios permitidos uno por línea.

PS sudo nano /etc/vsftpd.userlist

Save y close el archivo de lista de usuarios.

Reinicie vsftpd con:

PS sudo systemctl reiniciar vsftpd

Habilitar el comando de escritura FTP

Para permitir que los usuarios de FTP creen, eliminen, renombren y guarden archivos, descomente write_enable opción y asegúrese de que esté establecida en SÍ.

Habilitar el comando de escritura FTPHabilitar el comando de escritura FTP

Antes de continuar, inicie sesión en el servidor Vsftpd para confirmar que está funcionando. Por ahora, guarde los cambios y close el archivo de configuración vsftpd.

Inicie sesión en el servidor Vsftpd

Para ello, creemos un usuario de prueba y asignemos una contraseña de la siguiente manera.

PS sudo useradd -m myftpuser $ sudo passwd myftpuser

Nota: Si habilitó vsftpd Lista de usuarios antes, no olvide agregar el usuario ftp a /etc/vsftpd.userlist en consecuencia. De forma predeterminada, los usuarios tienen acceso ssh, recomendado para deshabilitar el acceso de shell para los usuarios de FTP.

Ahora, inicie un cliente FTP habilitado para SSL como FileZilla y luego inicie sesión con el usuario de prueba recién creado.

En mi caso, FileZilla me notificó que el servidor no es seguro ya que no admite FTP sobre TLS.

Notificación de servidor FTP inseguroNotificación de servidor FTP inseguro

Cancela la conexión. Arreglemos esto en la siguiente sección.

Habilite SSL / TLS para una transferencia de archivos segura

Para habilitar la transferencia segura de archivos a través de TLS, proceda de la siguiente manera.

En primer lugar, abra el archivo de configuración vsftpd con el siguiente comando.

PS sudo nano /etc/vsftpd.conf

A continuación, busque el rsa_cert_file y rsa_private_key_file opciones y actualice los valores como se muestra a continuación.

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

Además, busque ssl_enable y cambie el valor a SÍ.

ssl_enable=YES

Habilitar TLS / SSL para VsftpdHabilitar TLS / SSL para Vsftpd

Save y close el archivo de configuración vsftpd.

Genere una clave privada y un certificado

Ahora, necesitaría crear una clave privada y generar un certificado TLS / SSL con openssl. Puede utilizar el certificado SSL gratuito Let’s Encrypt si tiene un dominio que apunta al servidor FTP.

Para generar una clave privada, ejecute:

PS sudo openssl genrsa -out /etc/ssl/private/vsftpd.key

A continuación, genere una solicitud de firma de certificado con el siguiente comando. Se le pedirá que proporcione cierta información, como su país, ciudad, dirección de correo electrónico, etc. Lea atentamente las instrucciones.

PS sudo openssl req -new -key /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.csr

Ahora, genere y firme el certificado que será válido durante 365 días de la siguiente manera.

PS sudo openssl x509 -req -days 365 -in /etc/ssl/certs/vsftpd.csr -signkey /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.pem

Reinicie vsftpd con:

PS sudo systemctl reiniciar vsftpd

Intente conectarse al servidor Vsftpd nuevamente.

Conexión FTP segura a través de TLSConexión FTP segura a través de TLS

Seguramente, FileZilla pudo conectarse de forma segura a través de TLS esta vez. Puede elegir con seguridad la opción de confiar siempre en este certificado en sesiones futuras. Luego haga clic en OK para continuar con la conexión.

Certificado autofirmado de confianzaCertificado autofirmado de confianza

Si intenta conectarse al servidor FTP a través de la línea de comandos que no admite FTP sobre TLS, obtendrá un error. Para example:

$ ftp 192.168.100.168

Error de FTP sin TLSError de FTP sin TLS

Esta es otra prueba de que su servidor Vsftpd está habilitado para la transferencia segura de archivos a través de TLS.

Conclusión

En este tutorial, le mostramos cómo instalar un servidor Vsftpd en Ubuntu 20.04. También describimos cómo habilitar la transferencia segura de archivos a través del protocolo TLS. Solo cubrimos las opciones básicas de Vsftpd en este artículo, pero puede explorar más opciones en el Opciones de configuración de vsftpd página de manual.