Introdução
Neste artigo iremos falar sobre segurança em FTP
(File Tranfer Protocol). O FTP é um protocolo da
família do TCP/IP, assim como o Telnet, SMTP, SNMP etc.
A sua função, especificamente, é a de
transferência de arquivos entre um host e um
cliente.
Como todos devem saber, hoje em dia tudo é
passível de ser burlado e o FTP não foge a regra,
por ser um protocolo antigo, já foram inventadas algumas
formas de quebrá-lo.
Para evitar isso, ou dificultar, é necessário
que ele seja configurado corretamente e é isso que vamos
passar para vocês. Mãos na massa!
Configuração do WU-FTPD
(nativo)
Os principais problemas de um servidor FTP são:
- Autenticação do servidor (username e senha) e
todos os comandos enviados como texto, ou seja, com um
sniffer é possível obter facilmente o username e
a senha do usuário;
- Diversos Denial of Service existem para vários
servidores FTP;
- Diversos exploits para servidores FTP;
Quando se fala em segurança em servidores FTP,
não se pode ser feito muita coisa além de
configurá-lo corretamente, estar bem documentado com
logs, backup, versões atualizadas etc.
Se você inicializa o FTP pelo inetd (daemon no qual
inicializa a maioria dos serviços de rede, como telnet,
ftp, finger, ntalkd, smtp, login etc.), o que é o mais
comum em todas as versðes de Linux, verifique no arquivo
de configuração (
/etc/inetd.conf
) a linha que começa com ftp e coloque-a da seguinte
forma:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -l -L
-i -o
A única diferença do atual em seu arquivo deve
ser as síntaxes -l (cada sessão de FTP é
logada no syslog), -L (todos os comandos enviados para o
servidor são logados no syslog), -i (todos os arquivos
recebidos pelo servidor são logados para o
/usr/adm/xferlog), -o (todos os arquivos transmitidos do
servidor são logados para o /usr/adm/xferlog). Vejamos
como fica o syslog com uma simples sessão de ftp com o
comando
tail -f /var/log/messages
:
Oct 30 01:32:21 presario in.identd[8463]: reply to
192.168.10.2: 1400 , 21 : USERID : UNIX :root
Oct 30 01:32:21 presario wu.ftpd[8462]: connect from
root@192.168.10.2
Oct 30 01:32:30 presario ftpd[8462]: USER molder
Oct 30 01:32:35 presario ftpd[8462]: PASS password
Oct 30 01:32:35 presario ftpd[8462]: FTP LOGIN FROM
presario.earth.com [192.168.10.2] , molder
Oct 30 01:32:35 presario ftpd[8462]: SYST
Oct 30 01:32:49 presario ftpd[8462]: TYPE Image
Oct 30 01:32:49 presario ftpd[8462]: PORT
Oct 30 01:32:49 presario ftpd[8462]: RETR Untitled
Oct 30 01:32:53 presario ftpd[8462]: QUIT
Oct 30 01:32:53 presario ftpd[8462]: FTP session closed
Nesta sessão foi feito o login, baixado o arquivo
Untitled e fechada a sessão.
Outra arquivo de configuração é o
/etc/ftpaccess
. Existem três tipos de logins que o WU-FTPD
dispõe:
-
Anonymous FTP
: que é usado normalmente na Internet, o usuário
entra com o username anonymous e na senha o e-mail (ou
deveria) :-)
-
Guest FTP
: neste login o usuário usa uma conta e senha
cadastrada realmente no servidor, mas ele fica amarrado ao
seu diretório home (/home/user), é o mais
indicado quando se quer trabalhar com uploads de
arquivo;
-
Real FTP
: neste último o usuário entra com uma senha e
username válidos e tem acesso a todo o disco, este
é o menos seguro e indicado.
Todas estas configurações são feitas no
ftpaccess
, além de outras configurações como: a
quantidade de falhas no login; quantidade de conexões
quando for remoto ou local; mensagens de login, erro, limites
e logout; permissões; diretórios para upload, entre
outras coisas. Caso queira saber maiores opções
nada como um
man ftpaccess
;-).
Obs.:
para poder utilizar o arquivo
ftpaccess
, você terá que colocar a opção -a para
habilitar no
/etc/inetd.conf
. Exemplo:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -a -l
-L -i -o
Existem outros arquivos de configuração para o
WU-FTPD, como
/etc/ftpusers
(para bloquear usuários),
ftpservers
(para servidores virtuais) e
/etc/ftphosts
(para bloquear hosts).
Estas são algumas das implementações que
podem ser feitas em um servidor FTP padrão, que são
encontrados normalmente em qualquer distribuição
Linux. Pois isto se aplica ao FTP Server WU-FTPD (
http://www.wuftpd.org
), o qual vem por default nas principais
distribuições.