Déménagement

La plateforme de blog étant devenue inutilisable, je dois donc déménager. A partir de maintenant,tous les billets seront publiés sur Simple (and secure) by design. j'espère vous y revoir. Pensez à vous réinscrire au fil RSS.Big Smile

BenoîtS – Simple and Secure (J’insiste sur le Secure).

Share this post:                                       
TechDays 2010 : La pression est dans les bars!

Maintenant que je suis MVP (depuis octobre 2009), on me demande quand est-ce que je vais animer une session au TechDays. Et bien, cela va finir par arriver et en 2010. Ce sera sur mon sujet de prédilection, DirectAccess, avec Stanislas Quastana.

 

BenoîtS – Simple, yes, Secure Maybe, by design for sure.

Share this post:                                       
HP Sizer For Microsoft Windows Server 2008 R2 Hyper-V

J’ai jeté un œil au produit et là oui je suis preneur. Certes, il se limite aux seules gammes de serveurs et stockages HP mais c’est complet dans la démarche.

Le plus important n’est pas le rapport machine virtuelle par hôte mais la capacité pour le stockage à adresser les demandes d’entrée sortie. Un sous dimensionnement du nombre de serveur Hyper-V n’est par rapport à un sous-dimensionnement du nombre d’entrées sortie que le stockage peut adresser.

Benoîts – Simple and secure by design (j’insiste sur le “Secure”)

Share this post:                                       
ADMT 3.2 en approche

Pour ceux qui ont suivi mon billet sur la compatibilité de ADMT 3.1 avec Windows Server 2008 R2, sachez que Microsoft travaille actuellement sur la beta de ADMT 3.2. Celle-ci est librement disponible sur Connect. Globalement, il faut retenir que :

  • Support de Windows Server 2008 R2
  • Pas d’installation sur un serveur “Core”
  • Pas d’installation sur un RODC
  • Pas de migration possible depuis Windows 2000, Windows 2003 minimum, …

 

Bref, pour ceux qui préparent des migration depuis Windows 2000 vers Windows Server 2008 R2, il y a des migraines à prévoir.

 

Benoîts – Simple and Secure by design (j’insiste sur le Secure).

Share this post:                                       
Techdays 2010, les inscriptions sont ouvertes

Tout est dans le titre, ne manque plus que l’adresse pour s’inscrire. La liste des sessions commence à peine à se remplir mais déjà certaines ont attiré mon attention. Voila donc déjà ma première sélection “Sécurité” :

  • Forefront Threat Management Gateway (TMG) 2010 - Demo Extravaganza (par ce que le produit est bon, tout comme ceux qui vont animer la session, na!)
  • Forefront Unified Access Gateway 2010 / IAG 2007 : les passerelles universelles d'accès distants (Ca parle de NAP et de DirectAccess, cela ne peut pas me déplaire, …)
  • Windows 7 & Windows Server 2008 R2 démo extravaganza Reloaded !!! (Définitivement Geek!)
  • Au cœur de BranchCache : optimisez vos bandes passantes avec Windows 7 & 2008 R2 !(Mon prochain mal de tête)
  • Suivez le câble et découvrez les nouveautés réseau de Windows Server 2008 R2 (Je sais pas pourquoi mais ça va faire très mal, level 400, ça augure rien de bon)
  • Meilleures pratiques et retour d'expérience sur le cluster de basculement (Failover Clustering) (Juste pour le fun)
  • DirectAccess avec Windows 7 & Forefront Unified Application Gateway 2010 (Celle la, je peux définitivement pas la louper)
  • Les nouveautés d'ADFS v2 (M’étant pris le mur avec la V1, j’ai décidé de récidiver, …)
  • Maman j'ai rétréci les virus ! (Obligatoire, impératif d’avoir suivi la session de l’année dernière pour comprendre pourquoi)

 

Et encore, ce ne sont que celles du domaine de la sécurité.

 

Benoîts – Simple and Secure by Design (J’insiste sur le “Secure”, na!)

Share this post:                                       
Infrastructure and planning guide for UAG

Mon collègue Alexandre GIRAUD me piquant mes news sur Hyper-V, je me devais de lui rendre l’appareil sur son domaine de prédilection : Microsoft Forefront Unified Access Gateway 2010. La version du produit arrivant à grand pas (peut être au pieds du sapin, qui sait?), l’équipe a donc mis à disposition le guide d’architecture associé au produit.

 

Le dit document permet de se faire une petite idée sur la démarche à adopter pour la mise en œuvre d’UAG, à une exception près et de taille, rien sur DirectAccess. Normal me direz-vous, il existe déjà un, dont j’ai déjà évoqué l’existence. Je confirme que l’assemblage des deux fonctionne avec cependant quelques nuances avec DirectAccess tel que j’ai pu le traiter jusqu’à maintenant. Après, il faudrait un IPD qui ressemblerait à :

DirectAccess + UAG + Network Access Protection + Smartcard + Branch Cache = Le scénario Branch Office ultime

 

Bref, un truc de malade mais très certainement réalisable (pas craquer, …), …

 

Benoîts – Simple and Secure by Design (J’insiste sur le “Secure”, persiste et signe, …)

Share this post:                                       
Une réflexion intéressante à faire partager

Pour une fois, je ne vais pas parler technique mais plutôt faire partager les réflexions plus qu’intéressantes de Stéphane PAPP : Les réseaux sociaux sont-ils une mode passagère? A lire et surtout méditer sans modération.

 

Le web 2.0 a développé de nouveaux usages de l’Internet. Le partage d’informations est aujourd’*** une demande de plus en plus croissante de la part des utilisateurs en entreprise.

 

Voila de nouveaux défis pour les responsables de la sécurité informatique qui doivent maintenant jongler entre la sécurité de leur système d’informations et le besoin d’ouverture vers l’extérieur de leurs utilisateurs. l’ouverture des réseaux d’entreprise est en marche (DirectAccess, fallait bien que je fasse de la technique sinon, …)

 

Benoîts – Simple and Secure by Design (j’insiste sur le “Secure”)

Share this post:                                       
DirectAccess IT Infrastructure Compatibility

Un nouveau document sur DirectAccess mais cette rédigé par des personnes extérieures à Microsoft. C’est certes moins complet que le Design Guide mis à disposition par Microsoft de début de mois mais cela propose un condensé intéressant avec les pointeurs nécessaires pour creuser un peu plus le sujet.

 

On regrettera juste le fait qu’il n’aborde que DirectAccess au sens purement Windows alors qu’il est nettement plus intéressant de le coupler avec Microsoft Forefront Unified Access Gateway 2010.

 

Le document est disponible à cette adresse.

 

Benoit – Simple “Yes”, Secure “yes”, but will really enjoy vacations.

Share this post:                                       
Network Access Protection and IPSEC : épisode 8 et fin

Après une parenthèse causée un par l’indisponibilité du blog mais aussi par un projet tout aussi intéressant qu’accaparant, revenons à notre série en cours sur Network Access Protection. Pour ceux qui prennent la série à ce stade, l’infrastructure NAP est totalement opérationnelle. Nous en sommes maintenant à la mise en œuvre des mesures d’isolation.

 

Etant donné que les clients et le serveur NPS ont déjà été traités, il ne reste plus que notre fameux serveur secure.corp.windows2008R2.com pour lequel l’accès doit être restreint si la conformité du poste de travail n’est pas établie. Volontairement, le contrôleur de domaine ne fera pas l’objet de mesure d’isolation car même non conforme, j’ai tout de même besoin de m’authentifier.

 

Donc attaquons nous à notre serveur : secure.corp.windows2008R2.com. Son accès doit être exclusivement réservé aux clients ayant démontré leur conformité. Comme c’est le dernier article, je vais donc skiper certaines étapes considérant qu’elles ont été documentées dans les billets précédents (Je passe en mode fainéant, les vacances approchent, …).

 

Stratégie de groupe d’isolation

Comme pour les deux précédentes mesures d’isolation, on va ici encore travailler avec les stratégies de groupe. On commencera donc par créer un conteneur organisationnel pour les serveurs sécurisés pour y déplacer notre serveur.

SECURE0 

Ensuite, nous pouvons créer une stratégie de groupe pour gérer notre isolation. Nous l’appelleront “NAP Serveurs sécurisés”.Comme pour les autres, on va créer une stratégie d’isolation uniquement pour le mode “Domaine”, le seul qui nous intéresse.

ISOLATION31 

On N’oublie pas le “ping” pour aider au dépannage.

ISOLATION31 

Passons maintenant à la stratégie d’isolation à proprement parlé.

ISOLATION33 

Petite subtilité à ce niveau avec l’exigence d’authentification. Le serveur exigera l’authentification pour les connexions entrantes sans pour autant l’imposer pour les connexions sortantes. Sinon, notre serveur serait incapable de joindre le contrôleur de domaine. Si on voulait être plus que complet alors oui, on exigerait aussi l’authentification sortante mais cela imposerait de positionner aussi une stratégie d’isolation sur le contrôleur de domaine.

SECURE1 

Ici encore, c’est une méthode d’authentification avancée.

SECURE2 

Avec une méthode d’authentification basée sur un certificat, plus précisément un certificat d’état de santé.

SECURE3 

La règle d’isolation ne sera applicable que pour les interfaces de type “domaine”, ce qui est le cas de mon serveur sécurisé, membre de domaine.

SECURE4

Elle sera nommé” IPSEC Secure Rule”.

SECURE5 

