Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Tutorial para configurar servidor FTP no Ubuntu 22.04 (com exemplos reais)

8 min de leitura  ·  Guia técnico

Configurar servidor FTP no Ubuntu 22.04 é um processo que envolve a instalação e configuração do vsftpd (Very Secure FTP Daemon). Para estabelecer um servidor FTP funcional, você precisa instalar o pacote vsftpd, configurar usuários e definir permissões adequadas. Neste guia, você aprenderá a implementar um servidor FTP seguro e funcional em aproximadamente 30 minutos.

Pré-requisitos

  • Servidor Ubuntu 22.04 LTS com acesso root ou sudo
  • Conexão de internet estável para download de pacotes
  • Conhecimento básico de comandos Linux
  • Firewall configurado (ufw ou iptables)
  • Pelo menos 1GB de espaço livre em disco

Instalação do vsftpd no Ubuntu 22.04

O primeiro passo para configurar servidor FTP é instalar o vsftpd, que é o daemon FTP mais utilizado em sistemas Ubuntu devido à sua segurança e estabilidade.

Atualize o sistema e instale o vsftpd:

sudo apt update
sudo apt install vsftpd -y

Após a instalação, verifique o status do serviço:

sudo systemctl status vsftpd

Output esperado:

● vsftpd.service - vsftpd FTP server
     Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-01-15 10:30:45 UTC; 2min ago

Inicie e habilite o serviço para inicialização automática:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Configuração básica do arquivo vsftpd.conf

A configuração do servidor FTP Ubuntu é realizada através do arquivo /etc/vsftpd.conf. Este arquivo contém todas as diretivas necessárias para personalizar o comportamento do servidor.

Faça backup do arquivo original:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

Edite o arquivo de configuração:

sudo nano /etc/vsftpd.conf

Configure as seguintes opções essenciais:

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

Para habilitar modo passivo, adicione estas linhas:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

Reinicie o serviço para aplicar as configurações:

sudo systemctl restart vsftpd

Criação e configuração de usuários FTP

O gerenciamento de usuários FTP no Ubuntu pode ser feito através de usuários do sistema ou usuários virtuais. Para este tutorial, criaremos usuários do sistema com acesso restrito.

Crie um usuário FTP sem acesso SSH:

sudo useradd -m -s /bin/false ftpuser
sudo passwd ftpuser

Crie o diretório home e configure permissões:

sudo mkdir -p /home/ftpuser/ftp/upload
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload

Para permitir que o usuário acesse apenas seu diretório home, adicione ao arquivo de configuração:

sudo echo "ftpuser" >> /etc/vsftpd.userlist

Configure a lista de usuários no vsftpd.conf:

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

Configuração do firewall para FTP

A configuração de firewall FTP Ubuntu requer abertura de portas específicas para garantir conectividade adequada tanto no modo ativo quanto passivo.

Configure o UFW para permitir conexões FTP:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp

Verifique as regras aplicadas:

sudo ufw status

Output esperado:

Status: active

To                         Action      From
--                         ------      ----
21/tcp                     ALLOW       Anywhere
20/tcp                     ALLOW       Anywhere
30000:31000/tcp           ALLOW       Anywhere

Para servidores com iptables, use:

sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT

Habilitando SSL/TLS para segurança

A implementação de SSL no servidor FTP adiciona uma camada de criptografia essencial para proteger credenciais e dados transferidos.

Gere um certificado SSL autoassinado:

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

Configure as permissões do certificado:

sudo chmod 600 /etc/ssl/private/vsftpd.pem

Edite o vsftpd.conf para habilitar SSL:

ssl_enable=YES
allow_anon_ssl=NO
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
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Reinicie o serviço:

sudo systemctl restart vsftpd

Problemas comuns e como resolver

Erro: 500 OOPS: vsftpd: refusing to run with writable root inside chroot

