Neste tutorial vamos seguir todas as etapas para instalr o SPFBL e o KyaFilter localmente em um servidor Casrbonio CE.

Antes de começar gostaria de fazer um agradecimento público à SERVERDO.IN que patrocinou a confeccção desde material.

O SPFBL é 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.

O KyaFilter é um daemon que integra o SPFBL ao Carbonio permitindo gestão dinâmica onde as ações dos usuários interagem com o SPFBL tornando-o cada vez mais ajustado às necessidade de cada ambiente.

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

1 – O par SPFBL+KF 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 22.04 LTS Server, Carbonio CE 24.12.1 e instalando o SPFBL+KF no mesmo servidor do Carbonio.

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

Pré requisitos

Memória RAM e CPUs são críticos para o bom funcionamento do Carbonio e mais ainda quando se integra com SPFBL+KF no mesmo servidor. A recomendação mínima é de 32Gb RAM e 8 CPUS.

O SPFBL está feito em Java e para poder funcionar precisa do openjdk e de mais alguns utilitários. Já o KyaFiltyer está feito em python 2 o que també exigirá a instalação de alguns pacotes e o ajuste do binário padrão para a V2.

Instale assim:

apt install openjdk-17-jre nmap bc ncat python2.7

Hora de fazer o python2 como padrão do sistema, assim:

ln -s /usr/bin/python2.7 /usr/bin/python

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 comando unzip acima, será criado o diretório SPFBL-master. 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 spfbl/history
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

Configurando o SPFBL

Hora de fazer os ajustes necessários na configuração do spfbl. O primeiro passo é aumentar a memória reservada para o daemon. Edite o aqruivo spfbl-init e altere como sugerido abaixo:

vi /etc/init.d/spfbl-init

troque:
/usr/bin/java -jar -Xms1024m -Xmx2048m /opt/spfbl/SPFBL.jar 2>&1 &
por:
/usr/bin/java -jar -Xms2g -Xmx4g /opt/spfbl/SPFBL.jar 2>&1 &

Em seguida vamos criar um e-mail exclusivo no Carbonio para a gerência e uso do SPFBL:

su - zextras -c"zmprov ca [email protected] sua_senha_aqui"

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

dns_provider_primary=8.8.8.8
hostname=mail.testes.com.br
interface=Nome_da_Interface_de_Rede (eth0, enp6s18)
http_port=8001
peer_limit=127
dnsbl_limit=127
spfbl_limit=127
[email protected]
smtp_auth=true
smtp_starttls=yes
smtp_host=mail.testes.com.br
smtp_port=587
[email protected]
smtp_password=sua_senha_aqui
defer_time_softfail=0
defer_time_yellow=0
cache_time_store=120

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:

tail -f /var/log/spfbl/spfbl*.log

Você também pode executar o comando abaixo para ter certeza de que seu SPFBL está funcionando adequadamente:

spfbl version

Finalmente faça o SPFBL iniciar automaticamente quando o servidor for reiniciado. Para isso adicione a linha abaixo no arquivo “/etc/rc.local”. Se ele não existir, crie e torne executável. Visando ser o mais didático possível vamos assumir que ele não existe e colocar todos os comandos a seguir:

vi /etc/rc.local

Adicione o conteúdo:

#! /bin/bash
/etc/init.d/spfbl-init start

Torne o aruqivo executável:

chmod +x /etc/rc.local

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. Atenção para o hostname e o e-mail do admin

spfbl client add 127.0.0.1/32 hostname_server SPFBL [email protected]
spfbl user add [email protected] admin
echo "USER SET [email protected] PASSWORD SenhaForteAqui123" | nc localhost 9875

Use uma senha forte!

Hora de acessar o Painel de controle

A autenticação no Painel de Controle do SPFBL é feita usando o usuário e senha acessando a URL do SPFBL em seu servidor adicionando porta 8001 e o usuário admin, assim:

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/[email protected]

Navegadores modernos podem forçar o uso de HTTPS, se esse for o caso, use uma “Janela anônima” para acessar a URL por HTTP

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 [email protected] postmaster
echo "USER SET [email protected] PASSWORD SenhaForteAqui123" | nc localhost 9875
  • Todas as mensagens para dominio1.org serão gerenciadas pela conta [email protected]
  • O acesso ao painel de controle é igual ao do admin, apenas trocando o usuário no fim, assim:
http://mail.testes.com.br:8001/[email protected]

Integrar o SPFBL com o Carbonio

A integração é bem simples. Essencialmente o SPFBL é adicionado como um content-filter no CArbonio, ou seja, a mensagem chega, é enviada para o SPFBL e este devolve um “status” de OK ou de erro e o Postfix do Carbonio 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/zextras/common/conf/master.cf.in

2 – Adicione as seguintes linhas no fim do arquivo, 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/zextras/conf/zmconfigd/smtpd_recipient_restrictions.cf adicionando a linha abaixo imediatamente abaixo da linha que tem reject_unknown_reverse_client_hostname:

vi /opt/zextras/conf/zmconfigd/smtpd_recipient_restrictions.cf

Adicione
check_policy_service unix:private/policy-spfbl

Ficará como na imagem abaixo

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

su - zextras -c "zmconfigdctl restart ; zmmtactl stop ; zmmtactl start"

