Integradando SPF, Razor & Pyzor ao SpamAssassin do Zimbra
Instalando spf query
SPF (Sender Policy Framework) é um sistema que tenta prevenir o envio de mensagens forjadas, faz isto através de configurações em seu DNS, quando um e-mail for enviado, o servidor checará as entradas TXT/SPF no seu servidor de DNS, e através dela saberá qual servidor pode entregar mensagens com origem em seu domínio, caso alguém esteja enviando mensagens @seudominio sem ser os servidores citados no registro TXT/SPF o servidor MTA pode ser configurado para recusá-la. É uma maneira bem eficiente de evitar problemas com seu dominio.
Instale a biblioteca para checagem spf
#Debian like
apt-get install libmail-spf-query-perl #RedHat like yum install perl-Mail-SPF perl-Mail-SPF-Query
Instalando o razor2
O Razor2 é um sistema colaborativo, distribuido de filtro para deteccao e controle de spam.
Instale o razor2
#Debian like apt-get install razor #RedHat like yum install perl-Razor-Agent razor-agents
Crie o diretorio do razor
mkdir /opt/zimbra/amavisd/.razor; chown -Rf zimbra:zimbra /opt/zimbra/amavisd/.razor
Agora torne-se zimbra (su zimbra) e crie a conta no razor
razor-admin -home=/opt/zimbra/amavisd/.razor -create razor-admin -home=/opt/zimbra/amavisd/.razor -discover razor-admin -home=/opt/zimbra/amavisd/.razor -register
Agora edite o arquivo /opt/zimbra/conf/spamassassin/v310.pre e descomente a linha referente ao razor
loadplugin Mail::SpamAssassin::Plugin::Razor2
Instalando o pyzor
O pyzor é uma rede de sistemas distríbuidos para controle de spam, este utiliza digest de mensagens para fazer análise e identificar o SPAM.
#Debina like apt-get install pyzor
#RedHat like
wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh
yum install pyzor
Crie o diretorio do pyzor
mkdir /opt/zimbra/amavisd/.pyzor; chown zimbra:zimbra /opt/zimbra/amavisd/.pyzor
Agora como usuario zimbra (su zimbra)
zimbra@zcs:~/amavisd$ pyzor --homedir /opt/zimbra/amavisd/.pyzor discover downloading servers from http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x Traceback (most recent call last): File "/usr/bin/pyzor", line 8, in <module> pyzor.client.run() File "/var/lib/python-support/python2.5/pyzor/client.py", line 1005, in run ExecCall().run() File "/var/lib/python-support/python2.5/pyzor/client.py", line 184, in run self.servers = self.get_servers(servers_fn) File "/var/lib/python-support/python2.5/pyzor/client.py", line 411, in get_servers servers.read(open(servers_fn)) File "/var/lib/python-support/python2.5/pyzor/client.py", line 117, in read self.append(pyzor.Address.from_str(line)) File "/var/lib/python-support/python2.5/pyzor/__init__.py", line 458, in from_str fields[1] = int(fields[1]) IndexError: list index out of range
Esse erro é normal, o pyzor tenta baixar o arquivo servers atualizado em http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x porém ele o arquivo não está disponível e retorna o erro.
Para resolver este problema, coloque a linha abaixo no arquivo servers dentro do diretório /opt/zimbra/amavisd/.pyzor, pois ele vai funcionar.
zimbra@zcs:/opt/zimbra$ echo "82.94.255.100:24441" > /opt/zimbra/amavisd/.pyzor/servers
Agora vamos fazer um teste para ver se nosso pyzor consegue se conectar no servidor.
zimbra@zcs:/opt/zimbra/amavisd/.pyzor$ pyzor --homedir /opt/zimbra/amavisd/.pyzor ping 82.94.255.100:24441 (200, 'OK')
Ajustando o spamassassin para trabalhar com razor2 e pyzor
Edite o arquivo /opt/zimbra/conf/spamassassin/local.cf
ok_languages en es ok_locales en es trusted_networks 127. 10.70. 192.168. use_bayes 1 skip_rbl_checks 0 use_razor2 1 dns_available yes ## Optional Score Increases ## Choose your preferred values... score SPF_FAIL 10.000 score SPF_HELO_FAIL 10.000 score RAZOR2_CHECK 2.500 score PYZOR_CHECK 2.500 score BAYES_99 4.300 score BAYES_90 3.500 score BAYES_80 3.000 bayes_ignore_header Received: from mail3.example.com bayes_ignore_header Received: from localhost bayes_ignore_header Received: from mail1.example.com bayes_ignore_header Received: from mail2.example.com
Ajustando configurações do amavisd-new
Edite o arquivo /opt/zimbra/conf/amavisd.conf
$sa_tag_level_deflt = -10.0; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 6.6; # add 'spam detected' headers at that level $sa_kill_level_deflt = 15; # triggers spam evasive actions $sa_dsn_cutoff_level = 15; # spam level beyond which a DSN is not sent $sa_quarantine_cutoff_level = 15; # spam level beyond which quarantine is off $sa_mail_body_size_limit = 512*1024; # don't waste time on SA if mail is larger $sa_local_tests_only = 0; # only tests which do not require internet access?
- http://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#SPF
- http://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#Razor2
- http://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#Pyzor
- http://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#Spamassassin_Config
- http://www.openspf.org/
- http://razor.sourceforge.net/
- http://pyzor.sourceforge.net/
Integrando postgrey ao zimbra
O postgrey é uma implementação do conceito “greylist”. Muito eficiente no combate ao SPAM a greylist consiste em uma fila especial para entrega de mensagens, ele funciona da seguinte forma, quando um MTA tentar entregar uma mensagem para o seu servidor MTA o postgrey recusar a mensagem, dando um reject com codigo 550 (ou seja, tente mais tarde), se for um servidor real, configurado de acordo com as RFC’s de SMTP, ele tentará entregar a mensagem novamente depois de algum tempo, na segunda tentativa o postgrey libera o envio. Se for um sistema de SPAM ele simplesmente passa para a próxima mensagem de sua lista e não tenta entregar aquela mensagem que foi rejeitada. O postgrey é um sistema simples, com um conceito simples, porém extremamente funcional e diminui muito SPAM e VIRUS, seu fluxo de mensagens e sua fila vão diminuir bastante.
Veja neste gráfico como diminuiu a quantidade de spam e virus do servidor, analise o antes e depois.
#Debina like
apt-get install postgrey
#RedHat like
yum install postgrey
Agora vamos configurar o postfix do zimbra para ususá-lo, edite o arquivo
vi /opt/zimbra/conf/postfix_recipient_restrictions.cf
E coloque a linha baixo antes da linha que contem a diretiva permite
check_policy_service inet:127.0.0.1:60000
Parametros de inicializacao do postgrey
Agora vamos ajustar os parametros de incializacao do postgrey, edite o arquivo /etc/defaults/postgrey e substitua
POSTGREY_OPTS="--inet=127.0.0.1:60000"
por
POSTGREY_OPTS="--inet=127.0.0.1:60000 --delay=60 --max-age=30"
Vamos entender o que é o que!
--delay especifica o tempo que um MTA ficara na greylist (por quanto tempo ele vai recusar msgs do mta). --max-age significa por quanto tempo o postgrey vai manter essas informações em cache
whitelist do postgrey
O postgrey possue 2 tipos de whitelist, uma para clients e outra para recipients, vamos ajustar a whitelist de clients, edite o arquivo /etc/postgrey/whitelist_clients e caso queria colocar parte da esplanada dos ministérios lá, ficaria assim…
# ministerios do brasil planejamento.gov.br comunicacoes.gov.br mc.gov.br mct.gov.br mec.gov.br desenvolvimento.gov.br mds.gov.br cultura.gov.br cidades.gov.br agricultura.gov.br incra.gov.br in.gov.br mma.gov.br mme.gov.br mpas.gov.br mre.gov.br saude.gov.br turismo.gov.br presidencia.gov.br brasil.gov.br defesa.org.br fazenda.gov.br esporte.gov.br integracao.gov.br mj.gov.br mte.gov.br transportes.gov.br # entidades com status de ministerio agu.gov.br cgu.gov.br bcb.gov.br nae.gov.br # autarquias, agencias e programas ligados a ministerios iti.gov.br radiobras.gov.br ebc.tv.br onid.org.br tvbrasil.org.br serpro.gov.br dataprev.gov.br
Salve a lista, reinicie o postgrey
/etc/init.d/postgrey restart
ou
invoke-rc.d postgrey restart
pronto, postgrey instalado, configurado e integrado!
referências
- http://wiki.zimbra.com/index.php?title=Improving_Anti-spam_system#Postgrey
- http://postgrey.schweikert.ch/
- http://greylisting.org/
- http://gutocarvalho.net/mediawiki/index.php?title=ZCS_Melhorias_no_AntiSPAM_e_AntiVIRUS
- http://www.iredmail.org/forum/topic481-install-pyzor-razor2-and-dcc-on-your-centosrhel-iredmail-server.html

