User Tools

Site Tools


doc:appunti:linux:sa:spamassassin

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:spamassassin [2016/02/25 11:49] – [Troubleshooting] niccolodoc:appunti:linux:sa:spamassassin [2021/07/08 12:19] (current) – [Verifica punteggio] niccolo
Line 33: Line 33:
 ===== Custom rules ===== ===== Custom rules =====
  
-Di norma non è possibile aggiungere delle regole personalizzate nella **'user_prefs''** di un utente. Ci sono motivi di sicurezza e di performance. Solo in casi eccezionali vale la pena di intervenire sul parametro **''allow_user_rules''**.+Di norma non è possibile aggiungere delle regole personalizzate nella **''user_prefs''** di un utente. Ci sono motivi di sicurezza e di performance. Solo in casi eccezionali vale la pena di intervenire sul parametro **''allow_user_rules''**.
  
 In alternativa si può cambiare il punteggio assegnato ad una regole, per fare tutti i necessari esperimenti. Ad esempio la regola **''DRUG_ED_SILD''** scatta se il testo del messaggio contiene la parola **sildenafil**, possiamo dare un punteggio diverso con: In alternativa si può cambiare il punteggio assegnato ad una regole, per fare tutti i necessari esperimenti. Ad esempio la regola **''DRUG_ED_SILD''** scatta se il testo del messaggio contiene la parola **sildenafil**, possiamo dare un punteggio diverso con:
Line 94: Line 94:
 Ecco una semplice regola che controlla la presenza di un determinato header **''Sender:''** ed assegna un punteggio negativo (diminuendo cioè la possibilità che sia identificarlo come SPAM): Ecco una semplice regola che controlla la presenza di un determinato header **''Sender:''** ed assegna un punteggio negativo (diminuendo cioè la possibilità che sia identificarlo come SPAM):
  
