ATALIBA TEIXEIRA - Um Geek falando sobre coisas Geeks

  • principal
  • eu
  • blog
  • textos
  • dicas unix
  • phishing scams
  • contato
Início


SPAMDYKE - UM ALIADO CONTRA O SPAM NO QMAIL

Enviado por ataliba em sex, 2008-03-21 17:34.

Um dos maiores problemas atuais da informática é o famigerado Spam. Todo SysAdmin acorda sempre tendo que ler logs, vasculhar ips, criar blacklists, scripts, procurar boas soluções etc etc. Em resumo, boa parte do tempo de nossa vida profissional estaremos lutando contra os malucos que teimam em encher a caixa postal das pessoas de lixo.
O Spam é sem dúvida um negócio. O que eu mais vejo por aí são as famosas empresas de Email Marketing proliferando. No fim, o Email Marketing[bb] nada mais é que uma forma mais bonita de falar, Spam.
E, enquanto tem gente ganhando dinheiro mandando mensagem para você, seus gerentes estão ali lhe cobrando a velocidade de acesso em um link abarrotado de mensagens não "solicitadas". Ou seja, enquanto alguns ganham dinheiro, outros perdem dinheiro por causa disto.

Várias empresas hoje ganham a vida em cima do Spam. A IronPort, que hoje é parte da Cisco, tem um dos melhores appliances do mercado para isto. Do lado brasileiro, temos a mineira Mais Informática, com seu produto MAV, que não deixa a desejar em nada a seus grandes concorrentes. E, também, a maioria das empresas de anti-vírus possui produtos nesta área.

Eu, sempre, sou adepto de soluções livres. E, como em geral, os servidores de email são baseados ou no Postfix[bb] ou no Qmail[bb], descobrir soluções para estes produtos, é um dos meus esportes preferidos.

Pessoalmente, apesar das intensas opiniões contrárias de outros analistas eu adoro implementar soluções com o Qmail. E, o post em questão fala sobre uma ferramenta que é o Spamdyke é um tipo de canivete suiço para o Qmail.

O grande trunfo do SpamDyke em cima de outras soluções baseadas no Qmail[bb], é não pedir com a maioria das features do produto, que você aplique um patch nos fontes e o recompile.

Na realidade, o SpamDyke é um programa ( módulo ) que se adiciona ao Qmail e faz a coisa funcionar de um jeito melhor do que ele já faz ( e como faz, viu ).

A vantagem do SpamDyke é o corte da conexão já lá no início do processamento. Ou seja, meu servidor está tentando mandar um spam para o servidor que tem o SpamDyke instalado. Caso a minha mensagem ( ou servidor ) seja caracterizado como fonte de spam, eu terei minha conexão cortada ali.
Isto elimina custo de processamento ( pois a mensagem não vai se processada pelo servidor ) e banda ( ou seja, não vai haver a transferência da mensagem para o servidor ). Este custo, ao longo dos dias em que se instala o SpamDyke é sentido no acesso remoto a máquina e na banda que fica disponível para outros serviços.

O processo de instalação do SpamDyke é bem fácil. Na realidade, ele está muito bem documentado no site do projeto, mas uma documentação em português não faz mal a ninguém né ?

Baixe o pacote do SpamDyke no site do projeto e faça o processo padrão :

# wget -c http://sitedospamdyke/download/spamdyke-x.y.z.tgz
# tar -xvzf spamdyke-x.y.z.tgz
# cd spamdyke-x.y.z
# ./configure
# make
# cp spamdyke /usr/local/bin

Ou seja, com este processo, seu spamdyke já está prontinho para funcionar em qualquer servidor que esteja com o Qmail já em operação.
No meu caso, eu uso o QmailToaster, que integra com a maioria das distribuições espalhadas pelo mundo ( se bem que eu já usei a maioria das variações das implementações de Qmail disponíveis por aí :) ).

Em geral, você vai procurar o arquivo run do smtpd, e nele você vai usar a seguinte sintaxe :

exec /usr/local/bin/softlimit -m 40000000 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
/usr/local/bin/spamdyke -f /etc/spamdyke.conf \
/var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true \
2>&1

