O Protocolo de Transporte de Arquivo (File Transport Protocol - FTP) é um protocolo TCP antigo desenvolvido para transferir arquivos pela rede. Já que todas as transações com o servidor (inclusive a autenticação de usuário) são criptografadas, FTP é considerado um protocolo inseguro e deve ser configurado cuidadosamente.
O Red Hat Enterprise Linux oferece três servidores FTP.
gssftpd — Um FTP daemon 'kerberizado' baseado no xinetd que não passa informações de autenticação através da rede.
Acelerador de Conteúdo Red Hat (tux) — Um servidor Web com capacidades de FTP no espaço do kernel.
vsftpd — Uma implementação auto-suficiente do serviço FTP orientada à segurança.
As orientações de segurança a seguir se referem à configuração do serviço FTP vsftpd.
Antes de submeter um nome de usuário e senha, é apresentado um banner de saudação a todos os usuários. Por default, este banner inclui informações da versão úteis para crackers tentando identificar fraquezas em um sistema.
Para alterar o banner de saudação para o vsftpd, adicione a seguinte diretiva a /etc/vsftpd/vsftpd.conf:
ftpd_banner=<insert_greeting_here> |
Substitua <insert_greeting_here> na diretiva acima pelo texto de sua mensagem de saudação.
Para banners com muitas linhas, é melhor usar um arquivo de banner. Para simplificar o gerenciamento de banners múltiplos, coloque todos os banners em um novo diretório chamado /etc/banners/. O arquivo de banners para conexões FTP, neste exemplo, é /etc/banners/ftp.msg. O exemplo abaixo mostra como este arquivo se parece:
#################################################### # Hello, all activity on ftp.example.com is logged.# #################################################### |
![]() | Nota |
---|---|
Não é necessário começar cada linha do arquivo com 220, conforme especificado na Seção 5.1.1.1. |
Para referenciar este arquivo de banners para o vsftpd, adicione a seguinte diretiva a /etc/vsftpd/vsftpd.conf:
banner_file=/etc/banners/ftp.msg |
Também é possível enviar banners adicionais para conexões entrantes usando TCP wrappers conforme descrito na Seção 5.1.1.1.
A presença do diretório /var/ftp/ ativa a conta anônima.
A maneira mais fácil de criar este diretório é instalar o pacote vsftpd. Este pacote define uma árvore de diretório para usuários anônimos e configura as permissões dos diretórios para somente-leitura para usuários anônimos.
Por default, a conta do usuário anônimo não pode escrever em nenhum diretório.
![]() | Atenção |
---|---|
Se você possibilitar o acesso anônimo a um servidor FTP, tome cuidado onde armazena os dados importantes. |
Para permitir que usuários anônimos façam upload, é recomendado criar um diretório somente-gravação (write-only) em /var/ftp/pub/.
Para fazer isso, digite:
mkdir /var/ftp/pub/upload |
Depois altere as permissões para que usuários anônimos não possam ver o que está no diretório, digitando:
chmod 730 /var/ftp/pub/upload |
Uma lista do diretório em formato longo deve se parecer com o seguinte:
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload |
![]() | Alerta |
---|---|
Administradores que permitem a usuários anônimos ler e gravar em diretórios, frequentemente percebem que seu servidor se torna um depósito de software roubado. |
Adicionalmente, abaixo de vsftpd, adicione a seguinte linha a /etc/vsftpd/vsftpd.conf:
anon_upload_enable=YES |
Já que o FTP passa nomes de usuário e senhas não criptografados através de redes inseguras para autenticação, é uma boa idéia proibir usuários do sistema acessarem o servidor através de suas contas de usuário.
Para desativar contas de usuário em vsftpd, adicione a seguinte diretiva a /etc/vsftpd/vsftpd.conf:
local_enable=NO |
A maneira mais fácil de desabilitar um grupo específico de contas, como o usuário root e aqueles com privilégios sudo, a acessar um servidor FTP, é usar um arquivo de lista PAM conforme descrito na Seção 4.4.2.4. O arquivo de configuração PAM para o vsftpd é /etc/pam.d/vsftpd.
Também é possível desativar contas de usuário dentro de cada serviço diretamente.
Para desativar contas de usuário específicas em vsftpd, adicione o nome do usuário a /etc/vsftpd.ftpusers.
Use TCP wrappers para controlar o acesso a qualquer daemon do FTP, conforme descrito na Seção 5.1.1.