Conclusão da Instalação do SPFBL

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.

KyaFilter

O KyaFilter faz a integração dos botões “Spam” e “Não Spam” do webmail do Carbonio, com o SPFBL, dessa forma as ações dos usuários vai afinando o comportamento do anti-spam e tornando-o cada vez mais eficiente. Essa interação é feita de forma granular e individual, permitindo que o bloqueio de uma mensagem seja feito apenas para o usuário que desejar bloquear aquele remetente.

Outra ação é o “autowhite”, ou seja, todos os endereços de e-mail para os quais se envia mensagens são inseridos na whitelist do SPFBL minimizando os falsos positivos, afinal de contas, faz sentido querer receber a resposta dos endereços para os quais se enviam mensagens.

As mensagens que passarem pelo primeira checagem de envelope do SPFBL terão seu conteúdo analisado e, de acordo com a pontuação recebida a mesnagem será então marcada como Spam para ser entregue na pasta de Spam ou não.

Entendendo o Fluxo

A mensagem ao chegar no servidor é recebido pelo Postfix que faz uma checagem de envelope com o SPFBL, em seguida encaminha para o Amavis que faz as checagens no Clamav e no SpamAssassin. Com a instalação do KyaFilter, o Amavis entregará a mensagem para o KyaFilter que ao finalizar faz a entrega de volta ao Postfix. Desenhando:

Postfix –> SPFBL –> Amavis –> KyaFilter –> Postfix

Baixando o KyaFilter

Você pode fazer o download do KyaFilter aqui

Instalando

1 – Copie o arquivo kyafilter.tgz para o diretório /opt ou baixe diretamente com o comando abaixo:

wget https://www.anahuac.eu/kyafilter.tgz

2 – Descompacte o arquivo com o comando abaixo:

tar zxvf kyafilter.tgz

3 – Crie o diretório /opt/kyafilter e copie o conteúdo para ele

mkdir /opt/kyafilter
cp kyafilter /opt/ -Rf

4 – Entre no diretório criado e execute o instalador:

cd /opt/kyafilter
./install

O instalador solicita algumas informações:

Default installation dir [/opt/kyafilter]: 
* apenas pressione enter

Carbonio Spam Account:
* Essa conta será criada pelo instalador

Carbonio Ham Account:
*Essa conta será criada pelo instalador

SPFBL IP address:
* Se no SPFBL está tudo como 127.0.0.1, deixe assim mesmo.

SPFBL runs in a multi domain admins server? (N/y): 
* Se seu SPFBL tiver um usuário por domínio responda "y", se não, apenas pressione enter.

Messages too big will have only headers scanned? [yes]:
* Esta opção vai checar apenas os cabeçalhos das mensagens grandes no SPFBL.

How big a message nees to be to have only it\'s header scanned? [1048576] 1Mb in bytes:
* Qual é o tamanho da mensagem grande?

Ele cria as contas de HAM e SPAM para as quais o integrador do Carbonio vai enviar as mensagens quando se usam os botões de Spam e Não Spam no webmail do Carbonio.

Integrando com o Carbonio

Esse passo exige um pouco mais de cuidado:

1 – Edite /opt/zextras/common/conf/master.cf.in

2 – Adicione o trecho abaixo, no final do aquivo, respeitando a tabulação:

# Kya Filter
kyafilter unix -      -       n       -       10 smtp
        -o smtp_data_done_timeout=5800
        -o smtp_send_xforward_command=yes
        -o disable_dns_lookups=yes
        -o smtpd_sasl_auth_enable=no
        -o max_use=20
[127.0.0.1]:20024 inet n  -       n       -       -  smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o virtual_mailbox_maps=
        -o virtual_alias_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_delay_reject=no
        -o smtpd_client_restrictions=permit_mynetworks,reject
        -o smtpd_data_restrictions=
        -o smtpd_end_of_data_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_milters=
        -o smtpd_sender_restrictions=
        -o smtpd_reject_unlisted_sender=no
        -o smtpd_relay_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o smtpd_sasl_auth_enable=no
        -o mynetworks_style=host
        -o mynetworks=127.0.0.0/8,[::1]/128
        -o strict_rfc821_envelopes=yes
        -o smtpd_error_sleep_time=0
        -o smtpd_soft_error_limit=1001
        -o smtpd_hard_error_limit=1000
        -o smtpd_client_connection_count_limit=0
        -o smtpd_client_connection_rate_limit=0
        -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
        -o local_header_rewrite_clients=
        -o syslog_name=postfix/kyafilter

3 – Ainda dentro de master.cf.in procure pela linha abaixo:

[%%zimbraLocalBindAddress%%]:10025 inet n  -       n       -       -  smtpd
        -o content_filter=

Altere para ficar assim:

[%%zimbraLocalBindAddress%%]:10025 inet n  -       n       -       -  smtpd
        -o content_filter=kyafilter:[127.0.0.1]:20025

Reiniciando os serviços

Com o KyaFilter instalado e o Carbonio configurado, é hora de reiniciar os serviços.

Primeiro o KyaFilter, execute:

/etc/init.d/kyafilter restart
/etc/init.d/kyafilter status

Em seguida basta reiniciar o MTA do Carbonio, assim:

su - zextras -c "zmmtactl restart"