Ou seja, seu arquivo de run do smtpd vai ter uma linha como a que está em negrito no trecho que eu peguei do run. Ou seja, aqui você vai estar chamando o SpamDyke antes de ativar o qmail-smtpd ( por um acaso o daemon de smtp do Qmail :-) ) .

Assim, entende-se por este processo o porque tudo é parado antes de gerar um processamento maior na máquina.

O arquivo de configuração, exemplificado abaixo, é o citado inclusive, no site oficial do SpamDyke pelo autor do programa :

log-level=2
local-domains-file=/var/qmail/control/rcpthosts
max-recipients=5
idle-timeout-secs=60
graylist-dir=/home/vpopmail/graylist
graylist-min-secs=300
graylist-max-secs=1814400
policy-url=http://my.policy.explanation.url/
sender-blacklist-file=/home/vpopmail/blacklist_senders
recipient-blacklist-file=/home/vpopmail/blacklist_recipients
ip-in-rdns-keyword-file=/home/vpopmail/blacklist_keywords
ip-blacklist-file=/home/vpopmail/blacklist_ip
rdns-blacklist-dir=/home/vpopmail/blacklist_rdns.d
reject-empty-rdns
reject-unresolvable-rdns
reject-ip-in-cc-rdns
rdns-whitelist-file=/home/vpopmail/whitelist_rdns
ip-whitelist-file=/home/vpopmail/whitelist_ip
greeting-delay-secs=5
check-dnsrbl=zombie.dnsbl.sorbs.net
check-dnsrbl=dul.dnsbl.sorbs.net
check-dnsrbl=bogons.cymru.com
reject-missing-sender-mx
tls-certificate-file=/var/qmail/control/servercert.pem

Quem conhece bem servidores de email vai bater o olho na maioria destas linhas e entender de cara. Os detalhes de cada opção acima eu vou colocar abaixo. O post vai ficar um pouco extenso por causa disto, mas acho que o interessado no mesmo não vai se preocupar com isto.
Em breve vou soltar uma documentação do tipo Hardening Qmail, com estas opções, até para a pessoa não ter que ficar procurando um monte de coisa solta aqui no site.

Bom, as duas primeiras linhas se auto-explicam, uma é o nível de debug e a outra, o seu arquivo de domínios válidos do Qmail.


max-recipients=5

Esta é uma opção que eu gosto muito. Sabe aqueles famosos emails que um recebe do outro com aqueles pps otimistas e sai mandando para todo mundo ? Este é o modo mais fácil de forçar o seu usuário a desistir de mandar a mensagem, pois quando ele exceder o número máximo ( 5 destinatários por mensagem ), o servidor vai recusar a saída/entrada de mensagens deste tipo.

idle-timeout-secs=60

Timeout da conexão. Ou seja, se em 60 segundos nada responde, diga adeus, não preciso de mandar este troço ou receber este troço.

graylist-dir=/home/vpopmail/graylist
graylist-min-secs=300
graylist-max-secs=1814400

Opções relacionadas ao Greylisting.
O conceito de Greylisting é uma idéia interessante, desenvolvida por Evan Harris e consiste em recusar temporariamente uma mensagem e esperar por sua retransmissão. Esta técnica parte da premissao de que emails válidos são enviados a partir de MTAs
(Mail Transfer Agents) legítimos, que mantém filas e possuem políticas de
retransmissão em caso de erros temporários e geralmente spammers e códigos
maliciosos raramente usam MTAs legítimos.
Apesar de hoje spammers se utilizarem de MTAs legítimos, esta técnica também se mostra interessante para barrar vírus e trojans, que usam estruturas de smtp embutidas no mesmo, que não utilizam-se do tratamento que um MTA faz com as mensagens.

policy-url=http://my.policy.explanation.url/

Aqui você vai colocar um endereço onde você explicará as políticas de anti-spam que você utiliza, e como o usuário ( ou seja, quem quer lhe mandar mensagens ) deve proceder caso tenha algum problema de envio ao seu servidor.

sender-blacklist-file=/home/vpopmail/blacklist_senders

Endereços ou parte de domínios que não serão aceitos pelo seu servidor. Sintaxes aceitadas : email@domini.com.br, @dominio.com.br.

recipient-blacklist-file=/home/vpopmail/blacklist_recipients

