Visualizzazione post con etichetta spam. Mostra tutti i post
Visualizzazione post con etichetta spam. Mostra tutti i post

martedì 18 marzo 2014

Configurare DKIM (DomainKeys Identified Mail) con Postfix su Debian usando OpenDKIM (HOWTO)

Note preliminari:

Tutti comandi di questo HOWTO vengono eseguiti dall'utente root
esempio.com deve essere sostituito con il dominio su cui state configurando DKIM

Installazione software necessario:

apt-get install opendkim opendkim-tools

(la procedura di installazione crea in automatico l'utente e il gruppo opendkim)

Creazione directory e sistemazione permessi:

mkdir -p /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim
chmod -R go-wrx /etc/opendkim/keys

Generazione chiavi:

E' necessario generare una chiave pubblica e una privata per ogni dominio per il quale pensate di aggiungere la firma DKIM. La chiave privata e' conservata sul server, mentre la chiave pubblica deve essere pubblicata sul DNS del dominio in modo che i mail server di destinazione possano verificare la firma DKIM della nostra mail.

Bisogna decidere il nome del selettore. Un selettore e' una parola univoca che viene associata ad entrambe le chiavi, pubblica e privata, inclusa in tutte le firme e pubblicata nei record DNS. Per semplicita' useremo la parola default come selettore di default. Potete scegliere anche un'altra parola, ma se lo fate, state attenti a utilizzare sempre quella durante le varie fasi della configurazione.

Vi ricordo inoltre di sostituire il vostro dominio di posta a dominio.com nelle fasi seguenti della configurazione:

mkdir /etc/opendkim/keys/example.com
opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
chown -R opendkim:opendkim /etc/opendkim/keys/example.com
mv /etc/opendkim/keys/example.com/default.private /etc/opendkim/keys/example.com/default

Nel comand opendkim-genkey vengono utilizzati i seguenti parametri:

-D indica la directory in cui verranno memorizzate le chiavi
-d indica il dominio di posta a cui fanno riferimento le chiavi generate
-s indica il selettore

Creazione e modifica dei file di configurazione:

I file di configurazione del sistema OpenDKIM sono i seguenti:

- 1 /etc/opendkim.conf  - e' il file di configurazione principale di OpenDKIM
- 2 /etc/opendkim/KeyTable - e' la lista delle chiavi disponibili
- 3 /etc/opendkim/SigningTable - e' la lista di domini e account specifici abilitati a firmare i propri messaggi
- 4 /etc/opendkim/TrustedHosts - e' la lista di server ritenuti affidabili al momento di inserire o verificare una firma DKIM

1) Creazione del file /etc/opendkim.conf (se esiste gia' salvatene il contenuto e sostituitelo con quanto segue)

Verificate che il contenuto del file sia il seguente:

##
## opendkim.conf -- configuration file for OpenDKIM filter
##
AutoRestart             Yes
AutoRestartRate         10/1h
Canonicalization        relaxed/simple
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
LogWhy                  Yes
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256
SigningTable            refile:/etc/opendkim/SigningTable
Socket                  inet:8891@localhost
Syslog                  Yes
SyslogSuccess           Yes
TemporaryDirectory      /var/tmp
UMask                   022
UserID                  opendkim:opendkim

2) creazione del file /etc/opendkim/KeyTable:

default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default

Il file KeyTable dice a  OpenDKIM dove trovare le chiavi. Ogni elemento del file KeyTable e' una singola linea per ogni posizione di chiavi. Se avete intenzione di utilizzare chiavi multiple (ad esempio per firmare le mail dei domini virtuali con chiavi differenti).dovrete creare una linea separata per ogni dominio nel file KeyTable.

3) creazione del file /etc/opendkim/SigningTable:

*@example.com default._domainkey.example.com

