5.6. Protegendo o FTP

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.

As orientações de segurança a seguir se referem à configuração do serviço FTP vsftpd.

5.6.1. Banner de Saudação do FTP

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.#
####################################################

NotaNota
 

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.

5.6.2. Acesso Anônimo

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.

CuidadoAtenção
 

Se você possibilitar o acesso anônimo a um servidor FTP, tome cuidado onde armazena os dados importantes.

5.6.2.1. Upload Anônimo

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

AtençãoAlerta
 

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

5.6.3. Contas de Usuário

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

5.6.3.1. Restringindo Contas de Usuário

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.

5.6.4. Use TCP Wrappers para Controlar Acesso

Use TCP wrappers para controlar o acesso a qualquer daemon do FTP, conforme descrito na Seção 5.1.1.