SPAMDYKE - ATUALIZANDO PARA A VERSÃO 4.X

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 aquela famosa, atualizar correndo os softwaresBAZAR DO ATALIBA sempre é um problema.
Bem, mas isto era inevitável. O uso do SpamDyke 3.x já não era legal, e resolvi finalmente brindar meus Qmail com uma versão nova do programa.

A vantagem é, no fim, todas as dicas que dei no primeiro artigo servem para esta nova implementação.
Por isto vou cobrir na realidade os pontos necessários para atualizar o SpamDyke. Com o tempo, solto um outro post aqui falando como implementar um SpamDyke da série 4.x do zero.

O primeiro passo é efetuar duas coisas. O backup do binário do spamdyke e depois, o backup das configurações atuais.

# cp /usr/local/bin/spamdyke /root/spamdyke-09112008
# cp /etc/spamdyke.conf /etc/spamdyke.conf-09112008

Com isto, você tem a capacidade de fazer um Rollback caso haja algum problema com o seu Spamdyke.

Após isto, pare todos os serviços do seu Qmail ( vai depender da sua implementação do mesmo ) e efetue a compilação do mesmo ( para maiores detalhes sobre a compilação[bb], siga para este artigo aqui ).

Com o SpamDyke instalado é hora de passar para a configuração do seus serviços atuais.

Primeiro, um exemplo do antigo arquivo de configuração :

log-level=2
local-domains-file=/var/qmail/control/rcpthosts
max-recipients=10
idle-timeout-secs=60
graylist-dir=/var/qmail/graylist
graylist-min-secs=300
graylist-max-secs=1814400
policy-url=http://correio.faced.br/policy.html
sender-blacklist-file=/var/qmail/control/spamdyke/blacklist_senders
recipient-blacklist-file=/var/qmail/control/spamdyke/blacklist_recipients
ip-in-rdns-keyword-file=/var/qmail/control/spamdyke/blacklist_keywords
ip-blacklist-file=/var/qmail/control/spamdyke/blacklist_ip
rdns-blacklist-dir=/var/qmail/control/blacklist_rdns.d
reject-empty-rdns
reject-unresolvable-rdns
reject-ip-in-cc-rdns
rdns-whitelist-file=/var/qmail/control/spamdyke/whitelist_rdns
ip-whitelist-file=/var/qmail/control/spamdyke/whitelist_ip
greeting-delay-secs=5
check-dnsrbl=zombie.dnsbl.sorbs.net
check-dnsrbl=dul.dnsbl.sorbs.net
check-dnsrbl=bogons.cymru.com
check-dnsrbl=activationcode.r.mail-abuse.com
check-dnsrbl=activationcode.q.mail-abuse.com
check-dnsrbl=cbl.abuseat.org
check-dnsrbl=spamsources.fabel.dk
check-dnsrbl=ix.dnsbl.manitu.net

reject-missing-sender-mx
tls-certificate-file=/var/qmail/control/servercert.pem

O novo arquivo :

log-level=info
local-domains-file=/var/qmail/control/rcpthosts
max-recipients=10
idle-timeout-secs=60
graylist-dir=/var/qmail/graylist
graylist-min-secs=300
graylist-max-secs=1814400
graylist-level=always
policy-url=http://correio.faced.br/policy.html
sender-blacklist-file=/var/qmail/control/spamdyke/blacklist_senders
recipient-blacklist-file=/var/qmail/control/spamdyke/blacklist_recipients
ip-in-rdns-keyword-blacklist-file=/var/qmail/control/spamdyke/blacklist_keywords
ip-blacklist-file=/var/qmail/control/spamdyke/blacklist_ip
rdns-blacklist-dir=/var/qmail/control/blacklist_rdns.d
reject-empty-rdns
reject-unresolvable-rdns
reject-ip-in-cc-rdns
rdns-whitelist-file=/var/qmail/control/spamdyke/whitelist_rdns
ip-whitelist-file=/var/qmail/control/spamdyke/whitelist_ip
greeting-delay-secs=5
dns-blacklist-entry=zombie.dnsbl.sorbs.net
dns-blacklist-entry=dul.dnsbl.sorbs.net
dns-blacklist-entry=bogons.cymru.com
dns-blacklist-entry=activationcode.r.mail-abuse.com
dns-blacklist-entry=activationcode.q.mail-abuse.com
dns-blacklist-entry=cbl.abuseat.org
dns-blacklist-entry=spamsources.fabel.dk
dns-blacklist-entry=ix.dnsbl.manitu.net

reject-missing-sender-mx
tls-certificate-file=/var/qmail/control/servercert.pem

Ou seja, foram as seguintes mudanças.

A opção idle-timeout-secs , se estiver como zero, está desabilitada. Se não for informado, o valor é 60 segundos. Fora isto ... é escolher o valor da opção.