Dès lors que la stratégie de groupe est liée au conteneur “Serveurs sécurisés” et que notre serveur a bien appliqué la stratégie de groupe, la magie de l’IPSEC va opérer, à condition que le serveur dispose d’un certificat de santé. Oups, il doit donc lui aussi être placé dans le groupe des exceptions NAP.

 

Des preuves

La meilleure preuve, c’est encore le client qui lui est refusé l’accès au serveur par ce qu’il n’est pas conforme à la stratégie imposée par le serveur NPS.

SECURE6

 

Pourtant, dès que le client remonte un état de santé convenable, il accède bien au serveur sécurisé avec ses données critiques.

SECURE7 

Conclusion

Voila pour Network Access Protection. C’est la fin d’une première plongée dans Network Access Protection. On se rend vite compte que l’infrastructure en elle même n’est pas très compliqué. On peut donc mettre en place NAP sans aucune mesure d’isolation. C’est d’ailleurs ma recommandation. De cette manière on arrive à collecter des informations sur la capacité des systèmes à se maintenir conformes. Par contre, cela deviendra nettement plus complexe dès lors qu’il faudra traiter des mesures d’isolation.

 

On n’a pas tous la chance d’avoir un environnement utilisant les dernières technologies. On a encore beaucoup de serveurs de génération antérieurs pour lesquels la mise en place de la mesure d’isolation est un peu plus complexe à mettre en œuvre. C’est cette phase du projet qui sera la plus complexe puisque selon l’exigence d’isolation définie, on peut en arriver à isoler le poste de tout le système d’information. On constate alors ici les limites de NAP IPSEC et l’intérêt que peut présenter NAP 802.1.x, pourvu que l’infrastructure réseau s’y prête.

 

Benoîts – Simple and Secure by Design (j’insiste sur le “Secure”)

Share this post:                                       
Blog is back

Après un peu plus d’une semaine interruption, la plateforme de blog BlogCastrepository.Com est de nouveau opérationnelle. Pour éviter ce type de désagréments, tous les billets seront désormais dupliqués sur une autre plateforme dans un nouveau blog au nom bien évocateur :  Simple by Design (merci William B).

 

Pour l’instant, c’est un peu vide mais promis, dès que j’ai un peu de temps, je vais dupliquer le contenu. Etant donné aussi que je suis totalement débordé ces temps-ci, la publication des billets techniques à pris un peu de retard mais plein de sujets dans les cartons, donc le grand retour de DirectAccess.

 

Sur ce bonne fin de journée et à bientôt sur Simple by Design (mais aussi Secure!, il ne faut pas l’oublier-:) ).

 

Benoit – Simple “Yes”, Secure “yes”, but will really enjoy vacations.

Share this post:                                       
La bible de DirectAccess

Non, je n’ai pas écrit un livre sur le sujet (absolument pas le temps, surtout sur un sujet aussi vaste), mais chez Microsoft, il y a des personnes qui visiblement ont décidé de communiquer de la manière la plus claire possible sur le sujet. Tout ou presque tout ce qu’il y a à savoir sur la conception et la mise en œuvre de DirectAccess est disponible sous forme d’un seul et unique fichier Word.

 

Le document couvre tous les aspects de la conception et de la mise en œuvre de la fonctionnalité, dans différents scénarios. Globalement, il ne manque plus que l’intégration de NAP et c’est tout bon.

 

Pour ceux qui veulent toujours avoir une version actualisée, je ne peux que conseiller de conserver cette URL dans vos favoris de navigateur.

 

Benoîts – Simple and Secure by Design

Share this post:                                       
Utiliser Hyper-V Server 2008 R2 depuis une clé USB

Lorsque j’ai lu cette annonce la première fois, je ne comprenais pas l’intérêt de cela. Mais après réflexion, cela présente un intérêt pour industrialiser le déploiement des serveurs hôtes.

 

Si on regarde ce que propose déjà VMWARE, il est possible aujourd’*** d’acheter des serveurs intégrant un module Flash avec VMWARE ESXi. Et bien, bientôt, il sera possible de faire la même chose pour Hyper-V Server 2008 R2.

 

Si le cœur vous en dit de tester, la démarche technique a été industrialisée. C'est disponible à cette adresse.

 

Benoîts – Simple and Secure by Design

Share this post:                                       
Network Access Protection and IPSEC : épisode 7

Septième étage rayons NPS, HRA et PKI et isolation IPSEC. Après avoir travaillé sur l’isolation des postes de travail, on va s’attaquer à la première zone de sécurité, à savoir celle représentée par le serveur NPS et par extension tout serveur devant être mis à disposition des clients pour fournir des ressources pour se remettre en conformité (qui a dit SCCM?).

 

Qui dit isolation dit stratégies de groupe, on va donc créer une stratégie de groupe applicable aux serveurs contenus dans le conteneur “Frontière” qui contiendra :

  • La configuration du pare-feu
  • La stratégie d’Isolation IPSEC propre à ces serveurs

 

Le programme des réjouissances étant relativement sommaire, entrons dans le vif du sujet.

 

Création de la stratégie de groupe

Etant donné que le serveur NPS est déjà présent dans le conteneur “Frontière”, on ne va pas éditer une stratégie de groupe en prenant le risque que le serveur n’actualise sa configuration avec une GPO partielle. On va donc créer la GPO, la configurer, puis la lier au conteneur.

ISOLATION30 

Le paramétrage de la stratégie de groupe va donc commencer par la configuration du pare-feu. Etant donné que nos serveurs sont nécessairement raccordés au domaine, on va donc se limiter à configurer le mode de domaine.

ISOLATION31 

Comme pour le poste de travail, on va ajouter l’autorisation du “Ping” pour le dépannage.

ISOLATION32 

Bien entendu, si pour des raisons de sécurité notre serveur NPS disposait de deux interfaces réseau (public et privée), alors, il faudra affiner la configuration du pare-feu. Par exemple, ce sera très utile pour DirectAccess (Design in progress, …).

 

Passons maintenant à l’isolation de domaine, qui prendra la forme d’une “Connection Security Rule” qui ne fera que demander dans la mesure du possible l’authentification des communications.

ISOLATION33

Pour rappel, ces serveurs doivent pouvoir rester accessibles pour les postes non conformes.

ISOLATION34

Ici encore, ce sera une méthode d’authentification avancée (certificat).

ISOLATION35

On utilisera des certificats issus d’une autorité de certification racine, uniquement ceux présentant le rôle “System Health Authentication”.

ISOLATION36

Ne disposant que d’une seule interface réseau, sur un serveur raccordé au domaine, il n’est pas nécessaire d’appliquer cette mesure d’isolation aux autres types de réseau.

ISOLATION37

Reste plus qu’à nommer cette stratégie d’isolation.

ISOLATION38

On en a fini avec la stratégie de groupe.

ISOLATION39 

Liaison de la stratégie de groupe

La stratégie de groupe est prête, reste plus qu’à lier la stratégie de groupe au conteneur “Frontière” puis forcer l’application sur le serveur nps.corp.windows2008R2.com.

ISOLATION40 

Pour ceux qui ont suivi, ma configuration ne comprend pas de déclaration des protocoles entrants, même pas pour ICMPv4. La raison est toute simple, c’est que ces ports sont déjà ouverts sur le serveur. Par défaut, il est normal qu’une station de travail ne présente pas ses services de partages et d’impression aux autres. Par contre pour les serveurs, c’est normal qu’ils soient activés par défaut, surtout si certains rôles tels que ADCS en ont besoin (partage CertEnroll pour na pas le citer).

 

Pour rappel, le serveur NPS est membre du groupe d’exception NAP. On garantit ainsi qu’il ne pourra pas être configuré comme un client NAP. Si cela arrivait et que le serveur ne respectait pas les exigences de conformité, on serait bien embêté.

 

Premières constations des experts

Notre serveur NPS dispose bien d’un certificat prouvant son bon état de santé et ce qu’elle que soit son réel état de conformité.

CHECKNPS0 

Depuis le poste de travail Seven1.Corp.Windows2008r2.com (dans un état conforme), il est bien possible d’accéder aux répertoires partagés sur le serveur nps.corp.Windows2008r2.com.

CHECKNPS1 

Coté serveur nps.corp.Windows2008r2.com, on doit constater l’établissement d’une session IPSEC :

CHECKNPS2 

Si on arrête le service “Windows Firewall” sur le poste de travail, on doit constater que le certificat prouvant son bon état de santé a bien disparu :

CHECKNPS3 

Mais qu’il est toujours possible d’accéder aux ressources partagées sur le serveur.

CHECKNPS1 

Bien entendu, l’association de sécurité précédemment constatée, n’est plus. Pourtant le client accède bien au serveur. Donc cela fonctionne. A ce stade de la mise en œuvre, nous avons :

  • Des clients qui sont capable d'envoyer leur état de santé
  • Des clients capables d'exploiter le certificat de santé mis à leur disposition pour communiquer entre eux
  • Des clients capables d'exploiter le certificat de santé mis à leur disposition pour communiquer avec le serveur NPS
  • Des clients capables de communiquer avec le serveur NPS même lorsqu'ils ne sont pas conformes

 

Cela sent bon la fin me direz vous? et bien non, il reste encore deux scénarios d’isolation à mettre en œuvre. Reste t’il seulement deux épisodes? On sait jamais avec les experts, …

 

Benoîts – Simple and secure by design

Share this post:                                       
Network Access Protection and IPSEC : épisode 6

