Complément d’informations “An error has occurred while collecting data for Internet Explorer Maintenance : The configuration file Seczones.inf is not in a valid format” :

mai 1st, 2012

Salut à tous

DESCRIPTION DU PROBLEME :
Les paramètres de sécurité d’Internet Explorer s’appliquent mal (perte de la liste des sites web de confiance, de la liste des sites web Intranet Local).
Ces paramètres sont gérés via le paramètre “Internet Explorer Maintenance” d’un ou plusieurs objets GPO.
Lorsqu’on lance la console GPMC sous un serveur Windows 2008 R2 et qu’on affiche les paramètres de la GPO (sélectionner la GPO avec GPMC et aller dans l’onglet “Settings“), le message d’erreur suivant apparaît :
An error has occurred while collecting data for Internet Explorer Maintenance.
The following errors were encountered:
The configuration file Seczones.inf is not in a valid format. Use Group Policy Object Editor to reconfigure the settings in this extension.

REPRODUCTION DU PROBLEME ET SOLUTION :
Sur un contrôleur de domaine Windows 2008 :
Désactiver la configuration renforcée d’Internet Explorer. Pour cela, aller dans le “Gestionnaire de Server“.  Sélectionner le nom du serveur dans cette console et aller dans l’onglet “Configure IE ESC“. Le désactiver pour les utilisateurs et les administrateurs.
Lancer la console GPMC. Créer un objet GPO (dans notre cas IEAKTEST) lié à aucun conteneur (il ne doit pas s’appliquer). Editer l’objet GPO.
Aller dans “User Configuration | Windows Settings | Internet Explorer Maintenance | Security | Security Zones and Content Ratings
Double cliquer sur “Security Zones and Content Ratings“.
Sélectionner “Import the current security zones and privacy settings“.
Un message apparaît indiquant que les paramètres choisis ne sont pas compatibles avec Internet Explorer Enhanced Security Configuration”. C’est normal car je vous ai fait désactiver ce mode.
La GPO a normalement pour but de configurer le navigateur de vos utilisateurs (mieux vaut éviter d’activer la configuration Internet Explorer renforcée…). Cliquer donc sur continuer.
Cliquer ensuite sur le bouton “Modify Settings“.
Aller par exemple dans “Trusted Sites“. Cliquer sur le bouton “Sites“.
Pour reproduire l’incident, il faut ajouter un site comme sites web de confiance mais dans un format non supporté par Internet Explorer.
Ajouter l’entrée suivante.
https://msreport.free.fr,http
Cliquer sur “Close“, puis deux fois sur OK.
Dans GPMC, sélectionner l’objet GPO “IEAKTEST”. Aller dans l’onglet “Settings” pour afficher les paramètres de la GPO. On a le message d’erreur suivant au niveau du paramètre “Internet Explorer Maintenance“.
An error has occurred while collecting data for Internet Explorer Maintenance.
The following errors were encountered:
The configuration file Seczones.inf is not in a valid format. Use Group Policy Object Editor to reconfigure the settings in this extension.

Pour corriger le problème, éditer la GPO et supprimer l’entrée incorrecte.
Il faut remplacer l’entrée https://msreport.free.fr,http par *.msreport.free.fr ou par deux entrées (http://msreport.free.fr et https://msreport.free.fr).

A+
Guillaume MATHIEU
Consultant pôle Architecture & Intégration PROSERVIA (groupe MANPOWER).
http://msreport.free.fr
La connaissance s’accroît quand on la partage.

Retour d’expérience migration Exchange 2003 vers 2007 - les bases de données

avril 16th, 2012

Salut à tous

Lors d’un projet de migration Exchange 2003 vers Exchange 2007, j’ai rencontré le problème suivant :

DESCRIPTION DU PROBLEME :
Au lancement de la console « Exchange Management Console » (console d’administration d’Exchange 2007), le message d’erreur ci-dessous apparaît :
Avertissement : L’objet VM-EXCH2003\SG1\DB1 a été endommagé et est dans un état incohérent. Les erreurs de validation suivantes se sont produites. Avertissement : Exchange ne peut pas stocker de fichiers de base de données (.edb) dans le répertoire racine. Choisissez un autre emplacement. Le chemin d’accès au fichier spécifié est « D:\DB1.edb ».
Il n’y a aucune erreur au lancement de la console « Gestionnaire Système Exchange (console d’administration du serveur Exchange 2003).

EXPLICATION DU PROBLEME ET SOLUTION :
Exchange 2007 interdit le stockage d’un fichier de base de données de messagerie à la racine d’un volume. La solution pour corriger ce problème est de créer un dossier à la racine du volume (D:\Bases par exemple) et de déplacer la base de données de messagerie vers cet emplacement.
L’article Microsoft suivant documente ce problème et explique comment déplacer une base de données :
http://support.microsoft.com/kb/821915
Ne l’appliquer pas !
En effet cet article propose comme solution de déplacer la base de données via l’interface graphique Exchange 2003. Cette opération nécessite d’arrêter la base de données de messagerie et effectue une copie des fichiers de la base de données (fichiers .EDB et .STM) de l’emplacement source vers l’emplacement cible. Cela corrige le problème mais si votre base de données est volumineuse, vous allez devoir attendre plusieurs heures avant de redémarrer la base de données et donc perturber les utilisateurs pendant plusieurs heures.

La meilleure solution est de déplacer la base de données via l’explorateur Windows et de modifier l’emplacement de la base de données directement dans la partition de configuration de l’annuaire Active Directory (configuration d’Exchange).

Pour cela :
- Vérifier que vous disposez d’une sauvegarde de vos bases de données Exchange 2003 et de l’annuaire Active Directory.
- Créer le dossier cible (D:\Bases par exemple).
- Arrêter la base de données de messagerie sur le serveur Exchange 2003.
- Déplacer la base de messagerie via l’explorateur Windows du dossier source vers le dossier cible. Attention, pour que le déplacement soit immédiat, il faut que l’emplacement source et l’emplacement cible soient sur le même volume disque (D:\DB1.edb comme source, D:\Bases\DB1.edb comme cible).
- Modifier le chemin de la base de données de messagerie au niveau de la partition de configuration de l’annuaire Active Directory. Cela peut être effectué  l’aide de la console ADSIEDIT.MSC.

Comment modifier le chemin de la base de données de messagerie au niveau de la partition de configuration de l’annuaire Active Directory ?
Dans l’exemple ci-dessous, la forêt Active Directory s’appelle MSREPORT.INTRA, l’organisation Exchange EXCHMSREPORT, le groupe administratif GRPADMIN1, le serveur Exchange 2003 EXCH2K3, le groupe de stockage GS1 et la base de données de messagerie problématique s’appelle DB1 :
- Installer les « Support Tools » (répertoire « support » à la racine du CD d’installation de Windows 2003).
- Lancer la console ADSIEDIT.MSC et se connecter à la partition de configuration.
- Développer CN=CONFIGURATION,DC=MSREPORT,DC=INTRA
- Développer CN=Services
- Développer CN=Microsoft Exchange
- Développer CN=EXCHMSREPORT
- Développer CN=Administrative Groups
- Développer CN=GRPADMIN1
- Développer CN=Servers
- Développer CN=EXCH2K3
- Développer CN=InformationStores
- Développer CN=GS1
- Aller dans les propriétés de l’objet CN=DB1.
- Modifier la valeur de l’attribut msExchEDBFile. Entrer le chemin d’accès vers le fichier  EDB (D:\Bases\DB1.EDB dans notre cas).
- Modifier la valeur de l’attribut msExchSLVFile. Entrer le chemin d’accès du fichier STM (D:\Bases\DB1.STM dans notre cas).
- Forcer la réplication Active Directory et attendre que les modifications soient propagées sur le contrôleur de domaine utilisé par Exchange.
- Redémarrer la base de données de messagerie.
Si au montage de la base de données, le message ci-dessous apparaît cliquer sur NON !
« Un ou plusieurs fichiers de base de données de cette banque d’informations sont manquants. Le montage de cette base de données va provoquer la création d’une base de données vide. N’effectuer pas cette action si vous n’avez pas l’intention de restaurer une sauvegarde antérieure »
Ce message indique que vous avez effectué une erreur de frappe dans le chemin d’accès du fichier EDB ou du fichier STM ou que le serveur Exchange utilise un contrôleur de domaine qui n’a pas encore répliqué le changement au niveau de la partition de configuration.

Pour plus d’informations, voir article Microsoft suivant :
http://support.microsoft.com/kb/822676/en-us

A+
Guillaume MATHIEU
Consultant pôle Architecture & Intégration de PROSERVIA (MANPOWER).
La connaissance s’accroît quand on la partage.
http://msreport.free.fr

Comment migrer de GROUPWISE 7 VERS EXCHANGE 2010 en partageant le même domaine de messagerie SMTP ?

mars 26th, 2012

Salut à tous

Comment migrer de GROUPWISE 7 VERS EXCHANGE 2010 en partageant le même domaine de messagerie SMTP ?
Dans cet exemple, les deux solutions de messagerie doivent pendant la phase de migration cogérer le domaine de messagerie MSREPORT.FR
- Quand Exchange ne connaît pas une adresse email MSREPORT.FR il renvoie le mail vers Exchange.
- Quand Exchange ne connaît pas une adresse email MSREPORT.FR il renvoie le mail vers GROUPWISE.
EXCHANGE supprime le mail en cas de boucle (cas d’une adresse email non existante dans les deux systèmes de messagerie).

1. PRESENTATION DE NOVELL GROUPWISE 7 :

Groupwise 7 est la solution de messagerie de NOVELL. Elle peut s’installer sur un système Windows, Linux (Open Entreprise Server) ou Netware 6.5.
Elle intègre de nombreuses fonctionnalités collaboratives comme le partage de boîtes aux lettres / calendrier / documents (via la fonction de bibliothèque).
Le système de messagerie GROUPWISE est divisé en domaines et en bureaux de poste.
En simplifiant à l’extrême, on peut dire :
- Qu’un domaine contient le carnet d’adresses et toute la configuration GROUPWISE.
- Qu’un bureau de poste est une entité administrative qui contient un ensemble de boîte aux lettres, listes de distributions et autre ressources GROUPWISE (bibliothèques…).
Un utilisateur sous GROUPWISE 7 dispose par défaut d’une adresse basée sur un identifiant GROUPWISE (Guillaume.Mathieu), un nom de bureau de poste (Meudon) et un nom du domaine (Msreport). Mon adresse GROUPWISE serait donc Guillaume.Mathieu.Meudon.Msreport.
Pour fonctionner, un serveur GROUPWISE doit disposer des rôles suivants :
- POA (Post Office Agent) : délivre les messages aux boîtes aux lettres des utilisateurs et permet de gérer les bases de données de messagerie.
- MTA (Message Transfert Agent) : route les messages entre les différents bureaux de poste d’un même domaine GROUPWISE et entre 2 domaines GROUPWISE.
GROUPWISE prend en charge le protocole SMTP via le rôle GWIA (GROUPWISE Internet Agent). Le protocole SMTP étant le protocole de messagerie standard sur Internet, ce rôle est indispensable de nos jours.
GROUPWISE dispose aussi d’un rôle permettant l’accès à la messagerie GROUPWISE via une interface web.
Je vous invite à lire la documentation d’administration de GROUPWSISE pour en savoir plus (1000 pages tout de même) :
http://www.novell.com/documentation/gw7/
http://www.novell.com/documentation/gw7/pdfdoc/gw7_admin/ gw7_admin.pdf

2 INSTALLATION DE NOVELL GROUPWISE 7 sous Windows 2003 :

Elle est relativement simple et plutôt bien documenter. Je vous invite à lire le guide d’installation :
http://www.novell.com/documentation/gw7/
http://www.novell.com/documentation/gw7/pdfdoc/gw7_install/ gw7_install.pdf
Il est à noter que GROUPWISE 7 est incompatible avec la fonctionnalité DEP (Data Prevention Execution). Cette fonctionnalité permet de bloquer l’exécution de certains virus.
Si vous souhaitez installer GROUPWISE il sera nécessaire de créer une exception DEP pour GROUPWISE ou de désactiver DEP. Voir article Novell
http://www.novell.com/coolsolutions/tip/17066.html
Il est possible de télécharger GROUPWISE 7 à cet emplacement si vous disposez d’un compte Novell :
http://download.novell.com/protected/Summary.jsp?buildid=LXToZCKodsw~

3. MIGRER DE GROUPWISE VERS EXCHANGE 2010 :

C’est possible sans outil de migration avec quelques contraintes !

3.1 POUR PERMETTRE A GROUPWISE ET EXCHANGE DE PARTAGER LE MEME DOMAINE DE MESSAGERIE SMTP :

On va devoir utiliser un domaine temporaire au niveau du serveur Exchange qui ne servira que pour le transfert des emails de GROUPWISE vers EXCHANGE 2010.

Sur le serveur EXCHANGE 2010 :
Configurer un domaine accepté faisant autorité appelé MSREPORT.EU (ou autres) au niveau du serveur Exchange 2010.
Configurer un domaine accepté de relais interne appelé MSREPORT.FR. Ce domaine doit être configuré comme le domaine par défaut dans votre organisation Exchange au niveau des stratégies d’adresse de messagerie.
http://technet.microsoft.com/fr-fr/library/bb124423.aspx
http://technet.microsoft.com/fr-fr/library/bb124911.aspx
http://technet.microsoft.com/fr-fr/library/bb125137.aspx
Créer un connecteur d’envoi pour le domaine de messagerie MSREPORT.FR avec le serveur GROUPWISE en tant qu’hôte actif. Tous les emails avec des adresses non résolus seront transférés
http://technet.microsoft.com/fr-fr/library/aa997285.aspx
Le domaine MSREPORT.EU doit être enregistré sur Internet (entrées MX au niveau des serveurs DNS). Si cela n’est pas possible, il sera nécessaire de modifier le fichier route.cfg (voir page 732 du guide d’administration Novell GROUPWISE).

Sur le serveur GROUPWISE :
On va utiliser la fonctionnalité de FLAT FORWARDING (réacheminement à plat).
Cette solution est assez élégante car elle va nous permettre de recevoir les emails sur le serveur GROUPWISE et sur le serveur EXCHANGE en même temps. On peut donc garder active la boîte aux lettres GROUPWISE jusqu’au moment où tous les utilisateurs sont migrés sur EXCHANGE 2010.
De base quand on recevra un email sur guillaume.mathieu92@msreport.fr, le serveur GROUPWISE réceptionnera l’email et le renverra automatiquement vers guillaume.mathieu92@msreport.eu. Le serveur Exchange 2010 réceptionnera alors l’email sans que la liste des expéditeurs soit changée.
Un utilisateur Exchange répondra à un email transféré par GROUPWISE avec son adresse email MSREPORT.FR car c’est son adresse de messagerie principale dans Exchange (adresse de réponse par défaut).

Pour configurer le FLAT FORWARDING (réacheminement à plat) :
Se connecter à ConsoleOne avec extension Groupwise et aller dans les propriétés du serveur GWIA.
Aller dans l’onglet « SMTP Mime | Message Formating » et cocher la case « Enable flat forwarding ».
Se connecter à la boîte de chaque utilisateur et créer une règle de transfert de messagerie.
Configurer la redirection. Ne rien mettre dans le corps du message.
Voir procédure Novell :
http://www.novell.com/support/viewContent.do?externalId=7002601&sliceId=1

Remarque :
Il faut que tous les entités Groupwise disposent d’une adresse SMTP. Dans le cas contraire on peut avoir un problème en cas de réponse dans OWA (envoie du mail bloqué car adresse du contact incorrecte car non au format GROUPWISE natif et non au format SMTP).

2 POUR LA MIGRATION DES BOITES AUX LETTRES GROUPWISE VERS EXCHANGE :

Deux possibilités :

Manuellement:
- Configurer Outlook en mode IMAP/POP pour récupérer les mails dans PST. C’est le serveur GWIA qui gère les accès POP3 / IMAP dans GROUPWISE.
- Exporter contacts au format .nab. Retravailler le fichier et importer ensuite au format CSV. Voir
http://support.microsoft.com/kb/262153/fr
- Exporter le calendrier dans Groupwise au format ICS et utiliser l’assistant d’importation d’Outlook.
http://technet.microsoft.com/en-us/library/bb124665(v=exchg.65).aspx
- Reconfigurer la boîte aux lettres pour se connecter au serveur Exchange 2003 / 2010.

Via un outil :
Acheter l’outil Kernel GroupWise to Exchange qui permet de convertir / migrer une boîte aux lettres GroupWise en fichiers PST en récupérant les mails, les contacts le calendrier et les documents des bibliothèques.
http://www.nucleustechnologies.com/buy-groupwise-to-exchange.php
Vous pouvez aussi utiliser l’outil QUEST GROUPWISE MIGRATOR for Exchange

