[GTER] RES: RES: Praticas de SMTP 'para fora' e etc

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Segunda Novembro 24 18:02:37 BRST 2008


Ja passei por todos os problemas possiveis. De forma geral penso que se 
fechar a porta 25 não deu problema no provedor (ou empresa) é porque o 
provedor não é grande suficiente e não tem perfis variados de usuários. 
Depois de pensar um pouco minha abordagem ficou simples e desisti de 
usar firewall onde a função era de IDS/IPS. Então aconselho, não 
insistir em usar firewall onde a função é de IDS.

Libero (fw de borda) a 587 de acordo com a Sessão 3 e 4 da RFC5068, 
irrestritamente.

A porta 25 fica liberada, onde permito o handshake (setup) e 
estabelecimento da conexão. Se durante a sessão eu pegar um STARTTLS no 
flow established src->dst aguardo a resposta que se for um 220, 501 ou 
454 de acordo com a RFC 3207, libero a sessão (na prática uso isso com 
Snort+SnortSam e nesse caso coloco o dst na tabela de permitido por 60 
minutos, em caso de IPS - Snot_Inline - a ação tem que ser reinject pra 
uma posição de allow no firewall).

No caso de SMTP AUTH é bem mais chato e teria que acompanhar todo o 
envelope da sessão SMTP porque o raio da especificação permite variação 
de uso. Então desisti e passei apenas a ver se o src envia um pedido de 
AUTH e se aparecer um codigo 235 (RFC 4954) a qualquer momento depois do 
AUTH, libero a sessão.

Finalmente o mais importante, se eu não detectar SMTP AUTH nem STARTTLS 
bloqueio o envio das 2 etapas finais do envelope (RCPT TO | DATA).

Pronto.

A abordagem não é 100% a prova de falhas, mas não tem worm que explore 
as falhas. Só humanos. As falhas dessa abordagem que eu me lembro de 
cabeça quando testei são: (1) se o worm submeter o SPAM depois do 
STARTTLS (tls-aware worm? hehehe nunca vi, mas é possível) vai passar pq 
tera sido liberado quando STARTTLS foi estabelecido; se (2) o worm 
enviar um AUTH e depois de errar um "cypher" ele der um RSET existem 
alguns comandos que podem suceder em "235" fazendo minha regra de IDS 
liberar achando que é um AUTH com sucesso.

Talvez pareça complexo a primeira vista, mas é besteirinha. Na pratica 
sao 8 regras no Snort e 3 no firewall.

-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"




More information about the gter mailing list