Causa: O diretório home do usuário tem permissões de escrita, o que é considerado inseguro pelo vsftpd quando chroot está habilitado.
Solução: Remova as permissões de escrita do diretório home: sudo chmod a-w /home/ftpuser e crie um subdiretório para uploads com permissões adequadas.

Conexão recusada na porta 21

Causa: Firewall bloqueando a porta ou serviço vsftpd não está rodando.
Solução: Verifique o status do serviço com sudo systemctl status vsftpd e configure o firewall corretamente. Para servidores VPS Linux, certifique-se de que as portas estão abertas no painel de controle.

Modo passivo não funciona

Causa: Range de portas passivas não configurado ou bloqueado pelo firewall.
Solução: Configure pasv_min_port e pasv_max_port no vsftpd.conf e abra o range no firewall. Para conexões externas, configure pasv_address com o IP público do servidor.

Perguntas frequentes sobre configurar servidor FTP no Ubuntu 22.04

Qual é a diferença entre FTP e SFTP no Ubuntu 22.04?

FTP é um protocolo de transferência de arquivos tradicional que transmite dados em texto plano, enquanto SFTP usa SSH para criptografar toda a comunicação. O SFTP é mais seguro e recomendado para ambientes de produção, mas o FTP ainda é usado em redes internas controladas.

Como testar se o servidor FTP está funcionando corretamente?

Você pode testar usando o comando 'ftp localhost' no terminal ou conectar remotamente com 'ftp IP_DO_SERVIDOR'. Para testes mais completos, use clientes como FileZilla configurando o IP do servidor, porta 21 e as credenciais criadas.

É possível usar SSL/TLS com vsftpd no Ubuntu?

Sim, o vsftpd suporta SSL/TLS através da configuração ssl_enable=YES no arquivo de configuração. Você precisa gerar certificados SSL e configurar as opções de criptografia para proteger as transferências de arquivos e credenciais de login.

Quais portas o servidor FTP usa por padrão?

O FTP usa a porta 21 para comandos de controle e portas aleatórias altas (modo ativo) ou configuradas (modo passivo) para transferência de dados. No modo passivo, você pode definir um range específico como 30000-31000 para facilitar a configuração do firewall.

Como criar usuários FTP sem acesso SSH no Ubuntu?

Configure usuários virtuais no vsftpd ou crie usuários do sistema com shell /bin/false. Para usuários virtuais, use pam_userdb com arquivo de banco de dados Berkeley DB. Para usuários do sistema, execute 'useradd -s /bin/false -d /home/ftpuser ftpuser' e configure chroot_local_user=YES.

Conclusão

  • Configure sempre SSL/TLS em servidores FTP de produção para proteger credenciais e dados
  • Use chroot para isolar usuários em seus diretórios home e evitar acesso não autorizado
  • Monitore logs regularmente em /var/log/vsftpd.log para identificar tentativas de acesso suspeitas

Precisa de ajuda com configuração de servidor FTP?

Nossa equipe especializada pode auxiliar na configuração completa de servidores FTP seguros e otimizados. Oferecemos suporte técnico especializado para implementações em ambiente de produção.

Conheça nossos servidores VPS otimizados

  • 0 Os usuários acharam isso útil
  • ubuntu, ftp, vsftpd, servidor, linux, ssl, avirahost
Esta resposta foi útil?

Artigos Relacionados

Guia Completo: Como escolher o melhor plano de hospedagem para o seu site

Escolher o plano de hospedagem ideal para o seu site é fundamental para garantir seu bom...

Lista Prática: 5 Vantagens de ter SSL gratuito no seu site

Ter um certificado SSL no seu site não é apenas uma questão de segurança, mas também uma...

Comparativo: Hospedagem de sites vs. VPS: qual é a melhor opção?

Quando se trata de escolher entre hospedagem compartilhada ou VPS, as opções variam de acordo...

Dicas de Otimização de Servidores Linux

Dicas de Otimização de Servidores Linux Servidores Linux são amplamente utilizados por sua...

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online...