Instalacao SPFBL no POSTFIX - leonamp/SPFBL GitHub Wiki

  1. Instalar GIT e NC
apt-get install git
apt-get install ncat
apt-get install netcat

Debian 10 - Instalar JRE

apt-get install default-jre

Por: Fábio Lombardi Barbeta

  1. Baixar SPFBL
git clone https://github.com/leonamp/SPFBL.git
  1. Criar usuario spfbl
adduser --system --quiet --no-create-home --home /opt/spfbl/data --group spfbl
  1. Criar pastas
mkdir /opt/spfbl
mkdir /var/log/spfbl

cp SPFBL/dist/SPFBL.jar /opt/spfbl
cp SPFBL/run/spfbl.conf /opt/spfbl
cp -pr SPFBL/lib /opt/spfbl
cp -pr SPFBL/data /opt/spfbl
cp -pr SPFBL/web /opt/spfbl

cp SPFBL/client/spfbl.sh /usr/local/bin
chmod a+x /usr/local/bin/spfbl.sh

cp SPFBL/run/spfbl-init.sh /etc/init.d
chmod a+x /etc/init.d/spfbl-init.sh
update-rc.d spfbl-init.sh defaults

chown -R spfbl:spfbl /opt/spfbl
chown -R spfbl:spfbl /var/log/spfbl
  1. Criar o DB MySQL (opcional)
mysql -uroot -p
CREATE DATABASE db_spfbl /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
GRANT ALL PRIVILEGES ON db_spfbl.* TO us_spfbl@localhost IDENTIFIED BY 'pw_spfbl';
FLUSH PRIVILEGES;

mysql -uus_spfbl -ppw_spfbl db_spfbl <SPFBL/run/schema.sql
  1. Modificar spfbl.conf
hostname=<FQDN externo do seu servidor SPFBL>

admin_email=<email do administrador>	

#necessario para envio de email pelo SPFBL
smtp_auth=<true/false>
smtp_starttls=<true/false>
smtp_host=<seu servidor de email>
smtp_port=<587/25>
smtp_user=<sua conta para autenticacao de envio de email>
smtp_password=<sua senha para autenticacao de envio de email>

#usado em algumas mensagens para indicar email de abuse para o usuario
abuse_email=<email de abuse do dominio>

#usada para poder ter reCAPTCHA nas paginas
recaptcha_key_site=<>
recaptcha_key_secret=<>

#usado para armazenar os dados em banco MySQL
mysql_hostname=<>
mysql_port=<>
mysql_schema=<>
mysql_user=<>
mysql_password=<>
mysql_ssl=<true/false>

Exemplo

hostname=antispam.exemplo.com.br

[email protected]

smtp_auth=true
smtp_starttls=true
smtp_host=smtp.exemplo.com.br
smtp_port=587
[email protected]
smtp_password=@suasenhacomplexa

[email protected]

mysql_hostname=localhost
mysql_port=3306
mysql_schema=db_spfbl
mysql_user=us_spfbl
mysql_password=pw_spfbl
mysql_ssl=false

6.1 Para pegar a chave reCAPTCHA

https://www.google.com/recaptcha

Cadastre seu usuario e em 'Domains'

Utilize os valores de 'site key' e 'secret key' nas variaveis

recaptcha_key_site=<site key>
recaptcha_key_secret=<secret key>

Exemplo

recaptcha_key_site=1a2b3c4d5e6f7g8h9i
recaptcha_key_secret=1a2bm6n5n4n3nb2v2
  1. Modificar spfbl.sh

    Editar e modificar o IP do servidor SPFBL

IP_SERVIDOR="localhost"
  1. Iniciar o SPFBL
/etc/init.d/spfbl-init.sh start
  1. Criar user e client
spfbl.sh user   add [email protected] admin
spfbl.sh client add 127.0.0.1/32 localhost SPFBL [email protected]

OBS: repita o comando 'client' para todos os CIDR dos servidores de email que tiverem fizerem uso do seu servidor SPFBL

  1. Popular com uma lista de block inicial
apt-get install unzip
wget https://github.com/leonamp/SPFBL/raw/master/doc/block.zip
unzip block.zip

cat block.txt | while read LINHA; do spfbl.sh superblock add "${LINHA}" >/dev/null 2>&1; done
  1. Conectando aos outros PEERS
spfbl.sh peer add matrix.spfbl.net:9877 NEVER ACCEPT (ou REPASS REPASS)
spfbl.sh peer add tower.spfbl.net:9877 NEVER ACCEPT (ou REPASS REPASS)
  1. Integracao com o POSTFIX

