[FUG-BR] BruteBlock como anti-spammer
Joao Rocha Braga Filho
goffredo em gmail.com
Quarta Dezembro 13 17:08:38 BRST 2006
Fiz um malabarismo aqui.
Estou usando o BruteBlock como antispammer
Para quem não conhece o BruteBlock, ele é um programa que está nos ports
feito para trabalhar com o syslogd. O syslogd passa para ele alguns dos logs,
e ele analisa segundo uma expressão regular. Se bater com a expressão, ele
armazena o IP (que é pego como parte da expressão regular), e se aparecer
mais que algumas vezes em um certo prazo de tempo, o que é configurável,
ele coloca o IP em uma table do IPFW. Ele foi concebido para bloquear quem
tenta força bruta no ssh e no ftp.
Eu tive uma sacada diferente. Com o IPFW pode-se fazer regras que gerem
log, mesmo que seja a de contagem. Então puz uma destas. Configurei o
syslogd para repassar os logs do firewall, e configurei o bruteblock para as
regras de firewall. Depois de 20 conexões de envio de e-mail em um minuto
eu coloco o IP em uma lista negra. Claro que os parâmetros são configuráveis.
Abaixo vão os detalhes de configuração:
Coloque a seguinte linha no syslogd.conf:
security.* | exec /usr/local/sbin/bruteblock -f
/usr/local/etc/bruteblock/spam.conf
Atenção, eu coloquei logo depois da linha:
security.* /var/log/security
E tem que ser antes de qualquer !programa.
O arquivo /usr/local/etc/bruteblock/spam.conf vai abaixo:
"
regexp = kernel. ipfw. .* Count TCP
(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):.*:25
# Number of mail connections attempts within time before we block
max_count = 20
# Time in seconds in which all attempts must occur
within_time = 60
# Time in seconds to block ip in firewall
# 4 Hours
reset_ip = 14400
# IPFW table number to add spammers users
ipfw2_table_no = 0
"
E agora vem a parte de detecção. Coloque a seguinte regra no seu firewall,
na interface que lida com os usuários internos, e com o número adequado.
ipfw add <n> count log logamount 10000 tcp from any to any dst-port 25 setup
Não pode esquecer a flag setup, pois isto terá conseqüências desastrosas, e
tem que colocar uma regra para dar deny na tabela que você está jogando os
spammers da sua rede.
Periodicamente você terá que dar um resetlog, ou zerar os contadores, da
regra de contagem mostrada acima.
Abraços,
João Rocha.
--
"Sempre se apanha mais com as menores besteiras. Experiência própria."
goffredo at goffredo.eti.br
goffredo at gmail.com
http://www.goffredo.eti.br
Mais detalhes sobre a lista de discussão freebsd