1. Instalar vsftpd
bash
sudo apt update
sudo apt install vsftpd -y
2. Configurar vsftpd
Edita el archivo de configuración:
bash
sudo nano /etc/vsftpd.conf
Añade o modifica estas líneas:
ini
# Permitir escritura
write_enable=YES
# Usuarios locales pueden acceder
local_enable=YES
# Bloquear usuarios en su directorio home (seguridad)
chroot_local_user=YES
allow_writeable_chroot=YES
# Configuración de puerto pasivo (útil para NAT)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
# Usar archivo de lista de usuarios (opcional)
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Guarda (
Ctrl + O, luego
Enter) y cierra (
Ctrl + X).
3. Crear un Usuario FTP (Opcional)
Si quieres un usuario dedicado para FTP:
bash
sudo adduser ftpuser
sudo echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
4. Reiniciar el Servicio
bash
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
5. Abrir Puertos en el Firewall
bash
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp # Para modo pasivo
sudo ufw enable
Cómo Conectarse al Servidor FTP
- Desde Linux/macOS:
bash
- ftp tu_ip
- Desde Windows:
Usar FileZilla o el explorador de archivos (ftp://tu_ip).
Problemas Comunes y Soluciones
- Error "500 OOPS: vsftpd: refusing to run with writable root inside chroot":
bash
- sudo chmod a-w /home/ftpuser # Quitar permisos de escritura en el home
sudo mkdir /home/ftpuser/ftp # Crear subdirectorio para archivos
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
- Si usas NAT/Cloud:
Configura pasv_address=tu_ip_publica en /etc/vsftpd.conf.
¡Listo!
Ahora tienes un servidor FTP funcional en Ubuntu con vsftpd.
¿Necesitas ayuda adicional? ¡Déjame saber! 🚀