Il file SigningTable dice a OpenDKIM come usare le vostre chiavi e queli selettori usare per i vari mittenti per le loro firme. Nell'esempio abbiamo detto al sistema che tutti (*) i mittenti del server "dominio.com" dovrebbero usare il selettore "default." 
E' importante notare che il simbolo * funzionera' solo se nel file di configurazione opendkim.conf l'opzione SigningTable utilizza il prefisso "refile:" prima del filename.

4) creazione del file /etc/opendkim/TrustedHosts:

127.0.0.1
hostname1.example1.com
example1.com
hostname1.example2.com
example2.com

Il file TrustedHosts dice a OpenDKIM chi puo' usare le chiavi per firmare i messaggi.
Essendo referenziato dalla direttiva ExternalIgnoreList nel file di configurazione, OpenDKIM ignorera' questa lista di host quando verifica le mail in ingresso.
Essendo referenziato dalla direttiva InternalHosts nel file di configurazione, OpenDKIM firmera' le mail in uscita da questi host.

IMPORTANTE: assicuratevi che l'IP address per localhost (127.0.0.1) sia inserito nel file TrustedHosts file, altrimenti OpenDKIM non firmera' le email spedite dal server.
Se aveye piu' server sulla stessa rete che utilizzano il vostro server come relay host, dovete inserire gli indirizzi IP di questi server nel file TrustedHosts se volete firmare anche le loro email. 
Inserite un elemento per ogni linea.
Un elemento puo' essere un hostname, un nome di dominio  (per esempio "dominio.com"), un indirizzo IP, an indirizzo IPv6 o un indirizzo CIDR (per esempio 192.168.1.0/24).

Configurazione di opendkim su postfix:

Inserire le righe seguenti nel file /etc/postfix/main.cf

smtpd_milters           = inet:127.0.0.1:8891
non_smtpd_milters       = $smtpd_milters
milter_default_action   = accept
milter_protocol = 2

Restart dei servizi coinvoilti:

/etc/init.d/onendkim restart
/etc/init.d/postfix restart

Verificare su /var/log/mail.log che entrambi i servizi siano ripartiti e che non ci siano altri errori.

Aggiungere i record DNS:

Ora che il vostro server sta firmando le mail in uscita e verificando le mail in entrata, avete bisogno di inserire alcune informazioni nei record DNS per dire agli altri mail server come sono configurate le vostre chiavi e per fornire loro la chiave pubblica in modo che possano verificare che la tua mail e' firmata correttamente.

cat /etc/opendkim/keys/example.com/default.txt

L'output di questo comando dovrebbe essere simile a quanto segue:

default._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=7k45u5i2T1AlEBeurUbdKh7Nypq4lLMXC2FHhezK33BuYR+3L7jxVj7FATylhwIDAQABMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHY7Zl+n3SUldTYRUEU1BErHkKN0Ya52gazp1R7FA7vN5RddPxW/sO9JVRLiWg6iAE4hxBp42YKfxOwEnxPADbBuiELKZ2ddxo2aDFAb9U/lp4" ; ----- DKIM default for example.com

Ora create un record DNS per il vostro dominio e copiate l'intero contenuto del file /etc/opendkim/keys/example.com/default.txt in fondo al file della zona del vostro dominio, Il nome TXT sara' default._domainkey e il valore TXT sara' tutto quello compreso tra apici (a partire da v=)
Potete ignorare il punto e virgola e il commento finale.

Seguite attentamente le istruzioni del vostro provider DNS per aggiungere un record TXT al vostro dominio

Ora sarebbe il momento giusto per verificare di avere anche un record SPF valido nel vostro DNS. Aver configurato a dovere sia DKIM che SPF aumentera' sensibilmente le vostre probabilita' di consegna della vostra posta in uscita.

lunedì 9 novembre 2009

Installare e configurare spamassassin per procmail

In questo post avevamo visto come installare spamassassin per l'utilizzo da Evolution, ora vediamo come installarlo e configurarlo al meglio per utilizzarlo tramite procmail.

sudo apt-get install spamassassin

