Cómo instalar el servidor FTP vsftpd y asegurarlo con TLS en Debian 11
El Protocolo de transferencia de archivos o FTP es un protocolo de red muy antiguo y uno de los más conocidos. No es seguro en comparación con SFTP o SCP en estos días, pero sigue siendo la primera opción de muchos usuarios para transferir archivos entre un servidor y un cliente. FTP se conoce como inseguro porque transfiere datos junto con las credenciales del usuario sin ningún tipo de encriptación.
Tenemos una gran variedad de servidores FTP de código abierto disponibles hoy en día, como FTPD, VSFTPD, PROFTPD y pureftpd. Entre todos ellos, VSFTPD es un protocolo muy seguro, rápido y el más usado para transferir archivos entre dos sistemas.
VSFTPD también se conoce como «Demonio de protocolo de transferencia de archivos muy seguro» con soporte para SSL, IPv6, FTPS explícito e implícito.
En esta guía, le mostraremos cómo instalar el servidor FTP vsftpd en Debian 11.
Requisitos previos
Un servidor que ejecuta Debian 11.
Un usuario no root con privilegios sudo.
1. Instalar Vsftpd
Antes de comenzar la instalación, actualice su servidor Debian 11 ejecutando el siguiente comando en la terminal:
sudo apt update -y sudo apt upgrade -y
Debian tiene un repositorio muy grande y el paquete vsftpd está disponible en el repositorio oficial, por lo que puede instalar fácilmente vsftpd ejecutando el siguiente comando:
sudo apt install vsftpd -y
Después de la instalación del paquete, inicie el servicio Vsftpd, verifique el estado del servicio y habilite el servicio al inicio.
sudo systemctl start vsftpd
sudo systemctl status vsftpd
systemctl enable vsftpd.service
2. Cree un usuario de FTP y configure el inicio de sesión de FTP
Ahora, cree una nueva cuenta de usuario para FTP, con este usuario iniciaremos sesión en el servidor FTP más tarde.
sudo adduser sohan
Los usuarios agregados en el archivo vsftpd.userlist tienen permiso para acceder al servidor FTP.
A continuación, debemos agregar el usuario sohan en la lista de usuarios de vsftpd. Abra el archivo y agregue un usuario ejecutando el siguiente comando:
echo "sohan" | sudo tee -a /etc/vsftpd.userlist
3. Crear directorio de usuarios FTP
A continuación, debemos crear un directorio FTP para nuestro usuario FTP y establecer la propiedad con el siguiente comando:
sudo mkdir -p /home/sohan/ftp_directory
sudo chown nobody:nogroup /home/sohan/ftp_directory
sudo chmod a-w /home/sohan/ftp_directory
Ahora, cree un directorio donde se puedan cargar los archivos y otorgue la propiedad al usuario sohan ejecutando el comando:
sudo mkdir -p /home/sohan/ftp_directory/ftp_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data
4. Configurar Vsftpd
A continuación, debe cambiar algunos parámetros predeterminados para configurar un servidor FTP.
Primero, cree una copia de respaldo del archivo de configuración vsftpd original.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
En el servidor FTP, los usuarios anónimos tienen acceso por defecto. Para hacer que el servidor FTP sea más seguro, deshabilitaremos el inicio de sesión de usuario anónimo y solo otorgaremos acceso al usuario específico.
A continuación, abra el archivo vsftpd.conf y realice los cambios de la siguiente manera:
vim /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
Hay algunos otros cambios que debemos hacer en la configuración, primero abrir vsftpd.conf
sudo vim /etc/vsftpd.conf
A continuación, asegúrese de que vsftpd.conf contenga las siguientes líneas:
listen=NO listen_ipv6=YES anonymous_enable=NO write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd user_sub_token=$USER local_root=/home/$USER/ftp_directory userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Guarde y cierre el archivo. Puede cambiar la configuración anterior según sus necesidades.
Ahora reinicie el servicio vsftpd y verifique el estado del servicio ejecutando los siguientes comandos:
sudo systemctl restart vsftpd
A continuación, asegúrese de que el servicio vsftpd esté en estado de ejecución ejecutando el siguiente comando en la Terminal:
sudo systemctl status vsftpd
5. permitir vsftpd en el cortafuegos y acceder al servidor vsftpd
A continuación, si está utilizando un firewall, permita el puerto 21 y el puerto 22 ejecutando el siguiente comando:
sudo ufw allow 21/tcp
sudo ufw allow 22/tcp
Luego recarga el firewall para aplicar los cambios:
sudo ufw reload
A continuación, abra cualquier cliente FTP como FileZilla e ingrese los detalles de su servidor, como Protocolo, Host, Usuario:
Ahora, haga clic en conectar, luego ingrese su contraseña:
Luego, mostrará detalles como a continuación, haga clic en Aceptar.
En este punto, está conectado al servidor FTP y puede cargar y descargar archivos/carpetas.
6. Asegure Vsftpd usando SSL/TLS
Digamos que desea transferir datos cifrados a través de FTP, para hacerlo necesita crear un certificado SSL y habilitar la conexión SSL/TLS.
Puede crear un certificado usando OpenSSL usando el siguiente comando:
sudo mkdir /etc/cert sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem
Ahora, deberá editar el archivo vsftpd.conf y realizar algunos cambios:
sudo vim /etc/vsftpd.conf
Agregue las siguientes líneas por fin:
rsa_cert_file=/etc/cert/vsftpd.pem rsa_private_key_file=/etc/cert/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
Guarde y salga del archivo, luego reinicie Vsftpd usando el siguiente comando:
sudo systemctl restart vsftpd
7. Acceda a FTP a través de SSL/TLS
Abra el cliente FTP de FileZilla y vaya a Archivo>Administrador de sitios. Aquí, haga clic en Agregar nuevo sitio e ingrese el nombre del host/sitio, agregue la dirección IP, defina el protocolo a usar, Cifrado: Requerir para explicar FTP sobre TLS y tipo de inicio de sesión. Luego haga clic en el botón Conectar. Deberías ver la siguiente imagen:
A continuación, introduzca su contraseña:
A continuación, verá el certificado SSL, verificará los detalles del certificado y hará clic en Aceptar.
Por fin, verá el contenido de su servidor FTP y podrá transferir sus datos de forma segura de un sistema a otro.
Anuncio publicitario
Conclusión
En la guía anterior, hemos instalado el servidor VSFTPD en Debian 11. También aprendemos cómo conectarnos a través de una conexión cifrada y no cifrada utilizando un certificado SSL.