FTP (File Transfer Protocol) é um protocolo de rede criado para transferir arquivos entre um cliente e um servidor. Apesar do surgimento de soluções mais modernas como SFTP e SCP, o FTP ainda é amplamente utilizado para organizar trocas simples de arquivos dentro de uma rede ou com usuários externos.
Neste artigo, vamos mostrar como instalar e configurar um servidor FTP em um sistema Linux usando o popular servidor vsftpd.
Instalando o vsftpd
O FTP pode ser útil em casos onde é necessário organizar um armazenamento centralizado com acesso para diferentes usuários. É fácil de configurar e manter, sendo compatível com a maioria dos sistemas operacionais e clientes FTP. Em ambientes corporativos, o FTP é frequentemente utilizado para troca de relatórios, logs e outros arquivos que não contenham informações sensíveis.
O servidor FTP mais comum e seguro para Linux é o vsftpd (Very Secure FTP Daemon). Ele é estável, eficiente e consome poucos recursos. O pacote pode ser instalado via o gerenciador de pacotes padrão: apt para Debian/Ubuntu ou yum/dnf para CentOS/RHEL.
apt install vsftpd -y
Para sistemas com gerenciadores baseados em RPM:
Após a instalação, o serviço é iniciado automaticamente e pode ser configurado no arquivo /etc/vsftpd.conf. Por exemplo, vamos configurar a autenticação via PAM e definir os direitos dos usuários. Importante: o uso de FTP com usuários anônimos pode representar riscos de atividades não autorizadas.
Configuração do servidor:
listen_ipv6=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=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
Explicação das opções:
- listen=YES: o servidor será executado como daemon independente (não via xinetd).
- listen_ipv6=NO: desativa escuta em endereços IPv6.
- local_enable=YES: permite login de usuários locais (contas do sistema).
- write_enable=YES: permite escrita (envio, exclusão, renomeio) para usuários autenticados.
- dirmessage_enable=YES: exibe mensagem do arquivo .message ao entrar em um diretório.
- use_localtime=YES: utiliza o horário local do servidor nos arquivos listados.
- xferlog_enable=YES: habilita o registro de transferências (normalmente em /var/log/vsftpd.log).
- connect_from_port_20=YES: usa a porta 20 para conexões de dados (modo ativo).
- secure_chroot_dir=/var/run/vsftpd/empty: define um diretório isolado para sessões FTP.
- pam_service_name=vsftpd: define o nome do serviço PAM para autenticação.
- rsa_cert_file e rsa_private_key_file: caminhos para o certificado e chave SSL (usados se SSL/TLS estiver ativado).
- ssl_enable=NO: desativa criptografia SSL/TLS.
Em seguida, vamos configurar a autenticação via PAM:
A listagem mostra que, se o login estiver na lista de usuários proibidos, a conexão será negada inicialmente, antes da autenticação padrão do UNIX.
Você também pode adicionar sua própria lista de usuários proibidos ou modificar os métodos de autenticação no arquivo /etc/pam.d/vsftpd. Após aplicar as alterações, reinicie o serviço:
Por padrão, o FTP não criptografa os dados, incluindo logins e senhas. Para aumentar o nível de segurança, recomenda-se ativar o FTPS (FTP Secure) — FTP sobre TLS. Para isso, é necessário gerar um certificado SSL ou utilizar um existente. Depois, basta ativar o SSL no arquivo de configuração e informar os caminhos do certificado e da chave.
Trabalhando com clientes FTP
A conexão com o servidor FTP pode ser feita via linha de comando (ftp, lftp) ou com clientes gráficos como o FileZilla. O usuário só precisa saber o IP do servidor, o nome de usuário e a senha.
Para conectar, utilize o seguinte formato:
Ao usar FTPS, o cliente também deve ativar a criptografia, se os certificados estiverem disponíveis.
O FTP continua sendo uma ferramenta popular para transferência de arquivos, especialmente em redes locais ou em automações de troca de dados. Configurar um servidor FTP no Linux com o vsftpd é um processo simples, que oferece uma maneira flexível e confiável de organizar o acesso a arquivos. No entanto, é fundamental ficar atento à segurança e ativar criptografia ao operar em redes abertas.