Instalamos el servicio
sudo apt update sudo apt install vsftpd
Creamos el usuario
sudo adduser nombreusuario
Añadimos nuestro nuevo usuario al grupo (webusers) que tiene permisos de escritura y lectura en la carpeta web raiz
sudo usermod -aG webusers nombreusuario
Editamos el archivo de configuración de vsftpd
sudo nano /etc/vsftpd.conf
Y descomentamos las líneas:
local_enable=YES write_enable=YES
Y añadimos esta línea al final del archivo
user_config_dir=/etc/vsftpd/user_conf
Guardamos el archivo
Configuración del usuario
Creamos el archivo de configuración del usuario. Primero creamos la carpeta de los archivos de configuración.
sudo mkdir /etc/vsftpd_user_conf
Y creamos el archivo que hará referencia a nuestro usuario
sudo nano /etc/vsftpd_user_conf/nombreusuario
Escribimos esta línea en el archivo (cambiar la ruta si es necesario)
local_root=/var/www/html
Comprobamos que tenemos los puertos 20 y 21 en nuestro firewall ufw. Si no lo están, los añadimos:
sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw reload
Activamos el modo pasivo
Abrimos nuevamente el archivo vsftpd.conf y añadimos estas líneas al final.
pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000
Guardamos el archivo
Reiniciamos el servicio
sudo systemctl restart vsftpd
Añadimos a nuestro firewall los puertos correspondientes
sudo ufw allow 30000:31000/tcp
Reiniciamos el firewall
sudo systemctl restart ufw