Après avoir mis les pieds dans NAP, passons maintenant à IPSEC. Pour rappel, dans le précédent billet, on a fini par démontrer que NAP fonctionnait sur les postes clients. Les postes conformes disposent d’un certificat numérique. Dès lors qu’ils ne sont plus conformes, le certificat est automatiquement supprimé du conteneur. C’est maintenant que tout se complique. On va utiliser ces certificats.

 

Configuration du pare-feu

Maintenant, il faut rentrer dans le monde d’IPSEC et plus particulièrement dans l’isolation IPSEC. On va donc demander aux postes de travail d’utiliser le certificat mis à leur disposition pour établir des communications sécurisées. Pour cela, on va s’attaquer à la configuration du pare-feu des postes clients avec la GPO “NAP Configuration Clients”. Commençons par configurer une stratégie de par-feu pour les réseaux de domaine :

ISOLATION0 

On va reproduire la même configuration pour les réseaux privés. Pourquoi? Par ce que dès lors qu’on voudra faire du NAP à l’extérieur de l’entreprise (J’ai pas dit DirectAccess?), ce sera fort utile :

ISOLATION1

 

Donc même configuration pour les réseaux publics :

ISOLATION2 

Reste maintenant à déclarer le protocole ICMP comme autorisé pour le troubleshooting (On verra qu’il en faut plus pour que cela fonctionne).

ISOLATION3 

Configuration de l’isolation IPSEC

Voila donc pour le pare-feu, maintenant, il faut configurer le poste de travail pour qu’il exige les communications sécurisées en entrée et sollicite les communications sortantes sécurisées. On reste donc dans la stratégie de groupe mais cette fois pour des “Connection Security Rules”, plus précisément pour une isolation IPSEC :

ISOLATION4

 

L’idée générale sera donc que le client exige que les communications entrantes sont bien authentifiées (à l’aide d’un certificat de santé) et que les communications sortantes devraient l’être aussi si bien entendu le poste dispose d’un tel type de certificat :

ISOLATION5

 

Les communications entrantes authentifiées sont nécessaires car elles vont nous permettre d’isoler les postes entre eux. Pour la méthode d’authentification, point de choix “Certificat” dans l’interface donc ce sera “Advanced” :

ISOLATION6

 

Ce choix va nous permettre de spécifier l’ordre d’utilisation des méthodes d’authentification. Dans le cas qui nous occupe, ce sera le certificat ordinateur issu d’une autorité de certification racine et uniquement si c’est un certificat de santé :

ISOLATION7

 

Cette mesure d’isolation sera appliquée à tous les profils de pare-feu par défaut. Donc par extension, il serait possible d’avoir des stratégies d’isolation distinctes selon les réseaux, donc des certificats distincts, intéressant, …

ISOLATION8

 

On va finir par la nommer, tout simplement :

ISOLATION9

 

Déclarer les protocoles entrants

Un peu au dessus, j’ai indiqué que le trafic réseau entrant devait obligatoirement être authentifié, encore faut-il préciser pour quel type de trafic. Pour nos postes de travail on va faire simple, à savoir l’utilisation des protocoles liés au partage de fichiers et d’impression. En complément, on va même autoriser la réponse aux requêtes ICMPv4 entrantes (Le Ping quoi!). On va commencer avec le trafic réseau entrant pour l’ensemble des protocoles regroupés sous l’appellation “File and Printer Sharing” :

ISOLATION10

 

Et oui, il y en a des règles. Je vais pas faire le tri, on prendra tout ce qui est proposé dans l’interface :

ISOLATION11

 

Et indiquer que les communications entrantes devront être sécurisées, avec quelques finesses :

ISOLATION12

 

La finesse étant d’authentifier la connexion sans pour autant requérir le chiffrement des données. Ce choix va permettre à nos équipes réseau de continuer à analyser le contenu des trames réseau :

ISOLATION13

 

Il est possible de filtrer les communications entrantes en fonction d’un groupe d’un ou plusieurs utilisateurs, dans le cas qui nous occupe, on ne s’en occupera pas :

ISOLATION14 

Idem pour le filtrage d’ordinateurs :

ISOLATION15

 

Nous voila donc avec nos règles de pare-feu entrantes pour les protocoles en liaison avec le partage de fichiers et d’impression :

ISOLATION16

 

Puis, on va s’attaquer au protocole ICMPv4 entrant avec une nouvelle règle de pare-feu entrante. Pas de bol, “Ping” n’est pas un protocole référencé, donc on va faire du sur-mesure :

ICMPINBOUND0

La règle concernera tout le monde sans exception.

ICMPINBOUND1

Mais uniquement le protocole ICMPv4 (Il faudra une autre règle pour ICMPv6).

ICMPINBOUND2

ICMPv4 oui mais uniquement pour le “Echo Request”, ce qui correspond au “Ping” :

ICMPINBOUND3

Et bien pour lui, ce sera autorisé sur le pare-feu en entrée sans nécessiter que la connexion soit sécurisée :

ICMPINBOUND4

Cette règle va même s’appliquer à tout type de réseaux.

ICMPINBOUND5

Elle aura même un nom explicit.

ICMPINBOUND6

Nous voila donc avec nos règles de pare-feu. Reste plus qu’à ce que nos postes actualisent leurs stratégies de groupe pour tester tout cela.

ICMPINBOUND7 

Tester le bouzin

A ce stade de la mise en œuvre de l’isolation IPSEC, on ne peut tester que la communication entre nos deux postes clients. Etant donné que l’ensemble de protocoles en relation avec les services de partages de fichiers et d’impression est autorisé sur le pare-feu en entrée uniquement si l’association IPSEC est en place, voila notre test. Sur mon poste de travail “seven2.corp.Windows2008R2.com”, j’ai créé une console d’administration contenant les composants :

  • Magasin de certificat Ordinateur local
  • Pare-Feu Windows avec sécurité avancée

 

A ce stade, notre poste de travail est bien conforme puis qu’il dispose d’un certificat.

ISOLATION17 

Et lors qu’il tente d’accéder au poste de travail “seven1.corp.Windows2008R2.com”, il y arrive bien car l’association de sécurité est opérationnelle.

ISOLATION18 

Par contre, si j’arrête le pare-feu de mon poste de travail “seven2.corp.Windows2008R2.com”, on constate tout de suite que le certificat n’est plus.

ISOLATION19 

Et que lorsqu’on tente de nouveau au poste de travail seven1.corp.Windows2008R2.com, c’est automatiquement refusé car celui-ci exige l’établissement d’une authentification IPSEC basée sur le certificat.

ISOLATION20 

Pour preuve que ce n’est pas un problème réseau, on va “pinger” notre poste de travail.

ISOLATION21

A ce stade, on en a fini avec l’isolation IPSEC sur les postes de travail. Etant donné que le processus d’isolation repose sur l’exigence d’authentification de l’hôte de destination, il apparait donc clair qu’il faudra mettre en place des stratégies d’isolations pour :

  • Le serveur NPS
  • Le serveur sécurisé
  • Le contrôleur de domaine

Le serveur NPS fera justement l’objet du prochain billet.

 

Note : Pour Windows XP SP3, la configuration sera quelque peu différente mais le principe reste fondamentalement le même.

 

Benoîts – Simple and Secure by Design

Share this post:                                       
Network Access Protection and IPSEC : épisode 5

On commence enfin à s’approcher de NAP. Techniquement, la base est en place, reste maintenant à l’exploiter pour mettre en place NAP puis les stratégies de pare-feu d’isolation de IPSEC.

 

Configuration des différentes stratégies

Pour ceux qui comme moi avaient expérimenté NAP avant la Beta 3 de Windows 2008 (c’est pas si lointain que cela), on n’avait pas encore l’assistant. Certes ils ne font pas tout mais ils permettent de mettre en place une bonne base de travail pour la suite. Commençons donc  par indiquer quelle méthode d’implémentation de NAP nous allons configurer :

NAPCONFIG0

A ce stade, la notion de “client RADIUS” ne nous intéresse pas car le serveur hébergeant le HRA et le NPS sont identiques. Il n’y a donc pas de besoin d’authentification. Par contre, dès lors qu’on désirera mettre en place une forme de tolérance aux pannes ou même plusieurs HRA (interne/externe), il faudra penser à les renseigner à ce stade et les configurer convenablement :

NAPCONFIG1

Il est techniquement possible de filtrer l’étendue d’application de la “Connection Request Policy” à une population donnée. Par exemple, il peut être intéressant de prévoir des stratégies différentes pour les postes nomades, les VIP ou même les serveurs. Dans le cas de la démonstration, on va faire simple (pour rappel, Simple and Secure by Design, c’est ici) :

NAPCONFIG2

Nous en arrivons à la définition de la conformité. Celle-ci s’exprime au travers des SHV coté serveur. Donc si on a plusieurs SHV, il peut être intéressant de les avoir déjà installé. A ce stade, on va indiquer deux choses :

  • Les SHV que l’on va utiliser dans les “Health Policies”
  • Le fait qu’on active ou non la remédiation automatique

Ce dernier point permet au NPS d’indiquer dans sa réponse les ressources à utiliser pour corriger le problème de conformité. Dans le cas de notre expérimentation, j’ai volontairement désactivé cette fonction car elle m’empêche de bien démontrer le bon fonctionnement de NAP (puis qu’elle va corriger le problème de conformité que je vais introduire plus tard dans ce billet) :

NAPCONFIG3

L’assistant finit par nous résumer que qu’il va mettre en place. A ce stade, on peut noter la présence du lien “Configuration Details” qui va générer une page web qui va résumer toute la configuration (utile pour documenter la mise en œuvre, ce qui est une excellente pratique) :

