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á cómo instalar Vsftpd en Ubuntu 20.04 y habilite la transferencia segura de archivos (FTPS) a través de SSL/TLS.
Requisitos
- Un sistema Ubuntu 20.04 Linux
- Un usuario con capacidad sudo
- 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.
$ sudo apt update
A continuación, ejecute el siguiente comando para instalar Vsftpd.
$ sudo apt install vsftpd
Introduzca 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.
$ sudo systemctl status vsftpd
El vsftpd El servicio ya debería estar activo. Presiona q para volver a la línea de comandos.
Si el servicio vsftpd aún no está activo, puede iniciarlo con el siguiente comando.
$ 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.
$ sudo nano /etc/vsftpd.conf
Verá que las diversas opciones de vsftpd están bien explicadas en el archivo de configuración. Solo necesita leer las instrucciones para comprender lo que desea habilitar o deshabilitar. A continuación se muestran algunos ejemplos.
Configurar acceso FTP anónimo
De forma predeterminada, el FTP anónimo está deshabilitado. 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 anonymous_enable. opción de NO a SI.
Por ahora, déjalo como está.
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 SÍ a NO.
También puede permitir que solo usuarios locales específicos inicien sesión en el servidor Vsftpd. Para ello, asegúrese de que local_enable es establecer en SÍ.
Después de eso, agregue las siguientes líneas debajo.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Guarde y cierre 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.
$ sudo nano /etc/vsftpd.userlist
Guarde y cierre el archivo de lista de usuarios.
Reinicie vsftpd con:
$ sudo systemctl restart vsftpd
Habilitar comando de escritura FTP
Para permitir que los usuarios de FTP creen, eliminen, cambien el nombre y guarden archivos, descomente write_enable y asegúrese de que esté establecido en SÍ.
Antes de continuar, iniciemos sesión en el servidor Vsftpd para confirmar que funciona. Por ahora, guarde los cambios y cierre el archivo de configuración de vsftpd.
Iniciar sesión en el servidor Vsftpd
Para esto, vamos a crear un usuario de prueba y asignarle una contraseña de la siguiente manera.
$ sudo useradd -m myftpuser
$ sudo passwd myftpuser
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.
Cancele la conexión. Arreglemos esto en la siguiente sección.
Habilite SSL/TLS para la transferencia segura de archivos
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 de vsftpd con el siguiente comando.
$ 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
Guarde y cierre el archivo de configuración vsftpd.
Generar 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 de Let's Encrypt si tiene un dominio que apunta al servidor FTP.
Para generar una clave privada, ejecute:
$ 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 las instrucciones detenidamente.
$ 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 por 365 días de la siguiente manera.
$ 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:
$ sudo systemctl restart vsftpd
Intente conectarse de nuevo al servidor Vsftpd.
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 futuras sesiones. A continuación, haga clic en Aceptar. para continuar con la conexión.
Si intenta conectarse al servidor FTP a través de la línea de comando que no admite FTP sobre TLS, obtendrá un error. Por ejemplo:
$ ftp 192.168.100.168
Esta es otra prueba de que su servidor Vsftpd está realmente 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 la página del manual de opciones de configuración de vsftpd.