O Very Secure FTP Daemon (vsftpd) é um servidor FTP leve para Linux. Este tópico apresenta o passo a passo para instalar e configure o vsftpd em um Simple Application Server baseado em Linux e verifique a conexão usando o FileZilla.
O FTP transmite dados — incluindo credenciais — em texto simples. Para cargas de trabalho em produção que exigem criptografia, considere usar SFTP ou FTPS. Este guia aborda o vsftpd para casos de uso em que o FTP é um requisito específico.
Pré-requisitos
Antes de começar, verifique se você tem:
Um Simple Application Server baseado em Linux. Consulte Create a simple application server
Uma senha definida para o servidor. Consulte Set or reset the password of a server
O FileZilla instalado em sua máquina local. Baixe-o em filezilla-project.org
Modos de conexão e autenticação FTP
O FTP opera em dois modos de conexão:
Modo ativo: o cliente envia suas informações de porta ao servidor, e o servidor inicia a conexão de dados.
Modo passivo: o servidor abre uma porta e envia as informações da porta ao cliente, que então inicia a conexão. Este guia configura o modo passivo, que funciona melhor em ambientes com firewalls e NAT.
O FTP suporta três modos de autenticação:
|
Modo |
Segurança |
Descrição |
|
Modo de usuário anônimo |
Menor |
Não exige nome de usuário nem senha. Adequado apenas para transferências de arquivos públicos. Evite em produção. |
|
Modo de usuário local |
Média |
Autentica usando usuários locais do Linux. Abordado neste guia. |
|
Modo de usuário virtual |
Maior |
Utiliza usuários virtuais isolados do sistema. Requer configuração especializada. |
Este guia aborda o modo de usuário local (recomendado) e o modo de usuário anônimo.
Etapa 1: Instalar o vsftpd
-
Verifique se o vsftpd já está instalado. Alguns servidores implantados com imagens de aplicação incluem o vsftpd pré-instalado — reinstalá-lo pode causar conflitos.
vsftpd -vSe a saída exibir um número de versão, o vsftpd já está instalado:
vsftpd: version 3.0.2Se o vsftpd já estiver instalado, obtenha as credenciais FTP na documentação da imagem de aplicação e vá direto para Etapa 3: Abrir portas no firewall.
-
Instale o vsftpd. Este exemplo usa CentOS 7. Para outras distribuições, consulte Build an FTP site on an ECS instance.
sudo yum install -y vsftpdUma mensagem de êxito confirme a instalação.
Installed: vsftpd.x86_64 0:3.0.2-28.el7 Complete! -
Ative o vsftpd para iniciar automaticamente na inicialização do sistema:
sudo systemctl enable vsftpd.service -
Inicie o vsftpd:
sudo systemctl start vsftpd.serviceNotaSe o service não iniciar com o erro
Job for vsftpd.service failed because the control process exited with error code, a porta 21 pode já estar em uso. Executelsof -i:21para identificar o processo e, em seguida, executekill -9 <PID>para encerrá-lo antes de reiniciar o vsftpd. -
Confirme que o vsftpd está em execução:
sudo netstat -antup | grep ftpSe a porta do service FTP aparecer na saída, o vsftpd está em execução.
[root@iZbp166dsac66txo49xxx ~]# netstat -antup | grep ftp tcp6 0 0 :::21 :::* LISTEN 53730/vsftpd
Etapa 2: Configure o modo de acesso
Escolha um dos modos a seguir. O modo de usuário local é recomendado por oferecer maior segurança.
Modo de usuário local (recomendado)
-
Crie um usuário Linux dedicado para acesso FTP. Este exemplo usa
ftptest.sudo adduser ftptest -
Defina uma senha para o usuário:
sudo passwd ftptestSiga as instruções para insira e confirme a senha.
-
Crie o diretório FTP:
sudo mkdir /var/ftp/test -
Atribua a propriedade do diretório ao usuário
ftptest:sudo chown -R ftptest:ftptest /var/ftp/test -
Faça backup do arquivo de configuração do vsftpd antes de edite-o:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak -
Abra o arquivo de configuração para edite:
NotaSe você instale o vsftpd com
apt install vsftpd, o arquivo de configuração está em/etc/vsftpd.conf.sudo vim /etc/vsftpd/vsftpd.confPressione
ipara entrar no modo de edição. -
Atualize os parâmetros a seguir. Certifique-se de que nenhuma dessas linhas esteja comentada com
#e evite espaços no final das linhas — espaços extras fazem o vsftpd falhar ao reiniciar./etc/vsftpd/vsftpd.conf# Disable anonymous login anonymous_enable=NO # Allow local users to log in local_enable=YES # Listen on IPv4 listen=YESComente o listener IPv6 adicionando
#no início da linha:#listen_ipv6=YES -
Adicione os parâmetros a seguir ao final do arquivo. Substitua
39.105.xx.xxpelo endereço IP público do seu 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=50010Pressione
Esc, digite:wqe pressioneEnterpara salve e fechar o arquivo. -
Crie o arquivo de lista de exceções do chroot. Os usuários listados nele não ficam restritos ao diretório home. O arquivo é obrigatório mesmo que esteja vazio.
sudo vim /etc/vsftpd/chroot_listPressione
ipara entrar no modo de edição. Adicione os nomes de usuário isentos, um por linha (deixe o arquivo em branco se não houver exceções). PressioneEsc, digite:wqe pressioneEnterpara salve e fechar. -
Pare o firewall do sistema. O vsftpd gerencie o acesso às portas pelo firewall do Simple Application Server configurado na Etapa 3.
sudo systemctl stop firewalld -
Ative a autenticação por senha na configuração SSH:
sudo vi /etc/ssh/sshd_configLocalize
PasswordAuthenticationao final do arquivo e defina o valor comoyes. PressioneEsc, digite:wq!e pressioneEnterpara salve e fechar.# Accept locale-related environment variables AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS # Override the default of no subsystems Subsystem sftp /usr/libexec/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server UseDNS no AddressFamily inet SyslogFacility AUTHPRIV PermitRootLogin yes PasswordAuthentication yes -
Reinicie o vsftpd para aplicar todas as alterações:
sudo systemctl restart vsftpd.service
Modo de usuário anônimo
O modo anônimo permite que qualquer pessoa se conecte sem senha. Use este modo apenas para transferências de arquivos públicos em ambientes que não sejam de produção.
-
Abra o arquivo de configuração do vsftpd:
NotaSe você instale o vsftpd com
apt install vsftpd, o arquivo de configuração está em/etc/vsftpd.conf.sudo vim /etc/vsftpd/vsftpd.confPressione
ipara entrar no modo de edição. -
Defina os parâmetros a seguir. Os valores padrão variam conforme a distribuição Linux — confirme que ambos estão definidos como
YESapós a edição. Certifique-se de que nenhuma dessas linhas esteja comentada com#e evite espaços no final das linhas./etc/vsftpd/vsftpd.confanonymous_enable=YES anon_upload_enable=YES listen=YES listen_ipv6=NO -
Adicione os parâmetros a seguir ao final do arquivo. Substitua
39.105.xx.xxpelo endereço IP público do seu 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.xxPressione
Esc, digite:wqe pressioneEnterpara salve e fechar. -
Conceda permissões de escrita no diretório FTP padrão (
/var/ftp/pub):sudo chmod o+w /var/ftp/pub/ -
Reinicie o vsftpd:
sudo systemctl restart vsftpd.service
Etapa 3: Abrir portas no firewall
Adicione regras de entrada no firewall do Simple Application Server para permitir o tráfego FTP. No modo passivo, são necessárias a porta 21 e o intervalo de portas passivas. Consulte Manage a firewall para obter instruções.
|
Tipo de aplicação |
Protocolo |
Intervalo de portas |
|
FTP |
TCP |
21 |
|
Custom |
TCP |
|
As regras de firewall estão configuradas.
Etapa 4: Verifique a conexão FTP
Use o FileZilla para confirme que o servidor FTP está acessível.
Este exemplo usa o FileZilla 3.64.0. A interface pode ser diferente em outras versões.
Abra o FileZilla.
Acesse File > Site Manager.
Clique em New site (N) no canto inferior esquerdo da caixa de diálogo Site Manager.
-
Insira um nome para o novo site e configure a conexão:

Parâmetro
Valor
Name
Nome personalizado para o site. Exemplo:
test-01.Protocol
FTP
Host
Endereço IP público do servidor (exemplo:
121.43.XX.XX)Port
21
Logon type
Anonymous (para modo anônimo) ou Normal (para modo de usuário local)
Para o modo de usuário local, defina Logon type como Normal e insira o nome de usuário e a senha FTP.
Clique em Connect.
Após conectar, use o FileZilla para fazer upload, baixe ou exclua arquivos. A interface é dividida em quatro seções:

|
Seção |
Descrição |
|
① |
Status da conexão, comandos e resultados das tarefas |
|
② |
Máquina local: listagem de diretórios e arquivos |
|
③ |
Servidor remoto: listagem do diretório FTP. No modo anônimo, o diretório padrão é |
|
④ |
Fila de transferência e logs de tarefas |
Referência de configuração do vsftpd
O diretório /etc/vsftpd contém três arquivos principais:
/etc/vsftpd/vsftpd.conf: arquivo de configuração principal/etc/vsftpd/ftpusers: usuários neste arquivo têm o acesso FTP negado (lista de bloqueios)/etc/vsftpd/user_list: usuários neste arquivo têm o acesso FTP permitido (lista de permissões)
Parâmetros de controle de login
|
Parâmetro |
Descrição |
|
|
Aceita usuários anônimos |
|
|
Ignora a solicitação de senha para usuários anônimos |
|
|
Diretório home para usuários anônimos |
|
|
Aceita usuários locais |
|
|
Diretório home para usuários locais |
Parâmetros de permissão
|
Parâmetro |
Descrição |
|
|
Permite que todos os usuários façam upload de arquivos |
|
|
Máscara de permissão de arquivo para uploads de usuários locais |
|
|
Aplica a umask às permissões dos arquivos enviados |
|
|
Permite que usuários anônimos façam upload de arquivos |
|
|
Permite que usuários anônimos criem diretórios |
|
|
Permite que usuários anônimos modifiquem ou exclua arquivos |
|
|
Proprietário atribuído aos arquivos enviados por usuários anônimos |