N.B.: questa volta non e' necessario abilitare spamd nel file /etc/default/spamassassin in quanto il programma viene richiamato di volta in volta da procmail senza bisogno di mantenere il daemon attivo dal boot.

Per default spamassassin incapsula ogni mail riconosciuta come spam in una mail di notifica. Utilizzando procmail pero' preferiamo che la mail non venga modificata a parte i tag aggiuntivi che la classificano come spam. In questo modo potremo, sempre attraverso procmail, decidere cosa farne (ad esempio spostarla in una cartella SPAM del nostro server di posta). Per fare cio' occorre settare a 0 (zero) il parametro report_safe nel file /etc/spamassassin/local.cf:
report_safe 0

martedì 18 marzo 2008

La pagella di Bogofilter

Per controllare lo stato di apprendimento del filtro bayesiano di Bogofilter potete lanciare questo comando da terminale:
bogoutil -H ~/.bogofilter/wordlist.db


Avrete un output simile a questo:

Histogram
score count pct histogram
0.00 87856 95.82 ################################################
0.05 11 0.01 #
0.10 22 0.02 #
0.15 29 0.03 #
0.20 30 0.03 #
0.25 27 0.03 #
0.30 26 0.03 #
0.35 51 0.06 #

0.40 56 0.06 #
0.45 43 0.05 #
0.50 51 0.06 #
0.55 46 0.05 #
0.60 45 0.05 #
0.65 60 0.07 #
0.70 94 0.10 #
0.75 93 0.10 #
0.80 126 0.14 #
0.85 159 0.17 #
0.90 277 0.30 #
0.95 2586 2.82 ##

tot 91688
hapaxes: ham 44440 (48.47%), spam 1679 ( 1.83%)
pure: ham 87847 (95.81%), spam 2002 ( 2.18%)
Di solito i migliori risultati si hanno quando i grafici delle line 0.00 e 0.95 sono simili.

lunedì 17 marzo 2008

Ciao Spamassassin, ti tradisco con Bogofilter


Mi sono chiesto per un p0' di tempo (e pigramente non mi sono mai dato o cercato una risposta) come mai Evolution ci mettesse tanto tempo a scaricare la posta POP3.

