Configurando o Servidor FTP de Maneira Segura no Linux

Introdução

Sem dúvida alguma o serviço de transferência de arquivos (FTP - File Transfer Protocol), é um dos serviços mais difundidos na comunidade Internet. Quem já não fez download da última versão do seu browser preferido ou não precisou, ao menos uma vez, disponibilizar um arquivo para um outro usuário? Pode-se afirmar, com toda certeza, que a resposta será: ninguém.
 
Pois bem, pelas mesmas razões que o serviço FTP é bastante conhecido, infelizmente, ele tende a sofrer abusos por parte de usuários mal intencionados. Abusos estes que compreendem desde utilizar os servidores como depósito de software ilegal, ou até mesmo como depósito de material pornográfico. Somado a isto, estes servidores, quando mal configurados, abrem brechas para que intrusos ganhem acesso ao sistema.
 
O presente artigo tem, como propósito principal, portanto, ensinar como os administradores podem defender-se destes tipos de abusos. Por um lado, alertando sobre as graves consequências que um servidor FTP mal configurado pode acarretar e, por outro lado, definindo uma configuração básica mínima a ser seguida que o tornará mais seguro.
 
Cabe ressaltar que, aspectos de segurança relacionados a autenticação, integridade de dados e confidencialidade, não serão abordados neste artigo.

 

A escolha de um servidor FTP

Falando em termos de UNIX, se pretende-se oferecer um serviço de transferência de arquivos (seja anônimo ou não), existem basicamente três possibilidades:

  • Utilizar o daemon ftpd padrão que acompanha o sistema. Dependendo do fabricante, esta versão pode, ou não, ser segura ou livre de bugs. Ao longo dos últimos anos, tem sido encontrados diversas falhas de segurança no daemon ftpd, razão pela qual não tem se revelado como uma opção segura;
  • Se é pretendido oferecer o serviço FTP unicamente a usuários anônimos, uma opção é usar uma das várias "implementações mínimas de servidores FTP" que existem. O servidor aftpd, por exemplo, é uma delas. Justamente pelo fato de ser um daemon bastante simples, com pouquíssimas opções de configuração, ao mesmo tempo, minimizam-se os possíveis problemas de segurança;
  • Alternativamente, usar o WU-FTPd, servidor FTP originalmente escrito na Universidade de Washington. Embora tenha como principal desvantagem a complexidade (que dificulta um pouco a sua configuração e, ao mesmo tempo, aumenta a possibilidade de incluir erros no código que possam ser explorados por hackers), são diversas as opções úteis de configuração que ele apresenta (desde a criação de diferentes classes de usuários FTP até um sistema de logs bastante apurado).

Este último servidor pode ser considerado como um dos servidores UNIX mais seguros, chegando até mesmo ser recomendado pelo CERT, instituição considerada uma autoridade em termos de segurança.
 
Embora os procedimentos e técnicas descritos ao longo deste artigo ajudem a instalar e configurar qualquer servidor FTP UNIX, será considerado, para fins de demonstração e exemplificação, o servidor que se acredita ser o mais indicado para sistemas com uma grande preocupação em segurança: o WU-FTPd.

 

Características do servidor WU-FTP

Dentre as funcionalidades que o servidor WU-FTP oferece, a nível de segurança, pode-se mencionar as seguintes:
 
* Registro (logs) de transferências de arquivos e de comandos executados pelo servidor;
* Classificação de usuários FTP (real, guest e anonymous);
* Controle de acesso por classe de usuários/endereço IP/domínio;
* Contas guest restritas;
* Upload de arquivos, restrito por diretórios;
* Filtragem dos caracteres utilizados nos nomes dos arquivos.

 

Instalação e configuração do servidor FTP

A instalação do servidor WU-FTP é relativamente fácil, bastando seguir o passo-a-passo descrito no arquivo INSTALL, contido no pacote da sua distribuição (no caso, wu-ftpd-2.4.2-beta-16.tar.gz). Sendo assim, neste artigo, será dada uma maior ênfase à configuração do servidor FTP, que consiste, basicamente, em:
 