Windows ou Linux?
GNU, licença do kernel Linux
Isso pode até ser um empecilho para que empresas usem o pinguim, mas, com o Linux, você tem suporte de um grande número de fóruns e sites de ajuda (como o
Um problema que aos poucos está sendo sanado, é o suporte a hardware. Anos atrás, se você pretendia instalar Linux, você teria que escolher a dedo todo o equipamento do seu computador, ou não teria uma instalação 100% funcional. Hoje esta teoria caiu por terra. Você pode pegar tanto um PC ou laptop (ou até mesmo um Mac) e a maioria das distribuições instaladas terão muitas chances de funcionar 100%. Claro, ainda existem algumas exceções, mas elas são cada vez mais raras.
Não importa onde a evolução do Linux chegue, ou quão fantástico o ambiente desktop possa se tornar, a linha de comando será sempre uma ferramenta imprescindível para propósitos administrativos. É difícil imaginar uma máquina com Linux sem a linha de comando. Entretanto, para o usuário final, já é algo bastante próximo da realidade. Você pode usar o Linux por anos sem jamais tocar na linha de comando, assim como você faz no Windows. E embora você possa utilizar a linha de comando no Windows, ela não será tão poderosa quanto é no Linux. A Microsoft tende a esconder o prompt de comando do usuário. A menos que você acesse o “executar” e entre com “cmd”, o usuário provavelmente nem saberá que a linha de comando existe no Windows. E mesmo que ele consiga acessá-la, não terá utilidade nenhuma, já que praticamente todas as configurações do Windows são feitas pelo ambiente gráfico.
Com qualquer distribuição Linux atual, você tem um local onde é possível procurar, adicionar ou remover softwares. São os gerenciadores de pacotes, como o Synaptic. Com ele, você pode abrir uma única ferramenta, procurar por uma aplicação (ou um grupo de aplicações) e instalar sem fazer qualquer busca na internet. Mesmo assim, é importante lembrar que softwares sem pacotes pré-compilados existem, e complicam muito a vida do usuário iniciante.
Entrada frontal do campus da Microsoft em Redmond, nos Estados Unidos.
O Linux possui habilidade de funcionar em diferentes run levels. Com isso, dá para usar o Linux pela linha de comando (run level 3) ou via interface gráfica (run level 5). Assim, se algo ocorrer com o servidor gráfico X.org, você pode logar como superusuário (root) pela linha de comando e assim resolver o problema.