Instalacao SPFBL no POSTFIX - leonamp/SPFBL GitHub Wiki
- 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
- Baixar SPFBL
git clone https://github.com/leonamp/SPFBL.git
- Criar usuario spfbl
adduser --system --quiet --no-create-home --home /opt/spfbl/data --group spfbl
- 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
- 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
- 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
-
Modificar spfbl.sh
Editar e modificar o IP do servidor SPFBL
IP_SERVIDOR="localhost"
- Iniciar o SPFBL
/etc/init.d/spfbl-init.sh start
- 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
- 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
- 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)
- 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 }
-
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]
- 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
-
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).