1 – Instalamos el software
sudo yum install vsftpd
2 – Abrimos en nuestra instancia los puertos TCP 20-21 y también el rango de puertos TCP 1024-1048
3- Editamos el archivo de configuración /etc/vsftpd/vsftpd.conf
sudo nano /etc/vsftpd/vsftpd.conf
Busca la siguiente línea:
Anonymous_enable=YES
Y la cambiamos por:
Anonymous_enable=NO
Agregamos las siguientes líneas de configuración al final del archivo:
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=<dirección IP pública del servidor>
4 – Reiniciamos el servicio
sudo /etc/init.d/vsftpd restart
5 – Creamos los usuarios
sudo adduser nombreusuario-ftp
sudo passwd nombreusuario-ftp
6 – Restringimos usuarios a sus directorios principales
sudo nano /etc/vsftpd/vsftpd.conf
Descomentamos la línea
chroot_local_user=YES
Reiniciamos el servicio
sudo /etc/init.d/vsftpd restart
Podemos hacer que se inicie el servicio cada vez que reiniciamos la instancia
sudo chkconfig --level 345 vsftpd on
7 – Cambiamos la carpeta por defecto para la subida FTP
edit /etc/vsftpd/vsftpd.conf
Creamos una nueva entrada al final del archivo
local_root=/var/www/html
Para añadir permisos de lectura, escritura y borrado
sudo find /var/www/html -type d -exec chmod 755 {} \;
*Si no funcionase:
sudo usermod -a -G www <USER>
Probablemente necesitemos añadir el usuario creado al FTP usergroup
sudo gpasswd -a <usr> ftp
**Si continuamos sin tener permisos, los siguientes comandos solucionan el problema (comprobado)
sudo chown -R ec2-user /var/www/html
sudo chmod -R 755 /var/www/html

