
FTP, abreviatura de Protocolo de transferencia de archivos, es un protocolo popular para transferir archivos hacia y desde un servidor FTP. Sin embargo, está plagado de riesgos de seguridad, ya que envía datos e información confidencial, como nombres de usuario y contraseñas, en texto sin formato. VSFTPD ( Very Secure FTP Daemon ) es un servidor FTP rápido, seguro y estable que utiliza cifrado para proteger los datos intercambiados con el servidor.
En este tutorial, aprendemos cómo instalar el servidor FTP vsftpd en Debian 11 .
Paso 1:Instale vsftpd en Debian 11
Primero, abra la terminal y actualice las listas de paquetes en su servidor Debian.
$ sudo apt update
El paquete vsftpd está alojado en repositorios oficiales de Debian. Por lo tanto, use el administrador de paquetes APT como se muestra.
$ sudo apt install vsftpd
El comando instala vsftpd, junto con otras dependencias. Una vez instalado, vsftpd se inicia automáticamente. Puede confirmar esto ejecutando el comando:
$ sudo systemctl status vsftpd
A partir de la salida, puede ver que vsftpd se está ejecutando como se esperaba.

En caso de que el servicio vsftpd no se esté ejecutando en su caso, puede iniciarlo como se indica.
$ sudo systemctl start vsftpd
A continuación, habilite el servicio para que se inicie en el momento del arranque.
$ sudo systemctl enable vsftpd
Paso 2:Cree un usuario FTP único
A continuación, vamos a crear una cuenta de usuario FTP única que usaremos para iniciar sesión en el servidor FTP. Simplemente use el adduser
comando seguido del nombre del usuario y responda a las indicaciones correspondientes.
$ sudo adduser ftpuser

Paso 3:Agregue un usuario de FTP a la lista de usuarios de inicio de sesión permitidos
A continuación, agregaremos el usuario de FTP a vsftpd.userlist
expediente. Los usuarios locales especificados en este archivo tienen permiso para acceder al servidor FTP.
Entonces, ejecuta el comando:
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

Perfecto. Procedamos ahora y configuremos vsftpd.
Paso 4:crear un directorio de usuario FTP
A continuación, cree un directorio FTP para el usuario FTP y asigne los permisos y la propiedad del directorio apropiados.
$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir
Paso 5:Configurar vsftpd
Se requieren algunos pasos adicionales antes de que podamos iniciar sesión y comenzar a interactuar con el servidor. Continúe y edite el archivo de configuración principal - /etc/vsftpd.conf
.
$ sudo vim /etc/vsftpd.conf
Hay un par de configuraciones que debe asegurarse de que estén configuradas.
Comencemos primero con acceso FTP . De forma predeterminada, los usuarios anónimos tienen acceso. Pero esto no es lo que queremos por motivos de seguridad. Por lo tanto, deshabilitaremos el inicio de sesión del usuario anónimo y solo otorgaremos acceso al usuario local.
anonymous_enable=NO
local_enable=YES
A continuación, debe permitir que el usuario local cargue archivos y obtenga acceso a su directorio de inicio, así como realizar cambios en los archivos como se indica.
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
Además, puede limitar los usuarios locales que pueden acceder y cargar archivos especificando solo los usuarios contenidos en vsftpd.userlist
archivo.
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Para proporcionar una conexión FTP segura al servidor, debemos cifrar el servidor mediante un certificado SSL. Vamos a generar un certificado SSL autofirmado para cifrar el servidor. Para hacerlo, ejecute el comando.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Vuelva al archivo de configuración predeterminado y pegue estas líneas para especificar la ruta de los certificados SSL generados y habilite SSL.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
En resumen, su archivo de configuración debe contener estas líneas:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
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
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Para que los cambios surtan efecto, reinicie el servidor.
$ sudo systemctl restart vsftpd
Solo para asegurarse de que todo está bien, puede verificar su estado de ejecución.
$ sudo systemctl status vsftpd
Paso 5:Acceda al servidor vsftpd
Ya hemos terminado con las configuraciones. El último bit es iniciar sesión. En caso de que tenga un firewall habilitado, permita los puertos 20 y 21.
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
A continuación, vuelva a cargar el cortafuegos para que se apliquen los cambios.
$ sudo ufw reload
Finalmente, tome su cliente FTP como FileZilla y complete los detalles de la siguiente manera:
Anfitrión :sftp://IP-del-servidor
Nombre de usuario: usuarioft
Contraseña :Contraseña de ftpuser
Una vez que haya completado los detalles, haga clic en el botón 'QuickConnect'.

Después de la lista exitosa del directorio, ahora puede comenzar a transferir archivos de forma segura a través de SSL.

En la línea de comando, simplemente ejecute el comando:
$ sftp ftpuser@server-IP
Escriba 'sí' cuando se le solicite continuar y proporcione la contraseña al usuario de FTP para iniciar sesión.

Conclusión
Este fue un tutorial en el que aprendimos cómo instalar el servidor FTP vsftpd en Debian 11. Seguimos adelante y creamos el usuario, configuramos el servidor e iniciamos sesión desde un cliente FTP y en la línea de comandos.