Strip SpamAssassin prima di elaborare

Ho un server che esegue cPanel / WHM con exim e SpamAssassin. Ho notato un problema in cui le e-mail in arrivo con le intestazioni forzate spamassassin bypassando alcuni dei filtri. Voglio togliere tutte le intestazioni di SpamAssassin prima che vada attraverso spamassassin e poi filtrato nelle cartelle di posta in arrivo / spam.

Cercando la networking, l'unica istanza simile che ho potuto trovare è stata dal 2004 . Tuttavia, la configuration di exim da parte di quell'utente e da me è molto diversa. Non so come applicarlo. Posso eseguire formail contro un file contenente il messaggio per rimuovere le intestazioni, ma non so come fare exim farlo.

Proprio per fornire un esempio, verrà visualizzato un messaggio con intestazioni come questa:

X-Spam-Status: No, score=1.3 X-Spam-Score: 13 X-Spam-Bar: + X-Ham-Report: Spam detection software, running on the system "serv02.example.com", has identified this incoming email as possible spam. The original message *snip* X-Spam-Flag: NO 

Il mio SpamAssassin aggiungerà queste intestazioni al messaggio:

 X-Spam-Status: Yes, score=6.8 X-Spam-Score: 68 X-Spam-Bar: ++++++ X-Spam-Report: Spam detection software, running on the system "serv02.example.com", has identified this incoming email as possible spam. The original message *snip* X-Spam-Flag: YES 