Caso seja informado a opção graylist-dir , a opção graylist-level ( não necessária na série 3.x ) deve ser informada como always.

Se for informada a opção no-graylist-dir , a opção graylist-level deve ser informada como only.

Se a opção always-graylist-ip-file for informada, o valor da opção deve ser mantido.

Se a opção never-graylist-ip-file for informada, o valor da opção deve ser mantido como atualmente está.

Se a opção always-graylist-rdns-dir estiver informada, ela deve ser substituida por graylist-exception-rdns-dir. O valor deve ser mantido o mesmo que já está no arquivo de configuração.

Se a opção never-graylist-rdns-dir for informada, ela deve ser modificada para graylist-exception-rdns-dir, e o valor deve ser mantido o mesmo que já está na configuração.

Se a opção always-graylist-rdns-file estiver informada, ela deve ser modificada para grayist-exception-rdns-file e o valor não deve ser modificado.

Se a opção never-graylist-rdns-file for informada, ela deve ser modificada para graylist-exception-rdns-file e o valor não deve ser modificado.

Se a opção log-level estiver informada como um valor numérico, agora, ela deve ser uma string. Aqui, como deve ficar agora para cada log level :

  • "0" agora virou "none"
  • "1" agora virou "error"
  • "2" agora virou "info"
  • "3" agora virou "verbose"
  • "4" agora virou "debug"


Se opção log-target estiver informada como valor numérico, ela deve ser modificada agora para uma string, com os valores abaixo :

  • "0" agora virou "stderr"
  • "1" agora virou "syslog"


Uma coisa que ficou muito legal agora foi a url de Policy. O que é a URL de Policy ? Ela é uma url onde você coloca as suas políticas de spam[bb] e bloqueio, para que as pessoas que obtiverem algum problema para enviar email para sua estrutura saibam o porque foram bloqueados.
Assim, esta url vai dar ao usuário ou administrador do servidor que lhe remeteu email uma idéia de como sair de uma blacklist ( mesmo que seja a sua ), tornando sua relação com o mundo mais amigável.

Ou seja, caso você coloque o endereço http://www.example.com/policy.html , SpamDyke vai adicionar o código de rejeição. No caso, a URL ficaria do seguinte modo : http://www.example.com/policy.html#DENIED_RDNS_MISSING . Deve-se lembrar também que a string gerada não pode nunca passar de 100 caracteres ( se bem que 100 caracteres numa url acaba sendo coisa pra caramba ).

Outro ponto legal é, caso a url termine com um "=" o SpamDyke irá adicionar o código de rejeição sem o "#". Um exemplo seria, http://www.example.com/policy.php?reason= , a url gerada seria http://www.example.com/policy.php?reason=DENIED_RDNS_MISSING .

Este ponto é legal caso você tenha criado, por exemplo, um script com alguma linguagem dinâmica que gera uma url de acordo com os códigos de bloqueio do SpamDyke :-)

Para mim, já deu algumas idéias. Em breve solto um PHP ( deve ser porque não vem bem ao caso criar uma página Python somente para isto ) com os códigos de erro e afins, para ajudar quem já tem o SpamDyke configurado.

Voltando a vaca fria, caso você tenha colocado no seu arquivo a opção check-dns-whitelist, a opção deve ser modificada para dns-whitelist-entry e o valor configurado para a mesma deve continuar igual já está.

Se a opção check-dnsrbl estiver colocada no arquivo, ela deve ser modificada para dns-blacklist-entry. O valor deve ser mantido o que já está.

Se a opção check-rhs-whitelist for informada, ela deve ser modificada para rhs-whitelist-entry e o valor deve ser matido igual já está.

Caramba, já devem estar de saco cheio de ler isto né ? Mas eu sinto ... tem mais coisa ainda para ser escrita hahahahaaha

Se a opção check-rhsbl for informada, ela deve ser modificada para rhs-blacklist-entry e o valor deve ser mantido o mesmo.

Se a opção ip-in-rdns-keyword-file for informada, ela deve ser modificada para ip-in-rdns-keyword-blacklist-file e o valor deve ser mantido o mesmo.

Se a opção smtp-auth-command-encryption tiver sido informada, ela deve ser modificada para smtp-auth-command. A opção smtp-auth-level neste caso tem que ser colocada com o valor ondemand-encrypted.

Ou seja, são muitas modificações que o SpamDyke teve ... vale a pena pegar a documentação e dar uma olhada.

Pretendo discutir um pouco mais o novo SpamDyke em outros posts ... de cara, já enchi vocês de informações :-)

Vamos atualizar nos nossos servidores Linuxbazar do ataliba/Unix[bb] em geral e discutir um pouco mais sobre o programa aqui e em outras comunidades :-)