Servidores FTP (File Transfer Protocol) são amplamente usados para transferir arquivos entre sistemas através de uma rede. Nesta aula, vamos explorar como configurar e gerenciar servidores FTP no Linux, focando no vsftpd (Very Secure FTP Daemon), conhecido por sua segurança e desempenho. Vamos cobrir a instalação, configuração básica, segurança e práticas recomendadas.
O que é FTP?
FTP é um protocolo de rede padrão usado para transferir arquivos entre um cliente e um servidor em uma rede de computadores. Ele opera em um modelo cliente-servidor e utiliza portas específicas (21 para comandos e 20 para transferência de dados).
Instalação do vsftpd
O vsftpd é um dos servidores FTP mais seguros e populares disponíveis para Linux.
Instalação do vsftpd
Para instalar o vsftpd em uma distribuição baseada em Debian (como Ubuntu):
$ sudo apt update
$ sudo apt install vsftpd
Para distribuições baseadas em Red Hat (como CentOS):
$ sudo yum install vsftpd
Configuração Básica do vsftpd
Após a instalação, o arquivo de configuração principal do vsftpd está localizado em /etc/vsftpd.conf
.
Configuração Inicial
Abra o arquivo de configuração com um editor de texto:
$ sudo nano /etc/vsftpd.conf
Ajuste as seguintes configurações para uma configuração básica:
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
anonymous_enable=NO
: Desativa o acesso anônimo.local_enable=YES
: Permite o login de usuários locais.write_enable=YES
: Permite operações de escrita (upload) para usuários autenticados.local_umask=022
: Define a máscara de permissões para arquivos criados.dirmessage_enable=YES
: Ativa mensagens de diretório.use_localtime=YES
: Usa o horário local para registros.xferlog_enable=YES
: Ativa o registro de transferências.connect_from_port_20=YES
: Usa a porta 20 para conexões FTP de dados.chroot_local_user=YES
: Restringe usuários locais ao seu diretório inicial.
Iniciando e Parando o vsftpd
Para iniciar o serviço vsftpd:
$ sudo systemctl start vsftpd
Para parar o serviço:
$ sudo systemctl stop vsftpd
Para verificar o status do serviço:
$ sudo systemctl status vsftpd
Criando Usuários FTP
Adicionando Usuários
Para adicionar um novo usuário FTP, use o comando useradd
:
$ sudo useradd -m -d /home/usuarioftp -s /bin/bash usuarioftp
$ sudo passwd usuarioftp
Isso cria um usuário chamado usuarioftp
com o diretório inicial /home/usuarioftp
e define uma senha para o usuário.
Permissões e Propriedades
Para garantir que o usuário tenha as permissões corretas, defina as propriedades do diretório inicial:
$ sudo chown -R usuarioftp:usuarioftp /home/usuarioftp
Configuração de Segurança
Configuração de SSL/TLS
Para garantir que as conexões FTP sejam seguras, configure SSL/TLS no vsftpd.
- Gere um certificado SSL (use Certbot para certificados da Let’s Encrypt):
$ sudo apt install certbot # Debian
$ sudo yum install certbot # Red Hat
$ sudo certbot certonly --standalone -d ftp.meusite.com
- Edite o arquivo
/etc/vsftpd.conf
para adicionar as configurações SSL:
ssl_enable=YES
rsa_cert_file=/etc/letsencrypt/live/ftp.meusite.com/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/ftp.meusite.com/privkey.pem
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
- Reinicie o vsftpd:
$ sudo systemctl restart vsftpd
Configuração de Firewalls
Certifique-se de que seu firewall permite tráfego nas portas FTP. Adicione regras para permitir FTP (porta 21) e FTP passivo (um intervalo de portas, por exemplo, 40000-50000).
Para ufw
(firewall do Ubuntu):
$ sudo ufw allow 21/tcp
$ sudo ufw allow 40000:50000/tcp
Para firewalld
(firewall do CentOS):
$ sudo firewall-cmd --permanent --add-port=21/tcp
$ sudo firewall-cmd --permanent --add-port=40000-50000/tcp
$ sudo firewall-cmd --reload
Monitoramento e Logs
Logs do vsftpd
Os logs do vsftpd são armazenados em /var/log/vsftpd.log
.
Para monitorar os logs em tempo real:
$ sudo tail -f /var/log/vsftpd.log
Exemplos Práticos
Exemplo 1: Configurando um Servidor FTP Seguro
- Instale o vsftpd:
$ sudo apt install vsftpd # Debian
$ sudo yum install vsftpd # Red Hat
- Configure o vsftpd editando o arquivo
/etc/vsftpd.conf
:
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
ssl_enable=YES
rsa_cert_file=/etc/letsencrypt/live/ftp.meusite.com/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/ftp.meusite.com/privkey.pem
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
- Adicione um usuário FTP:
$ sudo useradd -m -d /home/usuarioftp -s /bin/bash usuarioftp
$ sudo passwd usuarioftp
$ sudo chown -R usuarioftp:usuarioftp /home/usuarioftp
- Configure o firewall para permitir tráfego FTP:
Para ufw
:
$ sudo ufw allow 21/tcp
$ sudo ufw allow 40000:50000/tcp
Para firewalld
:
$ sudo firewall-cmd --permanent --add-port=21/tcp
$ sudo firewall-cmd --permanent --add-port=40000-50000/tcp
$ sudo firewall-cmd --reload
- Reinicie o vsftpd:
$ sudo systemctl restart vsftpd
Configurar e gerenciar servidores FTP no Linux é uma habilidade essencial para administradores de sistemas. Nesta aula, exploramos como configurar o vsftpd, configurar SSL/TLS para conexões seguras, e aplicar práticas de segurança. Pratique essas técnicas para ganhar confiança na administração de servidores FTP no Linux.
Se tiver dúvidas ou sugestões, deixe um comentário no blog NerdExpert.com.br. Na próxima aula, exploraremos a configuração de servidores NFS no Linux.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.