NAPCONFIG4 

Histoire de démontrer le bon fonctionnement de NAP, j’ai volontairement désactivé l’auto-remédiation. En plus, on va délibérément simplifier les exigences de complexité au minimum. La seul critère de conformité sera la présence du pare-feu dans un état actif. Pourquoi faire si simple? Déjà pour démontrer que les mécanismes de base fonctionnent bien. Si tout fonctionne à ce stade, on corsera progressivement la chose. C’est la meilleur démarche pour mettre NAP en œuvre :

NAPCONFIG5

A ce stade, la configuration du NPS intègre :

  • Une “connection Request Policy” indiquant que les requêtes d’authentification arrivant sont bien traitées localement par le NPS (et non redirigées vers un autre NPS).
  • Deux “Health Policy” décrivant les exigences de conformité selon le ou les SHV utilisés
  • Deux “Network Policies” décrivant les conditions requises, les contraintes et la réponse NAP à apporter.

 

Note : Ceux qui iront faire un tour dans les “Network Policies” découvriront qu’il est possible de configurer NAP dans un mode “Audit”. Cela signifie que le NPS va bien identifier le poste client comme non conforme mais que les mesures d’isolation ne seront pas mises en œuvre. L’intérêt de ce mode de fonctionnement est de faire “tourner NAP à vide” pour valider les différents scénarios qui font qu’un poste conforme ne l’est plus (nouveau correctif de sécurité, signature antivirus obsolète, bref tout le cahier de recette normalement prévu dans une phase d’architecture).

 

Petite subtilité de Windows Server 2008 R2, à savoir la possibilité de disposer de plusieurs stratégies pour un même SHV. L’intérêt est de pouvoir proposer plusieurs niveaux d’exigence de conformité. Avec Windows Server 2008, il était nécessaire d’avoir un serveur par niveau de conformité à mettre en œuvre.

 

NAP coté client

Maintenant, il faut penser à travailler sur les clients. On va commencer par créer un conteneur organisationnel pour y regrouper tous les postes de travail :

NAPCONFIG6 

Ceci facilitera la mise en place d’une stratégie de pare-feu avec une stratégie de groupe:

NAPCONFIG7

Le premier paramètre nécessaire, c’est la réactivation du centre de sécurité. C’est ce composant qui assure la collecte des états de santé des SHA. On va commencer par s’assurer que le composant est bien opérationnel car il est désactivé par défaut dans le cas de stations raccordé au domaine :

NAPCONFIG8

Ensuite, le second paramètre, c’est la configuration de la méthode d’enforcement  IPSEC. Globalement, c’est indiquer au client NAP comment remonter son état de santé :

NAPCONFIG9

Le troisième paramètre sera la configuration de l’interface utilisateur en cas de non conformité :

NAPCONFIG10

Pour le suivant, c’est un peu plus complexe. Il s’agit de configurer la liste des serveurs approuvés qui seront utilisés par les clients NAP pour soumettre leur état se santé :

NAPCONFIG11

Les plus attentifs remarqueront que les URL ne sont pas sécurisées. Nous sommes dans le cadre d’une expérimentation. Enfin, il ne nous reste plus qu’à nous assurer que l’agent NAP est bien démarré sur les postes clients. Sans lui, rien ne fonctionnera (Une installation par défaut de Windows Seven ne démarre pas ce service) :

NAPCONFIG12

Positionnons maintenant la stratégie de groupe sur le conteneur '”Postes Clients NAP” :

NAPCONFIG13

Et déplaçons les comptes ordinateurs des postes de travail Windows Seven dans le conteneur :

NAPCONFIG14

Tester la conformité du client

Après un bon redémarrage des postes de travail, une simple commande “NAPSTAT.EXE” doit nous indiquer l’état de notre poste de travail :

NAPRESULT0

Cette réponse est normale. Notre seule exigence de conformité, c’est la présence du pare-feu de Windows Seven dans un état activé. Quand on sait que c’est son mode de fonctionnement par défaut, c’est donc normal d’être conforme à ce stade. On peut même constater la présence d’un certificat prouvant l’état de santé du poste de travail :

NAPRESULT1

On a donc la preuve numérique que notre poste de travail a été déclaré conforme par le serveur NPS. Cet état de conformité est valable  :

  • Tant que le certificat n’expire pas (4 heures)
  • Tant que le certificat n’est pas supprimé du conteneur (non conformité détectée)
  • Tant que les conditions restent remplies (attention, petite subtilité avec les correctifs, l’évaluation est réalisée toute les heures avec le SHA Windows)

 

Testons la non conformité du client

Pour notre expérimentation, la définition de la conformité est simple : Le pare-feu doit être actif. Si on arrête le service du pare-feu de la station de travail, c’est automatique :

NAPRESULT2 

Pour vérifier, le certificat à disparu. Le système ne pourra donc plus signer ses communications réseau avec :

NAPRESULT3

Etant donné que l’auto-remédiation a été désactivé, c’est à nous de redémarrer le service pour que l’état de santé remonté par le poste de travail permettre d’appliquer la “Network Policy” de bonne conformité. A ce stade de la mise en œuvre, la mécanique propre à NAP est en place. Il nous reste à traiter les différents scénarios d’isolation :

  • L’isolation d’un client non conforme par rapport aux autres
  • Les ressources accessibles par un client non conforme
  • L’isolation d’un client non conforme lorsqu’il tente d’accéder à des ressources

 

Benoîts – Simple and Secure by Design (MVP sécurité oblige, …)

Share this post:                                       
Vous avez dit DNSSEC?

Une petite pause dans la série (NAP & IPSEC) pour compléter un sujet déjà partiellement abordé, à savoir DNSSEC. Partiellement oui, car on a déjà abordé avec DirectAccess, à savoir la Name Resolution Policy Table. Ce composant magique qui permettait de rediriger les requêtes DNS pour certains domaines DNS (voire même pour tous) pour résoudre des noms dans les zones DNS internes de l’entreprise.

 

Voila un des usages de NRPT. Plus généralement, ce composant est impliqué dans la mise en œuvre de DNSEEC. Pour ceux qui ont suivi l’actualité informatique de l’année dernière, un certain Dan Kaminsky a découvert une faille dans le protocole DNS pouvant permettre de tromper l’internaute quand au site qu’il désire accéder. La faille étant liée au protocole, toutes les implémentations de DNS devaient être corrigées. La faille a été comblée, cependant cela ne résout pas le problème de base de DNS : Ce protocole n’a jamais été conçu pour intégrer des mécanismes de sécurité.

 

C’est pour répondre à cette problématique qu’a été développé DNSSEC (RFC 4033, 4034, et 4035). Le mécanisme général est de permettre aux serveurs DNS de disposer d’une signature numérique que les clients pourront venir vérifier. Cette approche permet de se prémunir contre le Spoofing et les attaques de type “Man in the Middle”.

 

Si le sujet vous intéresse, Microsoft vient de mettre à disposition un document nommé “DNSSEC Deployment Guide”. Dès que j’ai un peu de temps, je reviendrai certainement dessus.

 

BenoîtS – Simple and Secure by Design.

Share this post:                                       
Les mystères de la CRL enfin expliqués

Pour ceux qui ont de près ou de loin touché à la PKI se sont forcément cassé les dents sur les grand mystères autour de la gestion des listes de révocation (CRL et CRLD). Disons le clairement, il arrive souvent que cela tombe en marche sans que nous puissions réellement l’expliquer. Pour la génération Windows XP/Windows Server 2003, on disposait d’une référence assez complète à cette URL.

 

Par contre, avec l’arrivée de Windows VISTA/Windows Server 2008, les choses se sont compliquées (OCSP, mise en cache HTTP, …). Bref un nouveau cauchemar. Après un peu d’attente, l’équipe PKI chez Microsoft a enfin compilé toutes les informations en un seul et unique document disponible à cette adresse.

 

Bonne PKI à vous :)

 

Benoîts – Simple and Secure by Design

Share this post:                                       
Network Access Protection and IPSEC : épisode 4

Maintenant que nous en avons fini avec notre autorité de certification racine, attaquons nous à quelque chose de plus consistant, à savoir :

  • Notre autorité de certification autonome, subordonnée à RootCA
  • Le rôle NPS
  • Le Health Registration Authority

 

Setup First

Les éléments précédemment cités étant des rôles, il faudra bien les installer sur le serveur nps.corp.windows2008R2.com. Commençons donc. Sur le serveur on va installer tous les rôles cités :

INSTALLHRA0

 

Le fait de cocher la case d’option “Health Registration Authority” va automatiquement nous indiquer qu’il sera nécessaire d’installer un serveur web. Ceci est rendu nécessaire car le HRA est uniquement accessible par les clients sous forme d’URL.

INSTALLHRA1

 

Notre HRA doit impérativement être associée à une autorité de certification. Cependant, à ce stade de l’installation, elle n’est même pas encore installée. Il nous fout donc indiquer une configuration ultérieure :

INSTALLHRA2

 

Le HRA est capable de traiter les demandes authentifiées en provenance des machines du domaine. Il est aussi capable de traiter les demandes en provenance des systèmes non raccordés au domaine. Les demandes de certificats sont donc anonymes. Ce mode de fonctionnement est très pratique pour les postes en cours de déploiement, qui ne sont pas encore raccordé au domaine :

INSTALLHRA3

 

Les URL utilisées  par les clients  peuvent être sécurisées en utilisant le protocole HTTPS. Ceci implique des certificats. Cependant, nous sommes en phase d’installation des rôles. Pour la configuration, on repassera plus tard :