Caminho contrário. Lista de domínios para onde o seu servidor não vai enviar mensagens ( ou seja, seus usuários não poderão mandar mensagens para este local ). Mesma estrutura de sintaxe aceita pela outra listagem.

ip-in-rdns-keyword-file=/home/vpopmail/blacklist_keywords

Lista de palavras não aceitas quando for feita a resolução reversa do DNS. Exemplo : recebo um email do dominio sexo.com.br e tenho esta palavra "negada" na minha blacklist de palavras do dns reverso.
Quando ele for resolvido pelo SpamDyke, esta mensagem será considerada inválida por possuir uma palavra que está nesta blacklist.
Uma blacklist interessante, principalmente, porque spammers vão usar alguns domínios específicos para suas ações.


ip-blacklist-file=/home/vpopmail/blacklist_ip

Ips de servidor aos quais você não quer realmente receber mensagens. Aqui, é interessante usar uma dica que já dei, que é bloquear os ips advindos por exemplo, da China e da Koreia, que são dois países sabidamente gerados de grande volume de spam.

rdns-blacklist-dir=/home/vpopmail/blacklist_rdns.d

Este aqui é um ponto interessante. É um diretório onde estarão "diretórios" com os nomes dos domínios que serão bloqueados durante consultas. Ou seja, todo domínio que estiver neste diretório será consultado e caso bata com algum, será dropado logo já na conexão.
Não vou conseguir ser tão claro quanto ao funcionamento, porque eu ainda não achei uma boa lógica para trabalhar com isto. No fundo, quando achar, devo gerar algum script para criação dos diretórios e afins :-)
Para quem quiser saber mais sobre isto, clique neste link aqui e dê uma estudada.



reject-empty-rdns
reject-unresolvable-rdns

Aqui, o básico. Não tem DNS reverso ou não conseguiu se resolver o DNS reverso do cara, a mensagem é negada.

reject-ip-in-cc-rdns

Procura pelo ip do servidor remoto ( DNS reverso ) e também pelas duas letras que levam ao código do país. Caso ambos sejam encontrados, diga adeus, a conexão é rejeitada ( toda a busca é feita no nome do domínio em questão ).

rdns-whitelist-file=/home/vpopmail/whitelist_rdns

Mesmo que hajam erros no DNS reverso, caso ele esteja nesta listagem, vai ser aceito qualquer conexão dos ips em questão. Um ip por linha.

ip-whitelist-file=/home/vpopmail/whitelist_ip

Mesmo esquema, só que relacionado a ips que estejam em alguma rbl ou coisa parecida.

greeting-delay-secs=5

Tempo aceito de demora para que o servidor receba o famoso Hello, primeiro passo de uma conexão smtp.


check-dnsrbl=zombie.dnsbl.sorbs.net
check-dnsrbl=dul.dnsbl.sorbs.net
check-dnsrbl=bogons.cymru.com

RBLS que serão utilizadas pelo Spamdyke. Uso estas e mais algumas que o pessoal indica por aí :-)

reject-missing-sender-mx

Se o domínio não tiver um MX válido, logicamente, não vai ser aceito conexão do mesmo. Por incrível que pareça, isto ainda acontece com diversos domínios que estão configurados por aí.
Erros de DNS são muito comuns ainda.

tls-certificate-file=/var/qmail/control/servercert.pem

Caso esteja usando uma conexão segura, use o mesmo certificado já criado na hora de configurar o seu Qmail.

O post foi um pouco longo, mas foi mesmo para apresentar esta ferramenta que é o SpamDyke. Com a instalação do mesmo, nesta configuração pura, já cheguei a ter por volta de 90% de negação de spams ( de cara ) e isto me deixou um pouco animado com o mesmo.
Com esta ferramenta dominada, duvido que a porcentagem não suba.

Ainda não há um script oficial para estatísticas, mas na lista do SpamDyke eu consegui um script muito legal ( na realidade, precisei editar ele diversas vezes ) e ele conseguiu me mostrar o seguinte resultado :

[root@neo ~]# cat /var/log/maillog | spamdyke-stats
7804 DENIED_IP_IN_CC_RDNS
6803 DENIED_RDNS_MISSING
4362 DENIED_RBL_MATCH
2394 ALLOWED
1532 DENIED_RDNS_RESOLVE
553 DENIED_OTHER
418 DENIED_BLACKLIST_IP
376 TIMEOUT
29 DENIED_TOO_MANY_RECIPIENTS
22 DENIED_SENDER_NO_MX