-<file>header SENDER_GOOGLE_CALENDAR    Sender =~ /calendar-notification\@google\.com/ +<file> 
-describe SENDER_GOOGLE_CALENDAR  Sender is Google Calendar +header      LOCAL_SENDER_GOOGLE_CALENDAR   Sender =~ /calendar-notification\@google\.com/ 
-score SENDER_GOOGLE_CALENDAR     -2.8+describe    LOCAL_SENDER_GOOGLE_CALENDAR   Sender is Google Calendar 
 +score       LOCAL_SENDER_GOOGLE_CALENDAR   -2.8
 </file> </file>
  
 Fare attenzione alla stringa dopo il segno **''=~''**, si tratta di un'espressione regolare racchiusa tra slash. Alcuni caratteri come il punto e il simbolo **@** devono essere preceduti da backslash perché sono simboli speciali nelle espressioni regolari. Fare attenzione alla stringa dopo il segno **''=~''**, si tratta di un'espressione regolare racchiusa tra slash. Alcuni caratteri come il punto e il simbolo **@** devono essere preceduti da backslash perché sono simboli speciali nelle espressioni regolari.
 +
 +Un altro esempio per penalizzare certi top level domain particolarmente utilizzati dagli spammer:
 +
 +<file>
 +header      LOCAL_FROM_SPAMMER_TLD    From   =~ /@[a-z0-9\-\.]+\.(cam|top|xyz)/i
 +describe    LOCAL_FROM_SPAMMER_TLD    Domain originates a lot of spam
 +score       LOCAL_FROM_SPAMMER_TLD    4.0
 +</file>
 +
 +Vedere anche il paragrafo **[[spamassassin_private_dnsbl#configure_spamassassin|come utilizzare una blacklist DNS con SpamAssassin]]**.
  
 ===== AutoWhitelist ===== ===== AutoWhitelist =====
Line 159: Line 170:
  
 ===== Punteggio SPAM ===== ===== Punteggio SPAM =====
 +
 +In una installazione Debian (es. 9 Stretch) i file che definiscono il punteggio SPAM sono in **%%/var/lib/spamassassin/*/updates_spamassassin_org/%%**, ad esempio nel file **50_scores.cf**.
  
 Una regola che assegna punteggio SPAM può includere 4 punteggio distinti, esempio: Una regola che assegna punteggio SPAM può includere 4 punteggio distinti, esempio:
Line 172: Line 185:
   - Test Bayes abilitati, test network disabilitati   - Test Bayes abilitati, test network disabilitati
   - Test Bayes e network abilitati   - Test Bayes e network abilitati
 +
 +In generale viene applicato il punteggio del **quarto caso**: tutti i test abilitati.
  
 Per attivare i test Bayes bisogna includere nel file di configurazione **use_bayes 1**. Per attivare i test Bayes bisogna includere nel file di configurazione **use_bayes 1**.
  
 I test network sono disabilitati se il demone **spamd** viene avviato con l'opzione **''%%-L%%''** oppure **''%%--local%%''**. I test network sono disabilitati se il demone **spamd** viene avviato con l'opzione **''%%-L%%''** oppure **''%%--local%%''**.
 +
 +===== Verifica punteggio =====
 +
 +Con il seguente script dovrebbe essere possibile verificare il punteggio associato per ciascun test:
 +
 +<code bash>
 +#!/bin/sh
 +TESTS="$1"
 +if [ -z "$TESTS" ]; then
 +    echo "Usage: $(basename $0) [rule1,rule2,...]"
 +    exit 1
 +fi
 +cat << EOF
 +
 +=== Punteggio SpamAssassin ===
 +
 +  * Test Bayes e network disabilitati
 +  * Test Bayes disabilitati, test network abilitati
 +  * Test Bayes abilitati, test network disabilitati
 +  * >>> Test Bayes e network abilitati
 +
 +EOF
 +TESTS="$(echo "$TESTS" | sed 's/,/ /g')"
 +for TEST in $TESTS; do
 +    find /var/lib/spamassassin/ -name "*scores.cf" | while read file; do
 +        SCORE="$(egrep "^score\s+${TEST}\b" "$file")"
 +        if [ -n "$SCORE" ]; then
 +            #echo "$SCORE"
 +            RULE="$(echo "$SCORE" | awk '{print $2}')"
 +            SCORE1="$(echo "$SCORE" | awk '{print $3}')"
 +            SCORE2="$(echo "$SCORE" | awk '{print $4}')"
 +            SCORE3="$(echo "$SCORE" | awk '{print $5}')"
 +            SCORE4="$(echo "$SCORE" | awk '{print $6}')"
 +            printf '%-25s %7.2f %7.2f %7.2f %7.2f\n' "$RULE" "$SCORE1" "$SCORE2" "$SCORE3" "$SCORE4"
 +        fi
 +    done
 +done
 +</code>
 +
 +Ecco un esempio di utilizzo:
 +
 +<code>
 +./spamassassin-score-print HELO_NO_DOMAIN,HTML_MESSAGE,NICE_REPLY_A,RDNS_NONE,SPF_FAIL
 +
 +=== Punteggio SpamAssassin ===
 +
 +  * Test Bayes e network disabilitati
 +  * Test Bayes disabilitati, test network abilitati
 +  * Test Bayes abilitati, test network disabilitati
 +  * >>> Test Bayes e network abilitati
 +
 +HELO_NO_DOMAIN               0.00    4.40    0.00    4.40
 +HTML_MESSAGE                 0.00    0.00    0.00    0.00
 +NICE_REPLY_A                -0.25   -0.00   -0.25   -0.00
 +RDNS_NONE                    2.40    1.27    1.23    0.79
 +SPF_FAIL                     0.00    0.92    0.00    0.00
 +</code>
 +==== Client spamc e IPv6 ====
 +
 +Per impostazione predefinita il client **spamc** tenta di connettersi al demone Spamassassin usando il nome **localhost**, che potrebbe tradursi nell'indirizzo IPv6 ::1, se il demone non è in ascolto su quel socket si ottiene l'errore:
 +
 +<code>
 +spamc[16810]: connect to spamd on ::1 failed, retrying (#1 of 3): Connection refused
 +</code>
 +
 +Per forzare (system-wide) l'utilizzo di IPv4 si può creare **''/etc/spamassassin/spamc.conf''** mettendo:
 +
 +<file>
 +-d 127.0.0.1
 +</file>
doc/appunti/linux/sa/spamassassin.1456397365.txt.gz · Last modified: 2016/02/25 11:49 by niccolo