INSTALLHRA4

 

Ici encore, l’installation de l’autorité de certification sera complétée par le site web de demande de certificats. L’intérêt est de pouvoir soumettre les demandes sans passer par la console d’administration:

INSTALLHRA5

 

Notre autorité de certification secondaire sera de type autonome, ce qui implique que celle-ci n’utilisera pas Active Directory. Par conséquence, il ne sera pas possible de réaliser des demande de certificats automatiques, encore moins des renouvellement. Cela ne nous posera pas de problème puis que le HRA pilotera tout cela :

INSTALLHRA6

 

Notre autorité autonome sera de type secondaire, c’est à dire subordonnée à l’autorité de certification principale ROOTCA.

INSTALLHRA7

 

Ici encore, le seul choix possible, c’est de créer une nouvelle clé privée.

INSTALLHRA8

 

Tous les choix proposés par défaut sont conservés. Dans une implémentation réelle, on aurait réduit la taille de la clé :

INSTALLHRA9

 

Notre nouvelle autorité de certification sera nommée NAPCA, indiquant ainsi qu’elle sera dédiée à cette fonction. Dans le cadre de NAP IPSEC, c’est une bonne pratique vu le volume de certificats qui seront générés. Les listes de révocations vont être volumineuses!

INSTALLHRA10

 

Le choix fainéant aurait été de réaliser la demande en ligne profitant ainsi de l’enregistrement automatique des demandes de certificats et de la délivrance (puisque l’utilisateur Administrateur que je suis a le droit de demander ce type de certificat). Et bien non, on va illustrer cela à l’ancienne :

INSTALLHRA11

 

Pas la peine d’isoler des fichiers en relation avec la base de données, il n’y a pas de séparation des rôles (c’est mal, …).

INSTALLHRA12

 

L’installation du serveur Web comprend déjà toutes les options nécessaires, pas la peine d’en rajouter :

INSTALLHRA13

 

On arrive à la fin ou presque. Plus qu’une confirmation.

INSTALLHRA14

 

Le processus d’installation nous indique que l’installation est techniquement terminée mais pour que l’autorité de certification et le HRA soient opérationnel, il reste du travail :

INSTALLHRA15

 

Demander le certificat de l’autorité de certification autonome

Comme j’ai pas voulu être fainéant et stocker la demande de certificat dans un fichier texte, il ne me reste plus qu’à la soumettre à l’autorité de certification RootCA au travers du site web d’enregistrement accessible via l’URL : http://dc.corp.windows2008R2.Com/CertServ (pas de HTTPS mais quelle honte. Oui mais toujours en laboratoire, na!). On va donc effectuer une demande de certificat :

INSTALLCA0

 

Une authentification sera nécessaire. A ce stade, seul l’administrateur du domaine peut demander un certificat pour une autorité de certification secondaire (toujours pas de séparation des rôles, tsss!). Ce ne sera pas une demande pour un certificat utilisateur mais une demande avancée :

INSTALLCA1

 

La demande existant déjà sous forme de fichier requête, on va donc soumettre son contenu à l’autorité de certification :

INSTALLCA2

 

Le contenu du fichier de requête (à l’exclusion des marqueurs de début et fin) doit être copié dans la zone de texte prévue à cet effet. Reste plus qu’à sélectionner le gabarit : Subordinate Certification Authority :

INSTALLCA3

 

Oh, miracle! Mon utilisateur est autorisé à soumettre un tel type de demande et à les valider automatiquement. Reste plus qu’à télécharger le certificat :

INSTALLCA4

 

Oui, on télécharge le certificat car il doit être placé dans un magasin spécifique pour être utilisable par l’autorité de certification. En plus, cela permettra de pouvoir le stocker, de préférence dans un endroit sûr.

INSTALLCA5

 
Installer le certificat de l’autorité de certification

Il ne reste plus qu’à installer le certificat en demandant son installation par la console d’administration de l’autorité de certification (Il aurait été possible de réaliser l’opération avec quelques commandes CERTUTIL.EXE mais bon, …).

INSTALLCA6

 

Le certificat installé, si tout est opérationnel, alors il doit être possible de démarrer cette nouvelle autorité de certification :

INSTALLCA7

 

Et effectivement elle fonctionne.

INSTALLCA8

 
Configuration de la politique de la CA autonome

Reste maintenant à la configurer. En premier lieu pour délivrer automatiquement les certificats dès lors que les demandes sont émises par un demandeur autorisé (qui sera le HRA).

POLICYMODULE0

 

C’est un paramétrage qui implique un arrêt.

POLICYMODULE1 

Puis un redémarrage le la CA pour être pris en compte.

POLICYMODULE2

 

Pour que le HRA soit autorisé, encore faut-il qu’il dispose des permissions suffisantes. Dans notre cas, le HRA est installé sur le même serveur que l’autorité de certification autonome (c’est moche mais on est en laboratoire, pas en production!). On peut donc se contenter de positionner les permissions pour le contexte “Network Service”. Sinon, c’est le compte ordinateur qu’il faut spécifier :

POLICYMODULE3

 
Configuration du Health Registration Authority

La configuration du HRA n’était pas complète. En effet il manquait encore auprès de quelle autorité de certification soumettre les demandes :

HRACONFIG0

 

Ainsi que de s’assurer que c’est bien une autorité autonome. Avec Windows Server 2008 R2, on pourrait utiliser une autorité d’entreprise, ce qui permettrait de différencier les certificats pour les demandes authentifiées des celles qui sont anonymes. Ce choix aurait permit d’éviter d’installer une autorité de certification supplémentaire mais j’ai décidé de continuer à dédier mon autorité de certification à ce rôle précis pour raison de volumétrie de la liste de révocation (en plus, je reste compatible avec Windows Server 2008). On remarquera que les certificats générés seront valables seulement quatre heures :

HRACONFIG1

 

Et pour finir avec la PKI, une petite subtilité registre avec la clé de registre indiquant la périodicité selon laquelle les certificats inutiles seront supprimés de la base de données. La valeur par défaut est de cinq minutes :

HRACONFIG2 

Voila pour l’installation de notre serveur NPS. Ce fut long mais on en a fini avec l’installation. Le prochain billet sera dédié à la mise en œuvre de NAP. Après, on pourra s’attacher à la mise en œuvre des mécanismes d’isolation IPSEC (on va s’éclater, promis!).

 

Benoîts- Simple and Secure by Design

Share this post:                                       
Network Access Protection and IPSEC : épisode 3

Pour ce troisième billet, entrons dans le vif du sujet avec la PKI. Plus précisément l’autorité racine de confiance intégrée à l’Active Directory dont nous allons avoir besoin. Le principal intérêt d’une autorité racine de de confiance intégrée à l’annuaire Active Directory, c’est que tous les postes du domaine pourront l’utiliser car déclarée comme racine de confiance.

 

Après, ce n’est pas cette autorité de certification qui sera chargée de délivrer des certificats prouvant le bon état de santé des postes de travail. On va devoir dédier une autorité de certification à ce rôle. L'implémentation NAP IPSEC repose sur des certificats, la mise en œuvre ne prévoit pas d'utilisation des listes de révocation. Cela peut paraître étrange mais cela s'explique par deux raisons :

  • La durée de vie des certificats délivrés sera relativement courte (en heures)
  • Le trafic engendré par la publication et l'exploitation des listes de révocation serait beaucoup trop important

 

Pour ces raisons, une seconde autorité de certification sera donc nécessaire. Elle sera subordonnée à l’autorité racine mais de type autonome. Mais cessons ces digressions et attaquons nous à notre première autorité de certification.

 

Le pré-requis du contrôleur de domaine

Avant de commencer avec la PKI, il nous faut un environnement Active Directory, ce que nous allons faire rapidement avec l’installation du rôle ADDS-Domain-Controller sur le serveur dc.corp.windows2008R2.com :

ADDS-INSTALL 

Pour la promotion du contrôleur de domaine, c'est du standard. Le nom de domaine DNS sera Corp.Windows2008R2.com. Pour le mode de domaine, ce sera Windows Server 2008 R2. L'installation se termine avec la configuration du client DNS avec une petite commande NETSH.EXE :

DNSCONFIG

Il faudra penser à déclarer le sous-réseau pour le site Active Directory. Il n'y a toujours pas de commande Powershell pour cela dans Windows 2008 R2. La configuration de la partie contrôleur de domaine se termine par :

  • La création de la zone de recherche inverse
  • La configuration de “l’aging” sur toutes les zones DNS

CONFIGDNS

Le DHCP Express

On aura besoin d’un DHCP sur le réseau LAN, pas besoin d’explication supplémentaires sinon une première commande pour installer le rôle lui même. Pour la configuration, on va travailler avec le couteau suisse du réseau, j'ai nommé NETSH.EXE pour créer une étendue DHCP et un peu de configuration :

CONFIGDHCP

 

Installation de l’autorité racine de confiance

Note : Encore une fois, je rappelle que l’implémentation de la PKI ci-dessous se limite à l’aspect technique et encore uniquement pour les besoins de NAP-IPSEC. Ceci ne peut être considéré comme une mise en œuvre selon les règles. Il manque déjà les 90% d’organisation et de processus avant d’attaquer les 10% de techniques restantes.

 

A ce stade, je vais temporairement abandonner mon invite de commande PowerShell pour rebasculer dans le monde de l’interface graphique et de la souris (sic) pour mieux documenter mes choix d’installation. C’est un rôle que l’on installe, donc pas de problème à ce stade :

