FTP o File Transfer Protocol, 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 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, instalaremos servidor FTP vsftpd en Debian 11 .
Paso 1:Instalar el paquete vsftpd
En primer lugar, actualice la lista de paquetes y actualice su servidor Debian.
# apt update
# apt upgrade
Luego instale el paquete vsftpd.
# apt install vsftpd
Una vez instalado, vsftpd se inicia automáticamente. Puede confirmar esto ejecutando el comando:
# systemctl status vsftpd.service
Paso 2:Crear un usuario FTP
A continuación, vamos a crear una cuenta de usuario FTP única que usaremos para iniciar sesión en el servidor FTP. utilice el adduser comando seguido del nombre del usuario y responda a las indicaciones correspondientes.
# adduser unixcop-user
Paso 3:Agregue un usuario de FTP a la lista de usuarios autorizados para iniciar sesión
Ahora, agregaremos el usuario FTP a la vsftp.userlist expediente. Los usuarios locales especificados en este archivo tienen permiso para acceder al servidor FTP.
# echo unixcop-user >> /etc/vsftpd.userlist
Paso 4:Crear un directorio de usuarios FTP
Ahora, cree un directorio FTP para el usuario FTP y asigne los permisos y la propiedad del directorio apropiados.
# mkdir -p /home/unixcop-user/ftp-dir
# chmod -R 750 /home/unixcop-user/ftp-dir
# chown -R unixcop-user: /home/unixcop-user/ftp-dir
Paso 5:configurar el servicio vsftpd
Ahora debemos continuar y editar el archivo de configuración principal /etc/vsftpd.conf
# nano /etc/vsftpd.conf
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 /etc/vsftpd.userlist archivo.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
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.
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd-key.pem -out /etc/ssl/private/vsftpd-cert.pem
Regrese al archivo de configuración predeterminado /etc/vsftpd.conf y pegue estas líneas para especificar la ruta de los certificados SSL generados y habilite SSL.
rsa_cert_file=/etc/ssl/private/vsftpd-cert.pem
rsa_private_key_file=/etc/ssl/private/vsftpd-key.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.userlist
userlist_deny=NO
Para que los cambios surtan efecto, reinicie el servidor.
# systemctl restart vsftpd.service
# systemctl status vsftpd.service
Paso 5:Acceda al servidor vsftpd
Ya hemos terminado con las configuraciones. Lo último es permitir los puertos 20 y 21 si el firewall está habilitado.
# ufw allow 20/tcp
# ufw allow 21/tcp
# ufw reload
Finalmente, tome su cliente FTP como FileZilla y complete los detalles de la siguiente manera:
Anfitrión :servidor-IP
Nombre de usuario: usuario de unixcop
Contraseña :Contraseña del usuario de unixcop
Después de la lista exitosa del directorio, ahora puede comenzar a transferir archivos de forma segura a través de SSL.
Y así, aprendió a instalar el servidor ftp vsftpd en Debian 11.