Acompanhe os logs:

Cada comando abaixo em um terminal diferente. Particularmente prefiro usar o screen para isso

tail -f /var/log/mail.log | grep kya
tail -f /var/log/kyafilter.log

E assim a integração entre Carbonio e SPFBL usando o KyaFilter está completa.

Recomendações Importantes

1 – Ajuste o cron do “store” do SPFBL para suas necessidades. Importante ter em mente que tudo que não for “salvo” via store será perdido.

2 – Sempre que possível execute o KyaFilter dentro de uma “janela” do screen. Não sabemos exatamente porque, mas em alguns cenários o KyaFilter falha so se manter em execução permamente. Executá-lo dentro de um screen estabiliza esse comportamento.

3 – Dedique um pouco de tempo ao cli do SPFBL. Abaixo seguem os principais comandos:

spfbl superwhite add "@dominioparaliberar.com"
spfbl superblock add "@dominioparabloquear.com"
spfbl superblock show all | grep dominio
spbfbl check enderecoIP_do_emissor email_do_emissor helo_do_emissor

O último comando acima é muito útil para diagnosticar o motivo de um bloquei e também para saber qual sintaxe usar para o caso de precisar liberá-lo manualmente.

Grupos e participação

É sempre importante ter um grupo de apoio para trocar experiências. Abaixo seguem os grupos do Telegram mais importantes:

Grupo sobre SPFBL – SPFBL Admin @spfbl_admin

Grupo sobre KyaFilter – KyaFilter Admins @kyafilter

Grupo sobre Carbonio – Carbonio Brasil @CarbonioBrasil

So you decided to give it a try!? Awesome! Welcome to Carbonio =)

What if you dedicate some time to learn more about it on my courses in Udemy?

I published two there: Basic and Advanced so you can start from scratch and go further til dominate it all!

Carbonio CE Basic Course and Carbonio CE Advanced Course

Carbonio CE Basic Course

Carbonio CE is the very new Collaboration Server from Zextras.

Corporate E-mail, Calendars, Files repository and online Office. Learn all about it here on Carbonio Community Edition Basic course where you’re gonna see how it works and go all the way from preparing the operations system, going to installation until migrate your accounts ans messages from Zimbra. We’re also covering all Administration and User Interfaces, how to create and deploy Let’s Encrypt Certificates on it and also deal with block and white lists.

  • In this course you will learn:
  • What is Carbonio CE?
  • How it works?
  • What CE stands for?
  • What OS are supported?
  • Minimal hardware requirements
  • How to fix all pre-install requirements (date, language, network, ipv6, database)
  • Installing Carbonio from packages to bootstrap and discovery services
  • Post installation performance adjustments
  • Create and deploy Let’s Encrypt certificate with ACME
  • Go through all Admin UI options to know where is what
  • Working with most important cli commands
  • Whitelist and Blocklist of domains and e-mails
  • Go through all Users UI – The webmail and all it’s options
  • Migrate from Zimbra to Carbonio using Z2C – Zimbra to Carbonio tool

With fully hands-on video classes and an awesome support material with all commands used, you’ll get it fast and easy. Just follow all step-by-step tutorials. Starting from the scratch til have it all working.

All hands on classes have a file with all needed commands so you can easily copy and paste to follow it on your own testing server.

Carbonio CE Advanced Course

This is the Advanced Course for Carbonio CE, the very new Collaboration Server from Zextras.

After a basic installation and setup you need more, much more, to make it an incredible server: ActiveSync to mobiles, sending policies to prevent spam floods, delegated admins to manage specific domains, protection against DDOS and force brute attacks, manage volumes, how to be really effective against Spam, authentication on Active Directory and automatic accounts provisioning and finally how to make Carbonio look the way you want adding a personalized wallpaper and your company logos.

All of that on top of Carbonio Community Edition, using only Free Software.

In this course you will learn:

  • Install and setup ActiveSync server to connect Outlook and Mobile;
  • Sending policies with cbpolicyd
  • Granular backups with cmbackup
  • Global and Delegated Admins with limited privileges;
  • DDOS and Brute Force protection with fail2ban;
  • Volumes management to expand disk space;
  • Anti-Spam like a pro with SPFBL+KF;
  • Using Active Directory to authenticate and automatic accounts provisioning;
  • How to change Carbonio CE look adding wallpaper and company logos.

With fully hands-on video classes and an awesome support material with all commands used, you’ll get it fast and easy. Just follow all step-by-step tutorials and bring your Carbonio CE Server to the next level!

See you soon!

This is how I did it. It doesn’t mean it’s the best way or the only way. It just worked for me and I’m happy to share it with you.

First of all it’s never enough repeat that you MUST do backup and snapshot of the server so if anything goes wrong you can rollback to the original position and be ready for another try.

Get ready for at least an hour of downtime. Upgrade all this packages may take some time.

You also MUST have Carbonio already upgraded to version 24.03 before proceed.

Follow the official Carbonio CE Upgrade from 24.1 to 24.3.0

Preparing

Your server must have all packages and dependencies satisfied. To be sure it’s all right run:

apt update ; apt upgrade

You must be sure there is nothing to fix, add or remove. If so, fix it.

Be sure there is no services setup to be done. To be sure run:

pending-setups -a