ROOTCA0

Subtilité, j’installe un sous-composant à cette autorité de certification à savoir son site web de soumission des demandes de certificat. Ceci implique l’installation du rôle Web-Server:

ROOTCA1

 

Choix crucial, à savoir l’installation d’une autorité de type “"Entreprise”, ce qui implique que celle-ci sera reconnue comme autorité de confiance par tous les postes de travail du domaine (sera automatiquement inscrit dans la Default Domain Policy"). Ce choix permet aussi la soumission et le renouvellement de certificats de manière totalement automatique :

ROOTCA2

Etant donné que c’est la première autorité de certification, ce sera donc une autorité de type racine et non subordonnée :

ROOTCA3

Je n’ai pas besoin d’utiliser un clé privée existante (cas d’une réinstallation de la CA par exemple), donc le seul choix possible est “New Private Key” :

ROOTCA4

Je conserve l’algorithme cryptographique, le CSP proposé ainsi que la longueur de clé. La bonne pratique serait d’augmenter la taille de la clé car la CA sera située au sommet de la hiérarchie. Sa compromission entraine la compromission de toute la hiérarchie. Etant donné que cette infrastructure est montée dans un cadre d’expérimentation, je conserve les choix par défaut :

ROOTCA5

Afin de bien différencier l’autorité racine de confiance de l’autorité racine secondaire (qui sera installée dans le prochaine billet), je nomme arbitrairement mon autorité RootCA :

ROOTCA6

La bonne pratique concernant la durée de validité serait de configurer notre autorité racine avec la durée de vie la plus longue et de configurer des durées de plus en plus réduites pour les autorité de certification intermédiaires et enfin très courtes pour les autorité de certification émettrices (de certificats). Attention cependant, plus on aspire à la confiance, plus il faut montrer patte blanche, les critères sont très sélectifs. Il est long le parcours avant de devenir aussi reconnu que Verisign. Donc dans le cas de notre implémentation, je conserve le choix par défaut. La seule conséquence est que les certificats émis ne pourront excéder la durée de vie de l’autorité de certification. Il faudra donc porter une attention toute particulière aux renouvellements :

ROOTCA7

Le processus d’installation nous permet de placer la base de données (et son journal de transaction) sur un volume disque distinct. Le principal intérêt de cette mesure réside dans l’isolation entre l’administrateur du système et l’administrateur de l’autorité de certification. Comme c’est une option que je vais pas mettre en œuvre, je conserve les répertoires par défaut (pourtant, c’est une très bonne pratique):

ROOTCA8

Pour l’installation du sous-rôle de site web de soumission des demandes de certificat, l’assistant nous demande si d’autres composants optionnels du rôle “Web-Server” ne nous intéresserait pas. Les choix minimum permettant le bon fonctionnement de la solution étant déjà sélectionnés, on conserve donc les options par défaut :

ROOTCA9

Ca y est, la fin avec l’inévitable conséquence, à savoir l’impossibilité de renommer le serveur une fois l’installation terminée :

ROOTCA10 

Note : Etant donné que nous sommes dans le cadre d’une implémentation en laboratoire, je fait l’impasse sur les vérifications de bon fonctionnement de notre autorité de certification. Merci aux puristes de la PKI de ne pas m'e jeter la pierre!

 

Les exceptions à la règle

Comme pour entrer en boite de nuit, le videur (NPS) à toujours une liste d’exception qui vient contredire la règle générale (la conformité du poste conditionne son accès au réseau). La première exception à la règle, c’est bien entendu le serveur NPS. Si lui même n’a pas accès au réseau alors comment pourra t’il traiter les demandes qui lui sont soumises? Les exceptions seront traitées au travers d’un groupe de sécurité :

EXCEPTIONGROUP

Ce groupe de sécurité permettra aux futurs membres de disposer d’un certificat prouvant leur état de santé sans avoir à le démontrer. La prochaine étape consistera donc à disposer d’un gabarit de certificat pour l’état de santé.

 

Le gabarit de certificat “System Health Authentication”

L’implémentation de NAP IPSEC prévoit que si le système est conforme, il se voit attribué un certificat qui sera utilisé pour authentifier (AH) voire chiffrer (ESP) les communications. Par contre, il faut pouvoir identifier le certificat à utiliser. On pourrait se contenter d’un certificat proposant le rôle “Client Authentication”, cependant, cela posera problème pour la règle d’isolation IPSEC qui sera positionnée sur le pare-feu. Comment utiliser le certificat délivré à cet effet et non le certificat “workstation” délivré car la machine à obtenu son certificat automatiquement? Pour cette raison, il est nécessaire de disposer d’un gabarit de certificat indiquant bien l’usage qui en sera fait. Le rôle “Health Authentication” est fait pour cela. La configuration de l’isolation IPSEC exigera d’utiliser un certificat présentant ce rôle.

 

On va donc commencer par dupliquer le gabarit de certificat “Workstation” et utiliser le mode “Windows Server 2008” proposant le plus de possibilité au niveau de la manipulation des certificats :

NAPTEMPLATE0

Note : La manipulation des gabarits de certificats est possible uniquement dans Windows Server 2008 entreprise/Datacenter, Windows Server 2008 R2 standard/Entreprise/DataCenter.

 

Notre nouveau gabarit sera nommé “System Health Authentication”. Le nom du gabarit est nécessairement sans espaces. Etant donné que les systèmes qui disposeront de certificats générés selon ce gabarit n’auront pas à prouver leur conformité, pas la peine de configurer une durée très courte. Un an est amplement suffisant, tout comme les six semaines avant renouvellement. Comme l’enregistrement de ces demandes sera traité par stratégie de groupe on pourra bénéficier du renouvellement automatique, ce qui nous facilitera l’exploitation. Attention, à ce stade, il faut penser à ne pas oublier le publier le certificat dans l’annuaire Active Directory :

NAPTEMPLATE1

La caractéristique de ce modèle de gabarit de certificat sera d’être identifiable pour le rôle “System Health Authentication”. On va donc l’ajouter dans la liste :

NAPTEMPLATE2

Notre gabarit de certificat est presque terminé. Il reste juste à s’assurer qu’il ne sera disponible que pour les systèmes membres du groupe “NAP Exception Group” précédemment créé. Les membres du groupe pourront réaliser l’enregistrement automatique de leurs certificats :

NAPTEMPLATE3

Le gabarit de certificat est finalisé mais pas encore utilisable car pas encore publié. On va donc y remédier :

NAPTEMPLATE4 

Enregistrement automatique et renouvellement de certificats

L’utilisation d’une autorité racine de confiance intégrée à l’annuaire Active Directory permet aux systèmes raccordés de gérer eux même leur demande de certificat. Etant donné que les demandes émanent de comptes clairement identifiables, l’autorité de certification est capable de délivrer automatiquement les certificats. Les systèmes sont même capables de gérer eux même leur renouvellement. On a donc rien à faire sinon de configurer cela dans une stratégie de groupe :

NEW-GPO_PKI0

Reste plus qu’à configurer le paramètre qui va bien parmi les 3000 disponibles :

NEW-GPO_PKI1

Cette stratégie de groupe est finalisée (les puristes me jetteraient à la figure qu’étant donné qu’il n’y a pas de paramétrage utilisateur on peut désactiver cette section mais je rappelle que nous sommes dans le cadre d’une implémentation en laboratoire). On va donc positionner cette stratégie de groupe à la racine du domaine :

NEW-GPO_PKI2

Il ne nous reste plus qu’à créer un conteneur organisationnel dans lequel on va placer tous les systèmes pour lesquels on configurera plus tard une stratégie de groupe qui mettra  une stratégie de pare-feu pour l’isolation IPSEC sans être restrictive. Etre à la frontière signifie que l’on doit accepter de communiquer avec des clients qui ne sont pas conformes :

NEW-GPO_PKI4 

Et ca marche tout cela?

La question est intéressante. Ce serait dommage de poursuivre l’installation pour s’apercevoir qu’un détail coche déjà à ce niveau. Le plus simple est donc de positionner le compte ordinateur de notre serveur nps.corp.Windows2008R2.Com dans le groupe d’exception et de voir ce qui se passe :

NEW-GPO_PKI3 

Et placer notre serveur dans le conteneur organisationnel “Frontière”, en prévision de la stratégie de groupe de configuration du pare-feu :

ADMOVE

Lorsque le serveur NPS (préalablement raccordé au domaine) redémarre, on peut tout de suite constater la présence d’un certificat dans le conteneur personnel de l’ordinateur. Ce certificat dispose bien du rôle “System Health Authentication”, donc ça a bien marché (jusqu’ici) :

NEW-GPO_PKI5

Voila qui clos ce billet. Ce fut laborieux mais au moins on est assuré que jusque là tout va bien. Attention, la route vers la conformité est encore longue.

 

BenoîtS – Simple and Secure by Design

Share this post:                                       
Network Access Protection and IPSEC : épisode 2

Avant même de renter dans la démarche technique à proprement parlé, il est important de traiter la démarche de mise en œuvre à proprement parlé. Pour cela, une rapide plongée sur le mode de fonctionnement de NAP IPSEC est nécessaire.

 

Tout part du client