* Configuração do inetd, através do arquivo /etc/inetd.conf;
* Definição de acesso e outros itens, através dos arquivos: ftpaccess, ftpusers e ftphosts;
* Configuração do arquivo ftpconversions para definir uma política de processamento de arquivos;
* Ativação do sistema de logs, e
* Finalmente, a configuração do servidor FTP anônimo.
 
Excetuando-se a configuração do arquivo ftpconversions, que não está diretamente relacionado com a segurança do sistema, serão abordados todos os arquivos relacionados aos procedimentos acima mencionados. A configuração do sistema de logs e do servidor FTP anônimo recebem um destaque especial.

ARQUIVO /etc/inetd.conf

Independente do servidor FTP instalado, é preciso que ele (o daemon ftpd) seja inicializado sob o super daemon inetd. Este super daemon "ouve" as requisições nas portas respectivas (no caso do ftp, 20 e 21) e dispara o ftpd para atender tais requisições. Como o ftpd será executado, dependerá de como ele foi configurado neste arquivo.
 
Tipicamente, a entrada neste arquivo de configuração, correspondente ao ftpd padrão, é como segue:
 
 
ftp stream tcp nowait root /usr/sbin/ftpd ftpd -l
 
Uma vez que esta sintaxe já deve ser bastante familiar para muitos, a mesma não será explicada em detalhes, cabendo lembrar, unicamente, que o penúltimo campo indica o caminho absoluto do daemon ftp instalado. O que precisa ser feito, portanto, é substituir os campos necessários da linha acima de modo que, desta vez, seja executado o WU-FTP daemon com os seus respectivos parâmetros. Para tal, basta re-escrever a linha contendo o seguinte:
 
 
ftp stream tcp nowait root /usr/sbin/ftpd ftpd -laio
 
Neste caso, está-se assumindo que o novo daemon (WU-FTP), também conhecido como ftpd foi instalado no mesmo diretório que o ftpd padrão.
 
No exemplo dado, as opções -l, -a, -i e -o fazem com que as sessões sejam registradas ("logadas"), o uso do arquivo ftpaccess seja habilitado, as transferências para o servidor também sejam registradas, bem como aquelas feitas a partir do servidor. Estas opções foram consideradas sob a perspectiva de executar o servidor de uma maneira mais segura. Maiores detalhes podem ser obtidos através das man pages do WU-FTPd que acompanham o arquivo fonte (ftpd(8)).

 

ARQUIVO ftpaccess

Grande parte da configuração do servidor WU-FTP é feita através do arquivo ftpaccess . Dentre outras coisas, ele define as classes de usuários e a forma de acesso ao servidor que eles terão, controla as mensagens que serão mostradas aos usuários e define um sistema de logs bastante completo.
 
Não se pretende analisar as diversas diretivas que podem ser configuradas neste arquivo e muito menos detalhar quais os seus parâmetros, cabe ao leitor consultar as man pages correspondentes (ftpaccess(5)), contidas no pacote.
 
Através do link acima, pode-se obter um exemplo do conteúdo do arquivo ftpaccess.
 
A permissão de acesso deste arquivo deverá ser 600.

 

ARQUIVO ftpusers

O arquivo ftpusers contém uma lista de usuários que não podem acessar o servidor via FTP. Este arquivo deverá conter nomes de usuários relacionados ao sistema e não nomes de usuários comuns. O formato do arquivo é um nome de usuário por linha.
 
Exemplo de arquivo ftpusers:
root
bin
boot
daemon
ghest
nobody
operator
sys
uucp
 
Desta forma, usuários inescrupulosos não poderão, pelas vias normais, entrar nestas contas via FTP.
 
A permissão de acesso deste arquivo deverá ser 600.

 

ARQUIVO ftphosts

