784
Si está buscando configurar un servidor FTP seguro y eficiente en Ubuntu 22.04, VSFTPD (Very Secure FTP Daemon) es una opción popular. Es liviano, fácil de configurar y ofrece una variedad de funciones de seguridad. Esta publicación de blog lo guiará a través de la instalación y configuración de VSFTPD en Ubuntu 22.04.
requisitos previos
- Ubuntu Server 22.04 se utilizará como servidor FTP.
- Una computadora para ser utilizada como cliente FTP.
- Una cuenta de usuario con raíz o sudo privilegios
Instalación del servidor Ubuntu VSFTPD
El paquete VSFTPD está disponible en los repositorios predeterminados de Ubuntu, lo que significa que puede instalarlo usando APT.
Pero antes de eso, actualice la lista de paquetes en su sistema Ubuntu ejecutando el siguiente comando.
sudo apt update
Una vez que se actualiza la lista de paquetes, puede instalar VSFTPD con el siguiente comando.
sudo apt install vsftpd -y
Una vez instalado, compruebe si el vsftpd el servicio se está ejecutando.
sudo systemctl status vsftpd
Opcionalmente, verifique la versión de vsftpd.
vsftpd -v
La última versión a partir de este escrito es 3.0.5.
Configuración básica de VSFTPD
Después de instalar VSFTPD, debe configurarlo para que se ajuste a sus requisitos. El archivo de configuración de VSFTPD se encuentra en /etc/vsftpd.conf. Para editar este archivo, ejecute el siguiente comando:
sudo nano /etc/vsftpd.conf
Deshabilitar acceso anónimo
anónimo_habilitar: Esta configuración determina si los usuarios anónimos pueden conectarse a su servidor FTP. Para prohibir el acceso de usuarios anónimos, establezca esto en NO.
Permitir usuarios locales
habilitar_local: Esta configuración determina si los usuarios locales (usuarios en su sistema Ubuntu) pueden conectarse a su servidor FTP. De forma predeterminada, esto está establecido en SÍ. Si desea restringir el acceso a un grupo específico de usuarios, configure el archivo_lista_de_usuarios y userlist_deny directivas.
Habilitar carga de archivos
escribir_habilitar: esta configuración determina si los usuarios pueden cargar archivos en su servidor FTP. Establezca este valor en SÍ.
Hacer cumplir la «cárcel chroot»
usuario_local_chroot: Esta configuración determina si los usuarios locales son encarcelados en su directorio de inicio cuando se conectan a su servidor FTP. De forma predeterminada, está establecido en NO, lo que significa que los usuarios pueden navegar a cualquier directorio de su sistema. Establezca este valor en SÍ encarcelar a los usuarios en su directorio de inicio,
Nota. Consulte nuestra guía sobre cómo configurar un servidor Ubuntu NFS.
Habilitar el acceso de escritura del directorio de inicio
allow_writeable_chroot: Este ajuste funciona de la mano con el usuario_local_chroot directiva. Si se establece en SÍesto otorga a los usuarios permisos de escritura en su directorio de inicio cuando chroot_local_user=SÍ.
Especificar permitir y denegar acceso de usuario
Cuando el habilitar_local directiva está habilitada, cada usuario en el sistema, como los de /etc/contraseña, puede iniciar sesión en el servidor FTP. Puede configurar las siguientes directivas para controlar qué usuarios pueden acceder al servidor FTP.
- archivo_lista_de_usuarios: Esta configuración especifica la ruta a un archivo que contiene una lista de usuarios autorizados a conectarse a su servidor FTP. De forma predeterminada, la ruta del archivo se establece en /etc/vsftpd.lista_usuario. Puede crear este archivo y agregar los nombres de usuario de los usuarios que desea permitir.
- userlist_deny: Esta configuración especifica la ruta a un archivo que contiene una lista de usuarios que no pueden conectarse a su servidor FTP. La ruta del archivo se establece en /etc/vsftpd.user por defecto.
Nota. El archivo_lista_de_usuarios y userlist_deny no existen directivas en el /etc/vsftpd.conf archivo por defecto. Debe crearlos primero para configurarlos.
Habilitar modo pasivo
VSFTPD usa el modo activo de FTP de manera predeterminada, lo que puede causar problemas de conexión cuando los clientes de FTP usan el modo pasivo en su lugar. Para habilitar el modo pasivo de FTP, agregue las siguientes directivas.
- pasv_enable: Esta configuración especifica que el modo pasivo está habilitado. Para habilitar el modo pasivo de FTP, agregue esta directiva y establezca el valor en SÍ.
- pasv_min_port: Especifica el número de puerto aleatorio más bajo para conexiones pasivas de FTP.
- pasv_max_port: Especifica el número de puerto aleatorio más alto para conexiones pasivas de FTP.
Reinicie el servidor VSFTPD
Una vez que haya terminado de editar la configuración de VSFTPD, guarde el archivo y salga del editor. Reinicie el servidor VSFTPD para que el cambio surta efecto.
sudo systemctl restart vsftpd
Agregar exclusiones de firewall
Si su sistema tiene un firewall en ejecución, como UFW, debe agregar exenciones para permitir los números de puerto VSFTPD. En la terminal, ejecute estos comandos.
- Los números de puerto 20 y 21 son los números de puerto FTP predeterminados.
- Números de puerto 2000:2500 es el rango de números de puerto que especificó en el pasv_min_port y pasv_max_port directivas
sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 2000:2500/tcp
Confirme las reglas del firewall ejecutando este comando.
Conéctese al servidor VSFTPD
Ahora, probemos si el FTP VSFTPD funciona. Puede usar cualquier cliente FTP para este paso. Los ejemplos en esta sección usarán WinSCP.
- Abra WinSCP y abra una nueva sesión.
- Elija FTP como protocolo.
- Ingrese el nombre de host, el FQDN o la dirección IP del servidor VSFTPD.
- Establezca el valor del número de puerto en 21.
- Introduzca su nombre de usuario y contraseña de FTP.
- Hacer clic Acceso.
- Una vez que haya iniciado sesión, cargue archivos desde su computadora local al servidor VSFTPD.
- Espere a que se complete la carga del archivo.
Conexión FTP segura con certificado SSL
En este punto, las conexiones FTP entre el cliente y el servidor VSFTPD no están encriptadas, lo cual es un riesgo de seguridad, especialmente si accede al servidor FTP a través de Internet.
Puede proteger o cifrar las conexiones FTP utilizando un certificado SSL. Puede obtener un certificado SSL por:
- Compre un certificado SSL pagado de emisores externos como DigiCert.
- Solicite uno gratuito de Let’s Encrypt (que vence cada 90 días) utilizando un cliente ACME.
- Genere un certificado autofirmado de forma gratuita.
En este ejemplo, elegiremos la última opción.
Generar un certificado autofirmado
Este comando genera un certificado SSL autofirmado válido por 365 días y guarda la clave privada y el certificado en /etc/ssl/private/vsftpd-key.pem y /etc/ssl/certs/vsftpd-cert.pem.
Tenga en cuenta que se le pedirá que ingrese cierta información, como el país, el estado/provincia y el nombre común. Puede ingresar los valores que desee o dejarlos en blanco.
sudo openssl req \ -x509 -nodes -days 365 \ -newkey rsa:2048 \ -keyout /etc/ssl/private/vsftpd-key.pem \ -out /etc/ssl/certs/vsftpd-cert.pem
Habilitar el cifrado SSL
Una vez que tenga el certificado SSL y la clave privada, abra el archivo /etc/vsftpd.conf en un editor de texto y actualice las siguientes directivas.
- rsa_cert_file: especifique la ruta del archivo del certificado.
- rsa_private_key_file: especifique la ruta del archivo de clave privada.
- ssl_habilitar: establezca el valor en SÍ para habilitar el cifrado SSL.
Después de editar, cierre el archivo de configuración de VSFTPD y reinicie el servidor VSFTPD.
sudo systemctl restart vsftpd
Ahora, volvamos a conectarnos al servidor FTP. Pero esta vez, seleccione el cifrado explícito TLS/SSL.
El estado de la conexión dice, “Conexión TLS establecida.”
Una vez conectado, puede ver que el ícono de candado está habilitado, lo que indica que la conexión FTP está encriptada.
Conclusión
¡Felicidades! Ha completado la instalación y configuración de VSFTPD. ¿Le gustó lo rápido y fácil que es instalar un servidor FTP seguro y que funcione con VSFTPD?
¿Que sigue? Debe intentar limitar la lista de usuarios que pueden acceder al servidor FTP configurando el archivo_lista_de_usuarios y userlist_deny directivas. Además, experimente con la creación de usuarios FTP virtuales en lugar de locales para un acceso al servidor VSFTPD más aislado y seguro.
¡Gracias por leer!