A+
Guillaume MATHIEU
Consultant pôle Architecture & Intégration PROSERVIA (groupe MANPOWER)
http://msreport.free.fr
La connaissance s’accroît quand on la partage

Problème de mise à jour WSUS -> complément d’informations sur l’erreur Windows Server Update Services ID 10032 et ID 364

mars 17th, 2012

Bonjour à tous

DESCRIPTION DU PROBLEME :
Seuls les mises à jour d’avant février 2012 sont proposées au téléchargement au niveau des clients WSUS (stations de travail et serveurs).
Le fait d’exécuter la commande wuauclt /detectnow (forcer détection des correctifs) ou de redémarrer le service « Automatic Update » ne corrige pas le problème sur les clients WSUS.
Le problème se pose sur tous les clients WSUS.

ANALYSE DU PROBLEME :
Le problème vient du serveur WSUS.
La synchronisation du serveur WSUS avec le serveur Windows Update se fait correctement mais le serveur WSUS n’arrive pas à télécharger les mises à jour de février et mars 2012. Les erreurs suivantes apparaissent dans le journal « Application » du serveur WSUS.
La commande “wsusutil checkhealth” renvoie les erreurs suivantes dans le jounal application.

Event Type: Error
Event Source: Windows Server Update Services
Event Category: Core
Event ID: 10032
Date: 14/03/2012
Time: 17:13:54
User: N/A
Computer: MSRPTWSUS
Description:
The server is failing to download some updates.

Event Type: Error
Event Source: Windows Server Update Services
Event Category: Synchronization
Event ID: 364
Date: 14/03/2012
Time: 17:22:50
User:  N/A
Computer: MSRPTWSUS
Description:
Content file download failed. Reason: The operation being requested was not performed because the user has not logged on to the network. The specified service does not exist. (Exception from HRESULT: 0×800704DD) Source File: /msdownload/update/software/secu/2012/01/ndp20sp2-kb2633880-x86_0083ffdd22c91bcdf17c7cb3eb013885c8a00caa.exe Destination File: E:\WSUS\WsusContent\AA\0083FFDD22C91BCDF17C7CB3EB01 3885C8A00CAA.exe.

On peut voir que le serveur WSUS n’arrive pas à télécharger les mises à jour de février et mars 2012 en créant un filtre dans la console WSUS sur les mises à jour de moins de 2 mois et en affichant la colonne « File Status ». Si une croix rouge apparaît, cela indique que les fichiers associés à la mise à jour n’ont pas pu être téléchargés.

