Como fazer com que o spamassasin rejeite e-mails com base na pontuação?

Como fazer com que o spamassasin rejeite e-mails com base na pontuação?

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_optionsentrada 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.

informação relacionada