SPFBL local com Zimbra – Parte I

O SPFBL é mais conhecido pelo seu serviço de DNSBL, que diga-se, é sensacional. MAs ele também pode ser instalado localmente e integrado ao Zimbra.

Trata-se de um poderoso anti-spam livre e gratuito, com gestão independente por domínio via interface web. O índice de acerto do SPFBL é muito bom mesmo e tem tornado a luta contra o spam muito mais fácil.

Apesar de tudo de bom, há algumas limitações que eu gostaria d frisar para evitar decepções:

1 – Ele não faz retenção de mensagens bloqueadas, ou seja, o reenvio fica a cargo do respeito à RFC pelo servidor de envio;
2 – A interface web, chamada de painel de controle é bastante limitada e tem um visual bem superado;

Mas esses são detalhes menores em uma ferramenta sensacional. Fica aqui meus parabéns ao Leandro que é o criador e mantenedor do SPFBL.

Neste tutorial vamos ver como fazer a instalação, integração e configuração para trabalhar em ambiente com um ou mais domínios usando a versão GNU Ubuntu 18.04, Zimbra 15.8.8 e instalando o SPFBL no mesmo servidor do Zimbra.

Em todas as configurações vou usar o domínio testes.com.br e você deverá substituí-lo pelo seu domínio.

Conheça e colabore com o SPFBL acessando o repositório deles no github

Então vamos lá!

Pré requisitos

O SPFBL está feito em Java – blerg!!! – e para poder funcionar precisa do openjdk e de mais alguns utilitários. Por algum motivo o SPFBL não gosta das versões mais novas do “openjdk”, por isso eu sempre instalo a versão 8.
Instale assim:

apt install openjdk-8-jre nmap bc

Baixando o SPFBL

Você deve baixar a última versão do SPBL do site deles no Github. Claro que você pode usar o comando git, mas aqui eu vou usar o bom e velho wget mesmo.

Seguem os comandos:

cd /opt
wget https://github.com/leonamp/SPFBL/archive/master.zip
unzip master.zip

Instalando o SPFBL

Depois de descompactar com o unzip acima, será criado o diretório SPFBL-master será criado. Será necessário criar um diretório de instalação de sua escolha e vários arquivos e diretórios precisam ser copiados.

Eu escolhi instalar o SPFBL em /opt/spfbl. Então seguem os comandos:

cd /opt
mkdir spfbl
cp -a SPFBL-master/dist/SPFBL.jar spfbl/
cp -a SPFBL-master/run/spfbl.conf spfbl/
cp -a SPFBL-master/lib spfbl/
cp -a SPFBL-master/data spfbl/
cp -a SPFBL-master/web spfbl/
cp -a SPFBL-master/client/spfblpostfix.pl spfbl/
chmod +x spfbl/spfblpostfix.pl
mkdir /var/log/spfbl
cp SPFBL-master/client/spfbl.sh /sbin/spfbl
chmod +x /sbin/spfbl
cp SPFBL-master/run/spfbl-init.sh /etc/init.d/spfbl-init
chmod 755 /etc/init.d/spfbl-init
update-rc.d spfbl-init defaults

Configurando o SPFBL

Hora de fazer os ajustes necessários na configuração do spfbl. O primeiro passo é criar um e-mail exclusivo no Zimbra para a gerência e uso do SPFBL.

su - zimbra -c"zmprov ca spfbl@testes.com.br sua_senha_aqui"

Agora edite o arquivo /opt/spfbl/spfbl.conf e ajuste as seguintes opções como descrito abaixo:

hostname=mail.testes.com.br
interface=eth0
http_port=8001
peer_limit=127
dnsbl_limit=127
spfbl_limit=127
admin_email=spfbl@testes.com.br
smtp_auth=true
smtp_starttls=yes
smtp_host=mail.testes.com.br
smtp_port=587
smtp_user=spfbl@testes.com.br
smtp_password=sua_senha_aqui
reverse_required=true