O arquivo ftphosts trabalha de maneira similar ao arquivo ftpusers, a diferença reside no fato de que com ele pode-se especificar quais usuários de quais máquinas têm a permissão de acesso bloqueada ou permitida.
 
É possível também usar wildcards e endereços IP de forma a permitir ou bloquear o acesso a domínios inteiros.
 
Exemplo de arquivo ftphosts:
 
allow nina *.cais.rnp.br
deny suspeito apinaje.pop-to.rnp.br
 
No exemplo acima, é permitido o acesso do usuário nina de qualquer máquina com domínio cais.rnp.br. O acesso a partir de outras máquinas é vedado. O acesso do usuário "suspeito" é negado a partir da máquina apinaje.pop-to.rnp.br.
 
Tome muito cuidado na ordem em que as diretivas allow e deny são colocadas. Diante de várias regras de acesso, será considerada sempre a que primeiro for satisfeita.

 

Registro de logs, auditoria e monitoramento

Monitorar os logs de qualquer novo serviço oferecido por um site faz parte das tarefas de um bom administrador. Não somente para verificar se os mecanismos de proteção estabelecidos realmente funcionam, mas também para garantir que este novo serviço não seja mal usado por usuários inescrupulosos.
 
Em particular, o servidor WU-FTP permite registrar informaçaões bastante úteis, tais como:
 
* Logs dos arquivos transferidos de/para o sistema. É no arquivo xferlog que são registradas estas transferências;
* Logs dos comandos FTP executados durante uma sessão. Este tipo de registros é bastante útil quando há suspeita de ataques do tipo FTP Bounce;
* Logs de diversas informaçaões (comandos FTP, condições de erro que precisam ser contornadas, etc) através do arquivo do sistema /etc/syslog.conf;
* Logs dos usuários que estiveram ou estão atualmente logados no servidor FTP, horário do início e fim de suas respectivas sessões, dentre outros. Estes registros ficam armazenados nos arquivos do sistema utmp e wtmp.
 
Existem diversas formas de obter estes registros:
 
* Através dos arquivos config.h e src/pathnames.h contidos no pacote do servidor WU-FTP.
 
Definindo a variável LOG_FAILED no arquivo config.h, será possível registrar as tentativas falhas de acesso (login).
 
#define LOG_FAILED

Por outro lado, definindo as variáveis _PATH_XFERLOG e _PATH_LASTLOG no arquivo src/pathnames.h, será possível especificar, respectivamente, onde se encontram os arquivos xferlog e utmp/wtmp, mencionados anteriormente.
 
#define _PATH_XFERLOG "/var/log/xferlog"
#define _PATH_LASTLOG "/usr/adm/lastlog"
 
* Através do arquivo ftpaccess.
 
As diretivas log commands e log transfers definem detalhadamente como serão gerados os logs dos comandos executados por um determinado usuário numa sessão FTP e os logs das transferências a partir do/para o sistema.
* Através do arquivo /etc/syslog.conf
 
Não se pretende entrar em detalhes de como configurar o sistema de logs, Syslog, pois existe uma farta documentação a respeito. O objetivo básico nesta seção é mostrar como através dele é possível registrar comandos e diferentes tipos de eventos relacionados ao servidor FTP.
 
A seguir é mostrado um exemplo de como configurar o arquivo /etc/syslog.conf de modo que sejam registradas informaçaões relacionadas ao servidor WU-FTP.
 
#
# Linhas a serem colocadas no arquivo syslog.conf
#
daemon.debug /var/log/ftpd.log
daemon.info /var/log/ftpd.log
daemon.err /var/log/ftpd.log
daemon.notice /var/log/ftpd.log
daemon.warning /var/log/ftpd.log
daemon.err /dev/console
 
Alerta-se para o fato de que os espaços presentes nas linhas acima correspondem a caracteres de tabulação.

 

Utilitários:

O servidor WU-FTP inclui alguns programas utilitários, tais como: ftpshut, ftpcount e ftpwho. Em particular, este último pode ajudar em muito na tarefa de monitoramento.
 