Stopping Carbonio

Before upgrading stop Carbonio to prevent services corruption. So run:

su - zextras -c "zmcontrol stop"

Time to upgrade Ubuntu

Ubuntu have its own tool to do it and it will upgrade a LTS server to the next version of LTS available. So once you run the command below, just follow the flow and it will upgrade Ubuntu Server 20.04 LTS to 22.04 LTS.

do-release-upgrade

It will make you some questions and you may answer them to fit your needs. In my case I just press yes for everything and kept my own conf files in the way.

If you want more details about what that command do I recommend you to visit Ubuntu’s upstream documentation.

It take a while to download an process it all. It ends asking to reboot the server. Do it.

Upgrading Carbonio to use Jammy repository

Once Ubuntu is back and running you have to fix Carbonio’s apt repository from focal to jammy. To do it edit the file zextras.list and replace it:

vi /etc/apt/sources.list.d/zextras.list
* replace focal for jammy
* be sure the line is discommented

You should do the same for PostreSQL

vi /etc/apt/sources.list.d/pgdg.list
* replace focal-pgdg for jammy-pgdg
* be sure the line is discommented

Updating the new repository

Once that file is fixed it’s time to update the repository. To do it run:

cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d/
apt update

Fixing apt database for upgrade

In my tests upgrading Carbonio to Jammy didn’t work as expected. Many packages remained as “focal” even after the upgrade. You can see it by your self running:

dpkg -l | grep focal

So here is how I fixed it:

cp -a /var/lib/dpkg/status  /var/lib/dpkg/status.orig

cat /var/lib/dpkg/status.orig | sed s/"Version: .*focal"/"Version: 0"/g > /var/lib/dpkg/status

First command just make a copy of the original status file. It’s never too much have a backup, right?

Second one replace versions numbers on all focal packages that are installed. It forces apt to pull jammy versions for all of it.

Upgrading Carbonio to jammy

Finally it’s time to upgrade Carbonio. So run:

apt update ; apt upgrade

Just let it work and don’t worry much about error messages. We still need to do some steps afer that to get it all running.

Fixing minor errors

As you may have seen not all worked out, so we need to fix permissions and then upgrade again.

/opt/zextras/libexec/zmfixperms
apt upgrade

Fixing setups

After all those upgrades you must run pending-setups:

pending-setups -a

NOT GOOD ENOUGH?

If after that you still have problems then it’s time for brute force!

apt reinstall $(dpkg -l |grep carbonio.*perl|awk '{ printf " "$2 }'| tr '\n' ' ' ; echo)

Have in mind this is the last resort. I strongly suggest you to start again from scratch.

Logrotate error for carbonio.log

It seems that logrotate setup for carbonio.log came with an error that prevents it from loging anything. After the upgrade you must do this fix to get it up and running as expected.

1 – edit /etc/logrotate.d/carbonio

vi /etc/logrotate.d/carbonio

2 – Replace the two lines after the first “postrotate” in the carbonio.log area to be like that:

[ -x /usr/lib/rsyslog/rsyslog-rotate ] && /usr/lib/rsyslog/rsyslog-rotate || true
su - zextras -c "/opt/zextras/bin/zmconfigdctl restart" > /dev/null 2>&1 || true

Watch tabulation to respect logrotate conf files syntax

3 – Save the file

New setup will take place after the server reboot… what is your next step =)

Reboot

To end it all, you must reboot your server

reboot

After all done, it’s not finished

All this procedure leaves some trash behind and for the sake of your apt database I recommend you to deal with it right away.

To see if there is some apt misleading on it’s database run:

apt update ; apt upgrade

It might ask you to remove some unnecessary packages and that’s what we need to fix. Just take the list of it and ask it to install it all over agai.

In my case the list of packages looked like this:

libasn1-8-heimdal libffi7 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libicu66 libjson-c4 libkrb5-26-heimdal libldap-2.4-2 libllvm10 libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib  libroken18-heimdal libssl1.1 libwind0-heimdal python2 python2-minimal python2.7 python2.7-minimal

So I asked apt to install it:

apt install libasn1-8-heimdal libffi7 libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal libhx509-5-heimdal libicu66 libjson-c4 libkrb5-26-heimdal libldap-2.4-2 libllvm10 libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib  libroken18-heimdal libssl1.1 libwind0-heimdal python2 python2-minimal python2.7 python2.7-minimal

As I can’t assure your list of packages will be the same, just do it with the list of packages it shows to you.

Essentially what that will do is setup those packages correctly on apt database and the “apt autoremove” will no longer be shown.

That’s it!!!

Assim como o cristianismo tem várias versões teológicas, como os Ortodoxos, os Católicos e os Protestantes, o Judaísmo também tem suas versões: Ortodoxos, Reformistas e Conservadores.

Os Judeus não escreviam seus preceitos e definições teológicas, eles usavam a Torá que é a prática de transmitir esse conhecimento de forma oral. Mas depois de alguns séculos se torou necessário manter o registro dessas definições e dai surge o Talmude. Então o Talmude é a versão escrita da Torá.

O judaísmo tem quase 3 mil anos, e eles acreditam em um Deus uno e que o verdadeiro Messias virá para salvar a todos que seguem a sua religião. Jesus Cristo nasce judeu, vive judeu e usa essa mesma base teológica, proclamando-se o Messias, o Filho de Deus.

