Todos los productos
Search
Centro de documentos

Simple Application Server:Set up an FTP server (Linux)

Última actualización: Sep 02, 2026

Very Secure FTP Daemon (vsftpd) es un servidor FTP ligero para Linux. Este tema explica cómo instalar y configurar vsftpd en un Simple Application Server basado en Linux, y posteriormente verificar la conexión mediante FileZilla.

Nota

FTP transmite datos, incluidas las credenciales, en texto sin formato. Para cargas de trabajo de producción que requieren cifrado, considere usar SFTP o FTPS. Esta guía aborda vsftpd para casos de uso donde FTP es un requisito específico.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

Modos de conexión y autenticación FTP

FTP opera en dos modos de conexión:

  • Modo activo: El cliente envía la información de su puerto al servidor y este inicia la conexión de datos.

  • Modo pasivo: El servidor abre un puerto y envía dicha información al cliente, quien luego inicia la conexión. Esta guía configura el modo pasivo, ya que funciona mejor a través de firewalls y NAT.

FTP admite tres modos de autenticación:

Modo

Seguridad

Descripción

Modo de usuario anónimo

Más baja

No requiere nombre de usuario ni contraseña. Adecuado solo para transferencias públicas de archivos. Evítelo en producción.

Modo de usuario local

Media

Autentica contra usuarios locales de Linux. Se cubre en esta guía.

Modo de usuario virtual

Más alta

Utiliza usuarios virtuales aislados del sistema. Requiere una configuración profesional.

Esta guía cubre el modo de usuario local (recomendado) y el modo de usuario anónimo.

Paso 1: Instalar vsftpd

  1. Connect to your Linux server.

  2. Compruebe si vsftpd ya está instalado. Algunos servidores desplegados con imágenes de aplicación incluyen vsftpd preinstalado; reinstalarlo podría causar conflictos.

    vsftpd -v

    Si la salida muestra un número de versión, vsftpd ya está instalado:

    vsftpd: version 3.0.2

    Si vsftpd ya está instalado, obtenga las credenciales de FTP de la documentación de su imagen de aplicación y continúe directamente en Paso 3: Abrir puertos del firewall.

  3. Instale vsftpd. Este ejemplo utiliza CentOS 7. Para otras distribuciones, consulte Build an FTP site on an ECS instance.

    sudo yum install -y vsftpd

    Un mensaje de éxito confirma la instalación.

  4. Habilite el inicio automático de vsftpd durante el arranque:

    sudo systemctl enable vsftpd.service
  5. Inicie vsftpd:

    sudo systemctl start vsftpd.service
    Nota

    Si el servicio no se inicia y aparece el error Job for vsftpd.service failed because the control process exited with error code, es posible que el puerto 21 ya esté en uso. Ejecute lsof -i:21 para identificar el proceso y luego ejecute kill -9 <PID> para finalizarlo antes de reiniciar vsftpd.

  6. Verifique que vsftpd se esté ejecutando:

    sudo netstat -antup | grep ftp

    Si el puerto del servicio FTP aparece en la salida, vsftpd se está ejecutando correctamente.

Paso 2: Configurar el modo de acceso

Elija uno de los siguientes modos. Se recomienda el modo de usuario local para mayor seguridad.

Modo de usuario local (recomendado)

  1. Cree un usuario de Linux dedicado para el acceso FTP. Este ejemplo utiliza ftptest.

    sudo adduser ftptest
  2. Establezca una contraseña para el usuario:

    sudo passwd ftptest

    Siga las instrucciones para introducir y confirmar la contraseña.

  3. Cree el directorio FTP:

    sudo mkdir /var/ftp/test
  4. Asigne la propiedad del directorio a ftptest:

    sudo chown -R ftptest:ftptest /var/ftp/test
  5. Realice una copia de seguridad del archivo de configuración de vsftpd antes de editarlo:

    sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
  6. Abra el archivo de configuración para editarlo:

    Nota

    Si instaló vsftpd con apt install vsftpd, el archivo de configuración se encuentra en /etc/vsftpd.conf.

    sudo vim /etc/vsftpd/vsftpd.conf

    Presione i para entrar al modo de edición.

  7. Actualice los siguientes parámetros. Asegúrese de que ninguna de estas líneas esté comentada con # y evite espacios al final de línea, ya que provocan errores al reiniciar vsftpd. /etc/vsftpd/vsftpd.conf

    # Disable anonymous login
    anonymous_enable=NO
    # Allow local users to log in
    local_enable=YES
    # Listen on IPv4
    listen=YES

    Comente el listener IPv6 agregando # al inicio de la línea:

    #listen_ipv6=YES
  8. Agregue los siguientes parámetros al final del archivo. Reemplace 39.105.xx.xx con la dirección IP pública de su servidor. /etc/vsftpd/vsftpd.conf

    # Set the home directory for local users after login
    local_root=/var/ftp/test
    # Restrict users to their home directory
    chroot_local_user=YES
    # Enable a list of users exempt from the chroot restriction
    chroot_list_enable=YES
    # Path to the exemption list file
    chroot_list_file=/etc/vsftpd/chroot_list
    # Enable passive mode
    pasv_enable=YES
    allow_writeable_chroot=YES
    # Public IP address of the server
    pasv_address=39.105.xx.xx
    # Passive mode port range (high-numbered ports reduce exposure)
    pasv_min_port=50000
    pasv_max_port=50010

    Presione Esc, escriba :wq y presione Enter para guardar y cerrar.

  9. Cree el archivo de lista de excepciones chroot. Los usuarios incluidos aquí no estarán restringidos al directorio principal. El archivo es obligatorio incluso si está vacío.

    sudo vim /etc/vsftpd/chroot_list

    Presione i para entrar al modo de edición. Agregue los nombres de usuario exentos, uno por línea (deje el archivo en blanco si no se requieren excepciones). Presione Esc, escriba :wq y presione Enter para guardar y cerrar.

  10. Detenga el firewall del sistema. vsftpd gestiona el acceso a puertos mediante el firewall de Simple Application Server configurado en el Paso 3.

     sudo systemctl stop firewalld
  11. Habilite la autenticación por contraseña en la configuración SSH:

     sudo vi /etc/ssh/sshd_config

    Busque PasswordAuthentication al final del archivo y establézcalo en yes. Presione Esc, escriba :wq! y presione Enter para guardar y cerrar.

  12. Reinicie vsftpd para aplicar todos los cambios:

     sudo systemctl restart vsftpd.service

