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.

  • Spamassassin: store bayes per utente in mysql (con amavis)
  • spamassassin come rimuovere la spiegazione e segnare il guasto nel messaggio?
  • Impostazione di account di posta remoti per l'inoltro su Debian 7
  • C'è un modo per get spamassassin per segnare le linee superiori di un corpo di messaggi più pesantemente?
  • Segnalate le mail uscenti con DomainKey su exim4 e Ubuntu
  • exim4 sta visualizzando un errore TLS sulla connessione ... (gnutls_handshake)
  • 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.

    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.