Basicamente, o programa ftpwho provê informações do tipo: número de usuários de cada classe (real, guest, anonymous) atualmente conectados ao servidor FTP, número máximo de usuários permitidos por classe, etc. Mas, principalmente, provê informações sobre os processos de cada usuário.
 
Na suspeita de estar sendo alvo de um ataque Denial of Service, por exemplo, uma informação do tipo "quanto da CPU um determinado usuário está usando", pode se tornar um dado muito útil.

 

Como configurar o seu servidor FTP anônimo

CRIANDO O USUÁRIO FTP

Para maior segurança, este usuário não poderá ter acesso a nenhum shell. Para tal, bastará configurar o campo correspondene ao shell, no arquivo passwd, como /bin/false, /bin/true ou o equivalente no seu sistema. O diretório home deste usuário será ~ftp que, por sua vez, é o diretório que se deseja que os usuários do servidor ftp anônimo enxerguem.
 
A entrada no arquivo /etc/passwd, correspondente ao descrito acima, será algo do tipo:
 
 
ftp:*:300:300:FTP Anônimo:/home/ftp:/bin/true

 

CRIANDO UMA ESTRUTURA DE DIRETÓRIOS SEGURA

Crie o diretório home do usuário ftp (~ftp). Este deverá ter como dono o root, (NÃO o usuário ftp) e pertencer ao mesmo grupo que o usuário ftp. Configure as permissões deste diretório como 555 (sem permissão de escrita).
 
Vale a pena ressaltar que alguns manuais recomendam, erroneamente, criar o diretório ~ftp, tendo como dono o próprio usuário ftp. A verdade é que há um grande problema quanto a adoção deste procedimento. Se este diretório ou algum dos subdiretórios contidos nele tiverem como dono o usuário ftp e, ao mesmo tempo, não estiverem protegidos contra escrita, um usuário mal intencionado poderá modificar arquivos já presentes ou incluir arquivos como o conhecido .rhosts para assim obter acesso direto ao sistema.
* Crie o diretório ~ftp/bin tendo como dono o usuário root e permissão 111 (execução permitida para todos).
* Copie o programa ls para este diretório. ls deverá ter como dono o root e permissão 111. Qualquer outro comando que for colocado neste diretório, deverá ter as mesmas permissões.
* Crie o diretório ~ftp/etc, tendo como dono o usuário root e as permissões de acesso configuradas para 111.
* Crie os arquivos passwd e group no diretório ~ftp/etc. Estes arquivos deverão estar configurados no modo 444 (com permissão de leitura para todos).

O arquivo passwd deverá conter unicamente entradas correspondentes a usuários relevantes para a hierarquia FTP, isto é, usuários que sejam donos de qualquer arquivo contido na área ftp (root, daemon, ftp, etc). O arquivo group deverá conter o grupo ao qual pertence o usuário ftp.
 
Na criação destes arquivos, pode-se utilizar como modelos os arquivos do sistema /etc/passwd e /etc/group. Entretanto, por questões de segurança, é bastante recomendável mudar o nome dos usuários destes arquivos, deixando apenas aqueles que possuem arquivos em algum diretório do FTP anônimo. Estes arquivos serão consultados, unicamente, quando comandos do tipo ls e dir forem executados durante uma sessão ftp. O objetivo básico deles é, justamente, mostrar os nomes dos usuários com seus respectivos grupos ao invés de mostrar meros números (UID e GID).
 
Deve-se procurar fazer com que o arquivo ~ftp/etc/passwd não contenha nomes de usuários que realmente existam no arquivo do sistema /etc/passwd. Assim mesmo, garanta que o campo que contém as senhas tenha sido substituído por um *.
 