Na visão dos Judeus, Jesus Cristo varia de importância de acordo com a interpretação do Talmude. Em alguns casos, Cristo é apenas mais um pregador, entre tantos que existiram. Para outros ele é um apóstata, um mentiroso, que está no inferno queimando em um caldeirão de fezes. Mas para a maioria deles, Jesus é mais um dos Profetas. Importante sim, mas não sendo o Filho de Deus, nem o Salvador, nem o milagreiro.

Via de regra, o Judaísmo entende originariamente que o povo Judeu não deveria ter um país próprio. Isso é chamado de Diáspora Judaica e se tornou algo entendido como o destino do povo judeu graças às perseguições que ele sofreram nos séculos 8, 6 e 1 antes de Cristo, que os forçaram a viver espalhados pelo mundo.

Mas há uma corrente entre os Judeus que discorda que esse deva ser o destino dos Judeus e que eles têm direito a um país para chamar de seu. Esses são os Sionistas.

O Estado de Israel é fruto da influência dos Sionistas na política europeia, que conseguiu uma autorização da Inglaterra para a criação de um Estado em território Palestino, uma vez que a Palestina estava sob dominação inglesa.

Mas o sionismo vai além do desejo a ter um Estado e terras. Eles se intitulam “Os Filhos da Luz” e todos que se opuserem a seus objetivos devem ser eliminados. Incluídos os cristãos e os judeus não sionistas.

O Estado de Israel tem um povo progressista que não tem determinados freios religiosos: o aborto é permitido e legalizado, ser Gay ou Lésbica não é pecado e a união homoafetiva é amplamente aceita, inclusive nas forças armadas. Inclusive a tortura é permitida pela constituição deles.

Vale lembrar que recentemente a posse e uso recreativo da maconha também foi liberada.

Então eu fico me perguntando o porque de toda essa simpatia dos Cristãos com Israel e os sionistas que vivem lá.

Ser anti genocídio não faz de ninguém antissemita. É assim que os Judeus denominam aqueles que perseguem Judeus. Querer que os Palestinos parem de ser mortos, presos, torturados, expulsos de suas casas e de sua terra, não é ser antissemita. Querer que os Palestinos tenham seu pais, sua terra e sua autonomia política, não é ser antissemita. Chegar a um acordo justo para que Jerusalém se mantenha como território neutro para a boa convivência de Judeus, Muçulmanos e Cristãos, não é ser antissemita.

Mas invadir terras alheias, matar, prender e torturar é crime. E bombardear indiscriminadamente matando mais de 22mil pessoas, das quais 12k eram crianças, é genocídio sim. E parece que vai piorar: mais de 1 milhão de crianças estão em total insegurança alimentar porque Israel não permite a entrada da ajuda humanitária.

Vídeo para a entrevista: https://www.portaldiario.com.br/noticias/religiao/654912/video-por-que-toda-essa-simpatia-dos-cristaos-com-israel-e-os-sionistas-questiona-professor.html

A mídia tem um papel fundamental para controlar a narrativa dos fatos para favorecer seus patrocinadores. Não há mais espaço para acreditar realmente em mídia imparcial. Os sistemas de controle pedem que exista algum nível de controvérsia para dar ares de seriedade e imparcialidade, mas o que realmente atinge as pessoas são as informações que o império quer, e na forma que lhes interessa.

Podemos relembrar de forma didática a invasão do Iraque pelos Estados Unidos baseados na mentira de que o malévolo Saddam Hussein possuía armas de destruição em massa e que eles tinham patrocinado o ataque às Torres Gêmeas em Nova Iorque. Hoje sabe-se que era pura mentira. O que os Estados Unidos precisavam era de uma desculpa para retaliar o ataque sofrido e mostrar todo seu poderio militar.

É o famoso termo que vem sendo amplamente propagado pela mídia hegemônica imperialista: o “direito de defesa”. Apesar de parecer contraditório, há regras até para a Guerra.

Depois dos massacres que foram cometidos nas duas guerras mundiais, todos os países concordaram em criar e aderir a um conjunto mínimo de regras para evitar mortes desnecessárias de civis e militares. Entre essas regras está uma lista de armas que não devem ser usadas e também alguns protocolos de ação e reação entre forças opositoras em conflito. Há vários desses acordos, sendo o mais famoso a Convenção de Genebra.

Vale lembrar que o ataque às Torres Gêmeas não foi um ato terrorista: foi direito de defesa. Uma resposta às invasões do Paquistão e Afeganistão que matou dezenas de milhares. Quando os Aliados invadem é luta contra o terrorismo, quando os outros revidam é terrorismo e quando os Aliados retaliam é “direito de defesa”.

Perceba que, por mais que tentem difundir que se trata de uma questão muito complicada e que remete a milhares de anos, e que se trata de um conflito religioso, não há nada de complicado: uma força invasora Judia, chamada Israel, ataca, mata e toma terras dos palestinos há mais de 70 anos.

Não é conflito, não é briga, não é desentendimento, não é guerra. É invasão genocida. O objetivo final dos Judeus em Israel é tomar todas as terras da Palestina e expulsar os palestinos. E sempre que há reação, e o massacre acontece, chama-se de conflito.