Se postfix < 3.0

 a) copiar script de consulta
cp SPFBL/run/spfblpostfix.pl /usr/local/bin
chmod a+x /usr/local/bin/spfblpostfix.pl
 b) editar e modificar o IP do servidor SPFBL

    Se o SPFBL estiver no mesmo servidor do postfix
    PeerHost => 'localhost', 

    Se o SPFBL estiver em outro servidor
    PeerHost => '<IP DO SERVIDOR SPFBL>',

 c) incluir no master.cf
policy-spfbl unix - n n - - spawn
  user=nobody argv=/usr/local/bin/spfblpostfix.pl
 d) incluir no main.cf
smtpd_recipient_restrictions = ...
  check_policy_service unix:private/policy-spfbl

#soft_bounce=yes
    Exemplo:
smtpd_recipient_restrictions = reject_invalid_hostname,
  reject_non_fqdn_recipient,
  reject_non_fqdn_sender,
  reject_unknown_sender_domain,
  reject_unknown_recipient_domain,
  reject_unauth_pipelining,
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unlisted_recipient,
  reject_unauth_destination,
  check_sender_access hash:/etc/postfix/whitelist,
  check_policy_service unix:private/policy-spfbl,
  permit
   OBS: No exemplo uso um arquivo 'whitelist' para armazenar
        emails e/ou dominios que nao precisam passar pela verificacao
        do SPFBL

        Exemplo:
        thawte.com OK

Se postfix >= 3.0

 a) incluir no main.cf
check_policy_service {
  inet::9877,
  timeout=10s,
  default_action=DEFER
}
  1. Painel de controle, usuario e Senha TOTP

    Para poder usar o painel de controle, primeiro cadastre o usuario (passo 8)

    Endereco do painel de controle

http://<hostname>/<email>
Onde <hostname> foi configurado no /opt/spfbl/spfbl.conf

Exemplo:
http://antispam.exemplo.com.br/[email protected]
No primeiro acesso ao painel de controle, eh enviado um email
para o usuario com a senha TOTP (para o envio deste email sao 
utilizadas as variaveis smtp_* do arquivo /opt/spfbl/spfbl.conf)

Se nao estiver enviando a senha, pode ser erro de configuracao
do smtp - verifique os LOGs:
grep ERROR /var/log/spfbl/spfbl.<data>.log
Se necessario, para pedir o reenvio da senha TOTP
spfbl.sh user send-totp <email>
Exemplo:
spfbl.sh user send-totp [email protected]
  1. Tirando todos os filtros de uma conta (util para abuse/postmaster/webmaster/etc)
spfbl.sh white add "@>[email protected]"
spfbl.sh white add "@>[email protected]"

spfbl.sh white add "@uol.com.br"
Entretanto, se o dominio que desejar dar white nao tiver SPF voce precisa
cadastrar manualmente o 'best-guess' (servidor de origem):
spfbl white add "@dominio.com.br;.servidor.dominio.com.br"
Mais informacoes em
<https://github.com/leonamp/SPFBL/wiki/Primeiros-Passos---Comando:-white>
<http://www.openspf.org/FAQ/Best_guess_record>

Como alternativa para whitelist, veja diretiva check_sender_access no passo 12d 
  1. Upgrade de versao SPFBL

    Normalmente o upgrade da versao envolve:

    a) Baixar a nova versao

git clone https://github.com/leonamp/SPFBL.git
b) Parar o servico
/etc/init.d/spfbl-init.sh stop
c) Fazer um backup dos dados atuais
tar -cjvf spfbl.tar.bz2 /opt/spfbl
d) Atualizar o JAR
cp SPFBL/dist/SPFBL.jar /opt/spfbl
e) Atualizar as LIBs
rsync -avPi SPFBL/lib /opt/spfbl
f) Iniciar o servico
/etc/init.d/spfbl-init.sh stop
OBS: Sempre eh bom dar uma olhada se nao teve atualizacao
     do SPFBL/client/spfbl.sh  e SPFBL/client/spfblpostfix.pl

     Exemplo:
diff SPFBL/client/spfbl.sh /usr/local/bin/spfbl.sh
diff SPFBL/client/spfblpostfix.pl /usr/local/bin/spfblpostfix.pl
     Deve mostrar como diferenca apenas as linhas onde aponta o IP do 
     servidor SPFBL

Mas sempre olhe a documentacao para ver se a atualizacao nao implica
em alguma modificacao de impacto na versao que voce tem instalada
(p.ex. schema MySQL).
⚠️ **GitHub.com Fallback** ⚠️