Mais seguro ainda é prescindir dos arquivos ~ftp/etc/passwd e ~ftp/etc/group. Conforme foi mencionado anteriormente, o único efeito que isto provocaria seria que, ao ser executado o comando ls -l, por exemplo, não seriam mostrados os nomes dos donos/grupos dos diretórios.
* Crie o diretório ~ftp/pub, tendo como dono o usuário root, como grupo o mesmo do usuário ftp e, as permissões de acesso, configuradas para 555 (sem permissão de escrita para ninguém). É neste diretório que os arquivos são depositados para sua distribuição. Todos os subdiretórios contidos nele deverão ter as mesmas permissões de acesso (555).
 
Aqui um exemplo de configuração de diretórios de um servidor FTP anônimo:
 
dr-xr-xr-x 7 root system 512 Mar 1 15:17 ./
drwxr-xr-x 25 root system 512 Jan 4 11:30 ../
d--x--x--x 2 root system 512 Dec 20 15:43 bin/
d--x--x--x 2 root system 512 Mar 12 16:23 etc/
dr-xr-xr-x 10 root system 512 Jun 5 10:54 pub/
 

CONFIGURANDO DIRETÓRIOS COM PERMISSÃO DE ESCRITA

Se a idéia é disponibilizar um lugar onde usuários anônimos possam deixar arquivos (isto é, fazer upload), então há duas alternativas viáveis para controlar o acesso. De qualquer forma, vale a pena ressaltar que este procedimento pode comprometer a segurança do seu sistema.
 
Alternativa 1
 
Deverá ser criado o diretório raiz que abrigará estes arquivos (por exemplo, ~ftp/pub/incoming), limitando os usuários anônimos a ter unicamente permissão de execução (751). Isto fará com que o usuário anônimo possa mudar de diretório (cd), mas não listar o seu conteúdo.
 
Seguidamente, deverão ser criados subdiretórios predefinidos (com permissão 753) usando nomes conhecidos unicamente pelos usuários locais e pelos usuários "anônimos" que se deseja dar permissão de escrita nesses subdiretórios. Neste esquema, por questões de segurança, faz-se necessário escolher nomes de diretórios que não sejam fáceis de adivinhar de forma a prevenir que um usuário anônimo qualquer inclua arquivos arbitrários na área FTP.
 
Deve-se reparar que este método requer uma prévia coordenação e não garante uma total proteção contra usuários mal intencionados, uma vez que os nomes "secretos" dos subdiretórios podem se tornar públicos, intencional ou acidentalmente.
 
Alternativa 2
 
Da mesma forma que na alternativa 1, é necessário que seja criado o diretório incoming tendo também como dono o root, mas, desta vez, configurando as permissões de acesso no modo 733 (escrita e execução permitidos para grupo e outros). Mais um detalhe, o daemon ftp normalmente não permite que um usuário anônimo escreva sobre um arquivo já existente mas um usuário normal pode fazê-lo. Configurando o sticky bit como 1 se evitará que isto aconteça:
 
chmod +t ~ftp/pub/incoming
 
No caso específico do servidor WU-FTP, é possível configurar o daemon de forma que os novos arquivos sejam criados com permissão 600, tendo como dono o root ou qualquer outro usuário. Basta para tal incluir no arquivo /etc/ftpaccess linhas do tipo:
 
upload /var/ftp * no
upload /var/ftp /incoming yes ftp daemon 0666
upload /var/ftp /incoming/gifs yes ari guest 0600 nodirs

As linhas acima especificam que unicamente os diretórios /incoming e /incoming/gifs poderão receber arquivos. Os arquivos colocados no diretório /incoming obrigatoriamente terão o usuário ftp como dono, o daemon como grupo e as permissões de acesso configuradas para 0666. Assim mesmo, os arquivos recebidos pelo diretório /incoming/gifs terão como dono o usuário ari que pertence ao grupo guest e as permissões configuradas para 0600.
 
Os parâmetros dirs e nodirs especificam, respectivamente, se é permitida ou não a criação de novos subdiretórios, usando o comando mkdir.
 
O diretório /var/ftp representa o diretório home do usuário ftp (~ftp).
 