C’est le client (aussi dit NAP Client) qui doit faire la preuve de son état de santé. Donc tout part de lui. Plus précisément, le NAP client va collecter les états de santé des différents composants pris en compte (antivirus, pare-feu, antimalware, Windows Update, …) auprès des SHA (System Health Agents). Chaque SHA génère un Statement of Health (SoH) qui seront tous consolidés par le client NAP sous forme d’un System Statement of Health (SSoH). Cet état de santé doit parvenir directement ou indirectement au serveur NPS pour analyse. Dans ce cas d'IPSEC, le client NAP utilise les URL préalablement configurées permettant de contacter le HRA (Health Registration Authority). Le client dispose de deux URL, selon qu’il est intégré au domaine ou non (tiens une piste à conserver, …).

 

Le HRA, intermédiaire de confiance

Le HRA (Health Registration Authority) reçoit la demande d'accès avec le SOH du client. Cet état de santé étant composé de sous-états propres à chaque SHA, le tout est découpé et soumit au NAP Health Policy Servers, gardiens de la conformité. Leur réponse dépendra du paramétrage fixe que nous auront fixé ainsi que d’éventuels critères de conformité extérieurs livrés par les Health Requirements Servers (antivirus, …).

 

Le NPS, au centre de tout

Chaque Soh est analysé selon le SHV correspondant. Les résultats seront analysés au travers des Health Policies qui détermineront si le client est conforme, non conforme ou dans un état intermédiaire (si c’est possible, par exemple deux critères de conformité sur trois, …). C’est le NPS qui se charge de tout cela. Une fois la Health Policy identifiée, il ne reste plus qu’à identifier la Network Policy qui y fait appel pour déterminer la réponse à apporter.

 

Retour au HRA

Si la demande auprès des Health Policy Servers est acceptée, alors le HRA effectue une demande de certificat pour le compte de l’ordinateur soumissionnaire auprès de l’autorité de certification. Ce certificat prouve l’état de santé de l’ordinateur auprès des autres. A ce stade, le HRA retourne un SSoHR contenant le certificat. Dans le cas contraire, la réponse contient entre autres les éléments nécessaires au poste client pour réaliser la remédiation (manuellement ou non).

 

Pour revenir au client

Le client n'a plus qu'à placer ce certificat dans son magasin personnel et l'exploiter pour authentifier et ou chiffrer les communications avec ses partenaires lorsque ceux-ci vont simplement le demander, voire l'exiger (mode isolation IPSEC). C'est le fait de disposer ou non du certificat qui fait qu'on accède plus ou moins au réseau.

 

Et voila pour la théorie sur NAP IPSEC.  Et si on passait à table maintenant?

 

Benoîts – Simple and Secure By Design

Share this post:                                       
Network Access Protection and IPSEC : épisode 1

C’est le début d’un nouveau marathon (ou la nouvelle saison de 24 heures chrono). Je ne vais pas m'attarder sur les aspects liés à la conception d'une infrastructure NAP. Pour cela, l'IPD traitant de NAP est plutôt bien fait. Je vais donc immédiatement passer à la mise en œuvre dans un cas assez simple mais représentatif tout de même.

Le scénario retenu est celui de NAP utilisant IPSEC comme méthode d'enforcement avec des clients Windows Seven et Windows Server 2008 R2, tout ce petit monde sera connecté à un seul réseau LAN tel qu'illustré ci-dessous :

image

Cette mise en œuvre permettra de démontrer :

  • Comment mettre en œuvre les pré-requis liés à NAP
  • Comment isoler les postes de travail déclarés conformes
  • Comment autoriser un accès limité aux ressources du réseau lorsqu'on n'est pas conforme
  • Comment autoriser l'accès à certaines ressources uniquement si on est conforme

