+ Responder ao Tópico



  1. #1

    Padrão problemas com SPAM (qmail)

    Boa tarde,

    Galera estamos enfretando um problema aqui na empresa com SPAM, mesmo estando o smtp autenticado (porta 587), estamos sofrendo com ataque de SPAM, ontem mesmo tinha uma fila de 50mil email, gostaria de saber se alguem tem alguma ideía de como evitar isso.

    Temos instalado do SpamAssasin mas nao resolve.

    Estava pensando se tivesse como monitorar a quantidade de emails que o cliente envia por segundo/minuto algo do gênero.

    Agradeço antecipadamente

  2. #2

    Padrão

    obrigado pela resposta, mais alguem pra complementar ?

  3. #3

    Padrão

    Qmail na porta 587.. Ainda não enxergo no que isso pode ajudar contra SPAMs.. Levando em conta que se um usuário infectado continuará enviado emails em backuground da mesma forma, essa implementação é inútil.. Bem, esquece isso.. Sua solução:

    Cara visita esse site e faça o download do programa: spamdyke: A drop-in connection-time spam filter for qmail

    Esse cara é fantástico. Não precisa recompilar Qmail nem nada. Basta apenas baixar, compilar com as opções corretas, e modificar o script do qmail-smtpd adicionando APENAS UMA LINHA.

    Esse cara substitui TODOS os 30 e poucos patches que existem por aí contra SPAMs. Inúteis.

    Quando vc adicionar a linha de comando dele no script do qmail-smtpd, TODOS os emails que batem na sua porta 25 ou 587, como queira, passarão por todos os processos do qmail, inclusive pelo spamdyke.

    Se o email não passar POR TODAS AS REGRAS DELE (SPF, BLACKLIST, DNS-Reverso, DNS, AUTH-LOGIN, EMAIL SENDER, REGRAS da RFC, ETC, ETC, ETC, ETC), o email é descartado NA HORA.

    Praticamente não usa CPU nem memória, pois está usando os recursos do próprio qmail.

    Gera um log de TODOS os emails trafegados, marcados com ALLOWED ou DENIED. Para os DENIED, segue também com identificação do motivo da negação.

    Possui blacklist, whitelist, greylist, etc, etc, próprios.

    Enfim. Esqueça tudo o que você conhece de ferramentas anti-spam. Esse é o cara.

    Olha só um pequeno relatório que tirei dele somente da semana passada (7 dias):

    cat /var/log/maillog-20100221 | ./spamdyke-stats
    229523 DENIED_RDNS_MISSING
    186524 DENIED_IP_IN_CC_RDNS
    160052 FILTER_RDNS_MISSING
    140883 FILTER_IP_IN_CC_RDNS
    115948 DENIED_RBL_MATCH
    102132 FILTER_RBL_MATCH
    59434 ALLOWED
    58131 DENIED_RDNS_RESOLVE
    43797 FILTER_RDNS_RESOLVE
    6568 TIMEOUT
    6051 ERROR
    4316 DENIED_SENDER_NO_MX
    4248 FILTER_SENDER_NO_MX
    1043 FILTER_WHITELIST_IP
    618 DENIED_OTHER
    618 FILTER_OTHER
    365 FILTER_EARLYTALKER
    133 DENIED_RECIPIENT_BLACKLISTED
    133 FILTER_RECIPIENT_BLACKLIST
    112 message
    104 DENIED_EARLYTALKER
    19 DENIED_BLACKLIST_IP
    19 FILTER_BLACKLIST_IP
    1 DENIED_TOO_MANY_RECIPIENTS
    1 DENIED_UNQUALIFIED_RECIPIENT
    1 FILTER_TOO_MANY_RECIPIENTS
    1 FILTER_UNQUALIFIED_RECIPIENT

    Allowed: 59434
    Denied : 1061341
    Sum: 1120775
    % Spam : 94.70%

    A quantidade de tráfego total vem diminuindo. Quando instalei o danado, recebia cerca de 5 milhões de emails por semana. A quantidade de emails negados nunca foi menor que 92%. Que tal a eficiência???

    Minha fila de emails? Para esse tráfego acima, 3 emails na fila é absurdamente muita coisa. Normalmente é 0!

    Qualquer coisa ou dúvida sobre a performance desse carinha, posta aí!

    Abraços,

  4. #4

    Padrão

    Obrigado amigo pela resposta, mas já temos instalado o spamdyke, porém o que ocorre é que, os SPAM aqui a gente consegue combater tmb, mas esses emails que falo, são de usuários autenticados. É como se eu estive como o outlook aberto e enviando emails...só que em grande escala...o spamdyke não consegue identificar isso. Não descobrimos ainda se é um spyware, vírus, malware ou o q faz isso ae. Mas mesmo assim agradeço por tirar um tempo e me escrever, muito obrigado amigo, talves sirva pra mais alguém do fórum.

    alguém tem mais alguma dica ?

    Gracias amigos

  5. #5

    Padrão

    entendi perfeitamente e já passei por isso... Para evitar isso não tem jeito.. tem que caçar o usuário animal que instala tudo quando é merda, além de trafegar porcarias por email... eu faço da seguinte maneira:

    'qmailctl queue | more' - para ver o tamanho e algumas informações dos emails que estão na fila. verifico o tamanho em bytes dos emails, além do remetente e destinatário. Procuro por emails grandes primeiro. Depois observo origem e destino. É justamente aqui que vc observa o ID do email repetivo e, pelo ID, é possível dar um 'egrep' no email para ver o cabeçalho de comunicação entre o seu servidor e o cliente que está enviando o email (origem). no cabeçalho vem o IP da máquina que fez a conexão, além do nome dela na rede (processo de conexao entre mta e mua, HELO, etc).

    desta forma, observando apenas o qmail queue | more, procurando por esses emails repetitivos, através de um script simples, dá pra descobrir a origem. Não estou na minha máquina agora, e nem tenho acesso remoto.. Assim que chegar lá coloco aqui o meu simples script ./visualiza-email.sh, onde passa-se apenas o ID do email e o danado manda um egrep no email que vc quer. Captura os dados e vai atrás do féla da puta que está infectado.

    Infelizmente até hoje, depois de muito rodar, não encontrei alguma solução para interromper essas bostas vindas por parte do usuário. Aliás, esse é o final da novela. TODOS os lugarem que consegui ajuda sempre a mesma história: se a máquina de seu usuário estiver infectada, fudeu. aí é trampo mesmo...

    Aguarde o script, logo logo mando pra vc!

    []s,

  6. #6

    Padrão

    Citação Postado originalmente por danistation Ver Post

    Aguarde o script, logo logo mando pra vc!

    []s,
    Execute assim:

    # ./visualisa-email id-email

    onde o id-email é o ID mostrado pelo qmail queue | more

    Olha o script aí:

    #!/bin/bash
    # visualiza-emails.sh
    #
    # Script para visualizar o codigo fonte de emails
    # que estao na fila, para analise de seu conteudo e
    # possivel exclusao. Criado com o intuito de desafogar
    # a fila de emails com anexos muito grandes cujo
    # conteudo nao seja referente aos assuntos da
    # empresa. Tambem para excluir emails de conteudo
    # inadequado enviados para lista, exageradamente
    # grande.
    #
    # Versao 1 Visualiza o email exibido pelo comando
    # 'qmailctl queue' passando o ID do email
    # como parametro.
    #
    #
    # Author: Daniel Lopes - 20081020
    #

    QUEUE_FOLDER='/var/qmail/queue/'
    MESSAGE=$(find "$QUEUE_FOLDER" -name "$1" | grep mess)
    more "$MESSAGE"


    Acho que esse é o princípio. descobrir exatamente de onde está partindo os spams, limpar a máquina do usuário e monitrar em seguida.

    Qualquer dificuldade avisa ai!

    []s,

  7. #7

    Padrão

    obrigado amigo pela ajuda, vou testar e posto aqui os resultados...

    estava pensando em algo assim:

    fazer um script pra monitorar a quantidade de emails (nao sei se por dia por minuto ou como), q está vindo de tal ip, se ultrapassar um numero pre definido ele joga esse ip na lista negra do spamdyke...será q tem como ?

    t+

  8. #8

    Padrão

    Citação Postado originalmente por Mr_Dom Ver Post
    obrigado amigo pela ajuda, vou testar e posto aqui os resultados...

    estava pensando em algo assim:

    fazer um script pra monitorar a quantidade de emails (nao sei se por dia por minuto ou como), q está vindo de tal ip, se ultrapassar um numero pre definido ele joga esse ip na lista negra do spamdyke...será q tem como ?

    t+
    Opa, por que não? Só que essa visão vai além do meu alcance, por enquanto.

    Pensa assim:

    O qmail tem seus próprios logs. O Spamdyke também. Além disso temos o qmail-queue. Tem também, uma ferramenta que se chama qmailhandle (script em perl que faz algumas consultas mais amigáveis na fila dos emails.

    Para um camarada que manja de perl, por que não criar um script, usando ferramentas como o egrep, awk, etc, para gerar algumas consultas em txt mesmo (a grosso modo de pensar), usar as soluções em perl para buscar fragmentos de texto que satisfaça essa necessidade por exemplo? joga isso num cron ou até mesmo manda como daemon (se possível) para executar entre períodos?

    Fora essa, também tenho muitas outras idéias de soluções simples assim para facilitar nossa vida.

    Sou novato em linux. Mexo com isso há apenas 1 anos com alguma efetividade. Não tenho domínio sobre a maioria das ferramentas, digamos, básicas, para administração de serviços.

    Mas pode contar que tenho certeza que essa idéia pode ser sim concretizada. mas aí não posso ajudar, vai além da minha capacidade atual (estou indo atrás).

    Por enquanto, o jeito é fazer manualmente:
    - verificar a fila;
    - observar os emails com origem ou destino muito repetitivos;
    - visualizar o cabeçalho de alguns desses emails para descobrir o IP e MAQUINA de origem;
    - se for ips e máquinas ao nosso alcance (de usuários da própria empresa), realizar "aquele" suporte técnico (eliminar virus, porcarias na inicialização, etc, etc);
    - continuar monitorando manualmente a fila e observar novos "ataques";
    - repetir esses itens todos.

    A grande vantagem de ter esse trabalhão todo, é que você irá precisar utiilizar vários comandinhos absrudamente úteis para administração linux. Seu aprendizado vai aumentar muito assim como o meu está aumentando.

    Vamos combinar o seguinte:

    Tente entender o que acontece no script que eu te passei. Ele trabalha diretamente nas pastas do qmail (cuidado);
    Siga os passos acima e coloque aqui as dúvidas (sobre resultado de comandos, etc);

    A gente vai trocando idéias e comandos! Acho que produziremos melhor. Certamente você poderá estar com problemas que eu ainda não tive. Aprenderemos juntos.

    Boa sorte e não deixe de postar o seu progresso!

    []s,

  9. #9

    Padrão

    bom dia colega, vou pensar em como fazer esse script, semana que vem me aprofundo mais, de momento quero deixar um script q fiz pra enviar email quando a fila ultrapassar 100 emails. Veja se te ajuda.


    srvemail# cat /usr/bin/verificaEmails.sh

    #!/bin/sh
    contaEmails=`/usr/local/sbin/qmail queue | grep "messages in queue:" | awk '{split($4,lin," ");print lin[1]}'`
    valorBase="80"
    if [ $contaEmails -ge $valorBase ]; then
    #Enviar email usando /bin/mail
    /usr/bin/mail -s "ALERTA: Excesso de mensagens no servidor !!!" "[email protected]" <<EOM
    Teste executado em: $(date +%c)
    Quantidade de Emais da Fila: $contaEmails

    Portal Medianeira Informática Ltda
    Maiko Rodrigo Britzke
    EOM
    fi

    dê permissão de execução, chmod 755, e pode agendar no cron para executar de minuto/minuto ou como desejar...

    boa sorte, abraços

  10. #10

    Padrão

    Boa! Não tenho problemas de fila. Mas servira de base para outras ferramentas! Postarei meu progresse! Conitnuemos a nos falar! []s,