Servidor FTP · 7 min read · Dec 22, 2025

Como Instalar um Servidor FTP Seguro com vsftpd no Debian 12

vSFTPd ou Very Secure FTP Daemon é um software de servidor FTP gratuito e de código aberto. É um daemon FTP para sistemas operacionais semelhantes ao Unix e é licenciado sob a Licença Pública Geral GNU. vSFTPd é um dos daemons FTP mais amplamente utilizados, é rápido e leve em termos de recursos do sistema, seguro devido à integração com PAM e SSL, e estável. vSFTPd conquistou a confiança de grandes empresas como RedHat, SUSE, Debian, Gnome, KDE, etc. devido à sua sofisticação.

vSFTPd pode rodar com IPv6 e suporta configurações e usuários de IP virtuais. Pode ser executado como um daemon autônomo ou via inetd. Para gerenciamento de usuários, vSFTPd fornece um recurso que permite que os usuários definam sua própria configuração, como restrições por IP de origem, reconfigurabilidade e limitação de largura de banda. Além disso, vSFTPd suporta um módulo de autenticação plug-in (PAM) para usuários virtuais e também fornece integração de segurança com SSL/TLS.

Neste tutorial, você aprenderá como configurar e criar um servidor FTP seguro com vsftpd em um servidor Debian 12. Neste guia, você também aprenderá como proteger a instalação do seu servidor FTP via UFW (Firewall Descomplicado) e como se conectar ao servidor FTP usando o cliente FTP FileZilla.

Pré-requisitos

Antes de prosseguir, certifique-se de ter o seguinte:

  • Um servidor Debian 12.
  • Um usuário não-root com privilégios de administrador sudo.
  • O pacote openssl está instalado em seu servidor.

Instalando vsftpd

O vsftpd é uma implementação do protocolo FTP para sistemas operacionais UNIX e Linux. O pacote vsftpd está disponível na maioria das distribuições Linux, incluindo Debian. Agora você instalará o vsftpd via APT e verificará o serviço vsftpd para garantir que o serviço esteja em execução.

Antes de instalar o pacote vsftpd, execute o seguinte comando para atualizar seu repositório Debian.

sudo apt update

atualizar repositório

Agora instale o pacote vsftpd usando o comando apt install abaixo.

sudo apt install vsftpd

Confirme a instalação digitando y e pressione ENTER.

instalar vsftpd

Após a instalação do vsftpd, o serviço vsftpd será iniciado automaticamente e habilitado. Verifique o serviço vsftpd usando o seguinte comando.

sudo systemctl is-enabled vsftpd  
sudo systemctl status vsftpd

A saída a seguir confirma que o serviço vsftpd está em execução e habilitado. Além disso, o serviço vsftpd será executado automaticamente na inicialização do sistema.

verificar vsftpd

Configurando vsftpd

Na próxima etapa, você configurará e criará um servidor FTP seguro com vsftpd. Você gerará certificados SSL/TLS e modificará a configuração padrão do vsftpd /etc/vsftpd.conf.

Primeiro, execute o comando openssl abaixo para gerar novos certificados TLS que serão usados para a instalação do seu servidor vsftpd.

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Insira suas informações quando solicitado. Após o término do processo, seus certificados TLS estarão disponíveis em /etc/ssl/private/vsftpd.pem.

gerar tls

Agora execute o comando abaixo para criar um novo arquivo /etc/vsftpd.userlist para armazenar usuários FTP.

touch /etc/vsftpd.userlist

Depois disso, execute o seguinte comando para fazer backup da configuração do vsftpd. Em seguida, abra a configuração do vsftpd /etc/vsftpd.conf usando o editor nano.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig  
sudo nano /etc/vsftpd.conf

Desative o acesso anônimo ao seu servidor vsftpd alterando a opção anonymous_enable para NO.

anonymous_enable=NO

Permita que usuários locais dentro do arquivo /etc/passwd e usuários PAM façam login no servidor vsftpd alterando a opção local_enable para YES.

local_enable=YES

Permita que usuários FTP enviem arquivos para o servidor vsftpd alterando a opção write_enable para YES.

write_enable=YES

Agora habilite chroot ou prisão para usuários FTP adicionando as seguintes opções. Isso bloqueará o usuário FTP no diretório /home/$USER/chroot. Por exemplo, o usuário FTP bob será bloqueado dentro do diretório /home/bob/chroot.

chroot_local_user=YES  
user_sub_token=$USER  
local_root=/home/$USER/chroot

Em seguida, adicione a seguinte configuração para configurar usuários virtuais do vsftpd. Qualquer usuário dentro do arquivo /etc/vsftpd.userlist será permitido fazer login no servidor vsftpd.

userlist_enable=YES  
userlist_file=/etc/vsftpd.userlist  
userlist_deny=NO

Adicione as seguintes linhas para proteger seu servidor vsftpd com certificados SSL/TLS. Isso forçará o login do usuário e a conexão de transferência de dados a usar conexões seguras.

rsa_cert_file=/etc/ssl/private/vsftpd.pem  
rsa_private_key_file=/etc/ssl/private/vsftpd.pem  
ssl_enable=YES  
force_local_data_ssl=YES  
force_local_logins_ssl=YES  
ssl_tlsv1=YES  
ssl_sslv2=NO  
ssl_sslv3=NO  
require_ssl_reuse=NO  
ssl_ciphers=HIGH

Agora adicione a configuração abaixo para configurar as conexões em modo passivo usando portas entre 20000 e 25000.

pasv_min_port=20000  
pasv_max_port=25000

