FileZilla

 ¡Tienes razón! Te refieres a FileZilla, pero hay una aclaración importante:

  • FileZilla Client: Programa con interfaz gráfica para conectarte a servidores FTP

  • Servidor FTP: Software que recibe conexiones y sirve archivos

Si quieres instalar un servidor FTP en Ubuntu, los más populares son vsftpd o proftpd. Te explico ambos:

Opción 1: vsftpd (Very Secure FTP Daemon) - Más Popular

Instalación y Configuración

bash
# 1. Instalar vsftpd
sudo apt update
sudo apt install vsftpd

# 2. Hacer backup de la configuración original
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

# 3. Editar la configuración
sudo nano /etc/vsftpd.conf

Configuración Básica vsftpd

bash
# Descomenta o agrega estas líneas en /etc/vsftpd.conf:

# Permitir escritura
write_enable=YES

# Usuarios locales pueden conectarse
local_enable=YES

# Permitir subida de archivos
anon_upload_enable=NO        # Para usuarios anónimos (mejor NO)
local_umask=022

# Directorio por defecto (opcional)
# local_root=/home/$USER/ftp_server

# Configuraciones de seguridad
chroot_local_user=YES        # Usuarios confinados a su home
allow_writeable_chroot=YES

# Puerto pasivo (importante)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

Reiniciar y Verificar

bash
# Reiniciar el servicio
sudo systemctl restart vsftpd

# Verificar estado
sudo systemctl status vsftpd

# Habilitar inicio automático
sudo systemctl enable vsftpd

Opción 2: proftpd (Alternativa Potente)

Instalación

bash
# Instalar proftpd
sudo apt install proftpd

# Durante instalación elige:
# [ ] Standalone (recomendado para servidores)
# [x] inetd (para uso ocasional)

Configuración Básica

bash
# Editar configuración
sudo nano /etc/proftpd/proftpd.conf

Agregar/descomentar:

apache
# Configuración básica en /etc/proftpd/proftpd.conf
ServerName "Mi Servidor FTP"
DefaultRoot ~                     # Usuarios confinados a su home
RequireValidShell off            # Para usuarios sin shell de login

Crear Usuarios y Directorios FTP

Usuario FTP Dedicado (Recomendado)

bash
# Crear usuario solo para FTP
sudo adduser --home /home/ftpuser --shell /bin/bash ftpuser
sudo passwd ftpuser

# Crear directorio para archivos
sudo mkdir -p /home/ftpuser/ftp_files
sudo chown ftpuser:ftpuser /home/ftpuser/ftp_files

Usar tu Usuario Actual

bash
# Tu usuario ya puede conectarse
# Los archivos estarán en tu home: /home/tu_usuario/

# Crear carpeta específica para FTP (opcional)
mkdir ~/ftp_public
chmod 755 ~/ftp_public

Configurar Firewall y Red

Abrir Puertos FTP

bash
# FTP usa puerto 21 (control) y puertos para datos
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp  # Para modo pasivo

# Verificar reglas
sudo ufw status

Si Estás Detrás de Router

Necesitas reenvío de puertos en tu router:

  • Puerto 21 TCP → IP de tu servidor Ubuntu

  • Puertos 40000-50000 TCP → IP de tu servidor Ubuntu

Probar tu Servidor FTP

Desde FileZilla Client (en otra máquina)

  1. Descargar FileZilla Clienthttps://filezilla-project.org/

  2. Configurar conexión:

    • Host: tu_ip_publica o localhost (si pruebas local)

    • Usuario: tu_usuario_ubuntu o ftpuser

    • Contraseña: tu_contraseña

    • Puerto: 21

Desde Terminal (Linux/Mac)

bash
# Conectar desde terminal
ftp tu_ip_local
# O
lftp tu_ip_local

# Comandos básicos dentro de FTP:
ls          # Listar archivos
put archivo # Subir archivo
get archivo # Descargar archivo
bye         # Salir

Configuración Avanzada

Limitar Acceso a Directorio Específico

bash
# En vsftpd.conf - Limitar usuario a carpeta específica
user_sub_token=$USER
local_root=/home/$USER/ftp_home

Crear Usuarios Virtuales (Solo FTP)

bash
# Instalar pam_userdb
sudo apt install libpam-pwdfile

# Crear usuario virtual
sudo htpasswd -c /etc/ftp-passwd usuario_ftp

Configurar SSL/TLS (FTP Seguro)

bash
# Generar certificado SSL
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt

# Agregar a vsftpd.conf
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

Solución de Problemas Comunes

Ver Logs

bash
# Ver logs en tiempo real
sudo tail -f /var/log/vsftpd.log

# O para proftpd
sudo tail -f /var/log/proftpd/proftpd.log

Verificar Conexión

bash
# Ver si el servicio está escuchando
sudo netstat -tulpn | grep :21

# Probar conexión local
ftp localhost

Problemas de Permisos

bash
# Asegurar permisos correctos
sudo chown -R ftpuser:ftpuser /home/ftpuser/
sudo chmod 755 /home/ftpuser/
sudo chmod 755 /home/tu_usuario/  # Para tu usuario

Resumen de Comandos Esenciales

bash
# Instalar vsftpd (recomendado para principiantes)
sudo apt install vsftpd

# Editar configuración
sudo nano /etc/vsftpd.conf

# Reiniciar servicio
sudo systemctl restart vsftpd

# Ver estado
sudo systemctl status vsftpd

# Abrir puertos firewall
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

Recomendación Personal

Para uso personal y proyectos, te recomiendo:

  1. vsftpd - Más simple y seguro

  2. Usar tu usuario normal - Más fácil para empezar

  3. Probar localmente primero - Con localhost como host

Comentarios

Entradas más populares de este blog

ejercicios-Crear Carpeta y Archivo de Texto en Ubuntu

Instalar Docker en Ubuntu Server usando docker.io

Tutorial de Carpetas y Directorios en Ubuntu Linux