As manchetes da mídia hegemônica são extremamente tendenciosas: “Explosão mata 100 em uma escola de Gaza”. Ora, ora, ora… foi um bujão de gás que explodiu? Foi a panela de pressão? Nada disso, foi uma bomba inteligente direcionada e lançada pelo Exército de Israel. A notícia é dada retirando a responsabilidade israelita pelo massacre. Assim o conflito segue adiante e a percepção é de que não há culpados, afinal foi apenas uma explosão.

Não se fala em palestinos, nos humanos, nas crianças. Se fala de Gaza, da Palestina e do Grupo terrorista Hamas. Israel tem exército, os palestinos tem “grupo terrorista”.

Quando os Palestinos resistem ao avanço da tomada do seu território, as manchetes são assim: “conflito no assentamento Judeu na Cisjordânia”. A redação induz ao entendimento que os Judeus foram assediados em seu assentamento, quando a verdade é exatamente oposta: são os Judeus os que invadiram as terra dos Palestinos, os expulsaram à força e estes tem o direito de reagir.

Você nunca verá uma manchete dizendo: “Pelestinos resistem a mais uma invasão ilegal dos Judeus”

O grau de maldade é tanto, que os Palestinos são obrigados a demolir suas próprias casas para que o terreno seja terraplanado para as construções judias dos assentamentos. Mas isso sequer aparece na mídia. Nem a demolição de prédios e bairros completos, nem o bombardeio de hospitais e escolas, nem o corte das oliveiras ou concretagem tos poços de água para forçar a expulsão dos palestinos de suas terras.

E muito além disso não se fala da Cisjordânia. O objetivo é “cegar” o mundo com notícias focadas na violência do Hamas e do direito de defesa de Israel para que possam continuar matando milhares de crianças.

A grande mídia é Sionista.

Apenas para exemplificar a CNN instaurou uma norma onde todas as notícias sobre Israel tem que passar obrigatoriamente pelo escritório deles em Jerusalém. Por que será?

Vídeo para a entrevista: https://www.diariodosertao.com.br/noticias/mundo/654601/video-prefessor-critica-cobertura-da-midia-na-invasao-de-israel-a-gaza-as-informacoes-que-o-imperio-quer.html

Com um orçamento de bilhões de dólares anuais fornecidos à fundo perdido pelos Estados Unidos, Israel se torna uma sociedade pungente, forte e dinâmica. Seu exército serve de laboratório e sua inteligência militar desenvolve capacidades super evoluídas. A Mossad, o seu serviço secreto está entre os mais destacados, junto com a CIA, KGB e o MI-6. Todos os fãs de filmes de espionagem sabem disso.

A independência da Palestina só veio em 1988 quando a OLP – Organização para Libertação da Palestina a declarou e pediu que a ONU reconhecesse o Estado Palestino como um País Independente. Mas nada é tão fácil quando sua terra é uma colônia, cujo colonizador deu permissão para outros a tomarem e quando a maior super potência do planeta banca essa invasão.

Para ter uma ideia, na última votação sobre o reconhecimento do Estado Palestino na ONU, 194 países votaram que SIM, e apenas 3 contra: Israel, Paraguai e os Estados Unidos. Este último usando seu poder de veto, impediu que o Estado da Palestina fosse formalmente reconhecido.

Entre 1948 e 1988, foram 40 anos de atrocidades, assassinatos, prisões ilegais e especialmente o que eles chamam de “assentamentos”. Vamos esclarecer isso de uma vez: assentamento é o nome que a mídia que serve ao império usa para suavizar a verdade: invasão, morte e tomada ilegal de terras dos outros. Sempre que você ver ou ouvir sobre novos assentamentos judeus, lembre-se que as pessoas que moravam nessas terras foram simplesmente expulsas à força.

Já imaginou se uma força militar chegasse na sua cidade e apenas te expulsasse na ponta de um fuzil para outro lugar? Quem poderá te defender? Por que isso é aceitável quando são Judeus fazendo com Palestinos?

A imagem acima mostra claramente como as forças de ocupação de Israel e seus Judeus foram tomando terreno e expulsando os locais. Ano após ano, na base da violência, tomaram quase que 70% do território.

Mas, covardes como todos os imperialistas, eles não se meteram na Faixa de Gaza. Esse pedacinho era controlado originalmente pelo Egito. Ali se refugiaram milhões de palestinos que foram expulsos de suas terras. É uma das áreas mais densamente povoadas do planeta: milhões espremidos numa área minúscula.

Apesar disso Israel tentou ocupar Gaza diversas vezes e falhou. Da luta do povo palestino em Gaza nasce o Hamas – Movimento de Resistência Islâmica. Uma força militar que decidiu reagir às agressões dos Judeus de forma mais militarmente organizada.

Então vamos recapitular: a força invasora e genocida é Israel e seus judeus. Os palestinos estão resistindo da melhor forma que podem.

Em 2005 Israel desiste definitivamente de tentar tomar Gaza e então transforma a região no maior campo de concentração da história da humanidade: a área é murada, o espaço aéreo e marítimo é fechado, a água é racionada e todos os habitantes que precisem entrar e sair são forçados a fazê-lo através de “postos de controle”.