Ma poiché le regole del vfilter di exim leggono le prime intestazioni X-Spam, l'email finisce nella posta in arrivo dell'utente invece che nella cartella di spam.

  • Postfix / Spamassassin non può determinare troppo spesso rDNS
  • Esegue SpamAssassin come servizio Windows su Server 2012
  • C'è un motivo per cui DKIM firma each posta due volte
  • Spamassassin: Bypass /etc/resolv.conf DNS per la query DNSBL?
  • C'è un modo per get spamassassin per segnare le linee superiori di un corpo di messaggi più pesantemente?
  • AMaViS: mancante intestazione X-Spam-Status
  • Le posta in corso di spam. Si prega di vedere i dettagli
  • Come fermare un ciclo che ho introdotto in un postfix di transizione post-spamassassin-wherecot
  • 3 Solutions collect form web for “Strip SpamAssassin prima di elaborare”

    Controlla se le opzioni di file di configuration remove_header o clear_headers SpamAssassins fanno quello che vuoi.

    Exim per cPanel utilizza vfilters memorizzati in / etc / vfilters e si basa sull'intestazione X-Spam-Bar. Altri sisthemes possono utilizzare X-Spam-Flag-Status o il punteggio per determinare se salvare il messaggio nella cartella Posta in arrivo, una cartella spam o eliminarla. Purtroppo, vfilter usa la prima partita, che è il punto cruciale di questo problema.


    Soluzione obsoleta trovata http://wiki.exim.org/ExiscanExamples#Replacing_foreign_Spamassassin_headers_with_local_ones

    Inserisci in ACL in qualche luogo segnala spam = exiscan: true set acl_m0 = ($ spam_bar) $ spam_score set acl_m1 = $ spam_report

    In questo modo saranno impostate le variables ACL in modo appropriato per la seguente elaborazione nel filter di sistema:

    Aggiungi nel filter del sistema:

     if first_delivery then # ... headers remove X-Spam-Score:X-Spam-Report:X-Spam-Checker-Version:X-Spam-Status:X-Spam-Level if $acl_m2 is not ""dd then headers add "X-Spam-Score: $acl_m0" headers add "X-Spam-Report: $acl_m1" endif endif 

    In cPanel, il filter di sistema è / etc / cpanel_exim_system_filter e le variables acl_mX sono diverse, in modo da consentire di individuare tali variables. Aggiungi questo alla fine di cpanel_exim_filters

     # work out our acl variables! if first_delivery then headers add "X-acl-m0: $acl_m0" headers add "X-acl-m1: $acl_m1" headers add "X-acl-m2: $acl_m2" headers add "X-acl-m3: $acl_m3" headers add "X-acl-m4: $acl_m4" headers add "X-acl-m5: $acl_m5" headers add "X-acl-m6: $acl_m6" headers add "X-acl-m7: $acl_m7" end 

    — ha fatto questo e ha ottenuto: X-acl-m1: utente1 X-acl-m2: 1 X-acl-m3: X-acl-m4: X- M7:

    Quindi trovo la sezione di exim.conf che aggiunge le intestazioni e vede tutte le variables $ spamming. Mi chiedo se portno avanti? Scopriamolo.

     headers add "X-Test-Spam-Subject: ***SPAM*** $h_subject" headers add "X-Test-Spam-Score:$spam_score" headers add "X-Test-Spam-Score-Int: $spam_score_int" headers add "X-Test-Spam-Bar: $spam_bar" headers add "X-Test-Spam-Report: $spam_report" 

    Quindi $ spam_score_int viene riportto insieme a $ h_subject, ma non spam_bar, che è vitale

     X-Test-Spam-Subject: ***SPAM*** test X-Test-Spam-Status: X-Test-Spam-Score: 33 X-Test-Spam-Bar: X-Test-Spam-Report: 

    Ma … ho capito che le intestazioni passano, che potrebbero funzionare

     headers add "X-Test-Spam-Bar: $h_X-Spam-Bar" 

    risultati in:

     X-Test-Spam-Bar: + +++ 

    Quindi le intestazioni $ h hanno entrambe le intestazioni ricevute e le intestazioni sono state aggiunte.

    Soluzione?

    Aggiungere filtri di spam personalizzati in exim.conf e quindi scambiarli in cpanel_exim_filter

     log_message = "SpamAssassin as ${acl_m1} detected message as spam ($spam_score)" add_header = X-989Spam-Subject: ***SPAM*** $h_subject add_header = X-989Spam-Status: Yes, score=$spam_score add_header = X-989Spam-Score: $spam_score_int add_header = X-989Spam-Bar: $spam_bar add_header = X-Spam-Report: $spam_report add_header = X-989Spam-Flag: YES add_header = X-989Spam-Status: No, score=$spam_score add_header = X-989Spam-Score: $spam_score_int add_header = X-989Spam-Bar: $spam_bar add_header = X-Ham-Report: $spam_report add_header = X-989Spam-Flag: NO log_message = "SpamAssassin as ${acl_m1} detected message as NOT spam ($spam_score)" 

    Ok, ora per renderlo più persistente. Innanzitutto copia il filter cpanel_exim_system:

     cp /etc/cpanel_exim_system_filter /etc/custom_exim_system_filter 

    Accedere a WHM Main >> Configurazione del servizio >> Exim Configuration Editor e fare clic su Advanced Editor

    Scorri verso il basso e cambia la sezione dell'intestazione dello spam per apparire come sotto. Tieni presente che stai solo cambiando le intestazioni di X-Spam alle intestazioni X-989Spam (puoi naturalmente utilizzare qualsiasi nome personalizzato che ti interessa finché i tuoi filtri di sistema personalizzati-esim. assicuratevi di modificare solo le linee add_header.

     add_header = X-989Spam-Subject: ***SPAM*** $h_subject add_header = X-989Spam-Status: Yes, score=$spam_score add_header = X-989Spam-Score: $spam_score_int add_header = X-989Spam-Bar: $spam_bar add_header = X-Spam-Report: $spam_report add_header = X-989Spam-Flag: YES 

    — e —

     add_header = X-989Spam-Status: No, score=$spam_score add_header = X-989Spam-Score: $spam_score_int add_header = X-989Spam-Bar: $spam_bar add_header = X-Ham-Report: $spam_report add_header = X-989Spam-Flag: NO 

    Salvare la configuration e attendere che WHM venga aggiornato.

    Torna alla pagina principale >> Configurazione servizio >> Exim Configuration Editor >> Filtri

    Modificare il file del filter di sistema per puntare a / etc / custom_exim_system_filter

    La risposta accettata potrebbe essere stata la migliore che potresti fare nel 2012, o con le versioni di exim disponibili nel 2012, ma oggi remove_header ha una direttiva remove_header che può essere utilizzata nelle ACL. È stato aggiunto con la versione 4.82 :

    1. Il nuovo modificatore ACL "remove_header" può rimuovere le intestazioni prima che il messaggio venga gestito dai router / trasporti.
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.