As opções são bem auto explicativas e estão documentadas no site do SPFBL então eu não vou repeti-las aqui. Apenas tenha o cuidado de ajustar o nome de seu domínio e hostname do servidor de email.

Agora edite o arquivo /sbin/spfbl e modifique a opção IP_SERVIDOR para o endereço IP ou nome do seu servidor. Pessoalmente eu uso o endereço IP do loopback, assim:

IP_SERVIDOR=127.0.0.1

Iniciando o SPFBL

Hora de iniciar ele ver os logs. Execute:

/etc/init.d/spfbl-init start

E verifique os logs em /var/log/spfbl

Armazenando as alterações periodicamente

o SPFBL mantém todas as alterações em memória, portanto uma queda de energia ou reset podem causar a perda delas. Por isso é importante programar no cron para que elas sejam salvas periodicamente.

Insira a seguinte linha no arquivo /etc/crontab para fazê-lo:

0 1 * * * root /sbin/spfbl store

Essa linha salvará todas as alterações, todo dia às 01 da manhã.

Ativando o Painel de Controle via web do SPFBL

O acesso ao Painel de Controle usando um usuário específico. Abaixo seguem os comandos para isso.

spfbl client add 127.0.0.1/32 localhost SPFBL spfbl@testes.com.br
spfbl user add spfbl@testes.com.br admin
spfbl user send-totp spfbl@testes.com.br

Se o envio falhar pode ser necessário liberar o envio local no master.cf.in do seu Zimbra. Revise as opções smtpd_relay_restrictions e smtpd_client_restrictions adicionando permit_mynetworks em cada uma delas. Depois, como usuário zimbra execute “postfix reload”

Hora de acessar o Painel de controle

A autenticação no Painel de Controle do SPFBL é feita em dois estágios, ou seja, primeiro você recebe uma chave e com ela você gera a senha para poder logar.

O último comando acima enviou para o e-mail spfbl@testes.com.br a chave TOTP com a qual se gera a senha de acesso. A chave é essa sequência de letras e números abaixo do QRcode.

Portanto os passos para acessar o painel são os seguintes:

1 – Tenha certeza de que a porta 8001 está liberada em seu firewall. Pode-se usar qualquer outra porta desejada, basta definir a opção http_port no arquivo de configuração do SPFBL e reiniciar o serviço;

2 – Acesse o link

http://mail.testes.com.br:8001/spfbl@testes.com.br

3 – A tela de login será como a de baixo, solicitando que você entre com a chave TOTP que lhe foi enviada por e-mail. Faça isso.

4 – Acesse https://totp.danhersam.com, insira sua chave TOTP no campo YOUR SECRET KEY e use a senha gerada na tela de login do Painel de Controle.

Feito!

Se o Painel de Controle estiver vazio, ou seja, sem nenhuma mensagem, aguarde alguns minutos que elas vão aparecer.

Adicionando gestão por domínio no SPFBL

O SPFBL permite gestão individualizada por domínio. Isso facilita demais a gestão do anti-spam, permitindo que cada domínio tenha suas próprias políticas de liberação e bloqueio.

Essa gestão é terceirizada, ou seja, cada domínio tem sua própria conta administrativa que gerencia apenas esse domínio.

A ativação desse recurso se dá através da criação de um usuário para cada domínio. Essas contas são do tipo “postmaster”. É assim que o SPFBL sabe que elas pertencem a um determinado domínio.

A criação dessas contas no SPFBL é feita assim:

spfbl user add postmaster@dominio1.org postmaster
spfbl user send-totp postmaster@dominio1.org

  • Todas as mensagens para dominio1.org serão gerenciadas pela conta postmaster@dominio1.org
  • Assim como na conta admin definida antes, o segundo comando envia a chave TOTP para que ela possa logar no Painel de Controle
  • O acesso ao painel de controle é igual ao do admin, apenas trocando o usuário no fim, assim:
http://mail.testes.com.br:8001/postmaster@dominio1.org

Integrar o SPFBL com o Zimbra

A integração é bem simples. Essencialmente o SPFBL é adicionado como um content-filter no Zimbra, ou seja, a mensagem chega, é enviada para o SPFBL e este devolve um “status” de OK ou de erro e o Postfix do Zimbra barra ou deixa passar.

O content-filter é um belo script feito em Perl e que já foi copiado durante os passos da instalação.

Hora de alterar o master.cf.in adicionando as linhas abaixo no final do arquivo. Siga os passos:

1 – Edite o arquivo /opt/zimbra/common/conf/master.cf.in

2 – Adicione as seguintes linhas, cuidando da identação:

policy-spfbl unix - n n - - spawn
   user=nobody argv=/usr/bin/perl /opt/spfbl/spfblpostfix.pl

3 – Edite o arquivo /opt/spfbl/spfblpostfix.pl e altere a opção PeerHost para ficar assim:

PeerHost => '127.0.0.1'

4 – Altere o arquivo /opt/zimbra/conf/zmconfigd/smtpd_recipient_restrictions.cf adicionando a linha abaixo imediatamente abaixo da linha que tem eject_unknown_reverse_client_hostname:

check_policy_service unix:private/policy-spfbl

5 – Como usuário zimbra, reinicie os serviços específicos do Zimbra:

zmconfigdctl restart
zmmtactl stop
zmmtactl start

Conclusão

O SPFBL é um poderoso anti-spam baseado em reputação. Simples de instalar e administrar.

Recomendo fortemente ler a documentação para poder fazer bloqueios e liberações gerais via o cliente cli.

Comece executando spfbl sem nenhum argumento e olhe atentamente as opções que a ajuda imprime na tela.

Parte II

No próximo tutorial vou apresentar o KyaFilter. É um software desenvolvido por mim para melhorar a integração do SPFBL com o Zimbra:

1 – Ele cria o whitelist por envio. Isso significa que todos os endereços para os quais se enviam mensagens sçao adicionados no whitelist to SPFBL;

2 – Integração com o botão “Spam” do webmail do Zimbra para adicionar na blacklist do usuário o remetente dessa mensagem.

Giants Shoulders

Once upon a time, there was a smart guy who asked the giants to help him to reach the sky and obtain all the treasures it had to offer.
He told the giants about the wonders there and how he wants to share it with all of them!

The giants let him climb on their shoulders and he was able to succeed in his aspiration!

Unfortunately, as soon as he gets the treasures he became selfish, screaming to all about how smart and rich he had become.
“I’ll give you nothing!” he shouted.


As sad as you can imagine, all the giants helping him up left.

Alone, on the clouds, the smart man had nothing once again.


Authors: Erin and Anahuac

o GNU foi pro brejo

Errata em 23/12/2019 – O Latinoware terminou acontecendo. Apesar disso artigo se mantem válido por refletir a minha opinião naquele momento e nada ter sido feito para desfazer essa percepção. Mas cabe meu parabéns os organizadores do evento pela perseverança.

————————————————————————————————————-

Neste setembro de 2019 o Software Livre recebeu sua última pá de cal no Brasil: não há mais Latinoware. É bem verdade que esse evento já não tinha mais compromisso real com a defesa da liberdade do software ou com os princípios da filosofia do Software Livre, mas foi, durante sua primeira década um expoente do movimento, junto com o FISL.

Seus organizadores sofrem de OSISmo crônico. Lutaram arduamente para difundir os ideais do Open Source, fragilizando a essência da comunidade de colaboração, que é fortalecer o indivíduo através da cooperação desinteressada, através da humanidade e da fraternidade de ajuda ao próximo sem maiores interesses ou visando ganhos pessoais. Decidiram dar voz e razão ao pensamento mercantilista, onde o acesso ao código deve servir ao mercado. Esse Deus mercado que corrompe, degrada e se alimenta de seus defensores. É suicídio para qualquer movimento social se mercantilizar e o Software Livre permitiu isso.

