sexta-feira, 21 de dezembro de 2012

Script deletar e-mails da fila do Qmail

Quando uma conta de e-mail de seu domínio esta sendo utilizada para enviar spam para internet(provavelmente por que esteja com uma senha frágil) será necessário deletar os e-mails que estão na fila para serem enviados. Você identificará isso quando ver que sua fila de e-mails está muito grande e que existe uma conta sendo a responsável pelo envio dessa massa de e-mails. 1 - Para visualizar a sua fila de e-mails no Qmail utilize o comando:
# qmailctl queue
2 - As vezes o mailfrom pode ser um e-mail que não pertença ao seu domínio, os spammers nesse caso somente utilizam a conta de algum usuário do seu servidor de e-mail para realizar o login e ter permissão para enviar os spam e ai trocam o mailfrom que aparece quando você manda listar a fila. Para identificar a conta do usuário que está sendo utilizada procure nos logs do smtpd faço um filtro usando o mailfrom que aparece lá na fila. 3 - O script abaixo deletar e-mails da fila com base no mailfrom que aparece lá na fila. Então para utiliza-lo você deverá parar o serviço Qmail e então executar o script informando o mailfrom que está enviando a massa de e-mails. OBS.: Não esqueça, logicamente, de redefinir a senha da conta que estava sendo utilizada para enviar spam.
###############################################################
# Deletar spam de acordo com remetente local
# Por Leonardo Couto Conrado
# Em 16.11.2012
###############################################################
#!/bin/sh

path=/var/qmail/queue
cmdFind=/usr/bin/find
cmdQmailCtl=/usr/local/bin/qmailctl
cmdGrep=/bin/grep
cmdEcho=/bin/echo
cmdLs=/bin/ls
cmdRm=/bin/rm
cmdAwk=/bin/awk

$cmdEcho -n "Informe o e-mail que esta sendo usado para enviar spam: "; read emailUsedAsSpammer


$cmdEcho "O servico do Qmail ja esta parado e o e-mail usado como spam e $emailUsedAsSpammer? yes, no ou quit?"
read opt
case $opt in
"quit")
        $cmdEcho "Saindo..."
        exit
        ;;
"yes")
        $cmdEcho "Entrando em processo de exclusao de e-mails..."
        for i in $( $cmdQmailCtl queue | $cmdGrep $emailUsedAsSpammer |$cmdAwk -F '#' '{ print $2 }' | $cmdAwk '{ print $1 }' ); do
        $cmdFind $path -name $i -exec $cmdRm -rf {} \;
        $cmdEcho "Vai ser deletado= " $i
        done
        ;;

"no")
        $cmdEcho "Você deve parar o servico do qmail antes de deletar mensagens na fila e ter certeza do e-mail que esta sendo usado como spam."
        exit
        ;;

*)
        $cmdEcho "O servico do Qmail ja esta parado e o e-mail usado como spam e $emailUsedAsSpammer? yes, no ou quit?"
        ;;
esac

2 comentários:

Seguidores