Allowed: 2394
Denied : 21899
Sum: 24293
% Spam : 90.15%

Ou seja, não é o ideal, porque o bom é ter um controle geral dos logs, mas já ajuda para ver como está o rendimento do spamdyke. Para quem quiser baixar, deixei o código pronto por aqui ;-)
Espero que o post ajude a quem está tentando implementar o SpamDyke em seus servidores. E, vamos trocar idéias sobre o mesmo porque quanto mais experiências sobre ele

Trackback URL for this post:

http://www.ataliba.eti.br/trackback/1603
SPAMDYKE - ATUALIZANDO PARA A VERSÃO 4.X
from ATALIBA TEIXEIRA on dom, 2008-11-09 11:56

Já falei sobre o SpamDyke algumas vezes aqui e inclusive tenho um artigo sobre como implementar ele para as versões 3.x . Já venho titubeando a algum tempo atualizar ele nos servidores que administro, pois ele é bem chatinho de configurar e, tem aque

  • Blog: Spam

Opções de exibição de comentários

Escolha seu modo de exibição preferido e clique em "Salvar configurações" para ativar.

greylist?

Enviado por Anônimo (não verificado(a)) em ter, 2008-12-02 16:31.
imagem de Anônimo

Como descobrir quais e-mails estão na greylist no spamdyke?

  • responder

Graylist não bloqueia

Enviado por ataliba em qua, 2008-12-03 19:44.
imagem de ataliba

Graylist não bloqueia email, e sim, ips. Ou seja, se um ip está na sua graylist, qualquer email que venha daquele servidor é aceito por padrão.
Os ips da sua graylist, estão no diretório greylist do seu SpamDyke

graylist-dir=/home/vpopmail/graylist

No meu exemplo é este .. no seu, eu infelizmente não tenho como saber qual.

  • responder

Parabéns

Enviado por Luis Bertocco (não verificado(a)) em qui, 2008-04-10 00:45.
imagem de Luis Bertocco

Eu achei o site do SpamDyke a uma semana atrás, vou instalar hoje mesmo, assim que chegar na empresa.

[]

Luis Bertocco

  • responder

Que legal que você vai

Enviado por ataliba em qui, 2008-04-10 08:33.
imagem de ataliba

Que legal que você vai instalar o SpamDyke.
Assim que instalar vai postando por aqui as suas experiências com ele.
Vai ser legal desenvolver uma boa documentação por aqui sobre ele, pois o que eu achei, pelo menos em português é bem escassa.

  • responder

Instalei

Enviado por Luis Bertocco (não verificado(a)) em qui, 2008-04-10 13:37.
imagem de Luis Bertocco

gostaria de saber, mais sobre os log? ainda não consegui visualizar nenhum.

 

Obrigado.

Luis Bertocco 

  • responder

Em todos os sistemas que

Enviado por ataliba em sex, 2008-04-11 08:41.
imagem de ataliba

Em todos os sistemas que você instalar, ele não estará logando no log padrão do Qmail não. Em geral, ele gera os logs diretamente no log de email do sistema operacional.
Assim, tendo como exemplo o CentOS, ele estaria logando no /var/log/maillog.
Esta configuração você pode conseguir diretamente na configuração do syslog ( ou syslog-ng ).
O log é bem amigável, e fácil de visualizar. Caso ele não esteja gerando logs, pode estar havendo algum problema com o funcionamento do mesmo ou seu syslog está configurado de um modo diferente.

  • responder

Parabenizar pelo Artigo

Enviado por Valter Rezende Jr (não verificado(a)) em sab, 2008-03-29 12:06.
imagem de Valter Rezende Jr

Muito bom o artigo do SpamDyke

 Muito bem esplicado e didatico

 Uma feramenta aparentemente muito boa

Eu estava procurando algom assim a algum tempo

Posta um Artigo no vivaolinux lá está necessitando de um artigo como este

 Abrigado

 Valter Rezende Jr

Sup Informátca

  • responder

Olá

Enviado por ataliba em qui, 2008-04-10 08:32.
imagem de ataliba

