Bloqueando o domínio do remetente do maillog

1

Em nosso servidor de e-mail, estamos recebendo muitos acessos. No maillog há muitos destes:

Apr 23 04:35:13 mail1 postfix/smtpd[31700]: NOQUEUE: reject: RCPT from unknown[119.153.14.231]: 554 <[email protected]>: Recipient address rejected: User unknown in local recipient table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<localhost>

Eu tenho um script que pesquisa os IPs e os bloqueia. Estou tendo um problema quando eu bloquear o IP do RCPT. Em vez disso, quero bloquear o domínio dos remetentes, como neste exemplo: shareme.com. O que devo modificar no meu script para fazer isso?

#!/bin/bash
IPT=/sbin/iptables
LIMIT=10
cd /admin
# first get one minute of log
grep "'date +"%b %d %H:%M:" --date="1 minutes ago"'" /var/log/maillog > minutelog
# now extract the rejected attempts, sort and count uniq ip
cat minutelog | grep "reject:" | cut -d" " -f10 | cut -d"[" -f2 | cut -d"]" -f 1 | sort | uniq -c | sort -n | sed 's/^[ \t]*//' > tmp1
# for each line in result
while read line
do
MYCOUNT='echo $line | cut -d" " -f1'
MYIP='echo $line | cut -d" " -f2'
if [ $MYCOUNT -lt $LIMIT ] ;
then
echo $MYIP is ok: $MYCOUNT attempts
else
echo blocking the spammer at $MYIP with $MYCOUNT attempts
$IPT -I INPUT -i eth0 --proto tcp -s $MYIP --destination-port 25 -j DROP
echo $MYIP >> blocked.smtp
fi
done < tmp1
rm -f minutelog
rm -f tmp1
    
por Saif 23.04.2011 / 11:24

2 respostas

1

É impossível bloquear pelo domínio do remetente SMTP usando apenas o filtro IP porque o e-mail com determinado domínio pode ter origem em qualquer IP. Além disso, é perigoso bloquear o domínio do remetente porque qualquer um poderia falsificar o email do remetente e enviar várias mensagens com algo como [email protected] e seu script bloqueará todo o tráfego do Gmail.

Para resolver seu problema, recomendamos verificar a seção "Medidas contra clientes que fazem muitas conexões" no link

    
por 24.04.2011 / 06:18
1

É melhor experimentar o Fail2ban: link

O Fail2ban verifica arquivos de log como / var / log / pwdfail ou / var / log / apache / error_log e proíbe IP que faz muitas falhas de senha. Atualiza as regras do firewall para rejeitar o endereço IP.

    
por 24.04.2011 / 02:31