Todos os produtos
Search
Central de documentação

Elastic Compute Service:Build an FTP server on a Linux instance

Última atualização: Jul 05, 2026

Instale e configure o vsftpd em uma instância ECS Linux para habilitar transferências seguras de arquivos via FTP.

Implantação rápida

Clique em Run now para abrir o Terraform Explorer e criar automaticamente um site FTP em uma instância ECS.

Pré-requisitos

Crie uma instância ECS que atenda aos seguintes requisitos: Criar uma instância usando o assistente.

  • Sistema operacional: Alibaba Cloud Linux 3/2, CentOS 7.x 64 bits, Ubuntu ou Debian.

  • Endereço IP: a instância deve ter um endereço IP público estático ou um Elastic IP Address.

Visão geral

O vsftpd (Very Secure FTP Daemon) é um servidor FTP de código aberto para sistemas UNIX e Linux. Principais recursos:

  • Alta segurança: auditorias rigorosas e vários mecanismos para prevenir ataques comuns.

  • Alto desempenho: suporta muitas conexões simultâneas com transferências de arquivos eficientes.

  • Configuração simples: opções flexíveis e fáceis de entender para diversas necessidades.

  • Suporte a IPv6: compatibilidade nativa com redes IPv6.

Criar o serviço vsftpd

Alibaba Cloud Linux 3 and 2/CentOS 7.x

Etapa 1: Instalar o vsftpd

  1. Atualize o sistema e instale o vsftpd.

    sudo yum update -y 
    sudo yum install vsftpd -y
  2. Inicie o vsftpd e habilite a inicialização automática do serviço.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd 
  3. Verifique se o serviço está em execução.

    netstat -antup | grep ftp

    A saída a seguir confirma que o vsftpd está em execução.

    image

    Por padrão, o vsftpd permite acesso anônimo somente leitura.

Etapa 2: Configurar o vsftpd

  1. Crie um usuário FTP. Este exemplo usa ftpuser.

    sudo useradd -d /data/ftp -s /sbin/nologin ftpuser  # Specify the home directory and disable shell access
    sudo passwd ftpuser 
  2. Crie o diretório FTP e defina as permissões.

    sudo mkdir -p /data/ftp      # Create a custom storage directory
    sudo chown ftpuser:ftpuser /data/ftp
    sudo chmod 750 /data/ftp    # Permissions must be 755 or 750
  3. Edite o arquivo de configuração do vsftpd.

    Nota

    Use o modo passivo. A maioria dos clientes está atrás de firewalls ou NAT e não consegue expor endereços IP reais.

    1. Faça backup do arquivo de configuração do vsftpd.

      sudo cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak
    2. Edite o arquivo de configuração.

      sudo vim /etc/vsftpd/vsftpd.conf
    3. Defina a configuração básica de segurança.

      listen=YES                   # Enable IPv4 listener
      anonymous_enable=NO          # Disable anonymous access
      local_enable=YES             # Enable local user logon
      write_enable=YES             # Allow file uploads
      chroot_local_user=YES        # Lock users to their home directory
      allow_writeable_chroot=YES   # Resolve chroot write errors
    4. Acrescente a configuração do modo passivo.

      pasv_enable=YES              # Enable passive mode
      pasv_min_port=40000          # Lower limit of the passive port range
      pasv_max_port=40100          # Upper limit of the passive port range
      pasv_address=public_ip_address      # Must be set to the server's public IP address
  4. Reinicie o vsftpd.

    sudo systemctl restart vsftpd

Etapa 3: Definir regras do grupo de segurança

Adicione regras de entrada no grupo de segurança para o modo FTP configurado. Adicionar uma regra de grupo de segurança.

No modo ativo, clientes atrás de NAT precisam expor endereços IP reais, o que pode causar falhas de conexão.

  • Modo ativo: permita tráfego na porta 21.

  • Modo passivo: permita tráfego na porta 21 e nas portas 40000–40100 (pasv_min_port a pasv_max_port em /etc/vsftpd/vsftpd.conf). Configurar portas de modo passivo FTP.

Etapa 4: Verificar o serviço FTP

Valide o serviço FTP com um cliente FTP, navegador ou explorador de arquivos. Este exemplo usa o explorador de arquivos.

  1. Teste a conexão local.

    Execute o comando a seguir no servidor.

    ftp ftpuser@localhost 

    A mensagem Login successful confirma a conexão.

    image

  2. Teste a conexão do cliente.

    Abra um explorador de arquivos no cliente e insira o endereço FTP.

    image

    Insira o nome de usuário e a senha FTP para fazer login. Depois, envie e baixe arquivos.

Ubuntu and Debian

Etapa 1: Instalar o vsftpd

  1. Atualize o sistema e instale o vsftpd.

    sudo apt update && sudo apt upgrade -y
    sudo apt install vsftpd -y
  2. Inicie o vsftpd e habilite a inicialização automática do serviço.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd

Etapa 2: Configurar o vsftpd

  1. Crie um usuário dedicado para FTP.

    sudo useradd -m -s /bin/bash ftpuser  # Create a user and automatically generate a home directory
    sudo passwd ftpuser  # Set the user password (a strong password is recommended)
  2. Crie o diretório de armazenamento de arquivos e defina as permissões.

    sudo mkdir /home/ftpuser/ftp-files
    sudo chown ftpuser:ftpuser /home/ftpuser/ftp-files
    sudo chmod 755 /home/ftpuser/ftp-files
  3. Faça backup do arquivo de configuração original.

    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
  4. Edite o arquivo de configuração.

    sudo nano /etc/vsftpd.conf

    Aplique as configurações a seguir:

    # Basic configuration
    listen=YES
    anonymous_enable=NO          # Disable anonymous access
    local_enable=YES             # Allow local user logon
    write_enable=YES             # Enable write permissions
    chroot_local_user=YES        # Lock users in their home directory

    Acrescente o seguinte:

    allow_writeable_chroot=YES   # Allow writing to the chroot directory
    local_root=/home/ftpuser/ftp-files  # Specify the root directory for the FTP user
    
    # Passive mode configuration (to resolve external network connection issues)
    pasv_enable=YES
    pasv_address=xx.xx.xx.xx  # Replace with your public IP address
    pasv_min_port=40000
    pasv_max_port=40100
  5. Reinicie o vsftpd.

    sudo systemctl restart vsftpd
  6. O vsftpd cria um usuário ftp padrão sem senha. Defina uma senha para esse usuário.

     sudo passwd ftp

    Defina uma senha forte e ignore os demais prompts.

  7. Adicione o usuário à lista de permissões de usuários FTP.

     echo "ftp" | sudo tee -a /etc/vsftpd.userlist
  8. Crie um diretório FTP e defina as permissões.

    1. Crie uma pasta FTP.

       sudo mkdir /home/ftp
    2. Defina as permissões da pasta.

      Isso concede permissões totais (777). Ajuste conforme necessário.
       sudo chmod 777 /home/ftp

Etapa 3: Definir regras do grupo de segurança

Adicione regras de entrada no grupo de segurança para o modo FTP configurado. Adicionar uma regra de grupo de segurança.

No modo ativo, clientes atrás de NAT precisam expor endereços IP reais, o que pode causar falhas de conexão.

  • Modo ativo: permita tráfego na porta 21.

  • Modo passivo: permita tráfego na porta 21 e nas portas 40000–40100 (pasv_min_port a pasv_max_port em /etc/vsftpd/vsftpd.conf). Configurar um site FTP no Windows.

Etapa 4: Verificar o serviço FTP

Valide o serviço FTP com um cliente FTP, navegador ou explorador de arquivos. Este exemplo usa o explorador de arquivos.

  1. Teste a conexão local.

    Execute o comando a seguir no servidor.

    ftp ftpuser@localhost 

    A mensagem Login successful confirma a conexão.

    image

  2. Teste a conexão do cliente.

    Abra um explorador de arquivos no cliente e insira o endereço FTP.

    image

    Insira o nome de usuário e a senha FTP para fazer login. Depois, envie e baixe arquivos.

Solução de problemas

Problema

Solução

Tempo limite após 227 Entering Passive Mode

Verifique o endereço IP público e as regras de firewall no cliente e no servidor.

550 Permission denied

Defina as permissões do diretório como 755.

Listagem exibe apenas diretórios vazios

Verifique a configuração chroot_local_user.

500 OOPS: vsftpd: refusing to run with writable root

Execute chmod a-w /data/ftp.

Tempo limite de conexão no modo passivo

Verifique as regras de firewall e a configuração pasv_address.

Impossível enviar arquivos

Confirme se as permissões do diretório são 755 ou 750.

Apêndice

Arquivo de configuração e parâmetros do vsftpd

Arquivos no diretório /etc/vsftpd:

  • /etc/vsftpd/vsftpd.conf: arquivo principal de configuração do vsftpd.

  • /etc/vsftpd/ftpusers: lista de bloqueios. Usuários listados aqui têm acesso FTP negado.

  • /etc/vsftpd/user_list: lista de permissões. Usuários listados aqui têm acesso FTP permitido.

Parâmetros no arquivo de configuração vsftpd.conf:

  • Parâmetros de controle de login:

    Parâmetro

    Descrição

    anonymous_enable=YES

    Aceita usuários anônimos.

    no_anon_password=YES

    Usuários anônimos podem fazer login sem senha.

    anon_root=(none)

    Diretório inicial para usuários anônimos.

    local_enable=YES

    Aceita usuários locais.

    local_root=(none)

    Diretório inicial para usuários locais.

  • Parâmetros de controle de permissão do usuário:

    Parâmetro

    Descrição

    write_enable=YES

    Permite envio de arquivos (global).

    local_umask=022

    Permissões de arquivo para envios de usuários locais.

    file_open_mode=0666

    Permissões de arquivo para envios. Funciona em conjunto com local_umask.

    anon_upload_enable=NO

    Permite envio de arquivos por anônimos.

    anon_mkdir_write_enable=NO

    Permite criação de diretórios por anônimos.

    anon_other_write_enable=NO

    Permite operações de edição e exclusão por anônimos.

    chown_username=lightwiter

    Proprietário atribuído aos arquivos enviados por usuários anônimos.