Não vejo muito sentido em postar o artigo no Viva o Linux tendo em vista que eu já tenho o meu blog aqui :-)
Mas obrigado por ter achado o artigo bom, pois ele na realidade nem foi desenvolvido com muito cuidado não :-)

  • responder

duvida na implementacao

Enviado por Anônimo Covarde (não verificado(a)) em seg, 2008-06-02 14:37.
imagem de Anônimo Covarde

instalei o spamdyke, e a princpio tudo ok, agora relativo ao arquivo de configurações , ou mesmo tenho que criar, se sim, já creie, os arquivos e camimhos do arquivo de configuração também, e estou fazendo uns testes internos e nada parece estar funcionando, os email sao enviado normalmente, fiz um teste com blacklist_recipients e coloquei um email ali.mas mesmo assim é enviado...

  • responder

Opções de exibição de comentários

Escolha seu modo de exibição preferido e clique em "Salvar configurações" para ativar.

Enviar novo comentário

O conteúdo deste campo é privado não será exibido publicamente.
If you have a Gravatar account, used to display your avatar.
  • Endereços de páginas de internet e emails viram links automaticamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linhas e parágrafos quebram automaticamente.

Mais informações sobre opções de formatação

CAPTCHA
Esta pergunta foi criada para testar se você é realmente um humano e é utilizada para prevenir o envio de spams.




Hospedagem


Mais Info - Dreamhost
Por $US 7.95 você hospeda seu domínio no melhor provedor de hospedagem do mundo, a DREAMHOST, e ainda recebe um domínio internacional grátis, pode hospedar ilimitados domínios, ilimitados subdomínios, tem 20 GB de disco, 1 Tera Byte de transferência mensal, Perl, Python, PHP, Ruby e muito mais. Está esperando o que ? Utilizando o cupom SESSENTABR você ganha 60 dólares de desconto em todos os planos, retirando o L1 mensal, em que você tem 50 dólares de desconto. Aproveita :-)

Quer saber mais sobre o autor, visite este link. Quer me enviar um email, use este link aqui. E, caso queira me fazer uma pergunta, use este link aqui.

RSS


Inscreva-se no nosso Feed

Dicas Unix

SFTP em uma porta diferente
Provido por DICAS UNIX

Login do usuário

  • Criar nova conta
  • Solicitar uma nova senha

Navegação

  • Contribuições recentes
  • Mapa de Seções

Flickr recent photos

Eu tocandoNeil Peart e Peter CrissPorco eh elogioServico da Copasa

Últimos no Wakoopa

Software tracking

Últimas do Twitter

  • ataliba: Pós Graduação já danado leitura. Lendo o livro Inteligencia e COntra inteligencia do Rodrigo Dollabella
  • ataliba: Inicio de gripe ... pesado hoje.
  • ataliba: Só porque eu falei, entra uma do Alice Cooper hehehehe
  • ataliba: Bizarro, hoje minha playlist tá totalmente punk e hardcore ...
  • ataliba: Molecada 666 hahahaha eita musica boa sô hahahaha

Mais mensagens em

Últimas do GReader

Recent tracks

DFC - Mulheres III

DFC - Mulheres II

Os Cabeloduro - Raimunda

DFC - Pau No Cu do Capitalismo em Posiçoes Obcenas

DFC - Molecada 666

Os Cabeloduro - canção de amor

Courtesy of Last.fm

Comentários recentes

  • Randomicos em Python
    1 dia 18 horas atrás
  • Será que as coisas iam tão
    1 dia 19 horas atrás
  • Resposta
    1 dia 20 horas atrás
  • FHC é igual a Bush, ninguém quer ter o nome associado
    1 dia 20 horas atrás
  • Fake
    1 semana 2 dias atrás
  • hahahahaha Profecias se
    1 semana 4 dias atrás
  • NÃO FALE DO QUE NÃO SABE.
    1 semana 4 dias atrás
  • Não, eu achei via busca de
    1 semana 4 dias atrás
  • Não mesmo. Palavra
    1 semana 4 dias atrás
  • Micharney
    1 semana 5 dias atrás
  • principal
  • eu
  • blog
  • textos
  • dicas unix
  • phishing scams
  • contato

© (2001-2009) Ataliba Teixeira | Conheça nossa Política de Privacidade