Se você quiser ter uma visão bem realista desses fatos assista ao início do filme de super-heróis Adão Negro. A semelhança é brutal. Só que na verdade é muito pior.

Vídeo da entrevista: https://www.youtube.com/watch?v=wO8GNGs-ayI

A região Palestina existe desde sempre. Ali estão cidades onde eventos históricos e teológicos muito importantes tiveram lugar. Muitos deles na cidade mais famosa: Jerusalém que foi e continua sendo epicentro das fricções entre três das mais importantes religiões da humanidade, Judaísmo, Islamismo e Cristianismo.

O Cristianismo é uma derivação do Judaísmo. O Deus uno que se conhece bem no mundo cristão é o mesmo venerado pelos Judeus. Cristo, palestino, profeta e milagreiro convenceu parte dos judeus que ele era o filho encarnado de Deus. E assim foi criada uma religião diferente. Os judeus seguiram seu caminho e continuam esperando a chegada do escolhido, do iluminado, do Filho de Deus.

Cristo, Filho de Deus ou não, nasceu, viveu e foi brutalmente assassinado… como Palestino.

Ser Judeu não designa nacionalidade, nem pertencimento a uma terra ou país. Cristão, budista, do candomblé, xintoísta ou muçulmano, também não. A religião não é Pátria. É fé.

Então a terra Palestina não pertence a nenhuma religião, mas ao seu povo e a todas as religiões que esse povo decidir ter. São as pessoas que permaneceram na terra, lutaram, mataram e morreram por ela e chegaram aos dias modernos como sendo os que tem direito a reclamá-la como sua casa, seu lar, sua pátria.

Pelos romanos, otomanos e depois pelos Ingleses, a Palestina foi sempre uma colonia até 1988 e sua capital sempre foi Jerusalém.

Após a Primeira Guerra Mundial a migração de Judeus europeus para a Palestina foi ganhando força com o apoio da Inglaterra, e logo depois da Segunda Guerra Mundial, em 1947 a Inglaterra decidiu oficializar a criação de um estado Judeu em terras Palestinas. Com a conivência da ONU foi criado o estado de Israel em 1948.

Com apoio bélico e logístico os Judeus em Israel começaram a invasão, tomando terras, casas e vidas em nome de sua religião. Nasce o Sionismo Moderno. Os “Filhos da Luz” se deram ao direito de exterminar a tudo e a todos que se colocassem em seu caminho, com patrocínio Inglês primeiro e dos Estados Unidos em seguida.

Em 1948 acontece a Al-Nakba, o primeiro grande massacre perpetrado por Israel deslocando milhares e milhares de Palestinos de suas casas e terras. O que Israel chamou de Independência foi apenas um ato de guerra, uma invasão.

Os Estados Unidos sempre foram os maiores financiadores do estado de Israel enviando bilhões de dólares todos os anos para fortalecer a sua sociedade e seu exército, o que lhes permite invadir terras e matar Palestinos impunemente desde então. É assim que a mídia chama: assentamentos judeus.

Mas por quê? Por que os Estados Unidos bancam Israel? Em Junho de 1986 o atual Presidente Biden fez um discurso onde ele explica que Israel é o melhor investimento já feito para proteger os interesses dos Estados Unidos na região arábica. E que interesses são esses? Petróleo. Por quê? Porque é o lastro para o dólar ser a moeda mais poderosa e usada no planeta. Resumindo: poder militar e poder econômico.

Assista aqui as falas de Joe Biden: https://www.youtube.com/watch?v=86Nrv5izaTs

Matar Palestinos garante esse poder. É a religião do capital. É o capitalismo.

Vídeo da Entrevista: https://www.youtube.com/watch?v=Xg6obZzlN7g

Veja também o Capítulo 2 – Genocídio em Gaza – A Terra


Os textos dos colunistas e blogueiros não refletem, necessariamente, a opinião do Sistema Diário de Comunicação.

Carbonio CE offers a new Tasks feature from version 23.12.0 and it looks great.

If you have a previous Carbonio CE installation and don’t have it there you need to upgrade it to version 23.12.0 and then follow the instructions below to activate Tasks.

Installing packages

Some packages need to be installed:

apt install carbonio-tasks-ce carbonio-tasks-db carbonio-tasks-ui

Setup Services

As usual, after new Carbonio packages are installed you must run te command below:

pending-setups -a

Bootstrap tasks database

Almost all Carbonio CE features require some database setup. It’s not different with Tasks, so let’s bootstrap it:

# PGPASSWORD=$DB_ADM_PWD carbonio-tasks-db-bootstrap carbonio_adm 127.0.0.1

Restart to get it working

New tasks services must be restarted:

systemctl restart carbonio-tasks-db-sidecar.service
systemctl restart carbonio-tasks-sidecar.service
systemctl restart carbonio-tasks.service

Done… now go into the users webmail and test it!

The implementation of the Exchange/ActiveSync protocol made by Zarafa’s devs is sensational! Z-Push  is developed in PHP and works very well, but integrating it with Carbonio has always been difficult, especially after they no longer made “tgz” available and installation started to be done via repositories on a mandatory basis.

If you have a second server then installation is quite simple, but not everyone has a second server available for this, so the only thing left to do is integrate with Zimbra on the same server and this can be a challenge: adding repositories, changing settings, installing local php-fpm and put everything together to run as “zextra” user. A lot do to and fix.

