![Como fazer com que o spamassasin rejeite e-mails com base na pontuação?](https://rvso.com/image/515052/Como%20fazer%20com%20que%20o%20spamassasin%20rejeite%20e-mails%20com%20base%20na%20pontua%C3%A7%C3%A3o%3F.png)
Estou executando Linux com Postfix, Dovecot, Postgrey e spamassasin/spamd.
Este é o meu principal.cf
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination,
reject_invalid_hostname,
reject_unauth_pipelining,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
check_policy_service inet:127.0.0.1:10030
Pedi ao spamassasin para adicionar cabeçalho de spam a outros e-mails que o postfix não capturou, mas como fazer com que ele seja rejeitado?
Responder1
Você pode configurar o postfix para usar Spamassasin/Amavis como filtro proxy. Desta forma você evita devoluções: A conexão com o lado remoto SMTP permanecerá aberta até que as verificações de spam sejam feitas e o postfix responderá com uma mensagem OK ou REJECTED. Dessa forma, o lado remoto é responsável pelos saltos.
# master.cf
# mail inbound
smtp inet n - - - - smtpd
-o smtpd_proxy_filter=127.0.0.1:10024
-o smtpd_client_connection_count_limit=10
-o smtpd_proxy_options=speed_adjust
# spamassasin/amavis is listening to port 10024 and sending it's
# checked mail to port 10025
amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
# SMTP return (from amavis/spamassasin)
localhost:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_override_options=no_address_mappings
-o mynetworks=127.0.0.0/8
-o receive_override_options=no_unknown_recipient_checks
# main.cf
# for rejecting spam
header_checks = pcre:/etc/postfix/header_checks
# header_checks
/X-Spam-Level: \*{9,}/ REJECT Looks like spam to me.
Se você estiver usando o Amavis para chamar o spamassasin, poderá permitir que o Amavis rejeite o e-mail para você - o limite de rejeição pode ser configurado com $sa_kill_level_deflt
. Adicione ,no_header_body_checks
à receive_override_options
entrada de retorno SMTP ao usar o Amavis.
Responder2
Em geral você não quer rejeitar nada. A maioria dos spams tem cabeçalhos forjados, então as pessoas podem receber devoluções que não lhes pertencem, e você está apenas criando dores de cabeça para essas pessoas e seus administradores (ou basicamente criando spam inundando as caixas de correio com devoluções incorretas).
A melhor coisa a fazer é reter o spam ou colocá-lo em uma pasta de spam para que os usuários ainda possam ter acesso ao spam, caso não seja spam, e apenas configurar seu cliente de e-mail para excluir esse e-mail quando ele tiver idade suficiente para que você tem quase certeza de que não precisará disso.
Fora isso, configure seu servidor de e-mail para defesas de primeira linha... você pode configurá-lo para usar SPF, certificar-se de que é estrito com RFCs, etc... se quiser dar um passo adiante, verifique com RBLs para rejeitar correio que está nas listas negras. É forte, mas cabe a você decidir se deseja seguir essas listas, pois ela pode bloquear periodicamente servidores adicionados incorretamente, mas por outro lado, o e-mail não é o meio de comunicação confiável que as pessoas pensam que é. O e-mail pode ou não funcionar, e se algo for importante para a vida ou a morte, comunique-se por outro meio para verificar o recebimento... os spammers estragam tudo para todos.
Responder3
A melhor ideia é simplesmente filtrá-lo com base na pontuação. Acontecerá ocasionalmente que um e-mail importante será capturado pelo SA e você não desejará perdê-lo permanentemente (além disso, os usuários finais pensarão que ele nunca será entregue).
No meu servidor pessoal, qualquer coisa com pontuação acima de 3,5 é entregue na pasta Spam do usuário. Dessa forma ele sempre é entregue e o usuário tem acesso a ele. Existe então um cronjob que exclui qualquer coisa com mais de 3 semanas nessa pasta.
Responder4
Ao usar seu filtro de spam por meio do protocolo milter, você pode fazer verificações adicionais de cabeçalho após os filtros milter: http://www.postfix.org/header_checks.5.html
milter_header_checks(padrão: vazio)
Eles são aplicados a cabeçalhos adicionados com aplicativos Milter. Este recurso está disponível no Postfix 2.7 e posterior.