Accueil > Exchange, Microsoft > AntiSpam Exchange 2010

AntiSpam Exchange 2010

Ok après pas mal d’absence, due à la préparation de ma certification EMC² Proven Professional Assosiate (que j’ai validé :) ), je vais reprendre la partie Exchange 2010 et nous allons parler aujourd’hui de l’AntiSpam intégré à Exchange.

Il représente une solution robuste qui suffira pour les installations de PME, après il faudra compléter l’outil par une solution tierce.

Alors c’est parti.


En faite on reprend l’existant d’Exchange 2007 :)
Alors voyons un petit peut comment configurer tout ca de façon optimale (tout en gardant à l’esprit que l’on ne veut pas perdre de mail …).

On retrouve les même filtres (au nombre de 9):

Content Filtering     ———-     Filtrage de contenu
IP Allow List     ———-     Liste verte IP
IP Allow List Providers     ———-     Fournisseur de liste verte IP
IP Block List     ———-     Liste rouge IP
IP Block List Providers     ———-     Fournisseur de liste rouge IP
Recipient Filtering     ———-     Filtrage de destinataires
Sender Filtering     ———-     Filtrage d’expéditeur
Sender ID     ———-     ID de l’expéditeur
Sender Reputation     ———-     Réputation de l’expéditeur

Et voici ou ils se situent chacun dans une communication SMTP classique:

EHLO
HELO
Connection Filtering Agent (1, 2, 3, 4)
MAIL FROM
Sender Filtering list (5)
RCPT TO
Recipient Filtering list (6)
SenderID Filter (7)

DATA
Content Filter list (8)
Sender Reputation Filter (9)
RSET
VRFY
EXPN
HELP
NOOP
QUIT
TURN

Leur apparition dans l’ordre:

1) IP Allow List
2) IP Block List
3) IP Allow List Provider
4) IP Block List Provider
5) Sender Filter
6) Recipient Filter
7) SenderID Filter
8) Content Filter
9) Sender Reputation Filter

Ne gardons pas le suspense plus longtemps !!
Nous utiliserons les filtres 4, 5, 6, 8

Rappel :
Pour activer l’AntiSpam sur votre serveur transport (pour les organisations sans serveurs Edge)
Avec powershell il faut se rendre dans:
C:\Program Files\Microsoft\Exchange Server\V14\Scripts
(Ne pas oublier de changer le niveau de sécurité : Set-ExecutionPolicy Remotesigned)
Lancer:
.\Install-AntispamAgents
Et enfin:
Restart-Service MSExchangeTransport
Pour voir apparaitre l’onglet au niveau du rôle transport fermer et relancer EMC.

Différents éléments à configurer avant de vraiment commencer:
- Pour les mises à jour automatiques des filtres qui en ont besoin:
Enable-AntispamUpdates -IPReputationUpdatesEnabled $true –SpamSignatureUpdatesEnabled $true -MicrosoftUpdate RequestScheduled -UpdateMode Automatic

- Configuration internalSMTPServers (si vous en avez en interne):
Set-TransportConfig –internalSMTPServers 1.2.3.4, 1.2.3.5, 1.2.3.6 (remplacer les IPs par vos serveurs):

- Adresse de Postmaster:
Set-TransportConfig –ExternalPostmasterAddress postmaster@domaine.com

- Si besoin Address Harvesting and SMTP Tarpitting configuration:
Set-ReceiveConnector “Connector” –TarpitInterval 00:00:10

- Je vous conseil de désactiver tous les filtres avant de commencer.

Maintenant que tout est prêt, passons à la configuration des différents filtres que nous allons utiliser :

IP Block List Providers (4)
Realtime Block Lists (RBLs) ou encore DNS-based Block Lists (DNSBLs).
Nous en utiliserons 3 (les plus connus et les plus puissants).
SpamHaus
zen.spamhaus.org
127.0.0.2 Spamhaus Block List Direct UBE sources, spam services and ROKSO spammers
127.0.0.4-8 Exploits Block List Illegal 3rd party exploits, including proxies, worms and trojan exploits
127.0.0.10-11 Policy Block List Non-MTA IP address ranges set by outbound mail policy
SpamCop
bl.spamcop.net
127.0.0.2
Spamikaze
psbl.surriel.com
127.0.0.2