Os líderes da Latinoware foram sofrendo essa metamorfose feia e degradante que só grandes doses de fascismo são capazes de gerar: ao mesmo tempo em que enganavam as pessoas chamando seu evento de “tecnologias abertas” decidiram aderir ao golpismo, ao anti-petismo e até mesmo ao bolsonarismo. Durante os anos de governos do PT a Itaipú Binacional hospedou e financiou o evento, em nome da democratização do conhecimento e da colaboração entre os países vizinhos.

Bastaram alguns meses de governo Bolsonaro para que o apoio ao Latinoware fosse encerrado. Que puxada de tapete, meus amigos!

Os organizadores do FISL também pecaram ao se negar a escolher um lado. Decidiram, via ASL – Associação do Software Livre, que deveriam representar os dois: fascistas e não fascistas. Como se fosse possível representar dois grupos, onde o objetivo de um deles é exterminar o outro. Como diria o sábio Robin, santa inocência Batman!

Em 2012 depois da reação permissiva da comunidade Software Livre à distribuição de um spyware no Ubuntu, vaticinei que o movimento havia morrido. Ele tinha morrido mesmo, mas tinha se esquecido de deitar. Andou cambaleante como um zumbi, até agora. Finalmente foi enterrado.

“Movimento social e político em defesa da liberdade do software, visando proteger os usuários, garantir sua perpetuação e permitir a distribuição irrestrita de conhecimento”. Eis a definição de Movimento Software Livre. Mas como fazer isso sem comunidades, sem lideranças, sem eventos e sem participação real fora da Internet?

A sequência dos fatos que nos mataram:

  • Fortalecimento das redes sociais privadas;
  • Perfilamento e influencia sobre as ações do movimento;
  • Fortalecimento do pensamento mercadológico – OSI
  • Cooptação dos líderes do movimento
  • Enfraquecimento exponencial das comunidades
  • Distribuição de software não livres nas distribuições GNU
  • Normalização das ações aéticas da mercantilização
  • Substituição do termo Software Livre por Open Source, Código Aberto ou Tecnologias Abertas
  • Esvaziamento das ações comunitárias: install fest, aulas gratuitas, documentação, tradução e mutirões
  • Sobreposição do termo Linux ao termo GNU
  • Falência dos eventos menores
  • Falência dos eventos maiores

E como se tudo isso não fosse os evidentes ingredientes para a crônica de uma morte anunciada, as vítimas festejam seu fim, esbanjando agressividade contra os movimentos que resistem, contra os governos que os apoiaram, contra o criador do movimento, contra às comunidades filosóficas e desprezando os colaboradores que não fazem código. Uma empáfia digna dos capitães do mato, dos agente da SS ou dos PM à serviço do Ustra.

Tudo isso sob o argumento de que é preciso evoluir. Que são novos tempos. Que os princípios do Software Livre, com mais de 30 anos, caducaram e não se encaixam mais na sociedade moderna. Como se a fraternidade, a preservação dos direitos do próximo, o não mentir, enfrentar os poderosos interesses de dominação, colaborar e distribuir, não fossem conceitos imunes ao tempo, a vilania e ao fascismo.

Ainda agora estarão comemorando a aproximação da Microsoft, Google, Facebook, Amazon e Apple ao open source. Pois que comemorem também o fim do FISL, o fim da Latinoware e o extermínio do próprio Software Livre.

Mas sempre haverá esperança. Eu quero um mundo sem Open Source, sem mega corporações, sem Bolsonaros. E esse mundo só é possível se os resistentes marcarem este momento como o divisor, como a gota d’água, como o ponto sem volta. Não há contemporização possível, convivência possível, aceitação possível.

