O Very Secure FTP Daemon (vsftpd) é um servidor FTP leve para Linux. Este tópico explica como instalar e configurar o vsftpd em um Simple Application Server baseado em Linux e verificar a conexão com o FileZilla.
O FTP transmite dados, incluindo credenciais, em texto simples. Para cargas de trabalho de produção que exigem criptografia, use SFTP ou FTPS. Este guia aborda o vsftpd apenas 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 Criar um simple application server.
Uma senha definida para o servidor. Consulte Definir ou redefinir a senha de um servidor.
O FileZilla instalado na 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 as 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, pois funciona melhor em firewalls e NAT.
O FTP oferece três modos de autenticação:
|
Modo |
Segurança |
Descrição |
|
Modo de usuário anônimo |
Mais baixa |
Não requer nome de usuário ou senha. Adequado apenas para transferências públicas de arquivos. Evite em produção. |
|
Modo de usuário local |
Média |
Autentica com base nos usuários locais do Linux. Abordado neste guia. |
|
Modo de usuário virtual |
Mais alta |
Usa usuários virtuais isolados do sistema. Requer configuração avançada. |
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.2Caso o vsftpd já esteja instalado, obtenha as credenciais de FTP na documentação da imagem da aplicação e pule para a Etapa 3: Abrir portas no firewall.
-
Instale o vsftpd. Este exemplo usa o CentOS 7. Para outras distribuições, consulte Criar um site FTP em uma instância ECS.
sudo yum install -y vsftpdUma mensagem de sucesso confirma a instalação.
-
Configure o vsftpd para iniciar automaticamente na inicialização do sistema:
sudo systemctl enable vsftpd.service -
Inicie o vsftpd:
sudo systemctl start vsftpd.serviceNotaSe o serviço falhar ao iniciar com o erro
Job for vsftpd.service failed because the control process exited with error code, a porta 21 pode estar em uso. Executelsof -i:21para identificar o processo e executekill -9 <PID>para interrompê-lo antes de reiniciar o vsftpd. -
Verifique se o vsftpd está em execução:
sudo netstat -antup | grep ftpSe a porta do serviço FTP aparecer na saída, o vsftpd está em execução.
Etapa 2: Configurar o modo de acesso
Escolha um dos modos a seguir. O modo de usuário local é recomendado para 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 inserir e confirmar 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 editar:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak -
Abra o arquivo de configuração para edição:
NotaSe você instalou o vsftpd com
apt install vsftpd, o arquivo de configuração estará 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 à direita. 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 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 salvar e fechar. -
Crie o arquivo da lista de isenção de chroot. Os usuários listados aqui não ficam restritos ao diretório inicial. 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 isenções. PressioneEsc, digite:wqe pressioneEnterpara salvar e fechar. -
Pare o firewall do sistema. O vsftpd gerencia 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
PasswordAuthenticationno final do arquivo e defina comoyes. PressioneEsc, digite:wq!e pressioneEnterpara salvar e fechar. -
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-o apenas para transferências públicas de arquivos em ambientes fora de produção.
-
Abra o arquivo de configuração do vsftpd:
NotaSe você instalou o vsftpd com
apt install vsftpd, o arquivo de configuração estará em/etc/vsftpd.conf.sudo vim /etc/vsftpd/vsftpd.confPressione
ipara entrar no modo de edição. -
Defina os parâmetros a seguir. Os padrões exatos variam conforme a distribuição Linux. Verifique se ambos os valores estão definidos como
YESapós a edição. Certifique-se de que nenhuma dessas linhas esteja comentada com#e evite espaços à direita./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 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 salvar e fechar. -
Conceda permissões de gravação 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. O modo passivo requer a porta 21 e o intervalo de portas passivas. Consulte Gerenciar um firewall para obter instruções.
|
Tipo de aplicação |
Protocolo |
Intervalo de portas |
|
FTP |
TCP |
21 |
|
Personalizado |
TCP |
|
Após adicionar as regras, elas aparecem na página Firewall:

Etapa 4: Verificar a conexão FTP
Use o FileZilla para confirmar se o servidor FTP está acessível.
Este exemplo usa o FileZilla 3.64.0. A interface pode variar 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
Um 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 do FTP.
Clique em Connect.
Após a conexão, use o FileZilla para fazer upload, download ou excluir arquivos. A interface divide-se 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 de diretórios 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 acesso FTP negado (lista de bloqueios)./etc/vsftpd/user_list: usuários neste arquivo têm 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 inicial para usuários anônimos. |
|
|
Aceita usuários locais. |
|
|
Diretório inicial 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 excluam arquivos. |
|
|
Proprietário atribuído aos arquivos enviados por usuários anônimos. |