Pular para o conteúdo
Início » Aprendendo Linux Parte 14 – Configuração de Servidores FTP no Linux

Aprendendo Linux Parte 14 – Configuração de Servidores FTP no Linux

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.

  1. 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
  1. 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
  1. 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
  1. Instale o vsftpd:
$ sudo apt install vsftpd  # Debian
$ sudo yum install vsftpd  # Red Hat
  1. 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
  1. 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
  1. 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
  1. 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.

Marcações: