[GTER] RES: RES: Praticas de SMTP 'para fora' e etc
Patrick Tracanelli
eksffa at freebsdbrasil.com.br
Mon Nov 24 18:02:37 -02 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 at sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"
More information about the gter
mailing list