Config powershell :

Verification de l’existant:
Get-IPBlockListProvidersConfig
Activation du filtre:
Set-IPBlockListProvidersConfig -Enabled:$True
Ajout d’une exeption pour l’adresse de postmaster:
Set-IPBlockListProvidersConfig –BypassedRecipients postmaster@domaine.com (à changer par votre adresse de postmaster)
Ajout du premier DNSBL (id 1):
Add-IPBlockListProvider “SpamHaus” –LookupDomain zen.spamhaus.org –AnyMatch:$true –RejectionResponse “Your IP address {0} is listed on SpamHaus DNSBLs”
Ajout du deuxième DNSBL (id 2):
Add-IPBlockListProvider “SpamCop” –LookupDomain bl.spamcop.net –AnyMatch:$true –RejectionResponse “Your IP address {0} is listed on SpamCop DNSBLs”
Ajout du troisième DNSBL (id 3):
Add-IPBlockListProvider “Spamikaze” –LookupDomain psbl.surriel.com –AnyMatch:$true –RejectionResponse “Your IP address {0} is listed on Spamikaze DNSBLs”

Pour les tests:
Test-IPBlockListProvider “SpamHaus” –IPAddress X.X.X.X (à remplacer par l’ip à tester)
Get-IpBlockListProvider | Test-IpBlockListProvider -IpAddress X.X.X.X (ici on test l’ip avec chaque provider)

pour le tracking des logs:
Check logs
C:\Program Files\Microsoft\Exchange Server\V14\Scripts
.\Get-AntispamTopRBLProviders.ps1
Get-AgentLog –StartDate “22/12/2009 0:00 am” | where {$_.Reason –eq “BlockListProvider”}
Get-AgentLog –StartDate “22/12/2009 0:00 am” | where {$_.ReasonData –eq “SpamHaus”}

Sender Filtering (5)
Nous utilisons ce filtre pour rejeter tous les mails qui viennent d’expéditeurs non renseignés.

Vérification de l’existant:
Get-SenderFilterConfig
Activation du filtre
Set-SenderFilterConfig -Enabled:$True
Si besoin pour bloquer une adresse mail en particulier:
Set-SenderFilterConfig –BlockedSenders bou@domain.com
Si besoin pour bloquer un domaine en particulier:
Set-SenderFilterConfig –BlockedDomains domain.com
Si besoin pour bloquer un domaine en particulier ainsi que c’est sous domaines:
Set-SenderFilterConfig –BlockedDomainsAndSubdomains domain.com
Bloquer les expéditeurs vierges (à activer absolument !):
Set-SenderFilterConfig –BlankSenderBlockingEnabled:$true

Pour vérifier ce qui est actuellement bloqué:
Get-SenderFilterConfig | fl blocked*

Par défaut le mail sera rejeté, ici on le tag uniquement, il sera rejeté plus tard si besoin (pour éviter au maximum les faux positifs):
Ne pas utiliser si vous souhaitez que les mails soit rejetés.
Set-SenderFilterConfig –Action StampStatus

Recipient Filtering (6)
Nous utilisons ce filtre pour rejeter tous les mails qui sont destinés à des utilisateurs qui n’existe pas dans l’organisation.

Vérification de l’existant:
Get-RecipientFilterConfig
Activation du filtre:
Set-RecipientFilterConfig -Enabled:$True
Si besoin bloque un utilisateur:
Set-RecipientFilterConfig –BlockedRecipients bou@domain.com
Valide que le destinataire existe bien dans l’organisation (à activer absolument !):
Set-RecipientFilterConfig -RecipientValidationEnabled:$True
Desactive les listes de bloquage:
Set-RecipientFilterConfig –BlockListEnabled $false

Content Filtering (8)
Nous utilisons ce filtre pour filtrer ce qui aurait pu passer au travers des DNSBLs et qui serait des SPAMs.