So… let’s make it easier using a Docket container I make for this.

Considerations

a) Because it is a container, it is monolithic, meaning it has a certain fixed number of Apache instances to handle requests. This amount may not be enough for your scenario;

b) Docker and Z-Push in the container may consume many of your server’s resources;

So let’s go!

Installing Docker

To install docker use your package manager: apt or yum

apt install docker.io

or

yum install docker.io

Testing Docker

docker run hello-world

Installing z-push in docker

Use the command below to create a CT called “ zpush ” that will use your Carbonio server IP as a parameter in the “ ZIMBRA_URL ” option. Like this:

docker run -d -p 9443:80 --restart=always -e ZIMBRA_URL=IP_do_servidor -e TIMEZONE=America/Recife --name zpush anahuac/kya-zpush-zimbra

Fixing Carbonio Proxy

Z-Push will run on port 9443 and we need to setup Carbonio to use z-push on this port. This is done by changing the Nginx template that Carbonio uses as a proxy.

1 – Edit and change Carbonio’s 3 Nginx templates

/opt/zextras/conf/nginx/templates/nginx.conf.web.https.template
/opt/zextras/conf/nginx/templates/nginx.conf.web.https.default.template
/opt/zextras/conf/nginx/templates/nginx.conf.web.http.template

2 – Look for “set $mailhostport” in the Microsoft-Server-ActiveSync section, around line 306 of the file and adjust it to match the z-push port, like this:

set $mailhostport 9443;

3 – Find, a little further down, around line 313, the “proxy_pass” option and change it to the name of your server in http, like this:

proxy_pass          http://your_server_hostname:9443;

4 – If you don’t want to lose those setups and have to redo it every time Carbonio is upgraded, copy those file into templates_custom folder, like this:

cp /opt/zextras/conf/nginx/templates/nginx.conf.web.https.template /opt/zextras/conf/nginx/templates_custom
cp /opt/zextras/conf/nginx/templates/nginx.conf.web.https.default.template /opt/zextras/conf/nginx/templates_custom
cp /opt/zextras/conf/nginx/templates/nginx.conf.web.http.template /opt/zextras/conf/nginx/templates_custom

5 – Finally restart the proxy

su - zextras -c "zmproxyctl restart"

Testing it

Access your server’s URL with the full protocol path, like this:

https://your_server_hostname/Microsoft-Server-ActiveSync

And log in with a valid username and password.

Enjoy!

Sistemas modernos de combate a Spam não fazem retenção de mensagens devido ao alto custo de processamento e arquivamento como consequência do alto volume de mensagens totais recebidas.

Cabe ao sistema e às proteções anti-spam filtrarem o que é, e o que não é Spam, mas é virtualmente impossível ter um sistema 100% confiável, pois há muitas nuances envolvidas.

A consequência é que mensagens válidas e importantes, esporadicamente são bloqueadas, podendo causar prejuízos inaceitáveis.

O KyaPiler é uma solução de armazenamento de retenção de mensagens. Quando uma mensagem chega ao servidor é feita uma consulta ao anti-spam e se a mensagem for positiva para bloqueio ela é então encaminhada ao ambiente de retenção. Se a mensagem não for positiva para bloqueio, ela segue seu curso normal e é entregue na caixa postal do usuário.

Quando necessário utiliza-se a interface do KyaPiler para localizar a mensagem bloqueada e encaminhá-la diretamente à caixa postal do usuário.

Também é possível configurar o KyaPiler de forma a reter todas as mensagens recebidas e utilizá-lo como sistema de backup. Com um prazo de retenção de 30 ou 40 dias todas as mensagens recebidas estariam disponíveis para restauração dentro desse prazo.

A limitação do sistema será sempre do espaço disponível para armazenamento das mensagens retidas. Quanto mais mensagens se recebe mais espaço será necessário. Outro fator importante é o tempo de retenção: quanto maior, mais espaço será utilizado.

A interface conta com sistema de busca completo e permite que uma mensagem encontrada seja restaurada na caixa postal do usuário com um clique.

Recursos

Abaixo segue uma lista dos recursos oferecidos pelo KyaPiler:

  • Arquivamento de mensagens recebidas;
  • Pode-se reter apenas as mensagens que seriam bloqueadas ou todas as mensagens recebidas;
  • Armazenamento performático de metadados em base de dados;
  • Buscas complexas;
  • Autenticação a nível de usuário direto na base do Carbonio/Zimbra;
  • Período de retenção ajustável;
  • Filtros de armazenamento;
  • Filtros de retenção

Pré-requisitos

O perfeito funcionamento do KyaPiler demanda o seguinte:

  • Servidor dedicado para esse fim;
  • Espaço em disco suficiente para armazenamento das mensagens;

ScreenShots

Interface para pesquisa e recuperação de mensagens

Um clique na opção “Reenviar mensagem” e o e-mail será adicionado na Inbox do usuário

Condições comerciais

O KyaPiler utiliza versões modificadas das partes integrantes para funcionar. Estas partes não estão disponíveis publicamente e serão comercializadas caso a caso de acordo com as necessidades de cada cliente.

Para mais informações favor entrar em contato para envio de proposta comercial.