Como se mencionou anteriormente, os servidores FTP que suportam uploads são comumente alvo de abusos cometidos por usuários mal intencionados. Com o intuito de não serem descobertos, estes usuários criam arquivos e diretórios ocultos.
 
No caso particular do servidor WU-FTP, a diretiva path-filter é utilizada para restringir os caracteres usados nos nomes destes arquivos e diretórios. Por exemplo:
 
path-filter anonmyous /etc/pathmsg ^[-A-Za-z0-9._]*$ ^\. ^-
 
a linha acima especifica que qualquer nome de arquivo depositado pelo usuário anônimo poderá constar dos seguintes caracteres: A-Z, a-z, 0-9, ".", "_" e "-", mas não deverá iniciar com "." ou "-".

 

Dicas de configuração

Nesta seção, pretende-se passar ao leitor algumas dicas de configuração que eventualmente poderão ser úteis.
 
* Um dos maiores problemas quando os logs são registrados via syslog, é que, por default, o ftpd utiliza a facilidade LOG_DAEMON. Isto faz com que os logs do FTP sejam armazenados junto com os logs de outros processos (como o DNS). A seguir é mostrado que é possível isolar estes logs:
1. Executar, no diretório root da distribuição WU-FTP, o seguinte comando:
> ./build clean

2. Modificar o arquivo config.seu_sistema no diretório src/config, de:
#ifndef FACILITY
#define FACILITY LOG_DAEMON
#endif

para

#undef FACILITY
#define FACILITY LOG_LOCAL0
3. Reiniciar a instalação como documentado no arquivo INSTALL.
4. Finalmente, editar o arquivo /etc/syslog.conf e adicionar linhas do tipo:
 
local0.debug /var/log/ftpd.log
local0.info /var/log/ftpd.log
local0.err /var/log/ftpd.log
local0.notice /var/log/ftpd.log
local0.warning /var/log/ftpd.log
local0.err /dev/console
 