Vérification de l’existant:
Get-ContentFilterConfig
Activation du filtre:
Set-ContentFilterConfig -Enabled:$True
Définition de la suppression (on est sur que c’est un SPAM):
Set-ContentFilterConfig -SCLDeleteEnabled $true -SCLDeleteThreshold 9
Définition du rejet (on envoi un mail à l’expéditeur pour dire que c’est vu comme du SPAM):
Set-ContentFilterConfig -SCLRejectEnabled $true -SCLRejectThreshold 8
Définition de la mailbox de quarantaine:
Set-ContentFilterConfig -QuarantineMailbox spam@domaine.com
Définition de la quarantaine (on deplace les mails qui correspondent dans la boite de quarantaine):
Set-ContentFilterConfig -SCLQuarantineEnabled $true -SCLQuarantineThreshold 7
On fixe le seuil pour le déplacement du mail dans le répertoire JunkMail de l’utilisateur:
Set-OrganizationConfig –SCLJunkThreshold 5

Si besoin modification des mailbox en chaine:
(Get-Mailbox | Set-Mailbox -SCLJunkEnabled $true -SCLJunkThreshold 5)
Si besoin mise en place des seuils au niveau de l’utilisateur directement :
(Set-Mailbox “acosteseque@domaine.com” -SCLDeleteEnabled $true -SCLDeleteThreshold 9 SCLRejectEnabled $true -SCLRejectThreshold 8 -SCLQuarantineEnabled $true -SCLQuarantineThreshold 7 –SCLJunkThreshold 5)

Si besoin configuration des exceptions:
Set-ContentFilterConfig –BypassedRecipients postmaster@domaine.com
Set-ContentFilterConfig –BypassedSenders bou@domain.com
Set-ContentFilterConfig –BypassedSenderDomains microsoft.com,domaine.com

Si besoin ajout de mots spécifiques pour influencer les résultats :
Add-ContentFilterPhrase “Project Ex2007TCR” –Influence goodword
Add-ContentFilterPhrase “Work from home” –Influence badword

Pour le tracking des logs :
Check logs
Get-AgentLog –StartDate “22/12/2009 0:00 am” | where {$_.Action –eq “QuarantineMessage”} | ft timestamp,P1FromAddress,Recipients
Get-Agentlog –StartDate “22/12/2009 0:00 am” | where {$_.Reason –eq “SCL”}
(–and $_.ReasonData –like “not available*”)

Pour récupérer les listes de blocage faites manuellements par les utilisateurs:
Update-Safelist–Type (SafeSenders | SafeRecipients | Both) –InludeDomains

Autres exemples:
Get-Mailbox –Server “ServerMBX” | Update-Safelist
Get-MailboxDatabase “DatabasePath” | Get-Mailbox | Update-Safelist
Get-DistributionGroupMember “Groupe” | where {$_.RecipientType –eq “UserMailbox”} | Update-Safelist

Ou encore sous forme de batch :
“C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe” -psconsolefile “d:\Exchange Server\bin\exshell.psc1″ -command “& {get-mailbox | where {$_.RecipientType -eq [Microsoft.Exchange.Data.Directory.Recipient.RecipientType]::UserMailbox } | update-safelist -verbose}”

Pour toutes questions, n’hésitez pas.
Bonne lecture à tous :)