Fomos encurralados e abatidos como cerdos mansos.

O GNU foi pro brejo!

Mas ainda vamos resistir um pouco mais em @ultraGNU no Telegram.

Libre Software

Este artigo foi escrito em 08 de agosto de 2018​​, mas somente agora me pareceu que valia a pena publicar…

Em 2012 eu vaticinei o fim do movimento software livre: a geração Ubuntu havia dominado praticamente todos os espaços. Nesses 6 anos o cenário piorou, e muito. Finalmente, todos os objetivos da OSI se concretizaram, ou seja, Open Source sobrepujou o Free Software como termo de uso regular para definir programas de computador com código livre, a fagocitose das comunidades e seus expoentes pelo mercado e suas empresas, a lógica do desenvolvimento colaborativo para reduzir custos, a remoção do ranço filosófico do movimento e o enfraquecimento contundente dos poucos defensores remanescentes da velha escola filosófica do GNU.

Numa tentativa de reação um pequeno grupo de pessoas fez um contraponto contundente mostrando que Open Source e Software Livre não são a mesma coisa. A metodologia era clara: denunciar os falsos ativistas que propagam a filosofia Open Source dizendo se tratar de Software Livre – os OSIstas – ao mesmo tempo que explicava incansavelmente quais as diferenças entre os movimentos. Nasceu o #ultraGNU

Depois de uma longa conversa com os mais renomados ativistas do Movimento Software Livre ficou claro que eles não compartilham dessa metodologia. Segundo seu ponto de vista denunciar nominalmente os OSIstas é muito agressivo. Inclusive o próprio termo OSIsta é considerado agressivo. Portanto nenhum apoio, suporte ou colaboração.

Não há qualquer dúvida que o Open Source venceu, e essa é a prova de que a metodologia seguida e defendida pelas FSF e seus ativistas mais empenhados simplesmente se tornou ineficiente. Hoje, com seu discurso amigável e sua aproximação dos defensores do Open Source eles estão ajudando a cavar a própria cova.

Considerar o Open Source como uma evolução natural do Software Livre é uma aberração filosófica, mas se mostrou algo concreto e factual pela competência dos primeiros e pela incompetência dos segundos em conquistar corações e mentes. A lógica do mercado prevaleceu e não será o “bom mocismo” que conseguirá reverter o quadro.

Tendo o extermínio da filosofia do Software Livre como algo eminente e sem poder contar com o apoio da ala moderada, creio que está na hora de aceitar o fim, mas não para encerrar, mas para recomeçar, reiniciar, ou por assim dizer, dar reboot.

Temos que recomeçar. Devemos adotar a filosofia original do Software Livre como base e estendê-la para dar a ênfase necessária ao quesito filosófico. Se o que define um Software Livre é o respeito as 4 liberdades, e essa definição permitiu sua cooptação por um movimento neoliberal pro mercado, então é hora de criar um adendo que torne a definição não cooptável: uma quinta cláusula.

Nasceria assim o Libre Software.

Sua definição estaria composta pelas 4 Liberdades do Software Livre mais a não aceitação, sob nenhuma circunstância, de Softwares não livres como parte integrante, dependente ou distribuível.

No campo filosófico o Movimento Libre Software condena o Open Source pela sua complacência com os softwares não livres e com o mercado, em detrimento do usuário final. Condena de forma mais veemente os falsos ativistas que induzem as pessoas a confundirem Open Source com outros conceitos. E condena a metodologia amistosa com a qual os ativistas do Software Livre tratam seus algozes.

Ainda há esperança de agrupar pessoas dispostas a reagir de forma eficiente pela filosofia libertária da tecnologia democrática, acessível, compartilhável e redistribuível, sem permitir a cooptação pelos interesses econômicos, de mercado e do capital.

O Libre Software pode seguir de onde o Software Livre parou, virar o jogo e fazer do Mundo um lugar melhor.