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
-
Atualize o sistema e instale o
vsftpd.sudo yum update -y sudo yum install vsftpd -y -
Inicie o vsftpd e habilite a inicialização automática do serviço.
sudo systemctl start vsftpd sudo systemctl enable vsftpd -
Verifique se o serviço está em execução.
netstat -antup | grep ftpA saída a seguir confirma que o vsftpd está em execução.

Por padrão, o vsftpd permite acesso anônimo somente leitura.
Etapa 2: Configurar o vsftpd
-
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 -
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 -
Edite o arquivo de configuração do
vsftpd.NotaUse o modo passivo. A maioria dos clientes está atrás de firewalls ou NAT e não consegue expor endereços IP reais.
-
Faça backup do arquivo de configuração do
vsftpd.sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak -
Edite o arquivo de configuração.
sudo vim /etc/vsftpd/vsftpd.conf -
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 -
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
-
-
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.
-
Teste a conexão local.
Execute o comando a seguir no servidor.
ftp ftpuser@localhostA mensagem
Login successfulconfirma a conexão.
-
Teste a conexão do cliente.
Abra um explorador de arquivos no cliente e insira o endereço FTP.

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
-
Atualize o sistema e instale o
vsftpd.sudo apt update && sudo apt upgrade -y sudo apt install vsftpd -y -
Inicie o
vsftpde habilite a inicialização automática do serviço.sudo systemctl start vsftpd sudo systemctl enable vsftpd
Etapa 2: Configurar o vsftpd
-
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) -
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 -
Faça backup do arquivo de configuração original.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak -
Edite o arquivo de configuração.
sudo nano /etc/vsftpd.confAplique 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 directoryAcrescente 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 -
Reinicie o vsftpd.
sudo systemctl restart vsftpd -
O vsftpd cria um usuário ftp padrão sem senha. Defina uma senha para esse usuário.
sudo passwd ftpDefina uma senha forte e ignore os demais prompts.
-
Adicione o usuário à lista de permissões de usuários FTP.
echo "ftp" | sudo tee -a /etc/vsftpd.userlist -
Crie um diretório FTP e defina as permissões.
-
Crie uma pasta FTP.
sudo mkdir /home/ftp -
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.
-
Teste a conexão local.
Execute o comando a seguir no servidor.
ftp ftpuser@localhostA mensagem
Login successfulconfirma a conexão.
-
Teste a conexão do cliente.
Abra um explorador de arquivos no cliente e insira o endereço FTP.

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 |
Verifique o endereço IP público e as regras de firewall no cliente e no servidor. |
|
|
Defina as permissões do diretório como 755. |
|
Listagem exibe apenas diretórios vazios |
Verifique a configuração |
|
|
Execute |
|
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.