POSTFIX + SPF HOW TO #O que é o SPF? O SPF ( Sender Policy Framework) é uma ferramenta que possibilita o servidor de e-mail fazer consultas via query de DNS, verificando se a fonte do e-mail está indicada em uma entrada TXT previamente configurada no servidores DNS responsáveis pelo domínio. Mais detalhes acesse: http://spf.pobox.com/howworks.html #Como cadastrar meu dominio para usar o SPF? 1º Passo: Gerar as entradas TXT nos servidores DNS delegados para domínio http://spf.pobox.com/wizard.html , leia atentamente a documentação. 2º Cadastrar o domínio no SPF registry http://spftools.infinitepenguins.net/register.php #Assumindo que sua versão do postfix suporta SPF: #Editar o arquivo de configuracao do postfix vi /etc/postfix/main.cf #Inserir o campo check_policy_service unix:private/policy depois do parametro #reject_unauth_destination, senão a máquina vira um open relay. #Exemplo: smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_policy_service unix:private/policy reject_unknown_sender_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_pipelining, check_client_access hash:/etc/postfix/rbl-whitelist, reject_rbl_client dialups.services.net, reject_rbl_client relays.ordb.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client list.dsbl.org, reject_rbl_client dnsbl.sorbs.net, reject_rbl_client dnsbl.njabl.org, reject_rbl_client sbl.spamhaus.org, reject_rbl_client opm.blitzed.org, reject_rbl_client relays.visi.com #Adicionar as seguintes linha no master.cf vi /etc/postfix/master.cf #SPF Configuration policy unix - n n - - spawn user=nobody argv=/usr/bin/perl /usr/libexec/postfix/smtpd-policy.pl #Copiar o arquivo spf.pl (do source da sua versao do postfix) para /usr/libexec/postfix/smtpd-policy.pl cp /path/to/your/postfix/source/examples/smtpd-policy/spf.pl /usr/libexec/postfix/smtpd-policy.pl #Instalar os módulos do CPAN (e todas as dependencias necessarias): #Caso o CPAN já esteja configurado basta usar as linhas de comando, #fique atento para o feedback de erros. perl -MCPAN -e 'install("Net::CIDR::Lite")' perl -MCPAN -e 'install("Net::DNS")' perl -MCPAN -e 'install("Sys::Hostname::Long")' perl -MCPAN -e 'install("Mail::SPF::Query")' #Caso não consiga instalar os módulos unsando esse método, acesse #o site http://www.cpan.org/ faça o download do módulo e instale. #Geralmente para compilar os módulos 'manualmente' são necessários # 3 comandos. #Ex: tar xfz Sys-Hostname-Long-1.2.tar.gz cd Sys-Hostname-Long-1.2 perl Makefile.PL make make install #Caso não seja o suficiente, leia a documentação #Edite o arquivo /usr/libexec/postfix/smtpd-policy.pl para personalizacao: vi /usr/libexec/postfix/smtpd-policy.pl #Para habilitar o modulo SPF ,descomente a linha : #push @HANDLERS, "sender_permitted_from"; use Mail::SPF::Query; #Reinicie o postfix e verifique nos logs. Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: client_address=200.179.177.10 Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: client_name=unknown Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: helo_name=bol.com.br Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: instance=5801.41c84b62.0 Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: protocol_name=ESMTP Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: protocol_state=RCPT Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: queue_id= Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: recipient=contato@email.de.um.cliente.com.br Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: request=smtpd_access_policy Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: sender=clebershalom@bol.com.br Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: Attribute: size=0 Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: : testing: stripped sender=clebershalom@bol.com.br, stripped rcpt=contato@email.de.um.cliente.com.br Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: handler testing: DUNNO Dec 21 14:12:21 maquina_postfix postfix/policy-spf[22697]: : SPF fail: smtp_comment=Please see http://spf.pobox.com/why.html?sender=clebershalom%40bol.com.br&ip=200.179.177.10&receiver=maquina_postfix.seven.com.br, header_comment=maquina_postfix.seven.com.br: domain of clebershalom@bol.com.br does not designate 200.179.177.10 as permitted sender #Nesse strip de log, podemos notar que o SPF rejeitou o e-mail clebershalom@bol.com.br pois não foi enviado # de uma das máquinas designadas na configuração do SPF do domínio bol.com.br ;; ANSWER SECTION: bol.com.br. 455 IN TXT "v=spf1 ip4:200.221.11.0/24 ip4:200.221.29.0/24 ip4:200.221.4.0/24 ip4:200.221.24.0/24 -all" #Caso apareca alguns erros como: warning: /usr/bin/perl: process id 13868: command time limit exceeded #Edite o arquivo de configuraçao do postfix: vi /etc/postfix/main.cf #Adicione os seguintes parametros: default_process_limit = 500 command_time_limit = 3600 []'s Hamilton Vera Hamilton Vera - Linux Powered - Anti Spam Policy int Administrator (char Network[],char ComputationalSystems[]); Seven Internet http://lib.seven.com.br Linux User #338927 "Google is my shepherd, no want shall I know"