Bien évidemment, ce scénario à ses limites (je ne vais pas tout donner non plus), à savoir :

  • La mise en œuvre d'une CA d'entreprise hors ligne
  • Comment travailler avec des critères de conformité plus complexes (autres que ceux proposés par le centre de sécurité du système d'exploitation)?
  • La haute disponibilité d'une telle infrastructure
  • La mise à disposition de services pour l'auto-remédiation
  • Comment traiter les accès extérieurs (vous avez dit DirectAccess?)
  • Comment traiter les systèmes pas encore conforme car fraichement installés

Certes ce sont tous des sujets importants mais qui ne peuvent être traités qu'au cas par cas, en fonction des scénarios et contraintes imposées

Maintenant que les limites sont posées, rentrons dans le vif du sujet avec la longue phase d’installation des systèmes d’exploitation.

Pour les stations de travail, j'ai retenu Windows Seven. D'une part par ce que c'est le dernier OS à la mode mais aussi par ce que la configuration sera plus simple. Il est techniquement possible de faire du NAP IPSEC avec Windows XP SP3, mais c'est juste un peu plus compliqué à réaliser (pas d'intégration d'IPSEC avec le pare-feu par exemple, …).

Pour les serveurs, tous seront installés avec Windows Server 2008 R2 entreprise Edition. D'un point de vue technique, il aurait été possible d'utiliser la version standard de Windows Server 2008 R2 car celle-ci autorise enfin la manipulation des gabarits de certificats dans ADCS. j'avoue que c'est un peu par fainéantise mais aussi que quelque part j'ai une idée derrière la tête avec DirectAccess, …)

image 

Serveur dc.corp.Windows2008R2.Com

  • OS : Windows 2008 R2 Entreprise Edition
  • Nom d'hôte (FQDN) : dc.corp.Windows2008R2.Com
  • Configuration réseau : 192.168.0.100/24 (pas de passerelle)
  • Raccordé au domaine : corp.Windows2008R2.com

Serveur nps.corp.Windows 2008R2.com

  • OS : Windows 2008 R2 Entreprise Edition
  • Nom d'hôte (FQDN) : nps.corp.Windows 2008R2.com
  • Configuration réseau : 192.168.0.101/24 (pas de passerelle)
  • Raccordé au domaine : corp.Windows2008R2.com

Serveur secure.corp.Windows2008R2

  • OS : Windows 2008 R2 Entreprise Edition
  • Nom d'hôte (FQDN) : secure.corp.Windows 2008R2.com
  • Configuration réseau : 192.168.0.102/24 (pas de passerelle)
  • Raccordé au domaine : corp.Windows2008R2.com

Seven1.corp.Windows2008R2.Com

  • OS : Windows Seven ultimate
  • Nom d'hôte (FQDN) : Seven1.corp.Windows2008R2.Com
  • Configuration réseau : DHCP
  • Raccordé au domaine : corp.Windows2008R2.com

Seven2.corp.Windows2008R2.Com

  • OS : Windows Seven ultimate
  • Nom d'hôte (FQDN) : Seven2.corp.Windows2008R2.Com
  • Configuration réseau : DHCP
  • Raccordé au domaine : corp.Windows2008R2.com

Voila pour la phase initiale de mise en œuvre. Pour le prochain billet, nous rentrerons dans l’intimité de NAP IPSEC avant d’attaquer le problème par la face nord, (PKI hell). Bienvenu dans le petit monde de NAP.

Benoîts – Simple and Secure by Design

Share this post:                                       
Infrastructure Planning and Design Guide DirectAccess

La documentation de DirectAcces grossit de jour en jour. Certes, on est encore loin de ce que peut proposer l’équipe Exchange (une véritable bible) mais le guide de conception de DirectAccess est enfin disponible.

Le principal intérêt de ce guide est de poser la démarche générale, pour se poser les bonnes question avant de foncer tête baissée dans la technique, ce qui avec DirectAccess est une stratégie voué à l’échec.

 

Benoîts – Simple and Secure by design

Share this post:                                       
Windows Server 2008R2 et ADMT 3.1

Avant même que Windows Server 2008R2 ne soit disponible, je me suis mis en quête de déminer les chemins tortueux de la migration Active Directory. Avec le temps et les versions de Windows, on pourrait croire que la problématique tend à se simplifier et bien c’est tout le contraire. D’une part, nous avons de plus en plus d’applications qui dépendent de l’annuaire Active Directory (Exchange 2007 en tête de liste, ce sera une autre histoire pour Exchange 2010 qui sera certainement comptée par mon collègue Pascal CREUSOT, MVP Exchange Server de son état). Et d’autre part les produits de migration Active Directory. Chaque nouvelle version de l’annuaire Active Directory introduit son lot de subtilités. Pour rappel, une petite piqure (c’est de saison, …):

 

A force de faire des projets de migration Active Directory on pense pouvoir détecter les mines et bien il n’en est rien. Souvent, il faut tester et prendre le mur et tenter une migration ADMT (actuellement disponible en version 3.1, en attendant une nouvelle version plus adaptée à Windows Server 2008 R2).

 

Selon le blog de l’équipe Directory Services Team, la version 3.1 est bien supportée en attendant la nouvelle version, avec cependant quelques limitations : KB976659. Dans le cas qui m’occupe, je suis tombé sur le cas : “Multiple user password migration in a batch may fail for the first user password. When this issue occurs, the administrator may receive an error message that resembles the following:”.

 

Windows Server 2008 R2 n’est pas en reste par rapport à ses prédécesseurs. Lui aussi apporte aussi son lot de mines. Certaines d’entre elles feront l’objet de billets dès que désarmées ou que j’ai tout simplement marché dessus.

 

PS : Je passe volontairement sous silence la KB974625. Elle est même pas marrante.

 

Benoîts – Mode “démineur Freestyle”

Share this post:                                       
La synchronisation horaire en environnement virtuel

Dès lors qu’un système d’exploitation est virtualisé (Citrix, Vmware, Microsoft, …), le socle de virtualisation se propose de fournir un certain nombre de services additionnels sous forme de “Integration services” ou tout autre nom. L’un de ces services trait à la synchronisation horaire.

 

D’un certain point de vue, l’approche est intéressante. Cependant le bon fonctionnement de bon nombre de protocoles sont liés à une stricte synchronisation horaire. Kerberos est un exemple assez connu dans le monde “Microsoft” avec sa tolérance de seulement cinq minutes (configurée par la stratégie de domaine).  Kerberos n’est pas un cas isolé. L’ensemble des processus liés à la réplication Active Directory utilisent l’heure GMT. Dès lors qu’un ou plusieurs systèmes ne sont pas à l’heure ou pire donc l’heure n’est pas stable, on peut s’attendre à bon nombre de problématiques.

 

La toute récente KB976924, fait référence à cette problématique dans le cadre des contrôleurs de domaines hébergés sous Hyper-V. Cependant, cette problématique ne concerne pas seulement Hyper-V. La problématique est la même quelque soit l’Hyperviseur.

 

Personnellement j’étendrait même cette KB aux serveurs membres car eux aussi ont besoin de conserver une synchronisation horaire stable. Qu’arriverait-il à un cluster CCR Exchange 2007 si l’heure n’était pas stable? Ou alors à une PKI avec les listes de révocations.

 

Benoîts – Simple and Secure by Design

Share this post:                                       
Posted 25 October 2009 02:17 PM by BenoitS | no comments
Filed under: ,
Quelques subtilités autour du RODC

Le sujet m’ayant occupé ces temps-ci, j’ai décidé d’en faire un post. Pour la mise en œuvre à proprement parlé, je vous renvoie au billet “Le RODC en image”. Par contre, il manquait un certain nombre d’informations.

 

L’importance de la stratégie de mot de passe

Dans le premier billet, il y a une problématique qui n’avait pas été abordée, à savoir l’importance de la mise en cache des mots de passe. Chaque RODC dispose d’une stratégie de mot de passe qui lui est propre. Donc attention à configurer la stratégie de chaque RODC déployé. Dans ces stratégies on constaté qu’un certain nombre de groupes, les comptes qui en sont membres pourront avoir leur mot de passe répliqué ou non :

RODC1_POLICY

La première surprise c’est qu’un certain nombre de groupes sont positionnés en “Deny”. Cela signifie que pour eux, pas de mise en cache possible. Le RODC est donc obligé de relayer le ticket Kerberos vers un véritable contrôleur de domaine. Encore faut-il qu’il n’y ait pas de défaillance réseau. Après, on remarque deux groupes au noms évocateurs :

  • Allowed RODC Password Replication Group
  • Denied RODC Password Replication Group

 

L’avantage de ces deux groupes est qu’ils sont utilisés dans chaque stratégie de RODC. On dispose donc d’un moyen global pour gérer la mise en cache.

 

Attention aux comptes ordinateurs

La mise en cache des comptes concerne aussi bien les comptes utilisateurs que les comptes ordinateurs. Pour que le processus d’authentification Kerberos puisse fonctionner, il est nécessaire que l’ordinateur émette un “Kerberos authentication service request (KRB_AS_REQ)”. C’est grâce à ce ticket que le poste de travail pourra soumettre la demande d’authentification de l’utilisateur pourra être traitée. Si le RODC ne dispose pas des informations nécessaires, la demande de ticket est retransmise à un véritable contrôleur de domaine. Ce ne sera donc pas le RODC qui va authentifier le compte ordinateur :

AUTHENT0 

Les deux commandes NLTEST.EXE nous confirment bien que mon poste de travail dépend bien du site Branch1 (contenant un RODC) mais que la demande d’authentification a été traitée par mon contrôleur de domaine central. On peut le vérifier en consultant la liste des comptes authentifiés par le serveur RODC1 :

AUTHENT1

 

Ainsi que la liste des comptes pour lesquels, le mot de passe est bien stocké localement. Le compte de notre ordinateur et notre utilisateurs n’y sont pas :

AUTHENT2 

Pour preuve, la demande d’authentification de la station ci-dessous n’a pas été retrouvée sur le serveur RODC1 mais bien sur le contrôleur de domaine central.

AUTHENT3

 

Idem pour l’authentification de l’utilisateur de la station de travail. Conclusion, il est essentiel de bien configurer la stratégie de mise en cache des mot de passe de chaque RODC pour éviter que ceux-ci soient utilisés comme de simple relais d’authentification. Lorsque cette stratégie de mise en cache est bien configurée, l’authentification est réellement réalisée par le RODC. Pour cela, il faut penser à :

  • Positionner le compte ordinateur dans le groupe “Allowed RODC Password Replication Group” (Idéalement créer un groupe de sécurité global qui sera lui même positionné comme membre du groupe).
  • Pré-peupler le RODC avec les comptes ordinateurs

Le résultat fait qu’on est maintenant bien capable de s’authentifier sur le RODC1 :

RODOCOK

 

Attention à la défaillance WAN

Selon la stratégie de réplication de mot de passe par défaut, les mots de passe des comptes “Administrateurs” ne sont pas répliqués sur un RODC. Question, que va t’il se passer si on tente de s’authentifier avec un compte de ce type sur un contrôleur de domaine RODC? La réponse est simple :

LOGON_FAILED 

Comme le RODC ne dispose pas en cache des informations nécessaires à l’authentification (il dispose bien du compte mais pas de son mot de passe), il doit retransmettre la demande de ticket Kerberos à un autre contrôleur de domaine. Or si le réseau est défaillant, cela n’est pas possible.

 

Pour adresser cette problématique, il ne faut pas modifier la stratégie de réplication de mot de passe du RODC pour autoriser la réplication des mots de passe des comptes “administrateurs” mais créer un groupe de sécurité global auquel on va déléguer l’administration des serveurs RODC.  C’est bien mieux en terme de sécurité.

 

Cas évènement 5723 sur les RODC

Cet évènement indique que le compte ordinateur n’a pu établir une session avec le RODC car celui-ci ne dispose pas de son mot de passe. On trouve cet évènement dans le journal “Système” du RODC : 

AUTHENT7

 

Cette problématique intervient par exemple dans les cas des postes nomades qui se déplacent d’un site à l’autre. Il indique que le RODC du nouveau site n’a pas l’information nécessaire pour l’authentification. Il l’a donc demandée auprès d’un autre contrôleur de domaine pour réaliser l’authentification. Pourtant, l’authentification a bien été réalisée localement :

RODC2

Comme indiqué dans le détail de l’évènement, la problématique n’est pas critique.

 

Cohabitation DC W2K8 et RODC

Pour des raisons de sécurité, il n’est pas recommander de placer un RODC d’un domaine dans un site contenant déjà un contrôleur de domaine classique. En cas de compromission du RODC, le contrôleur de domaine risque d’être compromis par ce que le RODC utilise un compte krbtgt, qui est utilisé pour signer ou crypter les demandes de ticket. La compromission du ticket du RODC peut permettre d’accéder à celui du contrôleur de domaine.

 

Cohabitation avec des contrôleurs de domaine Windows 2003

Les contrôleurs de domaine Windows 2003 ne reconnaissant pas les RODC comme de véritables contrôleurs. De ce fait, pour eux, il n’y a pas de contrôleur de domaine dans ces sites. Le comportement par défaut est donc de mettre en place les enregistrements DNS nécessaires pour réaliser l’autosite-coverage. Ce comportement entraine donc que le RODC risque de ne pas être utilisé pour l’authentification. La solution à cette problématique peut être de migrer ces contrôleurs de domaine vers Windows Server 2008 ou de désactiver la fonctionnalité Autosite-Coverage.

 

La KB de compatibilité

Dans un certain nombre de cas, les systèmes d’exploitation clients de type Windows XP et Windows 2003 peuvent avoir quelques difficultés avec le RODC. La KB944043 référence ces problématique et propose un correctif pour ces systèmes d’exploitation.

 

La compromission d’un RODC

Si un RODC vient à être dérobé, il ne contient que les mots de passe en cache. Microsoft recommande la suppression du compte ordinateur correspondant au RODC. Pas de problème, supprimons le compte ordinateur.

DELETE0

Immédiatement, la console d’administration nous demande quels types de comptes on désire réinitialiser comme illustré ci-dessous :

DELETE1

Dans la capture d’écran ci-dessus, on pourrait penser que seuls les comptes utilisateurs seront initialisés. Et bien non, pas de bol, cela ne se passera pas comme cela. La fiche KB968292 indique que l’assistant ne sait pas faire la différence entre un compte utilisateur et un compte ordinateur. Il réinitialise donc tout ce qui a été mis en cache. Heureusement, un correctif est disponible (Pas intégré au SP2, désolé).

 

Pour aller plus loin

Le RODC est un sujet complexe. La meilleur source d’information à ce sujet, c’est encore le blog de l’équipe en charge d’Active Directory :

Le dernier article est plus qu’intéressant puisqu’il fait encore une fois référence à la KB944043. Pas de migration sans ce correctif installé sur les postes.

 

mais aussi sur le Technet : Read-Only Domain Controller Planning and Deployment Guide. Dans l’annexe A qui fait le point sur le comportement des clients dans différentes situation lorsqu’ils sont face à un RODC.

 

Conclusion

Le RODC est une très belle avancée en matière de sécurité. Reste encore à ce que les postes de travail mais surtout les applications savent exploiter correctement ce nouveau type de contrôleur de domaine. Exchange 2007 est un mauvais élève. Il recherche exclusivement des serveur Global Catalog qui ne sont pas des RODC.

 

BenoîtS – Simple and Secure By Design

Share this post:                                       
More Posts Next page »