Pensavo qualche problema con il router (che in effetti qualche stranezza l'aveva), ma qualche giorno fa, dopo aver sostituito il router, ho constatato lo stesso problema.

Stavo per protestare con il provider, con il provider di posta, con il produttore del router.....

Per fortuna non ho protestato con nessuno perche' la colpa era di Spamassassin, ebbene si', del mio amato antispam di cui ho sempre parlato sol che bene.

Ho provato a impostare Bogofilter come sistema antispam usato da Evolution....ora e' un razzo, certo ancora lo devo educare su cosa e' SPAM e cosa e' HAM (ovvero il NON SPAM) ma al ritmo con cui ricevo spam su certi account non dovrebbe essere un problema :-)

mercoledì 19 dicembre 2007

Spamassassin: installazione e configurazione


In un precedente articolo vi ho detto come gestire whitelist e blacklist in spamassassin.

Solo che (almeno su Gutsy) spamassassin deve essere installato e attivato...vediamo come fare:

sudo apt-get install spamassassin (forse obsoleto, gutsy per default utilzza bogofilter....)
sudo vi /etc/default/spamassassin
Impostare ENABLED=1 (abilita spamd)
Impostare CRON=1 (abilita aggiornamenti automatici notturni)
Selezionare Spamassassin su Evolution (Edit->Preferences->Junk->Default Junk Plugin)

Di default Gutsy installa bogofilter...mai usato...mai provato...qualcuno che ce ne parli....?

domenica 9 dicembre 2007

Spamassassin whitelist / blacklist


Se utilizzate spamassassin per limitare lo spam sul vostro sistema potreste voler sbloccare (ovvero inserire in whitelist) o bloccare (inserire in blacklist) definitivamente la posta da o per un certo indirizzo o serie di indirizzi.

Viene gestito tutto nel file ~/.spamassassin/user_prefs (se i settaggi sono riservati all'utente corrente) o nel file /etc/mail/spamassassin/local.cf (se i settaggi sono validi per tutti gli utenti del sistema)

Blocco della mail proveniente da un indirizzo:

blacklist_from indirizzo@dominio.xyz

Blocco della mail diretta a un indirizzo:

blacklist_to indirizzo@dominio.xyz

Sblocco della mail proveniente da un indirizzo:

whitelist_from indirizzo@dominio.xyz

Sblocco della mail diretta a un indirizzo:

whitelist_to indirizzo@dominio.xyz

Valgono anche le wildcard:

*@isp.com


o

*.domain.net



[avevo sentito parlare di squacquerone che esce dall'hard disk....ma mai di prosciutto tritato dal cd.... :-) ]

lunedì 4 giugno 2007

BLACKLIST!!!!

Era troppo bello per essere vero.
Il weekend era passato in maniera totalmente piacevole.
Stamattina la moto era partita subito (e non succede spesso)
Sono arrivato in ufficio in anticipo (anche questo non succede spesso ;-)

AAAAAAAAAAAAAAAARRRRRRGGGGHHHHHHHHHHHH

quasi tutte le mail spedite verso l'esterno tornano indietro con messaggi minacciosi.
Il telefono e' rovente, a tutti dico la stessa cosa: non dipende da noi...stiamo lavorando per voi...

Comunque pare che uno dei nostri IP address sia finito in una blacklist.

Per fortuna i maintainer della blacklist http://cbl.abuseat.org/ hanno pubblicato diverse guide per risalire alla causa del blacklistaggio (brrr....termine raccapricciante)

Pare anche che quel bastardo di Exchange (ahime'....lo confesso....) se ne esca male al momento dell'HELO.

mandando una mail all'indirizzo helocheck[at]cbl.abuseat.org viene inviato un messaggio che consente di sapere in cosa consiste il problema. Dovrebbe contenere una riga simile a una delle seguenti:

#5.1.1 SMTP; 550 Your HELO name for IP address 1.2.4.6 was "localhost.localdomain"
#5.1.1 SMTP; 550 Your HELO name for IP address 1.2.4.6 was "localhost"
#5.1.1 SMTP; 550 Your HELO name for IP address 1.2.4.6 was "smtp"
#5.1.1 SMTP; 550 Your HELO name for IP address 1.2.4.6 was "1.2.4.6"
#5.1.1 SMTP; 550 Your HELO name for IP address 1.2.4.6 was "[1.2.4.6]"
#5.1.1 SMTP; 550 Your HELO name for IP address 1.2.4.6 was "mail.example.com"


Il nome di HELO dovrebbe essere il "fully qualified domain name" (FQDN) del vostro mail server oppure un indirizzo IP compreso in due parentesi quadre.

Nell'esempio le prime quattro righe sono sintatticamente errate (RFC2821). Le ultime due sono corrette.

Se il messaggio che ricevete non e' uno delle ultime due righe dell'esempio, avete trovato il problema che vi ha portato in blacklist.

Nel mio caso ho ricevuto un bel:

#5.5.0 smtp;550-Your HELO name for IP address x.y.z.w was>

Per risolvere il problema occorre educare il proprio server exchange:

Aprite Exchange System Manager -->
Administrative Groups -->
First Administrative Group -->
Servers -->
ServerName -->
Protocols -->
SMTP -->
Default SMTP Virtual Server -->
Properties -->
Delivery tab -->
Advanced

Qui potete modificare l'FQDN in maniera corretta (es: mail.mycompany.com)

Inviando una mail a helocheck[at]cbl.abuseat.org ora ottengo questo risultato.

#5.5.0 smtp;550 Your HELO name for IP address x.y.z.w was "mail.mycompany.com"


Decisamente meglio della risposta precedente.

A questo punto ho richiesto la rimozione del nostro indirizzo IP dalla blacklist....attendo fiducioso.