SOLUTION:
Sauvegarder le serveur WSUS pour pouvoir faire un retour arrière.
Démarrer la console WSUS et lancer le « Cleanup Wizard ». Cocher toutes les options.
Une fois l’opération terminée, le serveur WSUS indique le nombre de mises à jour supprimées (souvent des mises à jour qui ont été remplacées), le nombre de stations de travail supprimées (celles qui ne se sont pas connectées au serveur Wsus depuis longtemps, l’espace disque libéré…

Essayer ensuite de forcer le téléchargement manuel des correctifs.
Créer un filtre dans la console WSUS sur les mises à jour de moins de 2 mois et en affichant la colonne « File Status ». Si une croix rouge apparaît, cela indique que les fichiers associés au correctif n’ont pas pu être téléchargé.
Faire un clic droit  sur un correctif dont le téléchargement des fichiers a échoué et cliquer sur « Retry Download ».

Si cela échoue, la seule solution est de forcer une synchronisation complète entre la base de données WSUS et le repository WSUS (les répertoires avec les sources des mises à jour).
Pour effectuer cela, exécuter la commande suivante :
cd “c:\Program Files\Update Services\Tools”
wsusutil reset
fermer la console Update Services.
Attendre environ 10 minutes. Si vous gardez la console ouverte, vous allez perdre la main.
La commande va analyser les fichiers corrompus, reconstruire le repository et télécharger que les fichiers manquants. On peuit voir l’état d’avancement en cliquant sur le nom du serveur (il ne télécharge pas tous les correctifs contrairement à ce que laisse penser l’interface graphique de WSUS…).
En cliquant sur le nom du serveur WSUS dans la console, on peut voir l’état d’avancement de cette commande (section Download Status). Quand on est à 0, tous les correctifs nécessaires ont été téléchargés.
Dans le cas contraire, les correctifs sont en cours de téléchargement ou vous avez des problèmes avec le téléchargement des fichiers des mises à jour.

A+
Guillaume MATHIEU
Consultant pôle Architecture & Intégration PROSERVIA
La connaissance s’accroît quand on la partage.
http://msreport.free.fr

Outlook Web Access (OWA) : impossible de supprimer ou déplacer des emails -> erreur MSExchange OWA EventId 108

mars 11th, 2012

Salut à tous

DESCRIPTION DU PROBLEME:
Impossible de déplacer ou supprimer un mail depuis Outlook Web Access avec Exchange 2010.
Le message d’erreur suivante apparaît :
L’action que vous avez tentée n’a pas pu être réalisée, car il existe un problème de configuration sur le serveur. Si le problème persiste, contacter le support technique. Le rapport d’erreur complet est répertorié ci-dessous…“.

CONFIGURATION DU SERVEUR :
- Exchange 2010 SP1 FR rollup 5.
- IPV6 est complètement désactivé sur ce serveur (DisabledComponents = FFFFFFFF). Voir procédure :
http://support.microsoft.com/kb/929852/en-us
- Le site web IIS du serveur Exchange est forcé sur l’IP 192.168.1.25 (configuration personnalisée).

ANALYSE DU PROBLEME :
A chaque tentative du suppression ou de déplacement d’un email dans Outlook Web Access, l’erreur suivante apparaît dans le journal “Application”.
Nom du journal : Application
Source : MSExchange OWA
Date : 09/03/2012 11 :35 :10
ID de l’événement : 108
Catégorie de la tâche : Configuration
Niveau : Erreur
Mots clés : Classique
Utilisateur : N/A
Ordinateur : MSREPORTEXCH.msreport.local
Description :
Outlook Web App n’a pas pu connecter les services Web Exchange à cause d’une erreur de configuration. Code de réponse = « null, webException.Status = SendFailure ».

SOLUTION DU PROBLEME :
Ce problème peut se produire pour une de ces deux raisons :
- Le site web IIS n’est pas configuré pour répondre depuis 127.0.0.1 sur les ports 80 et 443. Hors c’est un prérequis pour le bon fonctionnement d’Outlook Web APP. Pour plus d’informations, voir :
http://www.exchangedude.net/index.php/2012/02/owa-2010-cannot-delete-messages/
- On peut aussi avoir ce problème quand on a une interface IPV6 en écoute sur le serveur IIS. Le message d’erreur rencontré est alors un peu différent. Pour plus d’informations :
http://support.microsoft.com/kb/2249852

Dans mon cas j’avais les deux problèmes à la fois.
J’ai donc forcé le site web IIS pour écouter sur l’IP du serveur Exchange (10.4.1.5 dans mon cas) et 127.0.0.1 pour les ports 80 et 443. Cela a corrigé mon problème.

A+
Guillaume MATHIEU
PROSERVIA
La connaissance s’accroît quand on la partage.
http://msreport.free.fr

COMMENT CONFIGURER SON CLIENT OUTLOOK AVEC DES BOÎTES AUX LETTRES DE GRANDE TAILLE ?

février 13th, 2012

Pour commencer, je vous invite à lire les deux articles suivants.
http://support.microsoft.com/kb/940226/en-us
http://support.microsoft.com/kb/932086/fr

1 PROBLEME DE LENTEUR (FIGE PENDANT QUELQUES SECONDES) OU ERREUR “LE FICHIER DE DONNEES N’A PAS ETE FERME CORRECTEMENT LA DERNIERE FOIS:
On rencontre généralement ce problème quand on configure Outlook en mode cache avec une boîte aux lettres de grande taille (au-dessus de 5 Go pour Microsoft).
Pour corriger ce problème, désactiver l’indexation du fichier OST.
Sous Windows Seven, il faut aller dans le Panneau de configuration | Options d’indexation. Décocher l’élément Outlook.
Sous Windows XP Pro, il faut créer une mmc vierge (mmc.exe) et ajouter le composant logiciel enfichable «Indexation Service». Vous pouvez aussi arrêter le service d’indexation.
Pour plus d’informations :
http://www.commentcamarche.net/forum/affich-3118749-verification-de-donnees-dans-outlook-2007

2 MODE CACHE VS MODE EN LIGNE :
En gros, en dessous de 10 Go, je préconise d’activer le mode cache.
Vous obtiendrez un fichier OST dont la taille pourra faire environ 15 Go. Penser à libérer de l’espace disque sur votre lecteur C ou à enregistrer le fichier OST à un autre emplacement.
Désactiver l’indexation du fichier OST (voir paragraphe précédent).

Entre 10 Go et 20 Go, c’est selon les cas de figure.
Si vous utilisez le mode cache, penser à désactiver l’indexation du fichier OST (obligatoire).
Installer le service pack 2 d’Outlook 2007 qui intègre un correctif pour stabiliser le fichier OST.
http://support.microsoft.com/kb/932086/fr

Au-dessus de 20 Go, n’utiliser pas le mode cache.
Cela va générer une forte charge sur le serveur Exchange par contre. Chaque accès génère des I/O sur votre serveur Exchange.
Penser à bien dimensionner le serveur au niveau I/O disque dans ce cas.

3 DOIT ON ACTIVER LA MISE EN CACHE DES DOSSIERS PUBLICS :
Cela peut être fait en cochant l’option de mise en cache des favoris des dossiers publics.
Ne faites surtout pas cela si vous disposez d’une base de dossiers publics qui contient plus de 1000 éléments ou 1 Go de données. Connaissant les utilisateurs, ils vont tout mettre en favoris. Je vous invite à lire cet article.
http://support.microsoft.com/kb/2494570

4. MON SERVEUR EXCHANGE EST LENT :
Essayer de configurer les clients Outlook en mode cache pour les boîtes aux lettres de faible taille. Cela va diminuer la charge au niveau I/O disque.
Lancer l’Exchange Best Practice Analyser et vérifier que les paramètres mémoires sont optimaux (important si vous disposez de boîtes aux lettres de grande taille).
Déplacer les bases de données Exchange sur des disques plus rapides (RAID 10).

5 MON CLIENT OUTLOOK SOUS WINDOWS VISTA / SEVEN EST TOUJOURS LENT :
Penser à désactiver toutes les fonctionnalités évoluées de prise en charge réseau (RSS, TCPA…). Si elles sont mal configurées, cela peut générer de nombreux problèmes.
http://www.speedguide.net/articles/windows-7-vista-2008-tweaks-2574

DIVERS :
Pour connaître la version Outlook installé à partir du numéro de version, voir article suivant:
http://support.microsoft.com/kb/928116

A+
Guillaume MATHIEU
Consultant pôle Architecture & Intégration PROSERVIA
La connaissance s’accroît quand on la partage.
http://msreport.free.fr

Retour d’expérience Vmware ESX : copier / coller et pilote Vmware SVGA 3D :

janvier 31st, 2012

Salut à tous

Deux retours d’expérience avec Vmware ESX. J’espère qu’ils vous serviront…

1. Comment activer le copier / coller entre la machine avec le vSphere client et la console d’une machine virtuelle :
Lorsque l’on administre une machine virtuelle Vmware ESX via le vSphere Client, le copier / coller ne fonctionne pas entre la machine virtuelle et la machine depuis laquelle on se connecte avec le Vsphere client. Cette fonction peut être activée en ajoutant dans le fichier VMX de la machine virtuelle les paramètres suivants :
isolation.tools.copy.disable=”FALSE”
isolation.tools.paste.disable=”FALSE”
Pour rappel, il est possible d’ajouter des paramètres dans le fichier VMX via l’interface graphique. Pour cela :
- Eteindre la machine virtuelle.
- Aller dans le menu “VM” puis cliquer sur “Settings“.
- Sélectionner l’onglet Options puis cliquer sur “Advanced | General”.
- Dans la partie droite de la fenêtre “Virtual machine Properties“, cliquer sur le bouton “Configuration Parameters“.
- Cliquer sur “Add row” pour ajouter un paramètre dans le fichier VMX.
Pour plus d’informations:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1026437

2. Penser à changer la carte graphique sur une machine virtuelle VMware ESX  sous Windows 2008 R2 : utiliser le pilote “Vmware SVGA 3D” :
De base, les Vmware Tools n’installe pas le meilleur pilote pour la carte graphique sur Windows 2008 / 2008 R2. Cela entraîne des lenteurs dans le déplacement de la souris et dans l’interface graphique.
En effet la carte graphique détectée dans le gestionnaire de périphérique est du modèle “Carte graphique VGA“. Pour corriger cela :
- Faire une installation complète des Vmware Tools.
- Ouvrir le gestionnaire de périphérique et spécifier l’empacement suivant pour le pilote “C:\Program Files\Common Files\VMware\Drivers\wddm_video“.
- Le pilote détecté doit être “Vmware SVGA 3D“.
Attention si le pilote est une “VMware SVGA-II“, vous recontrerez très probablement des problèmes de stabilité. Metter à jour vos Vmware Tools. Désinstaller le précédent pilote. La carte graphique détecté doit être une “Vmware SVGA 3D“. Au pire réinstaller le driver VGA de base.
Pour plus d’informations sur le problème de stabilité, voir :
http://www.vmadmin.co.uk/vmware/35-esxserver/203-vmtoolswinsvr08r2dispdrv
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1011709

Pour plus d’informations sur le pilote Vmware SVGA 3D :
http://www.boche.net/blog/index.php/2010/03/28/windows-2008-r2-and-windows-7-on-vsphere/
http://www.vmadmin.co.uk/vmware/35-esxserver/203-vmtoolswinsvr08r2dispdrv
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1011709

a+

Guillaume MATHIEU
PROSERVIA
La connaissance s’accroît quand on la partage
http://msreport.free.fr

Pourquoi ne pas installer une autorité de certification sur un contrôleur de domaine ?

janvier 14th, 2012

Bonjour

Lors d’un projet de migration des contrôleurs de domaine de Windows 2003 vers Windows 2008 R2, j’ai été confronté à la problématique de la migration du serveur d’autorité de certification d’entreprise.  Ce dernier était installé sur un contrôleur de domaine. Hors je devais rétrograder ce serveur en serveur membre pour finaliser la migration des contrôleurs de domaine vers Windows 2008 R2 et configurer la forêt en mode natif 2008 R2.

PROBLEME :
Lorsque j’ai exécuté l’assistant DCPROMO sur le contrôleur de domaine / serveur d’autorité de certification, j’ai obtenu le message d’erreur suivant :
« Avant de pouvoir installer ou désinstaller Active Directory, vous devez supprimer le composant Autorité de certification ».
Il s’agit d’une contrainte Microsoft et non d’un bug.

SOLUTION :
La solution consiste à :
- Sauvegarder l’autorité de certification depuis la console « Autorité de certification ».
- Sauvegarder les certificats sur votre serveur (faire une exportation au format PFX). Pour cela, lancer une MMC vierge (mmc.exe) et ajouter le composant logiciel enfichable certificat. Faire l’ajout pour l’ordinateur et pour l’utilisation. Faire une exportation de vos certificats en exportant la clé privée (format PFX).
- Sauvegarder la configuration du service CERTSVC avec REGEDT32 en sauvegardant la clé :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ CertSvc\Configuration\CA_NAME.
- Vérifier l’emplacement du service autorité de certification !
- Taper “certutil –shutdown” pour arrêter le service d’autorité de certification.
- Taper “certutil –key” pour avoir des informations sur le certificat d’autorité de certification.
- Taper “certutil –delkey CA_NAME” pour supprimer le certificat de l’autorité de certification.
- Supprimer le composant « Autorité de certification » du serveur. Voir : http://support.microsoft.com/kb/298138/fr
- Lancer DCPROMO sur le serveur pour lui retirer le rôle de contrôleur de domaine.
- Installer de nouveau le composant autorité de certification sur le serveur en réutilisant le certificat de l’autorité de certification sauvegardée. Utiliser le même chemin.
- Restaurer la sauvegarde de l’autorité de certification.
- Tester le redémarrage de la CA.
- Si cela fonctionne, faire une sauvegarde de :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\ Configuration\CA_NAME.
- Supprimer cette clé et toutes les sous clés.
- Restaurer l’ancienne configuration de votre CA en double cliquant sur le fichier .REG obtenu avant de supprimer la CA d’origine.

Pour plus d’informations :
http://support.microsoft.com/kb/555012/en-us
http://www.windowsitpro.com/article/tips/moving-a-certificate-authority-ca-to-another-dc-
http://support.microsoft.com/kb/298138/en-us

Dans certains cas, il n’est pas possible de démarrer le service autorité de certification. Le message d’erreur « Clé incorrecte. Ox80090003 (-2146893821) ». On a un message d’erreur Source CertSvc EVENTID 100 dans le journal d’événement. On a ce problème quand le composant « Autorité de certification » a été réinstallé vers un emplacement différent. La solution est alors de supprimer / réinstaller l’autorité de certification. Si vous ne retrouvez pas l’ancien emplacement de la CA, ne réimporter pas les anciens paramètres du service d’autorité de certification. Pour plus d’informations :
http://blogs.msdn.com/b/danpark/archive/2005/07/19/440524.aspx

Remarque :
Pour rappel, il est n’est pas possible de renommer un serveur avec le composant « Autorité de certification », la solution proposée dans les articles ci-dessus est d’ajouter un nom de service supplémentaire (SPN) au niveau du compte ordinateur du serveur cible. Dans mon cas je voulais conserver l’autorité de certification sur ce serveur. Pas besoin d’appliquer cette technique.

A+
Guillaume MATHIEU
PROSERVIA
La connaissance s’accroît quand on la partage.
http://msreport.free.fr

Complément d’informations sur l’erreur “Service MsExchangeMailSubmission” failed to reach status “Running” on this server

janvier 9th, 2012

Bonjour

DESCRIPTION DU PROBLEME :
Lors de l’installation du SP3 d’Exchange 2007 sur mes serveurs de tests, j’ai rencontré l’erreur suivante :
Cannot start service MSExchangeMailSubmission on computer “.”.
The service did not respond to the start or control request in a time fashion.
L’installation d’Exchange 2007 se déroulait correctement jusqu’à la phase de finalisation où les services Exchange sont redémarrés.
Effectivement, les services MsExchangeMailSubmission, MsExchangeTransport et MsExchangeTransportLog étaient arrêtaient après l’installation. Le démarrage manuel de ces 3 services étaient possible.

SOLUTION :
Ce problème se pose si le serveur Exchange 2007 n’a pas de passerelle par défaut.
Pour plus d’informations, voir :
http://support.microsoft.com/kb/944752/en-us

A+
Guillaume MATHIEU
Consultant PROSERVIA
La connaissance s’accroît quand on la partage.

RETOURS D’EXPERIENCE ADMT 3.2 - INSTALLATION ET ATTRIBUTS NON MIGRES PAR DEFAUT

janvier 8th, 2012

Bonjour

Nous allons voir dans cet article trois retours d’expérience sur ADMT, l’outil Microsoft pour migrer les ressources (comptes utilisateurs, groupes, comptes ordinateurs, configuration des machines) entre deux forêts Active Directory ou entre domaines d’une même forêt.

RETOUR D’EXPERIENCE 1 : INSTALLATION D’ADMT 3.2 - PENSER A INSTALLER SQL EXPRESS ADVANCED :
Depuis la version 3.2, le programme d’installation d’ADMT n’inclue plus SQL server Express.
Cette version ne s’installe aussi que sur Windows 2008 R2.
Il est donc nécessaire d’installer manuellement SQL Server Express ou une version complète et payante de SQL Server. Je vous préconise d’installer SQL Server 2008 Express Advanced téléchargeable à cette adresse :
http://www.microsoft.com/downloads/fr-fr/details.aspx?FamilyID=B5D1B8C3-FDA5-4508-B0D0-1311D670E336
En effet seule cette version inclue l’outil de management “SQL Server Express Management Studio“. Ce dernier permet d’effectuer des tâches comme la définition des accès à la base de données ou sa sauvegarde.

RETOUR D’EXPERIENCE 2 : INSTALLATION D’ADMT 3.2 SUR UN CONTROLEUR DE DOMAINE :
On rencontre de nombreux problèmes si on installe ADMT 3.2 sur un contrôleur de domaine.
L’installation peut échouer ou le message d’erreur suivant apparaît quand on lance ADMT :
Unable to connect to ’server\instance’, please ensure the SQL Server hosting this instance is running and connections can be made to this instance. [DBNETLIB][ConnectionOpen (Connect().]SQL Server does not exist or access denied.”
Je vous invite pour cela à lire l’article de mon collègue Farid.
http://polearchitecture.wordpress.com/2010/09/10/installation-dadmt-3-2-sur-un-controleur-de-domaine-2008-r2-x64/
La procédure suivante doit être appliquée (dans l’exemple, le nom du serveur ADMT est “DC1″ et le nom de l’instance SQL Server Express est “SQLEXPRESS”) :
Ouvrir une invite de commande et taper les commandes suivantes :
NET LOCALGROUP SQLServerMSSQLUser$DC1$SQLEXPRESS /ADD
SC SHOWSID MSSQL$SQLEXPRESS
La commande renvoie le SID suivant : S-1-5-80-3880006512-4290199581- 1648723128-3569869737-3631323133
Donner les permissions aux répertoires ADMT aux comptes de services en tapant cette commande :
ICACLS %systemroot%\ADMT\Data /grant *S-1-5-80-3880006512-4290199581- 1648723128-3569869737-3631323133:f
Pour plus d’informations :
http://blogs.technet.com/b/askds/archive/2010/07/09/admt-3-2-common-installation-issues.aspx

RETOUR D’EXPERIENCE 3 : CONFIGURER ADMT 3.2 POUR MIGRER TOUS LES ATTRIBUTS D’UN COMPTE UTILISATEUR :
Pour rappel, ADMT 3.2 permet d’exclure certains attributs lors de la migration d’un compte utilisateur.
Cependant, par défaut ADMT ne migrera jamais les attributs Exchange (entre autres) comme l’attribut msExchangeMailboxGUID (identifiant de la boîte aux lettres Exchange associée au compte utilisateur Active Directory dans le domaine source).
Cette valeur ne correspondrait à rien dans le domaine cible (même si on a Exchange).
C’est pour cette raison qu’ADMT ne migre pas par défaut cet attribut.
Le cas de l’attribut Mail est plus discutable (champ adresse email dans l’onglet général au niveau des propriétés d’un compte utilisateur). Cet attribut n’est pas migré par défaut ce qui peut être bloquant.
Pour modifier cette configuration, appliquer la procédure suivante sur le serveur ADMT :
Ouvrir un invite de commande et taper les commandes suivantes :
Cd c:\windows\sysWOW64
Cscript c:\admtattribute.vbs
Le fichier c:\admtattribute.vbs doit contenir le code VBS suivant :
Set objMig = CreateObject(”ADMT.Migration”)
objMig.SystemPropertiesToExclude = “homeMDB, homeMTA, showInAddressBook, msExchHomeServerName, msExchRecipientTypeDetails, msexchrecipientdisplaytype msExchMailboxSecurityDescriptor, msExchMDBRulesQuota, msExchPoliciesIncluded, msExchUserAccountControl, msExchVersion, mdbusedefaults, msExchMailboxGuid”

Si vous voulez qu’ADMT migre tous les attributs, le fichier c:\admtattribute.vbs doit contenir le code VBS suivant :
Set objMig = CreateObject(”ADMT.Migration”)
objMig.SystemPropertiesToExclude = “”

Pour plus d’informations, voir :
http://technet.microsoft.com/en-us/library/cc974331(WS.10).aspx
http://msexchangetips.blogspot.com/2011/01/cannot-create-mail-enabled-user-because.html

REMARQUE :
Je rappelle que Microsoft fournit un guide pour la configuration et l’utilisation d’ADMT 3.2 :
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=19188

A+
Guillaume MATHIEU
Consultant PROSERVIA
La connaissance s’accroît quand on la partage

Quelle stratégie pour sécuriser les mots de passe des comptes utilisateurs Active Directory ?

novembre 6th, 2011

Bonjour à tous

La sécurité des mots de passe des comptes utilisateurs est une question de sécurité majeure.
Des outils de recherche brut force comme John The Ripper perttent de retyrouver facilement un mot de passe simple (moins de 4 caractères et basé sur des mots du dictionnaire). Pour plus d’informations, voir http://syskb.com/cracker-un-mot-de-passe-active-directory-avec-fgdump-et-john/
Un compte utilisateur standard dispose :
- D’un accès en lecture à 90% des propriétés des objets de tous les domaines de la forêt Active Directory.
- D’un accès en lecture à la partition de configuration Active Directory.
- D’un accès à tous les dossiers sécurisés à l’aide des groupes “Utilisateurs authentifiés” et “Utilisateurs du domaine”. Par défaut sous Windows 2003, le groupe “Utilisateurs authentifiés” peut lire les fichiers et écrire de nouveau fichiers sur tous les disques de données.
Avec un compte standard un pirate peut :
- Elaborer une attaque plus ciblée car il dispose de la configuration de l’annuaire et de la configuration réseau (via l’analyse de la configuration des sites Active Directory)
- Exécuter de nombreuses attaques basées sur des failles applicatives. La majorité des attaques nécessitent un accès en lecture seul au service attaqué (SMB, IIS). Le portail METASPLOIT intègre une attaque par exemple qui fait planté un serveur Windows 2008 R2 (écran bleu) via un accès en lecture seul à un partage. Pour plus d’informations, voir :
http://www.metasploit.com/modules/exploit/windows/smb/smb_relay
Nous venons donc de voir l’importance de sécuriser les mots de passe des comptes utilisateurs. Nous allons maintenant voir comment faire.

1. DIFFERENCE ENTRE CHANGEMENT DE MOT DE PASSE ET REINITIALISATION DU MOT DE PASSE :
Le premier point à comprendre est la différence entre le changement d’un mot de passe et sa réinitialisation.
La procédure de changement de mot de passe nécessite que l’utilisateur saisisse l’ancien et le nouveau mot de passe.  La fenêtre de changement de mot de passe apparaît quand le mot de passe de l’utilisateur a expiré une fois que l’utilisateur s’est authentifié (après la mire d’ouverture de session) ou quand l’utilisateur fait CTRL ALT SUPPR et clique sur « Modifier le mot de passe ».
La réinitialisation d’un mot de passe peut se faire depuis la console Utilisateurs et Ordinateurs Active Directory ou Centre d’administration Active Directory (compte Active Directory) ou via la console Gestion de l’ordinateur (compte de la BASE SAM locale). Il n’est pas nécessaire de connaître l’ancien mot de passe. Cette action est effectuée par les équipes informatiques et non par les utilisateurs.
Attention, dans certains cas,  la réinitialisation de mot de passe d’un compte de la base SAM fait perdre l’accès aux données chiffrées avec EFS lorsque la machine est en groupe de travail. Pour plus d’informations voir : http://support.microsoft.com/kb/290260/en-us

2. LES PARAMETRES DE STRATEGIE DE MOT DE PASSE :
Active Directory permet de définir les paramètres suivant pour le mot de passe des comptes utilisateurs du domaine :
- Historique des mots de passe : ce paramètre permet d’empêcher les utilisateurs de réutiliser le même mot de passe lorsque le mot de passe expire ou lorsque l’utilisateur change son mot de passe.
- Durée de vie minimale du mot de passe : ce paramètre permet d’empêcher l’utilisateur de changer son mot de passe après changement pendant un certain nombre de jours. Ce paramètre permet surtout d’empêcher les utilisateurs de changer plusieurs fois leurs mots de passe successivement pour contourner l’historique de mot de passe. Sans ce paramètre activé, avec un historique de mots de passe définis sur 5 mots de passe, il suffit un utilisateur de changer 6 fois de suite son mot de passe pour pouvoir continuer à utiliser son mot de passe actuel.
- Durée de vie maximale du mot de passe : le mot de passe expirera au bout d’un certain nombre de jours (par défaut 42). L’utilisateur sera invité à l’ouverture de session à changer son mot de passe.
- Longueur minimum du mot de passe : ce paramètre définit le nombre de caractères minimums du mot de passe.
- Les mots de passe doivent respecter les exigences de complexité : ce paramètre permet d’obliger les utilisateurs à définir un mot de passe qui contient 3 des 4 familles de caractères. Les 4 familles de caractères sont lettres minuscules (a à z), lettres majuscules (A à Z), les chiffres (0 à 9) et les caractères spéciaux (@é#è?…). Nous verrons que les options de complexité des mots de passe Active Directory sont trop faibles pour vraiment sécuriser les mots de passe. Exemple de mot de passe complexe pas vraiment sécurisé : P@ssword

3. LES NOUVEAUTES DU MODE NATIF 2008 :
Par défaut les stratégies de mots de passe se définissent au niveau de la stratégie « Default Domain Policy » uniquement. Si vous définissez une stratégie de mot de passe au niveau d’une OU, cette dernière s’applique en fait aux comptes de la base SAM locale des machines dont le compte ordinateur est dans cette OU.
Pour plus d’informations, voir article : http://msreport.free.fr/?p=156
Si votre domaine est en mode natif 2008 et ultérieur, il est possible d’activer les stratégies de mot de passe fines (Granular Password Policy).
Le schéma Active Directory inclue deux nouvelles classes d’objets qui sont activées en mode natif 2008 :
- Password Settings Container
- Password Settings.
Les stratégies de mot de passe fines sont donc un mécanisme parallèle aux stratégies de mot de passe classiques (qui ne peuvent toujours être définies qu’un niveau de la stratégie de groupe Default Domain Policy).
Ce mécanisme permet d’affecter une stratégie de mot de passe spécifique à un compte utilisateur ou un groupe. Les paramètres de stratégies (historique, durée de vie minimum, maximum, complexité de mot de passe) sont identiques avec les stratégies de mots de passe fines.
Pour créer les stratégies de mots de passe fine, il faut utiliser ADSIEDIT et appliquer la procédure suivante : http://www.windowsecurity.com/articles/Configuring-Granular-Password-Settings-Windows-Server-2008-Part-1.html
Il existe heureusement des outils gratuits pour faire cela en interface graphique comme SPECOPS PASSWORD POLICY BASICS. Pour plus d’information, voir http://www.specopssoft.com/
Pour plus d’informations sur les stratégies de mots de passe fine (Granular Password Policy), voir les articles suivants :
http://technet.microsoft.com/en-us/library/cc770394(WS.10).aspx
http://technet.microsoft.com/en-us/library/cc770842(WS.10).aspx
http://www.windowsecurity.com/articles/Configuring-Granular-Password-Settings-Windows-Server-2008-Part-1.html

4. COMMENT AMELIORER LE FILTRE DE COMPLEXITE DES STRATEGIES DE MOTS DE PASSE :
Quand nous l’avons vu le filtre de complexité de la stratégie de mot de passe est assez basique.
Voir l’article http://technet.microsoft.com/fr-fr/library/cc786468(WS.10).aspx
En effet, Active Directory considère que les mots de passe suivant sont complexes : Password01 ou Proservia01
Il est possible de personnaliser le filtre de stratégie de mot de passe en réécrivant la DLL passfilt.dll.
Les liens ci dessous contiennent des exemples de fichier passfit.dll modifiés et les explications sur le fonctionnement de cette DLL. Attention, développer / implémenter une passfilt.dll modifiée sans le support d’un éditeur tiers est très dangereux. Je vous invite à partir sur une solution payante sauf si vous disposez en interne d’une équipe de développeur compétent.
http://identitycontrol.blogspot.com/2007/10/inside-active-directory-password-filter.html
http://msdn.microsoft.com/en-us/library/ms721882(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms721849(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms721884(VS.85).aspx
http://www.devx.com/security/Article/21522/0/page/1
http://www.codeproject.com/KB/winsdk/LoginFilter.aspx
http://ntsecurity.nu/toolbox/strongpass/
Il existe de nombreuses solutions payantes comme nFront Password Filter, Specops Password Policy qui font cela très bien (mais c’est cher !).
http://nfrontsecurity.com/products/nfront-password-filter/
http://www.specopssoft.com/products/specops-password-policy

5. LES BONNES PRATIQUES POUR LA STRATEGIE DE MOTS DE PASSE :
Quels sont les risques :
- Une stratégie de mot de passe trop faible expose la société à un risque de piratage des mots de compte utilisateur via une attaque brute force. Un script essaie automatiquement des milliers de mots de passe en se basant sur les mots du dictionnaire.
- Une stratégie de mot de passe trop complexe expose la société à des comportements inappropriés de la part des utilisateurs. Ces derniers finissent par écrire le mot de passe en dessous de leur clavier ce qui est finalement encore moins sécurisé qu’un mot de passe faible. Qui est en effet capable de retenir ce mot de passe : 1ju9N4V87Nh54iI ?

En général, je préconise la stratégie suivante :
- Historique de mot de passe : 24
- Durée de vie maximum du mot de passe : 42 jours
- Durée de vue minimale du mot de passe : 1 jour
- Longueur du mot de passe : 8 caractères
- Complexité du mot de passe : activé. Il peut être intéressant d’investir dans des logiciels additionnels pour disposer d’un dictionnaire avec des mots de passe interdits comme Password01 ou les noms propres.
Si vous souhaitez aller au-delà en terme de sécurité des mots de passe, je vous préconise de partir sur une solution d’authentification avec des cartes à puces (SMART CARD). Pour plus d’informations, voir :
http://technet.microsoft.com/fr-fr/library/ff404294(WS.10).aspx
Attention, lire les articles suivants si vous utilisez une autorité de certification non Microsoft comme OpenTrust CA :
http://blogs.technet.com/b/instan/archive/2011/05/17/smartcard-logon-using-certificates-from-a-3rd-party-on-a-domain-controller-and-kdc-event-id-29.aspx
http://support.microsoft.com/kb/281245/en-us
http://support.microsoft.com/kb/291010/en-us

Enfin la règle d’or est de faire valider la stratégie de mots de passe par la direction.
En effet il est important que les utilisateurs adhèrent à la stratégie de mots de passe de l’entreprise (ils ne doivent pas noter leur mot de passe derrière leur clavier). Pour cela, la direction doit communiquer, établir un règlement (charte informatique) et prévoir des sanctions disciplinaires en cas d’infraction majeur.

6. LA PROCEDURE DE CHANGEMENT / REINITIALISATION DES MOTS DE PASSE :
Maintenant que l’on a vu les solutions techniques pour sécuriser les mots de passe, on va parler de la procédure de réinitialisation des mots de passe qui reste un point noir au niveau de la sécurité.
Pour rappel, on réinitialise le mot de passe d’un compte utilisateur quand l’utilisateur ne se rappelle plus de son mot de passe ou quand le mot de passe a expiré et que l’utilisateur ne peut pas effectuer un login classique pour appliquer la procédure de changement du mot de passe (cas des utilisateurs externes à l’entreprise qui se connectent à des applications web publiées sur Internet).
Dans la majorité des entreprises, cette action est à la charge de la hotline, parfois même d’une hotline externalisée à l’autre bout de la planète. L’équipe HOTLINE ne connaît donc pas les utilisateurs.
Il est donc très simple de se faire passer pour une employée de l’entreprise et d’obtenir le mot de passe de cette personne. Pour se prémunir de ce problème, certaines entreprises imposent à l’utilisateur de répondre à certaines questions personnelles. Cependant la gestion de ce questionnaire reste très complexe.
C’est là qu’interviennent des outils tiers comme nFront Web Password Change ou Specops Password Reset. Ces outils permettent aux utilisateurs de réinitialiser leur mot de passe depuis la mire d’ouverture de session ou depuis un portail web à l’aide d’un formulaire à base de questions / réponses :
http://www.specopssoft.com/products/specops-password-reset
http://nfrontsecurity.com/products/nfront-web-password-change/

A+
Guillaume MATHIEU
PROSERVIA
La connaissance s’accroît quand on la partage
http://msreport.free.fr

Isa Server 2006 et la “Délégation Kerberos contrainte”

juillet 10th, 2011

Salut à tous

J’ai récemment travaillé sur la mise la publication d’un site web avec Isa Server 2006 avec les contraintes suivantes :
- Les utilisateurs sur Internet doivent s’authentifier à l’aide d’une carte à puce ou d’un certificat utilisateur.
- Le serveur Isa Server doit authentifier les demandes de connexion tout comme le serveur web.
- Le serveur web (IIS) doit être configuré avec de l’authentification intégré (protocole d’authentification Kerberos ou NTLM).
- Les utilisateurs ne doivent pas avoir besoin de s’authentifier (ils insèrent uniquement leur carte à puce).
- Le flux réseau entre l’utilisateur sur Internet et le serveur Isa Server 2006 doit être chiffré (HTTPS).
- Le flux réseau entre le serveur Isa 2006 et le serveur web doit être chiffré (HTTPS).

1. AVANT DE COMMENCER :
Une version de cet article avec des captures d’écran est disponible à cet emplacement :
http://msreport.free.fr/articles/IsaServerDelegationkerberoscontrainte.pdf

2 ACTIONS A EFFECTUER SUR ISA SERVER :
On crée une règle de publication web. On va faire du pontage SSL.
Pour plus d’informations sur Isa Server, je vous invite à lire mon support de cours sur Isa Server 2006 :
http://msreport.free.fr/articles/IsaServer2006.pdf
On va configurer Isa Server pour accepter l’authentification avec des certificats de type  « Utilisateur ». Cela nécessite d’utiliser la « Délégation Kerberos contrainte ». Il n’est pas possible d’utiliser de la délégation NTLM avec les certificats client (certificat de type « Utilisateur »).
Les prérequis suivants doivent être respectés pour la mise en œuvre de la « Délégation Kerberos contrainte » :
- Le domaine doit être en mode natif 2003.
- Le serveur Isa Server 2006 et le serveur web doivent être dans le même domaine. Isa Server 2006 est donc membre du domaine !
Le correctif suivant (inclus dans le SP1) semble supprimer cette limitation mais en pratique cela ne marche pas :
- http://support.microsoft.com/kb/942637/en-us.
- Il faut autoriser la fragmentation IP dans Isa Server 2006.
Les articles ci-dessous expliquent comment configurer la délégation contrainte :
- http://technet.microsoft.com/en-us/library/bb794858.aspx
- http://technet.microsoft.com/fr-fr/library/bb794751.aspx (Exemple avec Publication OWA)
- http://technet.microsoft.com/fr-fr/library/cc786828(WS.10).aspx
Remarque :
- Il est préconisé d’installer le dernier pack de correctif Isa Server 2006 (POST SP1) : http://support.microsoft.com/kb/960148/en-us
- Pour contrôler le format de saisi du champ login / mot de passe : http://support.microsoft.com/kb/960146/en-us
- Autre problème avec la « délégation Kerberos contrainte » :
http://support.microsoft.com/kb/947124/en-us

2.1 CONFIGURATION DU PORT D’ECOUTE :
Il faut configurer le port d’écoute Isa Server au niveau de la règle de publication WEB avec la méthode d’authentification “Authentification de certificats de client SSL ”. Pour cela, aller dans au niveau de la règle Isa Server, dans l’onglet “Port d’écoute“. Dans les propriétés du port d’écoute, cliquer sur l’onglet “Authentification“.
Il faut ensuite autoriser le certificat de l’autorité de certification qui a émis les certificats clients. Pour cela, toujours dans l’onglet “Authentification” du port d’écoute, cliquer sur le bouton “Configurer“. Séalectionner le certificat de l’autorité de certification qui a émis les certificats web.

2.2 CONFIGURATION DE LA DELEGATION D’AUTHENTIFICATION :
Il faut ensuite configurer la délégation d’authentification sur « Délégation Kerberos contrainte ».
Cela se configure au niveau de l’onglet “Délégation d’authentification” de la règle de publication web.
On remarquera qu’Isa Server 2006 génère un “Service Principal Name” automatiquement (champ “Entrer le nom principal de service (SPN)…“.
Il sera nécessaire de créer le SPN (Service Principal Name) au niveau du serveur web interne (même valeur que dans la règle Isa Server).

2.3 CONFIGURER LE COMPTE ORDINATEUR DU SERVEUR ISA :
Il faut approuver la délégation au niveau du compte ordinateur du serveur ISA.
Au niveau des propriétés du compte ordinateur, aller dans l’onglet “Délégation“.
Cliquer sur “N’approuver cet ordinateur que pour la délégation aux services spécifiés“.
Sélectionner “Utiliser tour protocole d’authentification“.
Cliquer sur “Affichage développé” puis cliquer sur le bouton “Ajouter“. Aller chercher le compte ordinateur du serveur web et ajouter les services WWW et HTTP.

2.4 AJOUTER LE SERVICE PRINCIPALNAME (SPN) AU NIVEAU DU COMPTE ORDINATEUR DU SERVEUR WEB :
Il faut ajouter le Service Principal Name (SPN) au niveau du serveur web.
Cela peut être fait via ADSIEDIT ou via la commande SETSPN.
ADSIEDIT (concole MMC) est disponible sur le CD d’installation de Windows 2003 Server dans les supports Tools.
C’est l’éditeur bas niveau d’Active Directory. Faire un clic droit sur l’objet correspondant au compte ordinateur du serveur web. Editer l’attribut “Service Principal Name”.
Dans notre cas, on saisit http://srvdfs5.archidfs.local (SRVDFS5.archidfs.local étant le nom de notre serveur web). Le SPN doit être identique à celui indiqué dans la règle Isa Server 2006.

2.5 RESULTATS ET PROBLEMES RENCONTREES :
2.5.1 TESTS CONNEXION AVEC UN COMPTE UTILISATEUR SITUE DANS LE MEME DOMAINE QUE LE SERVEUR WEB ET ISA SERVER :

Si un utilisateur essaie de se connecter depuis Internet, il voit une fenêtre qui lui demande de sélectionner un certificat.
En fait Internet Explorer accède au magasin de certificat utilisateur de Windows.
Pour visualiser ce magasin de certificat, cliquer sur Démarrer | Exécuter. Taper MMC.
Ajouter le composant logiciel enfichable “Certificats” et sélectionner “Compte utilisateur“. Développer la section “Personnel“. Vous pouvez alors voir vos certificats (spécfiques à votre compte utilisateur Windows).
Au niveau d’Isa Server 2006, on peut voir que la connexion est authentifiée et que c’est bien le module proxy qui est utilisé en allant dans la partie Monitoring | onglet Session. On peut créer un filtre en spécfiant l’adresse IP de la machine qui accède au site web depuis Internet.

2.5.2 TEST CONNEXION AVEC UN COMPTE SITUE DANS UN AUTRE DOMAINE :
Cela échoue si utilisation d’un compte d’un autre domaine de la forêt (pas dans le même domaine que le serveur ISA et le serveur web). On a l’erreur ci-dessous.
Event Type: Error
Event Source: Microsoft ISA Server Web Proxy
Event Category: None
Event ID: 21315
Date:  7/5/2011
Time:  2:58:30 PM
User:  N/A
Computer: SRVDFS3-R3GPSSX
Description:
ISA Server n’a pas pu déléguer d’informations d’identification au site Web publié par la règle Publication srvdfs5.archidfs.local à l’aide de la délégation Kerberos contrainte. Vérifiez que les noms principaux du service : http/srvdfs5.archidfs.local configurés dans ISA Server correspondent à ceux d’Active Directory.
Le correctif suivant (inclus dans le SP1) semble supprimer cette limitation mais en pratique cela ne marche pas :
http://support.microsoft.com/kb/942637/en-us.

a+
Guillaume MATHIEU
PROSERVIA / MSREPORT (http://msreport.free.fr)  
La connaissance s’accroît quand on la partage

LES ENTREES / ENREGISTREMENTS DNS NE SE METTENT PAS A JOUR !

juillet 2nd, 2011

Bonjour

J’ai récemment travaillé sur des problèmes DNS (entrées DNS à jour).

DESCRIPTION DU PROBLEME :
Les entrées DNS de type A (Hôte) des stations de travail (en DHCP) et des imprimantes (en DHCP) ne se mettent pas à jour.
A T=0, la station de travail A.MSREPORT.LOCAL a l’IP 192.168.0.100. L’entrée DNS A est créé dans la zone MSREPORT.LOCAL avec comme IP : 192.168.0.100.
A T=1, la station de travail A.MSREPORT.LOCAL a l’IP 192.168.0.101. L’entrée DNS A dans la zone MSREPORT.LOCAL reste sur 192.168.0.100. On a le problème !
Ce problème se pose :
- Cas 1 : si le compte ordinateur Active Directory d’une station de travail Windows est supprimée puis recréée.
- Cas 2 : si on déplace une imprimante / machine non Windows entre VLANS (même serveur DHCP).
- Cas 3 : si on déplace une imprimante / machine non Windows entre deux sites géographiques (changement de serveurs DHCP).
- Cas 4 : si une personne de l’informatique a créé manuellement l’entrée DNS d’une station de travail / imprimante.
- Cas 5 : si on a récemment changé de serveur DHCP (Windows Server).

La configuration est la suivante :
- Annuaire Active Directory (on a le problème avec toutes les versions des contrôleurs de domaine Windows).
- Zones DNS intégrées à l’annuaire. Les mises à jour dynamiques DNS sont activées sur les zones DNS et sont configurées sur “Sécurisées uniquement”.

D’OU VIENT LE PROBLEME ?
Il s’agit tout simplement d’un problème de permissions au niveau de l’entrée DNS !

EXPLICATIONS :
Quand on intègre une zone DNS dans l’annuaire Active Directory, les entrées DNS deviennent des objets (comme les comptes utilisateurs) de type DNSNODE.
Ces objets ont des permissions. Hors pour pouvoir mettre à jour l’adresse IP d’une entrée DNS de type A (type Hôte, nom résolu en IP), il faut avoir le droit “Ecrire” sur l’entrée DNS (l’objet de type DNSNODE).

QUI A LE DROIT DE METTRE A JOUR UNE ENTREE DNS ?
- Quand on crée manuellement une entrée DNS, c’est le compte utilisateur qui a créé l’entrée qui a le droit d’écrire. Il existe une option qui permet d’autoriser tous les utilisateurs authentifiées à mettre à jour l’entrée DNS.
- Pour les machines en DHCP, cela dépend de la configuration du serveur DHCP. Selon le cas, c’est le compte ordinateur du serveur DHCP, le compte ordinateur de la station de travail ou un compte de service qui a le droit de modifier l’entrée DNS.

COMMENT DETERMINER QUI A LE DROIT DE MODIFIER UNE ENTREE DNS ?
Ouvrir la console DNS. Cliquer dans le menu “Affichage” puis sélectionner “Affichage détaillée“.
Quand on double clic sur une entrée DNS, on voit maintenant la date de création de l’enregistrement (si c’est une entrée DNS créée dynamiquement) et l’onglet “Sécurité” (permission sur l’objet).

COMMENT CONFIGURER QUI A LE DROIT DE MODIFIER UNE ENTREE DNS CREES MANUELLEMENT (ENTREE DNS STATIQUE) ?
On a la case “Autoriser tout utilisateur identifié à mettre à jour les enregistrements DNS…” dans la fenêtre de création de l’entrée DNS A. Tous les utilisateurs authentifiées (machines et utilisateurs du domaine peuvent modifier l’entrée DNS).

COMMENT CONFIGURER QUI A LE DROIT DE MODIFIER UNE ENTREE DNS CREE DYNAMIQUEMENT ?
Ouvrir la console DHCP et aller dans les propriétés du serveur DHCP.
Aller dans l’onglet “DNS“.
Si vous sélectionnez, “Mettre à jour les enregistrements PTR et A DNS uniquement si des clients DHCP le demandent” :
- Pour les machines Windows en DHCP : elles créent elles-même l’entrée DNS. C’est donc le compte ordinateur de la machine Windows qui a le droit de modifier l’entrée DNS.
- Pour les autres machines (qui ne savent pas faire des mises à jour dynamiques DNS sécurisées), c’est le compte ordinateur du serveur DHCP.
Si vous sélectionner “Toujours mettre à jour dynamiquement les enregistrements PTR et A DNS“, c’est le compte ordinateur du serveur DHCP qui a le droit de modifier les entrées DNS (pour les stations Windows ou autres).

Attention, cela n’est vrai que si vous n’avez pas configuré un compte de service pour effectuer les mises à jour dynamiques DNS au niveau du service DHCP.
Cela se configure dans l’onglet “Avancé” dans les propriétés du serveur DHCP. Cliquer sur “Informations d’identification”. Voir article Microsoft :
http://support.microsoft.com/kb/282001/en-us
Si cette option est activée ce n’est plus le compte ordinateur du serveur DHCP qui a les droits mais ce compte de service.
Si vous sélectionnez, “Mettre à jour les enregistrements PTR et A DNS uniquement si des clients DHCP le demandent” :
- Pour les machines Windows en DHCP : elles créent elles-même l’entrée DNS. C’est donc le compte ordinateur de la machine Windows qui a le droit de modifier l’entrée DNS.
- Pour les autres machines (qui ne savent pas faire des mises à jour dynamiques DNS sécurisées), c’est le compte de service DNS configuré dans l’onglet “Avancé” du serveur DHCP qui a le droit de modifier l’entrée.

PRECONISATIONS :
Mettre en place la configuration suivante :
- Tous les serveurs DHCP doivent avoir la même configuration (DHCP Microsoft).
- Configurer le serveur DHCP pour “Mettre à jour les enregistrements PTR et A DNS uniquement si des clients DHCP le demandent“.
- Ne jamais supprimé les comptes ordinateurs des stations de travail. On peut les réinitialiser. Au pire supprimer les ServicePrincipalname intule avec la commande SETSPN.
- Configurer le serveur DHCP pour effectuer les mises à jour dynamiques DNS à l’aide d’un compte de service. Voir article Microsoft : http://support.microsoft.com/kb/282001/en-us
- Mettre en place le SCAVENGING. Cela purge les entrée dynamiques qui n’ont pas été mise à jour depuis plus de 14 jours par défaut (les entrées statiques ne sont pas purgées).
Cette configuration nous permet de gérer les cas 2 et 3 car c’est plus le compte ordinateur du serveur DHCP qui a les droits mais un compte de service identique sur tous les serveurs DHCP.
Je préfère laisser “Mettre à jour les enregistrements PTR et A DNS uniquement si des clients DHCP le demandent” car il n’est pas rare qu’une station de travail Windows repasse en IP fixe puis de nouveau en DHCP selon la configuration de vos sites. Dans ce cas c’est le compte ordinateur de la station de travail qui a les droits donc pas de problème.

Il sera nécessaire de modifier les permissions des entrées DNS si :
- Vous changez de serveur DHCP (changement du compte ordinateur du serveur DHCP) sans avoir activé le compte de service pour les mises à jour dynamique DNS au niveau de tous les serveurs DHCP.
- Si vous changez les paramètres de la mise à jour dynamique DNS au niveau de vos serveurs DHCP (danger).

CODE SOURCE DU SCRIPT POWERSHELL POUR METTRE A JOUR LES ENTREES DNS :
Le script ci-dessous nécessite PowerShell V1 / V2 et l’installation du module Quest Active management Shell for Active Directory
Dans l’exemple ci-dessous, la zone réplique au niveau de la partition de domaine.
Il faudra valider où se trouve la zone et se connecter sur cette zone avec ADSIEDIT.MSC (installer les support tools présents sur le CD d’installation de Windows 2003 Server).

Dans le conteneur système de la partition de domaine msreport.local :
DC=msreport.local,CN=MicrosoftDNS,CN=System,DC=MSREPORT,DC=LOCAL
Dans la ForestDnsZones :
DC=msreport.local,CN=MicrosoftDNS,DC=ForestDnsZones,DC=archidfs,DC=local
Dans la DomainDnsZones :
DC=msreport.local,CN=MicrosoftDNS,DC=DomainDnsZones,DC=archidfs,DC=local

Set-QADPSSnapinSettings -DefaultSizeLimit 0
Connect-Qadservice nom_du_contrôleur_domaine
Get-QADObject -UseGlobalCatalog -Identity m –SearchRoot “DC=msreport.local,CN=MicrosoftDNS, CN=System,DC=MSREPORT,DC=LOCAL” -Type Dnsnode | Add-QADPermission -Account “compte_groupe_pour_permissions_modifier_entrees” –Rights ‘GenericWrite,ReadControl,WriteProperty’ -ApplyTo ‘ThisObjectOnly’ 

POUR ALLER PLUS LOIN :
On peut voir les accès refusés au niveau des mises à jour des entrées DNS en activant l’audit (réussite et échec) pour « l’accès aux objets » au niveau de la stratégie « Default Domain Controller Policy ».
Faire un gpupdate /force sur chaque contrôleur de domaine ou attendre 5 minutes.
Par défaut, l’audit est configuré que pour les réussites au niveau d’une zone DNS. Il faut aussi ajouter les SACL pour les échecs.
Aller dans les propriétés de la zone DNS, dans « Sécurité », cliquez sur « Permissions avancées » au niveau de la zone DNS « MSREPORT.LOCAL ». Ajouter une entrée en « réussite / échec » pour tout le monde et pour les actions d’écriture.
Ouvrir le journal sécurité du contrôleur de domaine utilisé par le client DHCP / station de travail (voir LOGONSERNAME de la commande SET pour obtenir cette information).
On obtient ces messages :
Type de l’événement : Audit des échecs
Source de l’événement : Security
Catégorie de l’événement : Accès Active Directory
ID de l’événement : 566
Date : 6/20/2011
Heure : 6:07:40 PM
Utilisateur : MSREPORT\XPGMATHI-6DB635$
Ordinateur : SRVDFSR1
Description :
Opération d’objet :
   Serveur d’objet : DS
   Type d’opération : Object Access
   Type d’objet : dnsNode
   Nom d’objet : DC=xpgmathi-6db635,DC=msreport.local, CN=MicrosoftDNS,DC=DomainDnsZones,DC=archidfs,DC=local
   ID de handle : -
   Nom d’utilisateur principal : SRVDFSR1$
   Domaine principal : ARCHIDFS
   ID d’ouv de session principale : (0×0,0×3E7)
   Nom d’utilisateur client : XPGMATHI-6DB635$
   Domaine client : ARCHIDFS
   ID d’ouv de session client : (0×0,0×390006)
   Accès : Écriture personnelle  
   Propriétés :
   Default property set
   dnsRecord
   dNSTombstoned
   dnsNode
   Informations additionnelles :
   Informations additionnelles 2 :
   Masque d’accès : 0×8

Type de l’événement : Audit des échecs
Source de l’événement : Security
Catégorie de l’événement : Accès Active Directory
ID de l’événement : 566
Date : 6/20/2011
Heure : 6:11:11 PM
Utilisateur : MSREPORT\XPGMATHI-6DB635$
Ordinateur : SRVDFSR1
Description :
Opération d’objet :
   Serveur d’objet : DS
   Type d’opération : Object Access
   Type d’objet : dnsNode
   Nom d’objet : DC=xpgmathi-6db635,DC=msreport.local,CN=MicrosoftDNS,DC=DomainDnsZones,DC=archidfs,DC=local
   ID de handle : -
   Nom d’utilisateur principal : SRVDFSR1$
   Domaine principal : ARCHIDFS
   ID d’ouv de session principale : (0×0,0×3E7)
   Nom d’utilisateur client : XPGMATHI-6DB635$
   Domaine client : ARCHIDFS
   ID d’ouv de session client : (0×0,0×39DB62)
   Accès : Propriété d’écriture    
   Propriétés :
   Default property set
   dnsRecord
   dNSTombstoned
   dnsNode
   Informations additionnelles :
   Informations additionnelles 2 :
   Masque d’accès : 0×20

A+
Guillaume MATHIEU
PROSERVIA
La connaissance s’accroît quand on la partage
http://msreport.free.fr

PowerShell -> Script to add users accounts / script pour ajouter des comptes utilisateurs

juillet 2nd, 2011

Bonjour

Microsoft fournit avec Windows 2008 R2 son propre module PowerShell pour Active Directory.
Pour ceux qui ne dispose pas de contrôleurs de domaine Windows 2008 R2, vous pouvez utiliser le module PowerShell Quest pour Active Directory (ActiveRoles Management Shell for Active Directory).
Il est gratuit et téléchargeable à cette adresse :
http://www.quest.com/powershell/activeroles-server.aspx
Ce dernier fonctionne très bien (testé de très nombreuses fois).
Pour les amateurs de scripts, ci dessous un exemple de code pour créer des comptes utilisateurs avec la commande PowerShell Quest New-QADUser et SET-QADuser.
Pour plus d’informations sur la commande New-SQADuser : Get-Help New-QADUser -examples
Comme on n’a pas toutes les options avec la commande New-QADuser je fais un pipe avec la commande Set-QADuser.

# Create 100 accounts with this caracteristics :
# Expiration date : 1er aout 2011.
# Password never expire and no change of password at first logon.
# Differents passwords for each account.
# Connexion to DC
Connect-QADService nom_contrôleur_domaine
# Variable
$boucle = 1;
$nbaccounttocreate = 101;
$ParentContainer = “OU=Users,OU=FR,DC=MSREPORT,DC=LOCAL”;
$description = “Test Account”;
$EmployeeType = “System”;
$StreetAddress = “route des Gardes”;
$PostalCode = “92000″;
$City = “Meudon”;
$Company = “Msreport France”;
do
{
        $DisplayName = “it_msreport” + $boucle;
        $SamAccountname = “it_msreport” + $boucle;
        $UserPrincipalName = “$SamAccountname” + “@msreport.local”;
        $Password = “GeihposM” + $boucle;
        $email = $SamAccountname + “@msreport.free.fr”; 
        # Command to create user
        new-QADUser -ParentContainer $ParentContainer -DisplayName $DisplayName -description $description -StreetAddress $StreetAddress -PostalCode $PostalCode -City $City -Company $Company -name $SamAccountname -sAMAccountName $SamAccountname -UserprincipalName $UserPrincipalName -UserPassword $Password -Email $email -ObjectAttributes @{EmployeeType = “Test”;C=”FR”} | Set-QADuser -PasswordNeverExpires $true -AccountExpires 01/08/2011 -Manager “gmmathieu”;
        $boucle = $boucle + 1;
}
# Manage the number of loop.
while ($boucle -lt 101)

A+

Guillaume MATHIEU
PROSERVIA
La connaissance s’accroît quand on la partage.
http://msreport.free.fr

CHANGER PERIODIQUEMENT LE MOT DE PASSE DU COMPTE ADMINISTRATEUR PRE-INTEGRE (BUILTIN) DE LA BASE SAM :

mai 20th, 2011

salut à tous

J’ai récemment travaillé sur une solution pour changer périodiquement le compte administrateur pré-défini sur des stations de travail Windows XP Pro / Windows Seven.
Le cachier des charges précisait :
- Que le mot de passe du compte administrateur pré-défini devait changer tous les 90 jours.
- Que le mot de passe devait être stocké sur un partage non accessible en lecture aux utilisateurs.
- Que le mot de passe devait respecter certaines contraintes en terme de tailles, nombre de familles de caractères (majuscules, minuscules, chiffres, caractères spéciaux).
- Prendre en charge le fait que le compte administrateur intégré changerait de nom selon la langue de l’OS ou pouvait avoir été renommé (”administrator” pour une version Windows anglaise, “administrateur” pour une version française).
La solution proposée ci dessous est basée sur deux scripts.
- ADMINISTRATORPASSWORD.CSV
- GENERATECSV.VBS

1 LE SCRIPT ADMINISTRATORPASSWORD.vbs :
1.1 PRESENTATION GENERALE :

Ce script permet de
- Générer le mot de passe selon les contraintes (nombre de majuscules, minuscules, caractères spéciaux…)
- Déterminer si cela fait plus de 90 jours que le mot de passe a été changé.
- Modifier le mot de passe sur la station de travail.
- Ecrire un fichier texte contenant le nom de la machine, le nom du compte administrateur pré-intégré et le mot de passe.

1.2 CONTRAINTES ET PROBLEMATIQUES DE LA SOLUTION :
- Tous les stations de travail doivent pouvoir accéder aux partages de fichiers de ces deux serveurs.
- Toutes les stations de travail doivent être membres d’un domaine Active Directory.
- Chaque station de travail doit pouvoir écrire le fichier texte contenant le mot de passe sans permettre aux utilisateurs d’accéder à tous les fichiers texte stockés sur le partage.
-La solution exige deux serveurs : un serveur hébergeant le partage où sont stockés les fichiers texte contenant le mot de passe et un serveur hébergeant les fichiers de logs d’erreurs en cas de problème lors de l’exécution du script.

1.3 SECURISATION DU REPERTOIRE CONTENANT LES FICHIERS AVEC MOTS DE PASSE :
Le script ADMINISTRATORPASSWORD.CSV s’exécute via un script de démarrage (GPO de type “Configuration Ordinateur”). Il s’exécute donc dans le contexte du compte SYSTEM (droit administrateur sur la station de travail).
La première étape consiste à créer le répertoire E:\logs et le partager en tant que logs$. Définir « Control Total » pour « Tout le monde » au niveau des permissions de partage.
Au niveau des permissions NTFS, supprimer l’héritage des permissions (dans les permissions NTFS avancées). Donner les droits “Contrôl Tôtal” à Administrators, SYSTEM, GRP_PASSWORD Viewer (groupe contenant les utilisateurs qui peuvent voir les fichiers avec les mots de passe).
Il faut ensuite ajouter des permissions spéciales pour le groupe “Authenticated users”
Créer une permissions NTFS personnalisée pour le groupe “Authenticated users”. Aller dans les permissions NTFS avancées. Sélectionner “Apply to this folder and subfolders”. Sélectionner le permissions suivantes :
- Traverse folder / execute file
- List folder / Read data
- Read attributes
- Read extended attributes
- Create files / write data
- Read permissions
Créer une seconde entrée au niveau des permissions NTFS avancées. Sélectionner “Apply to Files only“. Sélectionner le permissions suivantes :
- Read attributes
- Read extented attributes
- Create files / write data
- Create folders / append data
- Write attributes
- write extended attributes
- Delete
- Read permissions

Ne surtout pas cocher la case “List Folder / read data“.
Tester l’accès avec un compte utilisateur.
Ce dernier peut copier un fichier existant, le renommer, le supprimer mais ne peut pas le lire ou le copier depuis le serveur vers sa station de travail.
On est obligé de donner le droit de supprimer dans le cas où le compte ordinateur est supprimé. C’est en effet le compte ordinateur qui est propriétaire du fichier.

1.4 CODE  DU SCRIPT ADMINISTRATORPASSWORD.CSV :
‘ More informations about RND function : http://www.w3schools.com/vbscript/func_rnd.asp
‘ More informations about ACSII code : http://www.commentcamarche.net/contents/base/ascii.php3
‘ More informations about error management : http://technet.microsoft.com/en-us/library/ee176982.aspx and http://technet.microsoft.com/en-us/library/ee692852.aspx
‘ More informations about the date : http://www.commentcamarche.net/contents/vbscript/vbs-fonctions-date.php3
‘ More information about permission NTFS : http://support.microsoft.com/kb/308419/en-us

On error resume next
strComputer = “.”
Dim text,action,digits
text = “”

‘VARIABLES TO DEFINE

serverpasswordname = “nom_serveur.domaine.dns”  ’ Server which store password files. Exemple : srv1.msreport.free.fr
serverlogname = “nom_serveur.domaine.dns”  ’ Server whuch store errors log files. Exemple : srv1.msreport.free.fr
periodTime = “7776000″     ’ Time before password expiration in seconds (7776000 = 90 days)
digits = 9      ’ Lengh of the password

‘ MAIN

‘ Verify if the password must change on the computer
action = NeedChange()
if action = 1 then
 ’ Determin the name of the administrator account (administrateur in french).
 accounttomodify = AdministratorName()
 ’ Generate the password
 password = GeneratePassword(digits)
 ’ Define the new password on the computer.
 Set objUser = getobject(”WinNT://” & strComputer & “/” & accounttomodify & “,User”)
 If Err <> 0 Then
  WriteError(”N.A.;N.A.;No administrator account.”)
  Err.Clear
 else
  objUser.SetPassword password
  objUser.SetInfo
  if Err <> 0 Then
   WriteError(”N.A.;N.A.;Update of administrator fail.”)
   Err.Clear
  else
   ’ Write the password on a file on server and write the witness file on the computer
   text = accounttomodify + “;” + password
   Writepasswordfile(text)
   if Err = 0 then
    Writewitness(now)
   else
    WriteError(”Unable to connect to the server !”)
   
   End if
  End if
 End If
else
 ’ if the password has been changed since lower than 30 days, the script takes no actions.
 wscript.quit
End If

Function NeedChange()
On error resume next
‘ Script change password once every periodtime (variable). The script write a log on the computer in C:\Windows\passwordchange.txt that contains the day of the last change of the password

‘ Verify if the file exist on the station
Set objFSO = CreateObject(”Scripting.FileSystemObject”)

‘ if the file exists, we need to read it and verify the date.
If objFSO.FileExists (”C:\Windows\passwordchange.txt”) then
 ’ Read the date on file C:\Windows\passwordchange.txt 
    dim sFileContents
 dim lastchangetime
 Set oTextStream = objFSO.OpenTextFile(”C:\Windows\passwordchange.txt”,1)
 lastchangetime = cdate(oTextStream.ReadAll)
 oTextStream.Close

 ’wscript.echo “PeriodTime : ” & periodtime
 ’wscript.echo ” Date du fichier : ” & lastchangetime
 ’wscript.echo “Date actuelle : ” & now
 ’wscript.echo “Différence de temps : ” & DateDiff(”s”,lastchangetime,now)

 ’ If the file is corrupted, password must be changed.
 if err <> 0 then
  NeedChange = 1
  Err.Clear
       
 ’if the diffrence between the two date is greater than periodTime, we need to change the password.
 elseif  CDbl(DateDiff(”s”,lastchangetime,now)) > CDbl(periodTime) then
  NeedChange = 1
  ’wscript.echo “NeedChange : ” & NeedChange
 ’ Other case, do nothing.
 elseif CDbl(DateDiff(”s”,lastchangetime,now)) < 0 then
  NeedChange = 1
 else
  NeedChange = 0
  ’wscript.echo “NeedChange : ” & NeedChange
 End If
‘ if the file doesn’t exist, change the password
else
 NeedChange = 1
End if

End Function

‘ Function to generate password

Function GeneratePassword(digits)
Dim passwordtemp
passwordtemp = “”
Dim w
Dim i
Dim digit1, digit2, digit3

‘ Code to generate password with uppercases (A…Z), lowercases (a…z) and numbers (2…9) without 0, O,o I, l

For i = 1 To Digits
 ’ The function randomize permit to change the result of the RND function
 ’ The first caracters is an uppercase
 digit1 = “”
 digit2 = “”
 digit3 = “”
 if i = 1 then
         Randomize
  digit1 = chr(65 + INT(RND * 25))
  ’ The ACSII value 79 is O and the ACSII code 73 is I
  if (digit1 = chr(79)) OR (digit1 = chr(73)) then
   digit1 = chr(80 + INT(RND * 10))
  End if
  passwordtemp = passwordtemp + digit1
 
 elseif i = 2 then
  Randomize
  digit2 = chr(97 + INT(RND * 25))
  ’ The ACSII value 108 is l
  if (digit2 = chr(108)) OR (digit2 = chr(111)) then
   digit2 = chr(112 + INT(RND * 10))
  End if
                passwordtemp = passwordtemp + digit2
 
 elseif i = digits then
  Randomize
  ’ The ACSII value 48 is 0 and isn’t in the range.
  passwordtemp = passwordtemp + chr(50 + INT(RND * 7))
 
 else
  Randomize
         w = 1 + INT(RND * 4)
  ’wscript.echo “value w : ” & w
         If W = 1 Then
                 Randomize
   digit1 = chr(65 + INT(RND * 25))
   ’ The ACSII value 79 is O and the ACSII code 73 is I
   if (digit1 = chr(79)) OR (digit1 = chr(73)) then
    digit1 = chr(80 + INT(RND * 10))
   End if
   passwordtemp = passwordtemp + digit1 
         ElseIf W = 2 Then
   Randomize
   digit2 = chr(97 + INT(RND * 25))
   ’ The ACSII value 108 is l
   if (digit2 = chr(108)) OR (digit2 = chr(111)) then
    digit2 = chr(112 + INT(RND * 10))
   End if
                 passwordtemp = passwordtemp + digit2
  Elseif w = 3 Then
   Randomize
   choice = INT(RND * 5)
   ’wscript.echo “Choice : ” & choice
   ’ Value ACSII : # = 35  $ = 36 * = 42 + = 43 @ = 64
   if choice = 0 then
    digit3 = chr(35)
   elseif choice = 1 then
    digit3 = chr(36)
   elseif choice = 2 then
    digit3 = chr(42)
   elseif choice = 3 then
    digit3 = chr(43)
   else
    digit3 = chr(64)
   End if
   passwordtemp = passwordtemp + digit3
         Else
                 Randomize
   ’ The ACSII value 48 is 0, 49 is 1 and isn’t in the range.
   passwordtemp = passwordtemp + chr(50 + INT(RND * 7))
         End If
 End if
‘wscript.echo “Valeur de I : ” & i
Next
GeneratePassword = passwordtemp
End Function

‘ Function to create file with password on the share

Function Writepasswordfile(text)
        ‘Find the name of the workstation and create file result on server
        Set WshNetwork = WScript.CreateObject(”WScript.Network”)
        StationName = WshNetwork.ComputerName
 resufile = “\\” & serverpasswordname & “\logs$\” & StationName & “.txt”
        ‘wscript.echo “Fichier mot de passe : ” & resufile
 Dim objFSO,objFile
        Set objFSO = CreateObject(”Scripting.FileSystemObject”)
        Set objFile = objFSO.CreateTextFile(resufile)
 ’ Write the date in french format.
        objFile.WriteLine StationName & “;” & text & “;” & Day(now) & “/” & Month(now) & “/” & Year(now)
        objFile.Close        
End Function

Function WriteError(text)
        ‘Find the name of the workstation and create file result on server
        Set WshNetwork = WScript.CreateObject(”WScript.Network”)
        StationName = WshNetwork.ComputerName
 resufile = “\\” & serverlogname & “\logs$\Error-” & StationName & “.txt”
        ‘wscript.echo “Fichier mot de passe : ” & resufile
 Dim objFSO,objFile
        Set objFSO = CreateObject(”Scripting.FileSystemObject”)
        Set objFile = objFSO.CreateTextFile(resufile)
        objFile.WriteLine StationName & “;” & text
        objFile.Close        
End Function
 

Function Writewitness(dateofchangepassword)
 resufile = “C:\Windows\passwordchange.txt”
        Dim objFSO,objFile
        Set objFSO = CreateObject(”Scripting.FileSystemObject”)
        Set objFile = objFSO.CreateTextFile(resufile)
        objFile.WriteLine dateofchangepassword
        objFile.Close        
End Function

Function AdministratorName()
‘ Permit to find the name of the BUILTIN administrator account on the computer. This account have a sid which begin by the following strings S-1-5- and which finish by the following strings “-500″.
Set objWMIService = GetObject(”winmgmts:\\” & strComputer & “\root\cimv2″)
Set colAccounts = objWMIService.ExecQuery _
    (”Select * From Win32_UserAccount Where LocalAccount = TRUE”)
For Each objAccount in colAccounts
    If Left (objAccount.SID, 6) = “S-1-5-” and Right(objAccount.SID, 4) = “-500″ Then
        AdministratorName = objAccount.Name
    End If
Next

End Function

2. LE SCRIPT GENERATECSV.VBS :
2.1 PRESENTATION GENERALE :

Ce script permet de générer un fichier CSV à partir de tous les fichiers textes contenant les mots de passe.
On ne peut pas écrire directement dans le fichier CSV depuis les stations de travail du fait du risque de corruption de données si deux machines changent de mots de passe en même temps. Il faudrait une base de données.

2.2 MISE EN OEUVRE :
Configurer une tâche planifiée sur le serveur où sont stockés les fichiers avec les mots de passe pour créer le fichier CSV contenant tous mots de passe toutes les 10 minutes.

2.3 CODE DU SCRIPT GENERATECSV.VBS :
‘ More information at http://www.computerperformance.co.uk/vbscript/vbscript_file_opentextfile.htm
‘ More information at http://www.devguru.com/technologies/vbscript/quickref/textstream_readall.html

on error resume next

‘ VARIABLES TO DEFINE :
Dim passwordfileshare
Dim targetcsvfile
passwordfileshare = “
\\nom_serveurs_partage_password_files\logs$\
targetcsvfile = “
\\nom_serveurs_partage_password_files\logs$\csv\
csvfile = “
\\nom_serveurs_partage_password_files\logs$\csv\resultats\userspassword.csv
resultfolder = “
\\nom_serveurs_partage_password_files\logs$\csv\resultats\

‘ MAIN
‘ Copy all file from passwordfileshare to targetcsvfile
copypasswordfiles()

‘ Generate the CSV file
GenerateCSV()

Function copypasswordfiles()
Dim FSO
Dim FileExt
FileExt = “*.txt”
Set FSO = CreateObject(”scripting.filesystemobject”)

‘ ADD “\” if the folder name doesn’t finish by this caracters.
If Right(passwordfileshare, 1) <> “\” Then
 passwordfileshare = passwordfileshare & “\”
End If

‘ Verify if the folder to result exist
If FSO.FolderExists(passwordfileshare) = False Then   
 wscript.quit(1)
End if

if FSO.folderExists(targetcsvfile) = False Then
 FSO.CreateFolder(targetcsvfile)
     FSO.CopyFile passwordfileshare & FileExt, targetcsvfile
else
    FSO.CopyFile passwordfileshare & FileExt, targetcsvfile
End if
End function

Function GenerateCSV()

Dim fso, folder, files, NewsFile
Set fso = CreateObject(”Scripting.FileSystemObject”)

‘ Verify if the result folder exist and create it if not exist.
if FSO.folderExists(resultfolder) = False Then
 FSO.CreateFolder(resultfolder)
End if

‘ List each file in targetcsvfile, copy the content of each file in csvfile
‘ Create the result file
Set NewFile = fso.CreateTextFile(csvfile, True)
‘ List the file
Set folder = fso.GetFolder(targetcsvfile)
Set files = folder.Files
‘ Write the first line of the result CSV file
NewFile.WriteLine (”Computer;Login;Password;TimeLastChange”)

For each folderIdx In files
 ’ Read the fisrt line of each txt file
 Set TextFile = fso.opentextfile(targetcsvfile & folderIdx.Name,1)
 ’ Write a new line in csvfile
 NewFile.WriteLine(TextFile.ReadLine) 
Next
NewFile.Close
End function

a+
Guillaume MATHIEU
http://msreport.free.fr
PROSERVIA
Le bonheur c’est le partage.

 

SECURISATION DES SERVEURS REMOTE DESKTOP SERVERS (WINDOWS 2008 R2) :

mai 10th, 2011

Salut à tous
J’ai récemment travaillé sur la sécurisation des serveurs Remote Desktop Service (service Terminal Server sous Windows 2008 R2).
Cet article a pour but de voir comment sécuriser ce type de serveur.
Une version plus complète de cet article avec des captures d’écran est disponible à cette adresse :
http://msreport.free.fr/articles/Securisation_RDS_2008_R2_V.1.0.1.pdf

1 OBJECTIFS :
- Sécuriser les serveurs Remote Desktop Service sous Windows 2008 R2.
- Empêcher les utilisateurs de copier des fichiers, d’éxécuter des commandes systèmes.
- Ne pas perturber le fonctionnement du système.
- Permettre aux administrateurs d’administrer le système sans restrictions.
- Permettre aux utilisateurs d’exécuter les programmes de la suite Office 2007.

2 SECURISATION DU SERVEUR REMOTE DESKTOP SERVICE (WINDOWS 2008 R2) :
Pour cela, on va :
- Désactiver de nombreuses fonctionnalités de l’interface graphique via les stratégies de groupe.
- Bloquer l’exécution de toutes les applications sauf celles qui sont autorisées via Applocker.

2.1 DEPLACER LE SERVEUR REMOTE DESKTOP HOST SERVICE DANS L’OU REMOTEDESKTOPSERVER :
La première étape consiste à créer une unité d’organisation et de déplacer les comptes ordinateurs des serveurs Remote DeskTop Services dans cette unité d’organisation.
Créer et lier un objet de stratégie de groupe au niveau de l’unité d’organisation « RemoteDeskTopServers » appelé « Secure Remote Desktop Servers » :

2.2 CONFIGURATION DES GPO POUR RESTREINDRE LES FONCTIONNALITES DE L’INTERFACE GRAPHIQUE :
Pour sécuriser le serveur Remote DeskTop Service, il faut :
- Désactiver le presse papier et le mappage de lecteur réseau au niveau de la console MMC « Terminal Services Configuration ». 
- Bloquer l’accès à CMD par GPO
- Bloquer l’accès à certains programmes depuis l’aide : « Configuration ordinateur | Modèles d’administration | Systèmes | Restreindre l’exécution de ces programmes depuis l’aide en ligne».
- Bloquer l’accès à l’invite de commande : Configuration Utilisateurs | Modèles d’administration | Système | Désactiver l’accès à l’invite de commande.
- Définir la liste des applications autorisées : Configuration Utilisateurs | Modèles d’administration | Système | Exécuter seulement les applications Windows autorisées.
- Activer l’interface de l’utilisateur personnalisée : Configuration Utilisateurs | Modèles d’administration | Système | Interface Utilisateur personnalisée.
- Empêcher l’accès aux outils de modification du registre : Configuration Utilisateurs | Modèles d’administration | Système | Empêche l’accès aux outils de modification du registre.
- Configurer la GPO pour que les GPO de type « Configuration Utilisateur » s’applique à un compte ordinateur.
- Restreindre l’accès à certaines fonctionnalités / menu dans les programmes Office via GPO (utilisation ADM Office).
- Activer le pare feu de Windows 2008 R2 pour bloquer tous les accès sauf aux contrôleurs de domaine.
- Appliquer les préconisations des articles suivants :
  http://support.microsoft.com/kb/278295/en-us
  http://www.microsoft.com/downloads/en/details.aspx? FamilyID=7f272fff-9a6e-40c7-b64e-7920e6ae6a0d&DisplayLang=en

Remarque :
Il n’y a plus de visionneuse des fichiers d’aide par défaut sous Windows 2008 R2 :
http://support.microsoft.com/kb/917607/en-us

2.3 BLOQUER L’APPLICATION DES GPO AUX ADMINISTRATEURS DU SERVEUR :
Afin que les administrateurs puissent gérer le serveur, interdire l’application de la GPO aux groupes correspondant aux administrateurs du serveur (administrateurs du domaine dans l’exemple ci-dessous).
Pour cela, il faut refuser la permission “Appliquer la stratégie de groupe” au niveau des permissions de l’objet stratégie de groupe.
Voir article Microsoft ci dessous pour plus d’informations :
http://technet.microsoft.com/en-us/library/bb742376.aspx
Figure 11 belows shows an example of the security settings that allow everyone to be affected by this GPO except the members of the Management group, who were explicitly denied permission to the GPO by setting the Apply Group Policy ACE to Deny. Note that if a member of the Management group were also a member of a group that had an explicit Allow setting for the Apply Group Policy ACE, the Deny would take precedence and the GPO would not affect the user“.

2.4 A SAVOIR SUR APPLOCKER :
- Le mode de fonctionnement d’AppLocker est « Tout interdire sauf ». Lorsque l’on crée la première règle AppLocker, on crée indirectement la règle par défaut (non configurable), tout interdire.
- AppLocker ne gère pas les application posix ou le sous système 16 bits. Il faut donc bloquer ces deux sous systèmes. Voir stratégie Computerconfiguration/Administrative Templates/Windows-Components/Applicationcompatibility et activer le paramètre  « Deny access to 16bit applications ».
- Il y a un journal de sécurité dédié pour Applocker dans Windows 2008 R2.  Cela peut être pratique pour déterminer les exécutables qui sont nécessaires aux bons fonctionnement de vos applications.
- Il est possible de configurer Applocker en mode Audit uniquement. Attention la configuration par défaut est en mode appliqué.
- Surveiller la présence des erreurs Microsoft-Windows-AppLocker 8004. Elles permettent de savoir quels sont les applications qui sont interdites. Il faut ensuite identifier si c’est normal que cette soit interdite ou non.
 Log Name:      Microsoft-Windows-AppLocker/EXE and DLL
 Source:        Microsoft-Windows-AppLocker
 Date:          19/04/2011 19:21:15
 Event ID:      8004
 Task Category: None
 Level:         Error
 Keywords:     
 User:          SYSTEM
 Computer:      fr92sv0004.newlife.lan
 Description:   %SYSTEM32%\TASKHOST.EXE was prevented from running.
- AppLocker gère les formats de fichiers suivants : Les formats pris en charge :
 Exe : via règles « Executables Rules »
 Com : via règles « Executables Rules »
 Msi : via règles « Windows Installer »
 Msp : via règles « Windows Installer »
 ps1 : via règles « Script Rules »
 bat : via règles « Script Rules »
 cmd : via règles « Script Rules »
 vbs : via règles « Script Rules »
 js: via règles « Script Rules »
 dll : si la case « Enable the dll rule collection » est coché. Attention au performance. Il sera aussi nécessaire de savoir quels sont les DLL utilisés par les applications (très dangereux).
- Si un Applocker ne peut pas vérifier le certificat d’une application autorisée à l’aide d’une règle « Publisher », l’application est interdite.
“If the application’s certificate expires while the rule is enforced, the binary file will be blocked from running. A binary file is considered signed as long as the timestamp happened during the validity period of both the signing of the certificate and the time stamping of the certificates in the certificate chain.”

Pour plus d’informations sur Applocker :
- http://windowsteamblog.com/windows/b/springboard/archive/ 2009/08/18/understanding-windows-7-applocker.aspx
- http://technet.microsoft.com/en-us/library/dd723678(WS.10).aspx
- http://technet.microsoft.com/en-us/library/ee844118(WS.10).aspx
- http://technet.microsoft.com/en-us/library/ee619725(WS.10).aspx
- http://technet.microsoft.com/fr-fr/library/dd723686(WS.10).aspx
- http://www.windowsnetworking.com/articles_tutorials/Introduction-AppLocker-Part1.html
- http://www.windowsnetworking.com/articles_tutorials/Introduction-AppLocker-Part2.html
- http://www.windowsnetworking.com/articles_tutorials/Introduction-AppLocker-Part3.html
- http://www.windowsnetworking.com/articles_tutorials/Introduction-AppLocker-Part4.html
- http://technet.microsoft.com/en-us/windows/dd320283.aspx
- http://microsoftplatform.blogspot.com/2011_01_01_archive.html
- http://technet.microsoft.com/en-us/library/ee460956(WS.10).aspx
- http://technet.microsoft.com/en-us/library/ee460957(WS.10).aspx
- http://technet.microsoft.com/en-us/library/dd723678(WS.10).aspx
- http://microsoftplatform.blogspot.com/2011_01_01_archive.html
- http://64.4.11.252/en-us/library/ee619725(WS.10).aspx#BKMK_CertRevocation

2.5 MISE EN ŒUVRE D’APPLOCKER :
2.5.1 Etape 1 : créer et personnaliser les règles par défaut Applocker :
Editer l’objet de stratégie de groupe.
Créer les règles par défaut. Ce sont ces règles qui vont nous permettre aux systèmes de continuer à fonctionner correctement. Pour cela, cliquer sur « Create Default rules » dans les sections « Executables Rules », « Windows Installer » et « Script Rules ». On obtient à chaque fois trois règles autoriser.
Laisser uniquement la règle avec le groupe BUILTIN\Administrateurs (comprendre les comptes membres du groupe Administrators de la base SAM locale). En effet les règles pour les utilisateurs non administrateur sont trop permissives.
Créer une règle Autoriser tous les fichiers pour les comptes suivants (même règle que pour le groupe BUILTIN\Administrateurs) :
- NT AUTHORITY\SYSTEM
- NT AUTHORITY\LOCAL SERVICE
- NT AUTHORITY\NETWORK SERVICE
- NT AUTHORITY\NETWORK SERVICE
- NT AUTHORITY\SERVICE.
Remarque :
- Il peut être nécessaire d’autoriser d’autre entité de sécurité prédéfini comme IUSR
Le log ci-dessous semble indiquer que par défaut le compte SYSTEM n’a plus accès à tout.
 Log Name:      Microsoft-Windows-AppLocker/EXE and DLL
 Source:        Microsoft-Windows-AppLocker
 Date:          20/04/2011 16:06:47
 Event ID:      8004
 Task Category: None
 Level:         Error
 Keywords:     
 User:          SYSTEM
 Computer:      fr92sv0004.newlife.lan
 Description:   %SYSTEM32%\CONHOST.EXE was prevented from running.

2.5.2 Etape 2 : Les exécutables systèmes à autoriser :
A cette étape, seuls les membres du groupe administrateurs et les comptes SYSTEM peuvent ouvrir une session sur le serveur. Si un utilisateur essaie d’ouvrir une session, cela échoue. La session se ferme car le processus userinit.exe ne peut pas s’exécuter correctement.
Le tableau ci-dessous liste les exécutables à autoriser pour le groupe « Authenticated users » :

Processus à autoriser pour « Authenticated Users » :
- c:\windows\system32\DLLHOST.exe : permet de gérer les librairies virtuelles DLL : http://www.commentcamarche.net/contents/processus/dllhost-exe.php3
- c:\windows\explorer.exe : Explorateur Windows
- c:\windows\system32\Userinit.exe : processus qui initie la session de l’utilisateur. Charge l’explorateur Windows.
- c:\windows\system32\Dwm.exe : Voir http://msdn.microsoft.com/en-us/library/aa969540(v=vs.85).aspx
- c:\windows\system32\gpupdate.exe : permet d’actualiser les stratégies de groupe.
- c:\windows\system32\CONHOST.EXE : ce processus est obligatoire si l’on veut que l’utilisateur puisse exécuter un utilitaire en invite de commande comme GPUPDATE.
- c:\windows\system32\rdpclip.exe : permet copier / coller entre le client RDS et le serveur RDS : http://support.microsoft.com/kb/309825/en-us
- c:\windows\system32\Rdpinit.exe : dans le cadre d’une session RemoteApp, lance le processus RDPSHELL.EXE (une version mineur d’explorer.exe) : http://social.technet.microsoft.com/Forums/en/winserverTS/thread/845ac56d-a8c2-4188-96b2-6ae310b84011
- c:\windows\system32\Rdpshell.exe : s’exécute à la place d’explorer.exe dans le cadre d’une session RemoteApp. http://support.microsoft.com/kb/2384602/en-us et http://blogs.technet.com/b/askperf/archive/2008/02/22/ws2008-terminal-services-remoteapps.aspx
- c:\windows\system32\RUNDLL32.EXE : permet de charger des DLL comme un programme classique WIN32 : http://www.commentcamarche.net/contents/processus/rundll32-exe.php3
- c:\windows\system32\RUNONCE.EXE : permet d’exécuter les programmes au démarrage de la session.
- c:\windows\system32\SETHC.EXE :  permet les fonctionnalités d’accessibilité (touches rémanentes…). http://support.microsoft.com/kb/2516889/en-us
- c:\windows\system32\SLUI.exe :  activation Windows
- c:\windows\SPLWOW64.exe : si Windows 2008 R2 64 bits,  permet l’exécution des programmes 32bit avec la couche driver 64 bit : http://social.technet.microsoft.com/Forums/fr-FR/win7fr/thread/c62fb71c-f588-4ce6-875b-9c2bf452acc2/
- c:\windows\system32\TSTHEME.EXE :
- c:\windows\system32\TASKHOST.EXE: permet de lancer des DLL en tant que processus. http://answers.microsoft.com/en-us/windows/forum/windows_7-performance/taskhostexe/0882ab46-43ee-4d90-8404-6802f8f4f2cf
- c:\windows\system32\WERMGR.EXE : Windows Erreur Manager.
- C:\WINDOWS\system32\ctfmon.exe: ctfmon.exe active le TIP (Text Input Processor) des modes d’entrée complémentaires ainsi que la barre de langue Microsoft Office.  http://support.microsoft.com/kb/282599/fr
- C:\windows\system32\usrlogon.cmd : script de login par défaut.
- C:\WINDOWS\Application Compatibility Scripts : Script de login par défaut.
- C:\WINDOWS\System32\logon.scr : penser à autoriser les écrans de veille.
- \\nom_dns_domaine\netlogon : permet d’exécuter les scripts de login.
- \\nom_dns_domaine\sysvol : permet d’exécuter les scripts de login
- \\nom_netbios_domaine\netlogon : permet d’exécuter les scripts de login
- \\nom_netbios_domaine\sysvol : permet d’exécuter les scripts de login
- %logonserver%\netlogon : permet d’exécuter les scripts de login.
- %logonserver%\sysvol : permet d’exécuter les scripts de login.
- C:\Program Files\Citrix : excétables Citrix XenApp (chemin par défaut).
- C:\Temp\*\getpaths.cmd :

Pour plus d’informations, voir articles Microsoft :
- http://microsoftplatform.blogspot.com/2011/01/remote-control-rds-session-in-mixed_26.html 
- http://blogs.technet.com/b/askperf/archive/2008/02/22/ws2008-terminal-services-remoteapps.aspx
Applocker dispose d’un journal de sécurité qui permet de savoir quels exécutables ont été autorisés ou bloqués. Le plus simple est d’exécuter les applications avec Applocker d’activer pour déterminer les applications à autoriser.

2.5.3 Etape 3 : Création des règles Applocker pour les « Authenticated users » :
Avec AppLocker, on peut maintenant :
- Créer une règle qui s’applique à un utilisateurs ou à un groupe d’utilisateur.
- Créer des règles qui se basent sur les signatures numériques des programmes.  La majorité des programmes sont maintenant signés par les éditeurs (à l’aide de certificat) afin de valider que le programme n’a pas été modifiés par un tiers et prouvé l’identité de l’éditeur (programme provenant d’un éditeur de confiance). Dans l’exemple ci-dessous j’autorise toutes les versions d’Explorer.exe qui sont supérieur à la version 6.0.
- Générer automatiquement des règles à l’aide de la fonctionnalité « Generate Rules » en scannant un répertoire.

On va maintenant créer les règles pour permettre aux utilisateurs non administrateurs d’utiliser les programmes de la suite Office 2007.
Pour cela, on va utiliser la nouvelle fonction de création automatique des règles en cliquant sur « Automatically Generate Rules ».
On va demander à cet assistant de créer automatiquement des règles « Publisher » et de générer des règles de chemin d’accès pour les exécutables non signées.
On va éventuellement supprimer tous les exécutables Office que l’on ne souhaite pas autoriser.

2.5.4 Etape 4 : Configurer le service « Application Identity » :
Il faut maintenant configurer le service « Application Identity » pour démarrer automatiquement.  Sans ce service AppLocker ne fonctionne pas.
On peut faire cela manuellement ou mieux par GPO (interface grisée dans la console services.msc).

A+
Guillaume MATHIEU
PROSERVIA
Le bonheur c’est le partage.
http://msreport.free.fr

Comment sécuriser un serveur Terminal Server / Citrix XenApp / Presentation Server ?

avril 4th, 2011

Salut à tous

J’ai récemment travaillé sur la sécurisation d’un serveur Terminal Server.

Quelques rappels :
Le service Terminal Server / Remote Desktop Service permet de transformer une machine Windows Server en l’équivalent de plusieurs dizaines / centaines de stations de travail.
Les applications installées sur le serveur sont mises à disposition des utilisateurs.  L’administrateur peut publier le bureau Windows ou juste une application (avec Windows 2008 / 2008 R2 ou Citrix toute version).
Les utilisateurs accèdent à leur bureau / applications via le client Bureau à distance à travers le réseau local ou via Internet (le flux réseau peut être encapsulé dans du trafic HTTP/HTTPS).
Terminal Server / Citrix présente de nombreux avantages :
- Les utilisateurs peuvent travailler de chez eux via leurs stations de travail.
- Les données des utilisateurs restent dans le réseau de l’entreprise. Cela simplifie la sauvegarde et la sécurisation de ces données (risque de vol ordinateur portable…).
- La maintenance d’un ou plusieurs serveurs Terminal Server reste plus simple que la maintenance de centaines de stations de travail (mises à jour des logiciels…).

Cependant, un des gros défis de ce type d’architecture est la sécurité du ou des serveurs Terminal Server / Citrix :
- Les utilisateurs ne doivent pas pouvoir modifier le système et perturber les sessions des autres utilisateurs.
- Les utilisateurs ne doivent pas pouvoir télécharger / exécuter de virus.
- Les utilisateurs doivent uniquement pouvoir exécuter les applications publiées.

Remarque :
Citrix XenApp (anciennement Citrix Presentation Server) est une surcouche fonctionnelle à Terminal Server (ajout de fonctionnalités supplémentaires).

Pour plus d’informations sur le service Terminal Server / Remote Desktop Service, voir :
http://www.microsoft.com/windowsserver2008/en/us/rds-product-home.aspx

Cette article a pour but de montrer comment renforcer la sécurité sur un serveur Terminal Server / Citrix. Pour cela, nous prendrons le cas concret suivant :
J’ai travaillé pour une société qui souhaitait publier Excel 2003 pour ses utilisateurs.
- Les utilisateurs devaient pouvoir ouvrir un fichier Excel et lancer des calcul via une macro Excel.
- Ils devaient pouvoir enregistrer de nouvelles versions du fichier Excel.
- Il ne devait pas pouvoir récupérer le fichier Excel sur leurs stations de travail.
- Le serveur de publication était sous Windows 2003 Server Entreprise R2 SP2 / Office 2003 Entreprise avec une surcouche Citrix Presentation Server 4.5.

1. Comment sécuriser le serveur Terminal Server / Citrix Presentation Server 4.5 :
Je vous invite à lire tout d’abord les articles Microsoft ci dessous :
http://support.microsoft.com/kb/278295/en-us
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7f272fff-9a6e-40c7-b64e-7920e6ae6a0d&DisplayLang=en
http://technet.microsoft.com/en-us/library/bb457006.aspx
http://www.microsoft.com/office/orkarchive/2003ddl.htm

Pour résumé, on va sécuriser le serveur Terminal Server / Citrix :
- En désactivant de nombreuses fonctionnalités de l’interface graphique via les stratégies de groupe.
- En activant les stratégies de restrictions logicielles. Les utilisateurs ne doivent pouvoir ouvrir qu’Excel.
- En personnalisant le profil des utilisateurs (suppression de tous les icônes inutiles). On va personnaliser le profil par défaut.
- En désactivant la redirection des lecteurs locaux, imprimantes, presse papier, port COM à travers le service Terminal Server.
- En désactivant certaines fonctionnalités d’Excel via stratégies de groupes. Pour cela il faut importer l’ADM Office 2003 et Excel 2003 dans notre stratégie de groupe.
- En activant la fonctionnalité LoopBack des stratégies de groupe. Les paramètres de types “Configuration Utilisateurs” s’appliquent à un compte ordinateur. Créer une OU dédiée pour les serveurs Citrix et déplacer les comptes “ordinateur” du ou des serveurs Citrix.

Quelques retours d’expérience sur les stratégies de restrictions logicielles :
Pour les activer :
- Créer une stratégie de restriction logicielle dans « Computer Configuration ». Laisser en mode non restreint et configurer le fait que cela ne s’applique pas aux administrateurs.
- Créer une stratégie de restriction logicielle dans « User Configuration ». Passer en mode restreint et configurer le fait que cela ne s’applique pas aux administrateurs. Configurer une règle de chemin d’accès vers l’exécutable Excel. Attention, les stratégies de restriction logicielle s’appliquent aussi aux raccourcis. Il faut donc exécuter Excel (publication d’application).
Ne jamaius supprimer les règles pré-définies sinon le système ne marche plus.
Les racourcis sont considérés comme des exécutables. Il faut donc les autoriser individuellement. On peut définir les types de fichiers qui sont pris en charge par la stratégie de restrictions logicielles.

2. Pour que les stratégies de s’appliquent pas aux administrateurs :
- Créer un groupe. Au niveau de l’onglet sécurité de la stratégie de groupe, refuser le droit “Appliquer la stratégie de groupe” à ce groupe.

3. Pourquoi est il si difficile de sécuriser un serveur Terminal Server / Citrix Presentation Server ?
Je me place du point de vue du pirate. Mon objectif est de récupérer le fichier Excel publié ou d’attaquer le serveur.
- L’administrateur m’a publié uniquement Excel.
- L’accès à l’invite de commande est verrouillé.
- Je ne peux pas parcourir les lecteurs locaux.
- Je ne suis pas administrateur du serveur.

Comment faire pour ouvrir un invite de commande depuis Excel ?
Dans Excel, cliquer sur “Fichier”  | “Ouvrir”.
Accéder à l’endroit où vous avez un accès en écriture.
Faire un clic droit et créer un fichier appelé test.bat.
Faire un clic droit et cliquer sur “Edit”.
Dans le fichier “test.bat”, taper “Cmd”. Sauvegarder.
Faire un clic droit sur le fichier et cliquer sur “Open”. Cela ouvre une fenêtre “Invite de commande”.
On peut maintenant parcourir tous les lecteurs locaux même si l’administrateur a désactivé le fait de pouvoir parcourir les lecteurs locaux via l’Explorateur Windows.

Comment récupérer le contenu d’un fichier :
On appellera station distante, la station de l’utilisateur depuis laquelle la session Terminal Server a été ouverte.
Solution 1 : Installer PDF Writer sur votre station de travail. Ouvrir votre session TSE. Si l’administrateur a autorisé la redirection d’imprimante et que le pilote PDF Writer est installé sur le serveur Terminal Server, vous pouvez imprimer vers l’imprimante PDF Writer de la station distance depuis la session Terminal Server.
Solution 2 : De base, il est possible avec Terminal Server de monter les disques de la station distante sous forme de lecteurs au niveau de la session Terminal Server. Cela peut être désactivé.
Si l’option est activée, il suffit d’arriver à ouvrir une fenêtre “Invite de commande” (pour contourner toutes les GPO) et de faire un “COPY” du fichier à récupérer entre le disque du serveur et le disque de la station distante.
Solution 3 : Si le presse papier est activé entre la station distante et le serveur Terminal Server, vous pouvez aussi récupérer le fichier en ouvrant le fichier avec Notepad et en faisant du copier / coller.

4. Comment s’en sortir ?
Il ne faut surtout pas que les utilisateurs puissent ouvrir une fenêtre “Invite de commande”.
Il est possible de bloquer l’invite de commande. Cependant il faut aussi bloquer l’exécution des scripts en arrière plan sinon l’utilisateur peut créer un fichier BAT pour ouvrir l’invite de commande. Cela va empêcher l’exécution de tous les scripts de login donc attention danger. L’idéal est donc de désactiver tous les racourcis clavier / menu contextuel et donc d’empêcher l’utilisateur de créer un fichier BAT.
Il faut suivre très rigoureusement les articles de la partie 1.
Attention l’aide de Windows dispose de nombreux liens qui permettent d’ouvrir une fenêtre invite de commande. Le plus simple est d’arrêter le service d’aide.

5. La morale de l’histoire :
- La seule solution pour réellement empêcher les utilisateurs de récupérer des données depuis un serveur Terminal Server / Citrix est d’utiliser des technologies comme Active Directory Right Management Services.
- Si vous souhaitez uniquement protéger votre serveur et empêcher les utilisateurs de faire des modifications, l’application des articles de la partie 1 devrait vous apporter satisfaction.

A+
Guillaume MATHIEU
Consultant PROSERVIA
Le bonheur, c’est le partage.
http://msreport.free.fr

Arrêter d’arrêter les services Windows !

mars 22nd, 2011

Salut à tous

Juste un petit article pour un coup de gueule.
Arrêter de désactiver les services Windows ! Surtout quand on ne sait pas à quoi ils servent réellement.
Un petit tour d’horizon des services à ne surtout pas désactiver ! Je commence par les services les plus critiques.

1. Ne pas arrêter le service “DHCP client”
Même si je suis en IP FIXE, je n’arrête pas le service “DHCP client“.
Certe, le service “DHCP Client” permet de récupérer une adresse IP auprès d’un serveur DHCP mais il permet aussi de faire les mises à jour dynamiques DNS !
Je rappelle que la zone DNS correspondant à un domaine Active Directory contient des enregistrement qui permettent :
- Aux stations de travail de localiser un contrôleur de domaine
- Aux contrôleurs de domaine de répliquer entre eux.
Ces enregistrements sont générés dynamiquement par les contrôleurs de domaine Active Directory.
Si vous désactivez le service “DHCP Client” sur un contrôleur de domaine, vous risquez de gros problèmes (de réplication Active Directory…).
Je vous invite donc à consulter les articles suivants avant de faire ce type de personnalisation :
http://support.microsoft.com/kb/264539/en-us
http://support.microsoft.com/kb/306602/en-us
Remarque :
- Si le “DHCP Client” est arrêté, on a le message “Error: The system cannot find the file specified” quand on fait un ipconfig /registerdns.
- Le service “DNS client” gère en fait la fonctionnalité du cache DNS. Pour plus d’informations, voir :
http://support.microsoft.com/kb/318803/en-us

2. Ne pas arrêter le service “TCP/IP NetBIOS Helper” :
J’ai récemment rencontré ce problème sur une station de travail d’un VIP. Ce dernier était administrateur de sa machine. Il voulait optimiser les performances de son poste et a donc décidé d’arrêter plusieurs services (stupidité rare…).
Je rappelle que le service “TCP/IP NetBIOS Helper” intègre la fonctionnalité de client DFS. Si ce service est arrêté, je ne peux donc plus accèder aux racines DFS.
Les GPO et les script de login ne s’appliquent plus car je ne peux pas non plus me connecter à \\nbomdomainedns.local\netlogon et \\nbomdomainedns.local\sysvol (ce sont des MAP DFS systèmes…).
Je vous invite à lire l’article Microsoft suivant :
http://support.microsoft.com/kb/887303/en-us
Il n’est plus possible non plus de joindre une machine Windows XP au domaine (pas testé encore avec Windows Seven…).

3. Ne pas arrêter le Security Center (wscsvc) :
C’est déjà moins grave que les deux précédents.
Sous Windows Seven, je vous invite à configurer les paramètres de l’Action Center pour que ce dernier ne remonte plus d’infos bulles dans la configuration standard.
Chez un de mes clients, l’Action center ne remonte un warning que lorsque l’antivirus est arrêté sur la station de travail ou que le pare feu est désactivé.

4. Ne pas arrêter le service “Windows Firewall” :
Si vous souhaitez désactiver le pare feu Windows, désactiver le pare feu pour les 3 profils (domaine, public et privé). N’arrêter pas le service « Windows Firewall » car ce dernier intègre des règles internes qui permettent de limiter les accès des comptes de services comme « Local Service ». Pour plus d’informations :
http://technet.microsoft.com/en-us/library/ee126090(WS.10).aspx
http://www.techrepublic.com/article/windows-vistas-service-hardening-adds-a-valuable-layer-of-protection/6143915

Si vous le souhaitez, vous pouvez par contre redémarrer le service “Computer Browser” sur les serveurs Windows 2008 / 20908 R2 voir sur les stations de travail WIndows Vista / Seven.
En effet ce service permet d’accéder et de générer le voisinage réseau.
Si les utilisateurs n’utilisent pas le voisinage réseau, le laisser désactiver sur les stations de travail.
Sur les serveurs, je préconise de le redémarrer ( sur le contrôleur de domaine Emulateur PDC et sur deux autres contrôleur de domaine) si vous avez des stations de travail Windows XP (par défaut) et WIndows Vista / seven avec ce service de démarré.
En effet, je rappelle que le “MASTER Browser” (machine qui génère la liste de machines du voisinage réseau) est élu et que cela génère beaucoup de trafic réseau. Mieux vaut éviter que ce soit un ordinateur portable sous Windows XP Pro qui gagne l’élection. On risque d’avoir plusieurs dizaines d’élections par jour dans ce cas (si la personne se déconnecte du réseau très souvent).

A+
Guillaume MATHIEU
PROSERVIA
Le bonheur c’est le partage.
http://msreport.free.fr

Retour d’expérience sysprep -> “A fatal error occurred while trying to sysprep the machine” and how to personnalize the default profile

mars 21st, 2011

Bonjour

J’ai récemment travaillé sur la préparation d’un master Windows Seven.
Dans ce cadre, j’ai rencontré deux problèmes :
- Impossible de personnaliser le profil par défaut.
- Quand je lançais l’utilitaire SYSPREP, je rencontrais le message d’erreur suivant : « A fatal error occured while trying to sysprep the machine ».

Pour le problème de personnalisation, j’ai rapidement trouvé l’article Microsoft suivant :
http://support.microsoft.com/kb/973289/en-us
En effet il n’est plus possible de modifier un profil et de le copier dans le profil par défaut. En effet le bouton « Copy to » est grisé dans ce cas.

Pour le message d’erreur, cela a été un peu plus long. J’ai tout d’abord trouvé cet article Microsoft :
http://support.microsoft.com/kb/929828/en-us. Cependant, je n’étais pas dans ce cas.
Il s’agit en fait d’un bug. Pour contourner le problème, il faut arrêter le service « Windows Media Player Network Sharing Service » (wmpnetwk.exe). Pour cela, on peut exécuter la commande suivante :
Net stop WMPNetworkSvc
Merci à l’administrateur de ce site :
http://www.swishertech.com/blog5.php/…/-to-sy-7

A+
Guillaume MATHIEU
PROSERVIA
Le bonheur, c’est le partage.

Présentation et retour d’expériences ActiveRoles For Server

janvier 9th, 2011

Salut à tous

J’ai récemment travaillé sur le déploiement de la solution Quest  ActiveRoles for Server.

PRESENTATION DU PRODUIT :
ActiveRoles For Server (ARS pour les intimes) est une solution complète pour gérer une architecture d’annuaire Active Directory Domain Services (Active Directory) et Active Directory Application Services (ADAM).
Très concrètement, l’outil apporte de nombreuses fonctionnalités supplémentaires par rapport aux outils d’administration natifs Microsoft (Utilisateurs et ordinateurs Active Directory et Centre d’administration Active Directory).
Ci-dessous quelques fonctionnalités que j’ai mises en production chez les clients :
- Les groupes dynamiques : ajout d’une ressource à un groupe selon la valeur d’un attribut. Je l’ai mis en production pour donner accès à l’Intranet pour tous les  utilisateurs internes de la société. Les prestataires ne devaient pas accéder à l’Intranet (utilisation de l’attribut EmployeeType).
- Les groupes temporaires : ajout d’un objet à un groupe pour une durée de temps limitée. Je l’ai utilisé pour des utilisateurs qui devaient accéder pendant un  mois à des documents confidentiels.
- Les flux d’approbation (workflows) : une ou plusieurs personnes doivent valider ou non certaines actions effectuées sur l’annuaire par d’autres personnes.  Chez un de mes clients, toutes actions effectuées sur un compte utilisateur déclenchait l’envoie d’un mail à cet utilisateur.
- Une console web personnalisable : l’outil est livré avec une console MMC (très difficilement personnalisable) et avec une console web. Cette dernière peut être totalement personnalisée (modifications des formulaires de gestion des objets, ajouts de commandes…). Prenons le cas d’une entreprise qui utiliserait l’ExtensionAttribute1 pour définir un définir le numéro d’employé de chaque salarié. Cet attribut n’est pas présent pas défaut dans la console Utilisateurs et ordinateurs Active Directory.  De plus le nom du champ (Attribut étendu 1) dans cette console n’est pas des plus parlant. Pas de problème avec l’interface web.
- Historique des actions effectuées sur un objet ou par un compte utilisateur : les responsable seront ravis de pouvoir retrouver la personne qui a effectuée tel s ou tels actions sur l’annuaire. Attention pour cela, il est important de déléguer les droits d’administration de l’annuaire qu’au travers d’ActiveRoles for Server. Les personnes en charge de l’administration de l’annuaire doivent avoir aucun accès via les outils natifs Microsoft (ne pas répliquer les permissions ARS dans l’annuaire Active Directory).
- Les policies (stratégies) : Quel DSI n’a pas rêvé d’avoir un annuaire à jour avec des informations fiables et respectueuses du formalisme validé après de trop nombreuses réunions ? Avec les policies, vous pouvez obliger les équipes en charge de la gestion de l’annuaire à saisir certains champs avec un formalisme particulier (numéro de téléphone au format international, nom de famille en majuscule, champ société et adresse complétés…).
ActiveRoles Server permet via le module « Script Policies » d’exécuter des scripts VBS / PowerShell avant ou après la saisie (entre autres) d’un formulaire. Rien ne vous empêche de configurer automatiquement les accès aux applications lors de la création d’un compte utilisateur (provisionning).
ActiveRoles Server dispose aussi de la fonction de « déprovisionning » qui va nous permettre de définir un certains nombres de tâches à effectuer automatiquement quand on veut supprimer des accès à une personne (le compte peut être désactivé, exécution d’un script qui va supprimer des accès aux niveaux d’une application…).
- La dernière fonctionnalité que j’ai mise en place qui est de loin la plus importante reste la délégation d’administration. ActiveRoles Server permet de déléguer des droits au niveau ActiveRoles Server sans déléguer des droits au niveau l’Active Directory. L’intérêt d’est pouvoir faire déléguer des droits de manière très précise sans impacter les logiciels qui s’appuient sur l’annuaire.
Vous pouvez par exemple empêcher les utilisateurs HELPDESK de voir les unités d’organisation contenant leurs comptes utilisateurs dans ARS sans les empêcher de s’authentifier.

RETOURS D’EXPERIENCES :
Comme nous venons de le voir, le produit semble plutôt sympathique.
Cependant, je l’ai trouvé tout particulièrement difficile à déployer (gare aux bugs ou aux fonctionnalités limitées). Vous trouverez ci-dessous quelques retours d’expérience sur ce produit.

Retour d’expérience 1 : performance de l’outil
Attention, ARS est assez gourmant. Prévoir un serveur puissant au niveau I/O disque surtout si la base de données est installée localement. Je trouve parfois la console web poussive. Je vous invite donc à utiliser à la fois la console web (surtout pour les opérations avec des attributs Active Directory non standards) et la console MMC pour toutes autres opérations.

Retour d’expérience 2 : installation
Penser à séparer la base de données de l’historique, de la base de données de configuration. C’est une case à cocher lors de l’installation.
Le déploiement du serveur de rapport est  complexe (il faut quelques connaissances SQL Server).
Pour le déploiement d’ActiveRoles for Server 6.5, le compte utilisateur pour la liaison ODBC doit être SYSADMIN au niveau du serveur SQL.  Je pense que votre administrateur base de données SQL Server ne va pas être très content.
Je vous préconise aussi le déploiement des patchs suivants pour ActiveRoles For Server 6.5 :
https://support.quest.com/SUPPORT/index?page=solution&id=SOL60633
https://support.quest.com/Search/…Solutions&SKB=1

Retour d’expérience 3 : Intégration avec Exchange
Attention, de base ActiveRoles for Server n’intègre pas les commandes Exchange.
Pour disposer de ces commandes, il faut installer les outils d’administration Exchange sur le serveur ActiveRoles for Server. Il faut que la version de service pack / rollup des outils Exchange soit la même que sur le serveur Exchange, sinon gare aux bugs.
Pour que le MOVE-MAILBOX fonctionne, il faut que le compte de service soit le même que le compte de connexion au domaine (et un compte de service qui tournent avec des droits administrateur du domaine…) .
Plus grave,  les stratégies d’adresse de messagerie ne sont pas réappliquées quand on modifie un champ d’un groupe ou d’un compte utilisateur.  J’ai Paul qui passe d’une entité A à l’entité B de la société. Je change le champ « Département ». Normalement, mon adresse SMTP devrait changer.  Pas avec ActiveRoles for Server !  Et un script de POST EXECUTION à écrire !
http://activeroles.inside.quest.com/thread.jspa?messageID=13632
http://wiki.activeroles.inside.quest.com/…28or_group%29_email_address_in_pure_Exchange_2007_organization

Retour d’expérience 4 : les policies lorsque l’on modifie un objet
Un scandale à mon humble avis ou du gâchis je vous laisse choisir !
Les policies que l’on génère via l’assistant graphique ne fonctionnent que pour la création d’objet, pas pour la modification !
Pour appliquer une policy ActiveRoles for Server sur une action de modification, il faut écrire un script et configurer une policy de type « Script Execution ».
Voilà pourquoi un déploiement ActiveRoles for Server est toujours long !
Il existe heureusement quelques exemples de script sur le Script Center ActiveRoles for Server :
http://wiki.activeroles.inside.quest.com/index.php/Script_Center

Ci-dessous quelques exemples de script qui permettent de compléter les champs adresses d’un compte lors qu’un utilisateur sélectionne une liste déroulante (un attribut virtuel appelé edsva_site) :
La ligne suivante  Comp=Request.Get(”edsva_site”) permet d’obtenir la valeur saisie par l’utilisateur pour le champ edsva_site.
Sub onPostModify(Request)
  If Request.Class <> “user” Then Exit Sub 
  Comp=Request.Get(”edsva_site”)
  If Comp = “MSREPORT France” Then
    DirObj.put “streetAddress”, “8 route des Gardes 92190″
    DirObj.put “l”, “Meudon”
    DirObj.put “postalCode”, “92190″
    DirObj.put “c”, “FR”
    DirObj.setinfo
  End If
  If Comp = “PROSERVIA France” Then
    DirObj.put “streetAddress”, “Bureau des collines” & vbCrLf & “(ancienne adresse)”
    DirObj.put “l”, “SAINT CLOUD”
    DirObj.put “postalCode”, “92310″
    DirObj.put “c”, “FR”
    DirObj.setinfo
  End If
End Sub

Même principe mais avec le champ “page web” :
Sub onPostModify(Request)
  DirObj.put “wWWHomePage”, “msreport.free.fr”
  DirObj.setinfo
End Sub

Retour d’expérience 5 : délégation d’administration :
Attention à ne pas faire de chose trop complexe. Il faut maitriser les notions avancées de la délégation Active Directory pour s’en sortir.
Attention, il n’est pas possible de créer un Managed Unit qui se base sur une autre Managed Unit !

Retour d’expérience 6 : personnalisation de la console web :
On oublie la modification de la console MMC ActiveRoles for Server. Il faut compiler des choses et ça va trop loin pour moi…
La personnalisation de la console web est assez simple. Cependant l’ajout d’attribut en français est impossible (bug !).  Il faut passer en anglais !
Penser à bien recharger le site web après chaque modification sinon gros risque de problème.

Retour d’expérience 7 : problème avec les workflows par défaut :
Désactiver les deux workflows par défaut si vos utilisateurs ont un message d’erreur quand ils essaient d’ajouter des membres à un groupe créé via ARS.
Ce problème est lié à la gestion du propriétaire principal et secondaire !

Retour expérience 8 : erreur « Failed to move the object « Chemin LDAP de l’objet ». Administration Service encountered an error when moving the object « Chemin LDAP ». General access denied error :
Ce bug est lié à la mauvaise gestion de la « protection contre la suppression accidentelle » des objets. Cette option est activée par défaut quand on crée une unité d’organisation avec la console Utilisateurs et Ordinateurs Active Directory de Windows Server 2008 / 2008 R2.

Retour d’expérience 9 : erreur 500 Internal Server error au niveau du site web d’administration ActiveRoles For Server :
Le problème peut être reproduit ainsi :
On essaie d’accéder via les liens dans la console web à un objet auquel on n’a pas accès (une unité d’organisation par exemple). On a le message « erreur 500 Internal Server error. There is a problem with the resource you are looking for, and it cannot be displayed » avec une suite de caractères à faire peur.
Le problème provient du fait que le site web IIS est configuré pour afficher les erreurs réelles.
https://support.quest.com/Search/SolutionDetail.aspx?id=SOL61987&category=Solutions&SKB=1
Il faut le configurer le niveau d’erreur dans IIS et on a alors un message « Accès refusé » qui apparaît à la place.

CONCLUSION :
ActiveRoles for Server est un bon produit.
La non prise en charge des policies en interface graphique lors de la modification d’un objet complexifie le déploiement du produit et nécessite l’écriture de nombreux scripts cependant.
Attention, le mode de licence est par utilisateur.
Il est possible de configurer vos applications / scripts pour s’appuyer sur La base ARS via le provider ADSIEDIT et le produit Quest Management Shell for Active Directory (utiliser la commande Connect-QADService pour se connecter à la base ARS, voir Get-Help Connect-QADService –example).

A+
Guillaume MATHIEU
http://msreport.free.fr
Le bonheur c’est le partage.