none
Alimenter le filtre antispam expediteurs RRS feed

  • Question

  • Bonjour

    Comment alimenter facilement le filtrage expediteur sous Exchange 2010?

    Sous 2003 il existe l'action importer une liste en*txt, sur 2010 il faut saisir chaque adresse ou domaine c'est un travail de romain quand la liste comporte des centaines d'adresses

    En PowerShell c'est pareil, une ligne pour une adresse

    J'ai lu ici meme une imporation d'adresse IP avec un fichier Excel, n'y a t'il pas pareille procedure?

    Cordialement

     

    Gerard

    dimanche 15 janvier 2012 09:45

Réponses

  • Bonjour,

    Avec PowerShell on peut tout faire :)

    Pour votre besoin je pense que le plus simple serait de transformer l'Excel en CSV.

    Puis d'importer le CSV sous PowerShell :

    $list = Import-Csv 'C:\Script\ListeIP.csv' -Delimiter ";"

    A partir de la il faudra faire une boucle pour ajouter chaque IP

    La forme de la boucle sera :

    ForEach ($entry in $list) {

    Commade a exécuter (pour avoir l'IP il faudra appeler $entry.IP (si la colonne dans le CSV avec l'IP port le nom IP))

    }

    Pour toutes questions n’hésitez pas.

    Anthony COSTESEQUE

    dimanche 15 janvier 2012 16:30
  • Bonsoir,

    voici un script qui fonctionne bien à condition qu'aucune adresse  du fichier "listeRecipients.csv" ne soit déjà présente dans les destinataires:

    $list = get-content 'C:\Scripts\ListeRecipients.csv'
    $a=Get-RecipientFilterConfig
    $b=$a.blockedrecipients
    
    ForEach ($entry in $list) {
    $b+=$entry
    }
    
    set-recipientFilterConfig -blockedrecipients $b
    
    


    A bientôt,


    Thierry DEMAN. Exchange MVP. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (68 MCPs) http://base.faqexchange.info
    dimanche 15 janvier 2012 23:33
    Modérateur
  • Par contre s'il n'y a qu'une information (des noms de domaines) le CSV n'est pas necessaire.

    Un fichier txt suffit avec un nom de domaine par ligne.

    Voici le script (je n'ai pas pu le tester)

    # on récupère les noms de domaines (les nouveaux noms à ajouter) d'un fichier txt

    $list = Get-Content "c:\script\list.txt"

    # on récupère l’état actuel du filtre

    $SenderFilterConfig = Get-SenderFilterConfig

    # on crée une boucle pour traiter chaque ligne du fichier

    # pour chaque ligne du fichier txt on l'ajoute (+=) à BlockedDomains (sans le += on perdrait les noms précédant)

    ForEach ($entry in $list) {

    $SenderFilterConfig.BlockedDomains += ("$entry")

    }

    NOTE : Sauvegarder la configuration du filtre dans un fichier txt  avant de tester en lançant la commande

    Get-SenderFilterConfig | fl * > C:\script\SVGfilter.txt

    Cordialement,

    Anthony

    • Marqué comme réponse Florin Ciuca dimanche 22 janvier 2012 19:28
    dimanche 15 janvier 2012 22:30

Toutes les réponses

  • Bonjour,

    Avec PowerShell on peut tout faire :)

    Pour votre besoin je pense que le plus simple serait de transformer l'Excel en CSV.

    Puis d'importer le CSV sous PowerShell :

    $list = Import-Csv 'C:\Script\ListeIP.csv' -Delimiter ";"

    A partir de la il faudra faire une boucle pour ajouter chaque IP

    La forme de la boucle sera :

    ForEach ($entry in $list) {

    Commade a exécuter (pour avoir l'IP il faudra appeler $entry.IP (si la colonne dans le CSV avec l'IP port le nom IP))

    }

    Pour toutes questions n’hésitez pas.

    Anthony COSTESEQUE

    dimanche 15 janvier 2012 16:30
  • Bonsoir

    Je ne cherche pas a integrer des ip, mais des noms de domaines dans le filtre expediteur

    Gerard

    dimanche 15 janvier 2012 21:12
  • Ça reste le même principe :)

    Des IP ou des noms de domaines, le script prendra ce qu'il faut en entré.

    Cordialement,

    Anthony

    dimanche 15 janvier 2012 22:09
  • Par contre s'il n'y a qu'une information (des noms de domaines) le CSV n'est pas necessaire.

    Un fichier txt suffit avec un nom de domaine par ligne.

    Voici le script (je n'ai pas pu le tester)

    # on récupère les noms de domaines (les nouveaux noms à ajouter) d'un fichier txt

    $list = Get-Content "c:\script\list.txt"

    # on récupère l’état actuel du filtre

    $SenderFilterConfig = Get-SenderFilterConfig

    # on crée une boucle pour traiter chaque ligne du fichier

    # pour chaque ligne du fichier txt on l'ajoute (+=) à BlockedDomains (sans le += on perdrait les noms précédant)

    ForEach ($entry in $list) {

    $SenderFilterConfig.BlockedDomains += ("$entry")

    }

    NOTE : Sauvegarder la configuration du filtre dans un fichier txt  avant de tester en lançant la commande

    Get-SenderFilterConfig | fl * > C:\script\SVGfilter.txt

    Cordialement,

    Anthony

    • Marqué comme réponse Florin Ciuca dimanche 22 janvier 2012 19:28
    dimanche 15 janvier 2012 22:30
  • Bonsoir,

    voici un script qui fonctionne bien à condition qu'aucune adresse  du fichier "listeRecipients.csv" ne soit déjà présente dans les destinataires:

    $list = get-content 'C:\Scripts\ListeRecipients.csv'
    $a=Get-RecipientFilterConfig
    $b=$a.blockedrecipients
    
    ForEach ($entry in $list) {
    $b+=$entry
    }
    
    set-recipientFilterConfig -blockedrecipients $b
    
    


    A bientôt,


    Thierry DEMAN. Exchange MVP. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (68 MCPs) http://base.faqexchange.info
    dimanche 15 janvier 2012 23:33
    Modérateur
  • Oops il manque une ligne dans mon script :p l'enregistrement du changement (Set-SenderFilterConfig -BlockedDomains $SenderFilterConfig.BlockedDomains).

    Donc pour Mettre à jour la liste des domaines bloqués en sortie (mails sortant de l'organisation)

    $list = Get-Content "c:\script\list.txt"

    $SenderFilterConfig = Get-SenderFilterConfig

    ForEach ($entry in $list) {

    $SenderFilterConfig.BlockedDomains += ("$entry")

    }

    Set-SenderFilterConfig -BlockedDomains $SenderFilterConfig.BlockedDomains

     

    Si par contre c'est en entré que l'on veut filtrer (mail entrant dans l'organisation) (comme l'a dit Thierry)

    $list = Get-Content "c:\script\list.txt"

    $RecipientFilterConfig = Get-RecipientFilterConfig

    ForEach ($entry in $list) {

    $RecipientFilterConfig.BlockedRecipients += ("$entry")

    }

    Set-RecipientFilterConfig -BlockedRecipients $RecipientFilterConfig.BlockedRecipients

     

    NOTE : Thierry si on manipule un CSV il faudra specifier le nom de la colonne dans le CSV pour appeler la valeur d'un champ ($entry.NomDeLaColonne)

    C'est pour eviter cette petite complication (etant donnée que l'on a qu'une information (des noms de domaines)) que j'utilise un fichier txt.

    Cordialement,

    Anthony COSTESEQUE

    lundi 16 janvier 2012 07:12
  • Bonsoir

     

    Merci pour votre aide, mais cela n'a pas fonctionné

    Il y avait un msg dans Power, qui disait a peu pres ceci, impossible de convertir......

    Idem pour la procedure de Thierry

    pas eu le temps de continuer mais je vais m'y remettre

    Cordialement

    mardi 17 janvier 2012 15:07
  • Bonsoir

    L'exportation du filtre a fonctionne, mais comment reintegrer ce fichier?

     

    Cordialement

    mardi 17 janvier 2012 15:08
  • Bonjour,

    Je viens d'essayer le script que j'ai proposé et cela fonctionne sans problèmes.

    est ce que vous utilisez bien l'EMS (le shell d'exchange) ? est ce que votre fichier txt contient bien un nom de domaine par ligne ?

    le script prend en compte l'historique, ce qui veut dire que votre liste ne doit contenir à chaque run que les nouveaux noms de domaine à ajouter.

    Pour clarrifier les filtres anti-spam, il faudra utiliser le SenderFilter et non le RecipientFilter :

    Filtrage des expéditeurs   La fonctionnalité de filtrage des expéditeurs compare l’expéditeur figurant sur la commande SMTP MAIL FROM: à une liste définie par l’administrateur d’expéditeurs ou de domaines expéditeurs qui ne sont pas autorisés à envoyer des messages à l’organisation afin de déterminer l’action éventuelle à appliquer à un message entrant. 

    Filtrage des destinataires   Le filtrage des destinataires compare les destinataires sur message dans la commande SMTP RCPT TO: SMTP à une liste rouge de destinataires définie par l’administrateur. En cas de correspondance, le message ne peut pas pénétrer dans l’organisation. Le filtre des destinataires compare également les destinataires des messages entrants au répertoire des destinataires local pour déterminer le message est adressé à des destinataires valides. Si un message n’est pas adressé à des destinataires valides, il peut être rejeté au niveau du périmètre de réseau de l’organisation. 

    Vous souhaitez filtrer sur les mails, les noms de domaines se trouvant dans le champ FROM:

    Cordialement,

    Anthony COSTESEQUE


    mardi 17 janvier 2012 15:41
  • vous ne pourrez pas réintégrer la configuration avec une commande

    le fichier est la pour référence, pour vour, pour voir ce qui etait configuré à un instant T.

    s'il faut exporter la configuration pour la restaurer plus facilement par la suite, le plus simple est d'exporter la commande dans un fichier xml

    Get-SenderFilterConfig | Export-Clixml C:\scripts\ConfSenderFilter.xml

    puis ensuite pour le manipuler

    $conf = Import-Clixml C:\scripts\ConfSenderFilter.xml

    $conf.BlockedDomains

    permettra d’accéder à la configuration des domaines bloqués dans le fichier de backup

    Set-SenderFilterConfig -BlockedDomains $conf.BlockedDomains

    permettra de restaurer cette configuration dans la configuration en cours de production

    Coridalement,

    Anthony COSTESEQUE

    mardi 17 janvier 2012 15:50
  • C'est pour celà que j'utilise "get-content" qui se moque de l'extension .TXT ou .CSV et qui ne requière pas de ligne de titre.

    A+


    Thierry DEMAN. Exchange MVP. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (68 MCPs) http://base.faqexchange.info
    mardi 17 janvier 2012 16:09
    Modérateur
  • Bonsoir,

    à noter qu'il faut mettre les commandes indiquées dans un fichier avec l'extension .PS1, qu'il faut utiliser le Shell d'administration Exchange, bien entendu.

    Faire attention aux guillemets ou apostrophes... à mettre ou ne pas mettre selon les cas, celà change tout.

    A+


    Thierry DEMAN. Exchange MVP. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (68 MCPs) http://base.faqexchange.info
    mardi 17 janvier 2012 16:11
    Modérateur
  • Bonjour Thierry,

    le Get-Content effectivement ne sait pas interpréter le csv et prend donc les données en bloc, ce qui fait que la premiere ligne contiendra le nom de la colonne du csv.

    un fichier csv avec comme nom de colonne NomDeDomaines et 3 entrées :

    tata.fr

    toto.com

    bou.jp

    aura comme effet une fois le Get-Content c:\test\ok.csv injecté dans la variable $test (par exemple) de comporter 4 lignes.

    on ajouterait donc dans le filtre le nom de domaine NomDeDomaines (le nom de la colonne) :p

    Cordialement,

    Anthony COSTESEQUE

     

    mardi 17 janvier 2012 16:32