Ho deciso di abilitare la protezione interna di Exchange 2007 da aggiungere a quella perimetrale gestita da Panda GateDefender Performa. Questo perchè ho sempre le code di invio piene di shifezze. In prima battuta pensavo fosse un client infetto, che spammava alla grande dalla lan. Controllando più approfonditamente i log e facendo dei test di inoltro ho escluso questa ipotesi ed alla fine è venuto fuori che l’installazione è vulnerabile ad attacchi di tipo “spam backscatter/NDR“.
Abilitare la protezione interna di Exchange 2007 è molto semplice, ma bisogna fare un pò d’attenzione alla configurazione dei parametri che interessano i filtri del contenuto e l’rbl per lo spam. Dico questo perchè il classico “avanti, avanti, fine” (che ovviamente ho tentato spudoratamente, sperando che tutto andasse bene in 2 minuti d’orologio) mi ha portato inesorabilmente a farmela nei pantaloni perchè non ricevevo più email dall’esterno. Quindi leggendo i manuali su technet e controllando in giro nei newsgroup microsoft sono riuscito (bene) nell’intento.
Per prima cosa abilitiamo la tutte le funzionalità di protezione di Exchange (parlo della versione 2007 SP2). Aprimo la shell e digitiamo i seguenti comandi, uno per volta:
1
2
3
| cd "C:\Program Files\Microsoft\Exchange Server\Scripts"
./install-AntispamAgents.ps1
Restart-Service MSExchangeTransport |
Ok, abbiamo installato il motore che gestirà la protezione del nostro server Exchange, adesso dobbiamo verificare il corretto funzionamento degli update e successivamente personalizzare i “livelli di guardia”. A questo proprosito vi anticipo che non ci sono vere e proprie regole uguali per tutti. La gestione delle soglie SCL e come queste vegono classificate dal mail server non sono così standard come ci si aspetterebbe… e dopo ve lo dimostro. Comqune, proseguiamo e lanciamo il comando che abilita la protezione:
1
| Enable-AntispamUpdates -Identity MIO_MAIL_SERVER -IPReputationUpdatesEnabled $True -UpdateMode Automatic -SpamSignatureUpdatesEnabled $True |
Se il server è lo stesso da dove lanciate i comandi (quindi se non state usando powershell da un client) potete omettere la variabile -Identity <Nome_del_vostro_server>. Bene, eseguiamo Windows Update e successivamente verifichiamo il corretto funzionamento degli aggiornamenti lanciando:
Dovremmo visualizzare in shell qualcosa del tipo:
1
2
3
4
5
6
7
| UpdateMode : Automatic
LatestContentFilterVersion : 3.3.8203.600
SpamSignatureUpdatesEnabled : True
LatestSpamSignatureVersion : 3.3.8204.1232
IPReputationUpdatesEnabled : True
LatestIPReputationVersion : 3.3.8204.036
MicrosoftUpdate : Configured |
Stiamo procedendo bene. Riavviamo il servizio di trasporto:
1
| Restart-Service MSExchangeTransport |
A questo punto aggiungiamo qualche buon server RBL per il controllo dello spam, direi che per cominciare utilizzeremo RBL conservative. Da sole limitano un buon 90% delle schifezze che arrivano per posta, più avanti potremo utilizzare server più restrittivi, a patto di tener sott’occhio la quarantena perchè il rischio di falsi positivi potrebbe aumentare. Le rbl che consiglio sono:
1
2
3
| zen.spamhaus.org
list.dsbl.org
combined.njabl.org |
Sempre da shell:
1
2
3
| Add-IPBlockListProvider -Name:zen.spamhaus.org -LookupDomain:zen.spamhaus.org
Add-IPBlockListProvider -Name:list.dsbl.org -LookupDomain:list.dsbl.org
Add-IPBlockListProvider -Name:combined.njabl.org -LookupDomain:combined.njabl.org |
Poi controlliamo il risultato con:
1
2
3
4
5
6
7
| get-IPBlockListProvider
Name LookupDomain Priority
---- ------------ --------
combined.njabl.org combined.njabl.org 1
list.dsbl.org list.dsbl.org 2
zen.spamhaus.org zen.spamhaus.org 3 |
Ok, andiamo al punto forte, la configurazione delle soglie SCL. La gestione dei livelli è numerica, da 0 a 9. Il valore più basso (0) indica che la mail è quasi sicuramente attendibile. Quello più alto (9) indica che la mail è quasi sicuramente indesidetata.
Adesso con i comandi che seguiranno imporremo ai filtri di Exchange 2007 di eliminare tutte le email che hanno il massimo livello di probabilità che la mail sia spam, rifiuteremo quelle con SCL uguale/maggiore di 8 (con tanto di motivazione) e invieremo alla nostra casella postale “quarantena@miodominio.it” (opportunamente configurata) le email che potrebbero essere dei falsi positivi:
1
2
3
4
| set-ContentFilterConfig -SCLDeleteThreshold 9 -SCLDeleteEnabled:$true
set-ContentFilterConfig -SCLRejectThreshold 8 -SCLRejectEnabled:$true
set-ContentFilterConfig -RejectionResponse "Questa email è stata rifiutata perchè indesiderata!"
set-ContentFilterConfig -SCLQuarantineThreshold 6 -SCLQuarantineEnabled:$true -QuarantineMailbox:quarantena@miodominio.it |
Questo il risultato:
1
2
3
4
5
6
7
| get-ContentFilterConfig | Select SCL*
SCLRejectThreshold : 8
SCLRejectEnabled : True
SCLDeleteThreshold : 9
SCLDeleteEnabled : true
SCLQuarantineThreshold : 6
SCLQuarantineEnabled : true |
Invece, se volete dare un’occhio a tutta la configurazione del Filtro del Contenuto eseguite:
1
| get-ContentFilterConfig |
Bene, adesso iniziamo a tener sott’occhio le email, a questo proposito consiglio di alzare il livello di logging del connettore di ricezione, in modo di poter fare delle analisi qualora le email non arrivassero.
Per quel che mi riguarda posso benissimo dire che tutta questa procedura non ha funzionato bene al primo colpo. Nel mio caso ho un livello aggiuntivo di protezione perimentrale, un attrezzo che si occupa quasi esclusivamente di taggare le email indesiderate (Panda Gatedefender Performa). Alla fine ho “scoperto” che modifica l’header di tutte le email in ingresso, ingannando sistematicamente il filtro di exchange che alzava di parecchio la soglia SCL, considerando spam quasi tutte le email in ingresso.
Una volta eliminata la protezione perimentrale incappo nel secondo problema. I provider più grandi come Libero.it, Gmail.com ecc… hanno diversi server smtp sparsi per il globo. Alcuni di questi sono vittime di attacchi da parte di spammer ed inevitabilemte gli ip di questi server finiscono nelle famose liste nere. Il livello SCL che rilevo è sempre piuttosto alto, tra il 5 ed il 7, quindi mi trovo alcune email da amico@libero.it nella lista della posta indesiderata. Anche la composizione delle stessa email pregiudica il proprio livello di attendibilità. Quasi non ci credevo, finchè non ho provato io stesso, inviando 3 email, da privato@gmail.com a aziendale@azienda.it, con oggetto e corpo del messaggio più o meno sensato e più o meno formattato.

Quindi occhio, è evidente che l’algoritmo che genera il valore SCL fa controlli molto più complessi che una normale ricerca del dominio mittente.
Una lista di tutti i principali controlli che potete fare da shell è la seguente:
1
2
3
4
5
6
| Get-AntispamFilteringReport.ps1
Get-AntispamSCLHistogram.ps1
Get-AntispamTopBlockedSenderDomains.ps1
Get-AntispamTopBlockedSenderIPs.ps1
Get-AntispamTopBlockedSenders.ps1
Get-AntispamTopRecipients.ps1 |
Buon divertimento
Commenti Recenti