Salve e saia do arquivo quando terminar.

Agora execute o seguinte comando systemctl para reiniciar o serviço vsftpd e aplicar as alterações que você fez.

sudo systemctl restart vsftpd

Com isso, seu servidor vsftpd agora está em execução com novas configurações.

Configurando o Firewall

Na próxima etapa, você instalará o UFW (Firewall Descomplicado) em seu servidor Debian e protegerá a instalação do seu servidor FTP com ele. Você instalará o UFW via APT, abrirá a porta do servidor FTP 20:21/tcp e a porta de conexão de dados em modo passivo 20000:25000/tcp.

Instale o UFW usando o seguinte comando apt. Digite y para prosseguir com a instalação.

sudo apt install ufw

instalar ufw

Após a instalação do UFW, execute os comandos ufw abaixo para abrir a porta para o serviço OpenSSH, as portas do servidor vsftpd 20:21, e a conexão FTP em modo passivo entre as portas 20000 a 25000.

sudo ufw allow OpenSSH  
sudo ufw allow 20:21/tcp  
sudo ufw allow 20000:25000/tcp

Em seguida, execute o comando ufw abaixo para iniciar e habilitar o UFW.

sudo ufw enable

Digite para confirmação e o UFW deve estar em execução e habilitado em seu sistema Debian.

configurar ufw

Verifique o status detalhado do UFW usando o comando abaixo.

sudo ufw status

A saída ativa confirma que o UFW está em execução e habilitado. Além disso, o serviço OpenSSH foi adicionado, e algumas portas para o servidor vsftpd 20:21/tcp e 20000:25000/tcp foram adicionadas.

verificar ufw

Configurando Usuários Virtuais FTP

Neste ponto, você terminou a configuração do seu servidor vsftpd, agora você criará um novo usuário FTP que será usado para fazer login no servidor FTP e enviar arquivos para ele.

Execute o seguinte comando para criar um novo arquivo /bin/ftponly. Em seguida, torne-o executável via o comando chmod abaixo. O arquivo /bin/ftponly será usado como um shell padrão para usuários FTP.

echo -e '#!/bin/sh
echo "Shell para usuários FTP apenas."' | sudo tee -a  /bin/ftponly  
sudo chmod a+x /bin/ftponly

Adicione o arquivo /bin/ftponly a /etc/shells para garantir que seja um shell válido.

sudo echo "/bin/ftponly" >> /etc/shells

Agora crie um novo usuário FTP bob e configure a senha executando o comando abaixo. Insira sua senha e repita.

sudo useradd -m -s /bin/ftponly bob  
sudo passwd bob

Depois disso, execute o seguinte comando para criar um novo diretório chroot /home/bob/chroot para o usuário bob. Além disso, você garantirá que o diretório chroot /home/bob/chroot tenha a propriedade adequada.

sudo -u bob mkdir -p /home/bob/chroot  
sudo chown -R bob: /home/bob/chroot

Em seguida, execute o comando abaixo para criar outros novos diretórios data e upload que serão usados para armazenar dados do usuário FTP. Certifique-se de configurar a propriedade adequada para esses diretórios.

sudo -u bob mkdir -p /home/bob/chroot/{data,upload}  
sudo chown -R bob: /home/bob/chroot/{data,upload}

Agora execute o comando abaixo para alterar a permissão do diretório /home/bob/chroot para 550 e ambos os diretórios data e upload para 750.

sudo chmod 550 /home/bob/chroot  
sudo chmod 750 /home/bob/chroot/{data,upload}

Agora que você criou um novo usuário, execute o comando abaixo para adicionar o usuário bob ao arquivo /etc/vsftpd.userlist.

echo "bob" >> /etc/vsftpd.userlist

Por fim, execute o seguinte comando para reiniciar o serviço vsftpd e aplicar as alterações. Após executar o comando, seu usuário FTP bob está pronto.

sudo systemctl restart vsftpd

Enviando Arquivos para o Servidor FTP

Para verificar sua instalação do servidor vsftpd, você se conectará ao servidor FTP com o novo usuário que você criou via software cliente FTP. Em seguida, você também enviará novos arquivos para garantir que sua instalação seja bem-sucedida.

Baixe e instale o cliente FTP para sua máquina local. Você pode usar o FileZilla, que pode ser instalado no Windows, Linux e MacOS. Assim que o FileZilla estiver instalado, abra-o para se conectar ao seu servidor FTP seguro.

Insira o endereço IP do seu servidor FTP, e o nome de usuário e senha do seu usuário FTP. Em seguida, clique em Conexão Rápida para confirmar.

Selecione a opção Sempre confiar neste certificado em futuras sessões e clique em OK para confirmar.

aceitar certificados

Uma vez conectado ao seu servidor FTP, você deve ver dois diretórios de dados e upload disponíveis em seu servidor FTP. Você pode enviar arquivos para ambos os diretórios de dados e upload, mas não pode enviar arquivos fora desses diretórios protegidos via chroot.

conectado ao servidor ftp

Você pode arrastar e soltar seus arquivos para enviar ao servidor FTP.

arquivos enviados

Conclusão

Para concluir, você criou com sucesso um servidor FTP seguro com vsftpd no servidor Debian 12. Você também protegeu a instalação do seu servidor FTP via UFW (Firewall Descomplicado) e aprendeu como criar usuários FTP. Agora você pode usar o servidor FTP como a principal transferência de dados entre sua máquina local e seu servidor. Você também pode encontrar outro software cliente FTP de acordo com suas preferências.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.