Modo de usuario anónimo

Importante

El modo anónimo permite que cualquier persona se conecte sin contraseña. Úselo únicamente para transferencias públicas de archivos en entornos que no sean de producción.

  1. Abra el archivo de configuración de vsftpd:

    Nota

    Si instaló vsftpd con apt install vsftpd, el archivo de configuración se encuentra en /etc/vsftpd.conf.

    sudo vim /etc/vsftpd/vsftpd.conf

    Presione i para entrar al modo de edición.

  2. Configure los siguientes parámetros. Los valores predeterminados varían según la distribución de Linux; compruebe que ambos valores sean YES después de editar. Asegúrese de que ninguna de estas líneas esté comentada con # y evite espacios al final de línea. /etc/vsftpd/vsftpd.conf

    anonymous_enable=YES
    anon_upload_enable=YES
    listen=YES
    listen_ipv6=NO
  3. Agregue los siguientes parámetros al final del archivo. Reemplace 39.105.xx.xx con la dirección IP pública de su servidor. /etc/vsftpd/vsftpd.conf

    # Enable passive mode
    pasv_enable=YES
    # Passive mode port range
    pasv_min_port=50000
    pasv_max_port=50010
    # Public IP address of the server
    pasv_address=39.105.xx.xx

    Presione Esc, escriba :wq y presione Enter para guardar y cerrar.

  4. Otorgue permisos de escritura en el directorio FTP predeterminado (/var/ftp/pub):

    sudo chmod o+w /var/ftp/pub/
  5. Reinicie vsftpd:

    sudo systemctl restart vsftpd.service

Paso 3: Abrir puertos del firewall

Agregue reglas de entrada en el firewall de Simple Application Server para permitir el tráfico FTP. El modo pasivo requiere el puerto 21 y el rango de puertos pasivos. Consulte Manage a firewall para obtener instrucciones.

Tipo de aplicación

Protocolo

Rango de puertos

FTP

TCP

21

Personalizado

TCP

pasv_min_port–pasv_max_port (ejemplo: 50000/50010)

Después de agregar las reglas, estas aparecen en la página Firewall:

image.png

Paso 4: Verificar la conexión FTP

Utilice FileZilla para confirmar que el servidor FTP es accesible.

Nota

Este ejemplo utiliza FileZilla 3.64.0. La interfaz puede variar en otras versiones.

  1. Abra FileZilla.

  2. Vaya a File > Site Manager.

  3. Haga clic en New site (N) en la esquina inferior izquierda del cuadro de diálogo Site Manager.

  4. Introduzca un nombre para el nuevo sitio y configure la conexión:

    filezilla

    Parámetro

    Valor

    Name

    Un nombre personalizado para el sitio. Ejemplo: test-01.

    Protocol

    FTP

    Host

    Dirección IP pública del servidor (ejemplo: 121.43.XX.XX)

    Port

    21

    Logon type

    Anonymous (para modo anónimo) o Normal (para modo de usuario local)

    Para el modo de usuario local, establezca Logon type en Normal e introduzca el nombre de usuario y la contraseña de FTP.

  5. Haga clic en Connect.

Una vez conectado, utilice FileZilla para cargar, descargar o eliminar archivos. La interfaz se divide en cuatro secciones:

filezilla

Sección

Descripción

①

Estado de la conexión, comandos y resultados de tareas

②

Computadora local: listado de directorios y archivos

③

Servidor remoto: listado del directorio FTP. En modo anónimo, el directorio predeterminado es /pub.

④

Cola de transferencia y registros de tareas

Referencia de configuración de vsftpd

El directorio /etc/vsftpd contiene tres archivos clave:

  • /etc/vsftpd/vsftpd.conf: el archivo de configuración principal

  • /etc/vsftpd/ftpusers: los usuarios en este archivo tienen denegado el acceso FTP (lista de bloqueados)

  • /etc/vsftpd/user_list: los usuarios en este archivo tienen permitido el acceso FTP (lista de permitidos)

Parámetros de control de inicio de sesión

Parámetro

Descripción

anonymous_enable=YES

Acepta usuarios anónimos

no_anon_password=YES

Omite la solicitud de contraseña para usuarios anónimos

anon_root=

Directorio principal para usuarios anónimos

local_enable=YES

Acepta usuarios locales

local_root=

Directorio principal para usuarios locales

Parámetros de permisos

Parámetro

Descripción

write_enable=YES

Permite que todos los usuarios carguen archivos

local_umask=022

Máscara de permisos de archivo para cargas de usuarios locales

file_open_mode=0666

Aplica umask a los permisos de archivos cargados

anon_upload_enable=NO

Permite que usuarios anónimos carguen archivos

anon_mkdir_write_enable=NO

Permite que usuarios anónimos creen directorios

anon_other_write_enable=NO

Permite que usuarios anónimos modifiquen o eliminen archivos

chown_username=lightwiter

Propietario asignado a archivos cargados por usuarios anónimos