Anthony Exchange, Microsoft , , ,

  1. 29/12/2009 à 01:20 | #1

    tu dors des fois ?

  2. 29/12/2009 à 11:26 | #2

    @Philippe
    Quand ma femme me frappe … :)

  3. EtherKurios
    27/04/2010 à 14:45 | #3

    Bonjour,
    Un grand merci pour ce tutoriel rapide qui m’a été d’un grand secours (la documentation technet étant assez indigeste :-)
    Tous mes encouragement à poursuivre ce partage de la connaissance.
    Cordialement.
    EtherKurios

  4. EtherKurios
    30/04/2010 à 13:29 | #4

    Faux positifs :
    La configuration donnée marche très bien mais ce matin j’ai trouvé dans ma boîte de quarantaine deux faux positifs du même domaine : @domaine.com
    Si j’ai bien compris pour autoriser ce domaine il faut faire :
    Set-ContentFilterConfig –BypassedSenderDomains domaine.com
    et si on avait déjà configuré des domaines :
    Set-ContentFilterConfig –BypassedSenderDomains dom1.fr, dom2.net, domaine.com
    (sinon on écrase la première configuration et seul le dernier domaine est autorisé !)
    Je vois bien mes modifications lors d’un Get-ContentFilterConfig mais où puis-je les retrouver dans l’EMC ?

    Merci par avance
    EtherKurios

    PS : Comment ressortir proprement les mails (faux positifs) de la boîte de quarantaine ?

  5. 30/04/2010 à 18:51 | #5

    Bonjour,
    Merci pour ce retour :) effectivement au départ il faut surveiller le flux de mails filtré pour vérifier les exceptions à mettre en place.
    Bien mettre les domaines connus en exception pour éviter ce genre de faux positif.
    Cependant il faut aussi regarder le contenu du mail pour comprendre pourquoi il a été considéré comme SPAM.
    En fonction des mots utilisés dans le mail il serait aussi intéressant de rajouter les mots avec –Influence goodword (si votre entreprise fait du carrelage (rajouter les mots en rapport dans la liste)).

    Dans l’EMC ça dépend si l’AntiSPAM est activé sur le Edge ou sur le HUB.
    HUB :
    Il faut aller dans Configuration de l’organisation > Anti-SPAM > Filtrage de contenu > Exceptions
    Edge :
    Il faut aller dans l’onglet Edge et Anti-SPAM > Filtrage de contenu > Exceptions

  6. none
    05/07/2011 à 14:07 | #6

    hello

    bon tuto mais ne pas configurer de réponse ! ca rajoute du spam dans l’autre sense :)

  7. 07/07/2011 à 00:48 | #7

    c’est vrai :p

  8. Information
    08/07/2011 à 15:33 | #8

    Malheureusement,toute ces commandes ne sont plus disponible sur Exchange 2010 SP1

  9. 28/07/2011 à 10:25 | #9

    Un service pack n’est pas une régression de fonctionnalités :) Toute cette procédure est bien fonctionnelle en SP1

  10. Eric
    08/09/2011 à 11:33 | #10

    Bonjour,
    merci pour l’aide apportée. Votre tuto est pratique et simple à comprendre.
    Cependant, dans Exchange 2010, cette commande ne marche pas :
    Enable-AntispamUpdates -IPReputationUpdatesEnabled $true –SpamSignatureUpdatesEnabled $true -MicrosoftUpdate RequestScheduled -UpdateMode Automatic

    Voici ce que ça me retourne :
    Impossible de trouver un paramètre positionnel acceptant l’argument « True ».
    + CategoryInfo : InvalidArgument: (:) [Enable-AntispamUpdates], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Enable-AntispamUpdates

    Est-ce normal ??? Comment contourner ceci ???
    Davance merci pour votre réponse

  11. 14/09/2011 à 18:56 | #11

    Bonjour,
    En effet la cmdlet Enable-AntispamUpdates a été retirée.
    http://technet.microsoft.com/en-us/library/aa998911.aspx
    Pour télécharger les mise à jour il faudra le faire manuellement en utilisant Microsoft Update (les updates sortent 1 fois toutes les 2 semaines)
    http://technet.microsoft.com/en-us/library/bb124241.aspx
    Anthony

  12. 17/10/2011 à 11:26 | #12

    Exchange 2010 dans SBS 2011 : Tout cela ne se fait pas simplement avec la console dans organisation, …. onglet antispam où tous les filtres sont listés et qu’on peut activer/désactiver et configurer ?

    Par contre, j’ai eu un faux positif (vu dans les logs) et ne le retrouve pas ….. pourquoi les options “répondre” (en effet super pour régénérer du spam) ou “Delete” (ce ne sont pas des virus)….

    Merci d’avance de vos expériences

  13. Tang
    26/10/2011 à 22:06 | #13

    Moi c’est le Get-antispamupdates qui ne fonctionne pas… J’avais vu sur d’autres sites qu’en cliquant sur configuartion du serveur, Hub Transport on pouvait activer/desactiver les MAJ de l’IMF mais rien (je les ai sur un 2007).
    Mise à part les MAJ de l’imf comment savoir si son exchange est à jour?

  14. GD
    28/12/2011 à 00:50 | #14

    Super tuto, merci beaucoup à toi

  1. 10/10/2014 à 20:42 | #1