Pour configurer l’antispam,  procedez comme ceci :

Il existe 9 types de filtres :

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

Nous utiliserons les filtres 4, 5, 6, 8
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

 

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}”

3 Comments

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Switch to our mobile site