1. Introdução
Construir um servidor FTP no Ubuntu é uma solução altamente prática para desenvolvedores e administradores que desejam transferir arquivos de forma eficiente. Especialmente ao montar um servidor doméstico ou um ambiente simples de compartilhamento interno de arquivos, o FTP (File Transfer Protocol) continua sendo uma opção fácil de implantar e direta.
O que é um Servidor FTP?
Um servidor FTP é um software de servidor dedicado usado para transferir arquivos pela internet ou por uma rede local. Os usuários se conectam ao servidor usando um cliente FTP para enviar ou baixar arquivos.
Embora alternativas seguras como SFTP e SCP tenham se tornado mais comuns, o FTP ainda é amplamente usado devido à sua simplicidade e natureza leve. Em redes restritas ou para casos de uso básicos, o FTP continua sendo um protocolo prático e eficaz.
O Papel de um Servidor FTP no Ubuntu
O Ubuntu é uma das distribuições Linux mais populares e é amplamente utilizado em ambientes de servidor. Ao configurar um servidor FTP no Ubuntu, o compartilhamento de arquivos entre múltiplos dispositivos e usuários torna‑se muito mais fácil.
Casos de uso típicos incluem:
- Transferir arquivos para um servidor web
- Integrar com dispositivos IoT como Raspberry Pi
- Compartilhar documentos internos da empresa
A combinação de Ubuntu e um servidor FTP permite um gerenciamento de arquivos flexível e eficiente.
Propósito deste Artigo e Público‑Alvo
Este artigo explica como construir um servidor FTP no Ubuntu de forma passo a passo, fácil de entender mesmo para iniciantes. Destina‑se a leitores que:
- Estão familiarizados com operações básicas do Ubuntu, mas são novos no FTP
- Querem montar um servidor FTP para uso local ou empresarial leve
- Desejam compreender considerações de segurança e questões como codificação de nomes de arquivos
Seguindo as etapas deste guia, você será capaz de criar um ambiente de servidor FTP seguro e prático. Na próxima seção, começaremos com a instalação de um dos servidores FTP mais populares disponíveis: vsftpd.
2. Instalando o vsftpd
Ao montar um servidor FTP no Ubuntu, o software mais usado é o vsftpd (Very Secure FTP Daemon). Como o nome sugere, ele foi projetado com foco em segurança, sendo leve e estável, o que o torna amplamente adotado em ambientes corporativos e educacionais.
Esta seção explica como instalar o vsftpd no Ubuntu e configurar o serviço para iniciar automaticamente.
Instalando o vsftpd
Primeiro, instale o vsftpd usando o sistema de gerenciamento de pacotes do Ubuntu (APT). Execute os seguintes comandos na ordem indicada:
sudo apt update
sudo apt install vsftpd
sudo apt update: Atualiza a lista de pacotessudo apt install vsftpd: Instala o pacote vsftpd
Ao final da instalação, o serviço vsftpd inicia automaticamente.
Verificando o Status do Serviço
Para confirmar que o vsftpd está instalado e em execução corretamente, use o comando a seguir:
sudo systemctl status vsftpd
Se aparecer active (running), o servidor FTP está operando normalmente.
Habilitando a Inicialização Automática
O vsftpd costuma estar configurado para iniciar automaticamente por padrão, mas é boa prática confirmar:
sudo systemctl enable vsftpd
Isso garante que o vsftpd seja iniciado automaticamente após reinicializações do sistema.
Não Esqueça das Configurações do Firewall (UFW)
Se o UFW (Uncomplicated Firewall) estiver habilitado no Ubuntu, você deve permitir as portas do FTP:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
Isso abre as portas padrão do FTP: 20 (dados) e 21 (comando).
Após modificar as regras do firewall, recarregue o UFW:
sudo ufw reload
3. Configuração Básica
Depois de instalar o vsftpd, o próximo passo é personalizar seu comportamento editando o arquivo de configuração. Embora o vsftpd ofereça controle muito granular, muitas funcionalidades são desativadas por padrão, sendo necessário habilitar explicitamente as que você precisa.
Esta seção explica as opções de configuração mais comuns e essenciais.
Localização do Arquivo de Configuração
O arquivo de configuração principal do vsftpd está localizado em:
/etc/vsftpd.conf
Edite o arquivo usando o seguinte comando:
sudo nano /etc/vsftpd.conf
Após fazer as alterações, reinicie o vsftpd para aplicá-las:
sudo systemctl restart vsftpd
Permitir Operações de Escrita (Uploads, Exclusões, Modificações)
Por padrão, o vsftpd não permite o upload ou modificação de arquivos. Para habilitar o acesso de escrita, descomente ou adicione a seguinte linha:
write_enable=YES
Isso permite que os usuários façam upload, excluam e modifiquem arquivos dentro de seus diretórios home.
Habilitar Login de Usuários Locais
Para permitir que usuários do sistema Ubuntu façam login via FTP, habilite a seguinte opção:
local_enable=YES
Isso permite que os usuários listados em /etc/passwd façam login usando FTP.
Habilitar Listagem de Diretórios
Se as listagens de diretórios falharem em clientes FTP, verifique as seguintes configurações:
listen=YES
listen_ipv6=NO
Se o IPv6 estiver desabilitado no seu sistema, mas listen_ipv6=YES permanecer habilitado, problemas de conexão podem ocorrer.
Definir um Banner de Login (Opcional)
Você pode exibir uma mensagem personalizada quando os usuários se conectarem ao servidor FTP:
ftpd_banner=Welcome to your custom Ubuntu FTP server!
Isso é útil para exibir avisos operacionais ou informações de contato.
Habilitar Transferências em Modo ASCII (Se Necessário)
Se você precisar transferir arquivos de texto com formatos de nova linha diferentes corretamente, habilite o modo ASCII:
ascii_upload_enable=YES
ascii_download_enable=YES
O modo binário é suficiente na maioria dos casos, mas o modo ASCII pode ser útil em ambientes específicos.
O vsftpd requer permissão explícita para cada funcionalidade, tornando a configuração transparente e segura. Sempre reinicie o serviço após modificar o arquivo de configuração.
4. Melhorando a Segurança
Embora o FTP seja conveniente, ele não criptografa o tráfego por padrão, o que levanta preocupações de segurança—especialmente quando usado pela internet. Uma configuração de segurança adequada é essencial.
Esta seção apresenta medidas de segurança principais disponíveis no vsftpd.
Restringir o Acesso de Usuários com chroot
Permitir que usuários FTP acessem diretórios fora de seu diretório home é perigoso. Use chroot para confinar os usuários em seus diretórios home.
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_local_user=YESimpede que os usuários acessem diretórios acima de seu diretório home.allow_writeable_chroot=YESé necessário quando o diretório home tem permissões de escrita.
Sem essa configuração, o seguinte erro ocorre:
500 OOPS: vsftpd: refusing to run with writable root inside chrootRestringir Usuários de Login (Lista Branca)
Permitir que todos os usuários do sistema façam login via FTP aumenta o risco de segurança. Em vez disso, restrinja o acesso usando uma lista branca.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Adicione usuários permitidos à lista:
sudo nano /etc/vsftpd.userlist
ftpuser1
ftpuser2
Apenas usuários explicitamente listados podem fazer login.
Habilitar Comunicação Criptografada com FTPS (SSL/TLS)
O FTP padrão transmite credenciais e dados em texto plano. Para evitar interceptações, habilite FTPS (FTP sobre SSL/TLS).
Crie um certificado SSL:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Adicione o seguinte ao vsftpd.conf:
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Os clientes agora podem se conectar usando FTPS explícito.
Desabilitar Recursos Desnecessários
Desabilite recursos não utilizados para reduzir a superfície de ataque:
anonymous_enable=NO
Isso desabilita explicitamente o login anônimo.
5. Suporte a Nomes de Arquivos Japoneses
Ao transferir arquivos via FTP, nomes de arquivos japoneses podem ficar corrompidos devido a incompatibilidades de codificação—especialmente entre Windows e Ubuntu.
Causas Comuns de Problemas de Codificação de Nomes de Arquivo
- A localidade do Ubuntu não está configurada para UTF-8
- A codificação do cliente FTP não corresponde
- O vsftpd não está operando no modo UTF-8
Verificar e Configurar a Localidade do Ubuntu
locale
LANG=ja_JP.UTF-8
Se o UTF-8 não estiver habilitado:
sudo update-locale LANG=ja_JP.UTF-8
source /etc/default/locale
sudo locale-gen ja_JP.UTF-8
Verificar o Suporte a UTF-8 no vsftpd
utf8_filesystem=YES
Esta opção pode não existir em todas as versões, mas as localizações de sistema UTF-8 geralmente são suficientes.
Configurações do Cliente FTP (Exemplo FileZilla)
- Abrir Gerenciador de Sites
- Selecionar o servidor
- Abrir a aba Charset
- Habilitar charset personalizado e defini-lo como
UTF-8
6. Modo Passivo e Configuração de Firewall
Problemas de FTP, como falhas na listagem de diretórios ou transferências interrompidas, são frequentemente causados por modo passivo incorreto ou configurações de firewall.
O que é o Modo Passivo?
- Modo Ativo: O servidor inicia a conexão de dados
- Modo Passivo: O cliente inicia todas as conexões
O modo passivo é fortemente recomendado para redes modernas.
Habilitar o Modo Passivo no vsftpd
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
Especificar Endereço IP Externo (Ambientes NAT)
pasv_address=203.0.113.45
Abrir Portas Necessárias no UFW
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
7. Configuração por Usuário
Em ambientes de produção, é comum atribuir diferentes permissões e diretórios por usuário.
Criar Usuários FTP Dedicados
sudo adduser ftpuser1
sudo useradd -m -s /usr/sbin/nologin ftpuser2
Estrutura de Diretórios Recomendada
/home/ftpuser1/
└── files/
sudo mkdir /home/ftpuser1/files
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/files
sudo chmod 755 /home/ftpuser1
Arquivos de Configuração Específicos por Usuário
user_config_dir=/etc/vsftpd_user_conf
sudo mkdir /etc/vsftpd_user_conf
sudo nano /etc/vsftpd_user_conf/ftpuser1
local_root=/home/ftpuser1/files
write_enable=YES
8. Verificação de Operação
Após concluir todas as etapas de configuração, verifique se o servidor FTP está operando corretamente.
Teste via Linha de Comando
ftp localhost
ls
cd files
put test.txt
get test.txt
Teste com Cliente GUI (FileZilla)
Verifique a conexão, listagem de diretórios, uploads e downloads.
9. Solução de Problemas
Problemas comuns de FTP e suas soluções incluem falhas de login, erros de permissão, configuração incorreta do modo passivo e problemas de codificação.
10. Conclusão
Este artigo explicou como construir um servidor FTP seguro e prático no Ubuntu usando vsftpd, abordando instalação, configuração, segurança, codificação, modo passivo, gerenciamento de usuários, verificação e solução de problemas.
FAQ
Perguntas frequentes sobre a configuração e operação de servidores FTP no Ubuntu.