Desta vez, o arquivo /var/log/ftpd.log conterá unicamente os logs correspondente ao FTP.
* Na configuração do servidor FTP anônimo, por segurança, deve-se considerar a criação dos arquivos .rhosts e .forward vazios, no diretório home do usuário ftp (~ftp). Isto evitará que usuários mal intencionados criem esses arquivos e tenham acesso direto ao servidor. O dono destes arquivos deverá ser o root e as permissões de acesso igual a 400.
* Se existir a necessidade de disponibilizar diretórios com permissão de escrita, uma alternativa pode ser criar um filesystem para toda a hierarquia FTP (ou, ao menos, para o diretório ~ftp/incoming, de modo que se limite o volume de dados recebidos no servidor. Isto prevenirá de ataques do tipo DoS que pretendam encher o disco de "lixo".
* Embora muitos administradores receiem, acredita-se que é uma boa política de segurança configurar o seu servidor FTP de modo que negue conexões a máquinas que não tenham domínio reverso. O servidor WU-FTP lhe permite fazer isto, para tal, basta acrescentar no seu arquivo ftpaccess a seguinte linha:
 
deny !nameserved /etc/ftpmsgs/msg.sem_reverso
 
A mensagem contida no arquivo msg.sem_reverso será apresentada antes do usuário ser desconectado. Pode ser algo do tipo:
 
Desculpe, seu acesso a nosso repositório foi negado por não ter
cadastrado sua máquina no sistema de nomes de domínios (DNS).
Por favor, consulte seu administrador local para solucionar este impasse e
tente novamente.
 
Atenciosamente,
ftpadmin@cais.rnp.br

* A diretiva banner não está diretamente relacionada à segurança, mas pode auxiliar na tarefa de tornar seu servidor mais seguro. Esta diretiva pode ser configurada no arquivo ftpaccess:

banner /etc/ftpmsgs/msg.banner

A mensagem contida no arquivo msg.banner será apresentada antes do usuário acessar o servidor. Um exemplo de uma mensagem deste tipo se mostra a seguir:
 
Bem-vindo ao Servidor FTP
do Centro de Atendimento de Incidentes de Segurança (CAIS)
 
Você é o usuário número %N, de %M permitidos.
 
Os usuários devem prover seu e-mail como senhas.
 
Todas as suas transferências e demais informações
correspondentes a sua sessão FTP, serão registradas e podem
ser monitoradas. Se você discordar desta política, por favor,
desconecte agora.
 
Atenciosamente,
ftpadmin@cais.rnp.br
Os caracteres %N e %M nada mais são do que macros, remeta-se as manpages (ftpaccess(5)) para maiores detalhes.
* Caso se queira permitir a um usuário fazer upload de arquivos mas, ao mesmo tempo, não se quer dar permissão de acesso a um shell, a conta deste usuário deverá ser criada tendo o comando /bin/ftponly como shell, assim:
 
suspeito:*:501:500:Suspeito da Silva:/externos/suspeito:/bin/ftponly
 
^Recomendações gerais
 
Além das técnicas anteriormente abordadas, é importante tomar algumas precauções gerais, visando tornar o seu servidor FTP seguro. Por exemplo:
 
* Isolar, quando possível, o seu servidor FTP de outros servidores públicos (mail, DNS, etc);
* Num esquema de firewall, a melhor opção para permitir que usuários internos transfiram arquivos de/para o servidor é usando proxies ou wrappers;
* Estabelecer uma política de logs séria. Deve-se pensar em como lidar com o crescimento destes logs. Se o servidor FTP é bastante visitado, terão que ser escolhidos e registrados somente os logs mais significativos;
* Monitorar sempre os arquivos de log em busca de atividades suspeitas. Existem alguns scripts em Perl, como o ftplogcheck ( ftp://ftp.cetis.hvu.nl/pub/koos/ftplogcheck) que auxiliam nesta tarefa. A maioría deles trabalham em cima do arquivo xferlog. Os scripts dumpxfer e processlog (ftp://tnt.microimages.com/tools) são outras opções que podem ser consideradas;
* Upload de arquivos só se for estritamente necessário!
* Desabilitar o serviço FTP no arquivo /etc/inetd.conf das máquinas que não requerem esse serviço. Na maioria dos casos, por default, ele está habilitado;
* Acompanhar os alertas de segurança via listas de discussão, repositórios de órgãos especializados em segurança, etc;
* Instalar sempre a última versão do servidor escolhido, mesmo que ela seja uma versão beta. Se por um lado uma versão fechada representa estabilidade, uma versão beta comumente representa segurança. A escolha é sua.

 

Considerações finais

Da maneira como está atualmente implementado o protocolo FTP [RFC 959], pode-se dizer que ele é, por natureza, inseguro: não existe um conceito de autenticação de usuários realmente seguro, pois as senhas trafegam totalmente abertas pela rede. Não existem também mecanismos de proteção de dados sigilosos, nem de verificação da integridade destes dados.
 
Diante destas fraquezas, lamentavelmente, as técnicas abordadas ao longo deste artigo não adiantam muito pois elas unicamente focalizam a segurança no servidor em sí, sem a preocupação de uma comunicação segura entre cliente (usuário) e servidor.
 
Com o intuito de combater estas fraquezas, um novo modelo foi especificado recentemente [RFC 2228]. Este modelo, compatível com a especificação padrão aborda, basicamente, aspectos de segurança no protocolo FTP, tais como: autenticação de cliente/servidor, integridade de dados, e confidencialidade, entre outros.
 
Enquanto a implementação deste novo modelo não se concretiza, existem algumas soluções alternativas que visam contornar as fraquezas do protocolo já apontadas. Uma destas alternativas baseia-se no uso do ftp padrão sob ssh (a conexão é encriptada, cria-se um túnel de proteção). Uma outra opção pouco conhecida é SSLay FTP (neste caso, são os dados que trafegam encriptados).
 
Fonte: Rede Nacional de Ensino e Pesquisa (RNP)
Liliana Esther Velásquez Alegre Solha