EAP-TLS avec Autorité de certification autonome (Standalone CA) sous Windows 2003
En bon geek je me suis dit : heh, sachant que j’ai un asa à la maison, ça serait cool de mettre un AP avec 2 SSID, un pour l’inside et un pour l’outside, et ce serait encore mieux de mettre de l’EAP-TLS sur l’inside !! Donc je me suis lancé, et je vais résumer ici les étapes pour ceux qui seraient tenté de faire de même !
Tout d’abord, il faut savoir qu’il y a l’option « simple », c’est à dire installer sa CA sous windows 2003 en tant que « Autorité de Certification d’Entreprise » (quelque chose comme ça), et dans ce cas, cela va marcher avec active directory, et on peut générer des certificats automatiquement pour les machines et utilisateurs du domaine. Je ne voulais pas utiliser cette option car les équipement que j’ai chez moi ne sont pas forcément dans le domaine, aussi même s’il est possible, peut être, de créer des utilisateurs AD et d’exporter leur certificats, ce n’est pas la solution la plus simple.
Installation de la CA
Commençons donc par installer la CA Microsoft.
Note: Installez IIS avant, sinon le web enrollment ne sera pas disponible. Si vous installez IIS après, tapez « certutil -vroot » dans l’invité de commande pour créer le site pour l’enrollment via la page web, sinon il est créé automatiquement lors de l’installation.
Pour installer la CA, il suffit d’aller dans panneau de configuration, « ajout/suppression de programmes », puis de cliquer sur « ajouter ou supprimer des composants windows ».
Choisissez ici « autorité racine autonome de certification » (quelque chose comme ça, désolé, mais maintenant que ça marche je vais pas tout réinstaller au risque de tout casser 🙂 )
Pour la suite du setup, utilisez les paramètres par défauts.
Configuration ACS
Maintenant que l’autorité de certification est crée, il faut faire plusieurs choses:
- Configurer ACS pour « truster » le certificat de la CA
- Configurer un certificat pour ACS
- Créer des certificat utilisateurs et les installer
On vas donc commencer par faire en sorte qu’ACS fasse confiance à notre CA. Si comme moi votre ACS est sur le même serveur que la CA, le certificat est déjà présent, sinon il faut exporter le certificat de la CA qui est par défaut dans C:\ et l’ajouter dans les « certificate store » « trusted root CA » (désolé je mix un peu les termes windows en anglais et en Français 😉 ).
Pour rappel, EAP-TLS utilise les certificats, c’est à dire que les 2 partie distante qui s’authentifient doivent se faire confiance, et pour cela, soit chacune à un certificat autosigné qui est trusté par la partie distante, soit chacune à un certificat d’une même CA qu’elles trustent toutes les deux.
Il faut donc aller dans « system configuration/ACS Certificate Setup / Edit Certificate Trust List », et on coche notre CA (chez moi c’est W2K3, j’en ai plusieurs car j’ai réinstallé ma CA, mais normalement il n’y en a qu’une).
une fois que c’est fait, on vas configurer un certificat pour ACS. Pour cela, on va aller dans « system configuration/ACS Certificate Setup /Generate Certificate Signing Request ». Remplir les champs comme demandé (voir example): Il faut spécifier le chemin de la clé privée avec un mot de passe, ainsi que la taille de la clé (au dessus de 2048 bits vous risquez d’avoir des problème car le supplicant windows ne le supportera peut être pas).
Suite cela, on aura dans le menu de droite d’ACS du texte en base64 qui correspondras à la requête de certificat ACS.
Ensuite, connectez vous sur la page web de votre CA (http://CA/certsrv), et soumettez la demande de certificat (voir captures). Note: il existe d’autres moyens de soumettre les demandes de certificats… Note: Vous aurez besoin de IE car le site utilise des control active X. Si vous voyez un message « télécharger le controle ActiveX… » qui semble bloqué, éssayez de baisser les options de sécurité de IE, ça a marché avec moi…
Allez ensuite dans vote autorité de certifications (certsrv.msc) et délivrez le certificat:
Retournez ensuite sur le site pour obtenir votre certificat. Ici, je vais le sauvegarder en tant que « c:\certs\acs.cer »:
Retournez ensuite dans ACS pour installer le certificat. Pour ce faire, aller dans « system configuration/ACS Certificate Setup /Install ACS Certificate » puis cliquez sur « Install ACS Certificate » et remplissez les champs (avec les chemins du certificat tout juste créé, de la clé privée qui est normalement pré remplie, et le mot de passe définie pour la clé privée).
La dernière chose à faire avec ACS est d’activer le support de EAP-TLS dans « System Configuration / Gobal Authentication Setup » (il suffit de cocher les cases appropriées) puis de redémarrer les services (« System Configuration / Service control »)
Création des certificats clients
Maintenant que notre ACS est OK, il faut créer des certificat clients. Pour ce faire, on retourne sur le site, mais ce coup ci, on sélectionneras la première option lors de la création du certificat. la chose importante ici est de dire que l’on veux exporter la clé privée !
Une fois ce cela est fait, il vous reste à émettre le certificat depuis la CA comme vu précédemment, puis de le télécharger toujours depuis la page WEB. On doit donc avoir maintenant un certificat .cer, et une clé privée .pvk. Le soucis est que pour faire de l’authentification EAP-TLS, il faut que notre client ait les deux partie du certificat, on va donc utiliser l’outil pvkimprt.exe (http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6563) pour faire un fichier .pxf (qui contiendras et la partie privée et la partie publique).
La syntaxe est très simple:
pvkimprt -pfx certificat.cer certificat.pvk
Une fenêtre vas s’ouvrir pour demander le password de clé privée que vous avez défini avant, puis vas vous demander ou sauvegarder ce fichier. Sauvegardez le donc, puis copiez le sur l’ordinateur de l’équipement qui doit s’authentifier. A partir de la, ouvrez le fichier .pfx sur votre PC, et installez le certificat dans le « personnal store ». Il faut aussi que le certificat de la CA soit installé dans le « trusted root CA » (pour cela, récupérez le .crt dans c:, et installez le dans le trusted root CA store.
Maintenant, tout est OK, il suffit de créer un profil Wireless manuel pour votre SSID, puis d’indiquer le certificat serveur à qui vous faites confiances, et windows devrait automatiquement utiliser votre certificat:
Concernant l’AP, voici la config que j’ai. Je ne la détaillerai pas, car c’est assez simple je penses:
! aaa new-model ! ! aaa group server radius rad_eap server 10.0.0.5 auth-port 1645 acct-port 1646 ! aaa group server radius rad_mac ! aaa group server radius rad_acct server 10.0.0.5 auth-port 1645 acct-port 1646 ! aaa group server radius rad_admin ! aaa group server tacacs+ tac_admin ! aaa group server radius rad_pmip ! aaa group server radius dummy ! aaa authentication login localauth local aaa authentication login eap_methods group rad_eap aaa authentication login mac_methods local aaa authorization exec default local aaa authorization commands 15 default local aaa accounting network acct_methods start-stop group rad_acct ! ! dot11 mbssid dot11 vlan-name inside vlan 2 ! dot11 ssid bastien_inside vlan 2 authentication open eap eap_methods authentication network-eap eap_methods authentication key-management wpa version 2 accounting acct_methods mbssid guest-mode ! interface Dot11Radio0 no ip address no ip route-cache ! encryption vlan 2 mode ciphers aes-ccm ! broadcast-key vlan 2 change 600 ! ssid bastien_inside ! station-role root ! interface Dot11Radio0.2 encapsulation dot1Q 2 no ip route-cache bridge-group 2 bridge-group 2 subscriber-loop-control bridge-group 2 block-unknown-source no bridge-group 2 source-learning no bridge-group 2 unicast-flooding bridge-group 2 spanning-disabled ! interface FastEthernet0.2 encapsulation dot1Q 2 no ip route-cache bridge-group 2 no bridge-group 2 source-learning bridge-group 2 spanning-disabled ! radius-server host 10.0.0.5 auth-port 1645 acct-port 1646 key 0 cisco radius-server vsa send accounting ! end
Il ne faut bien sur pas oublier de déclarer son AP dans ACS.
Conclusion
J’ai essayer de détailler au maximum les étapes pour la mise en place de cette solution, mais je dois avouer que j’ai eu un peu la flemme de prendre certains screenshots, donc si vous avez des questions, postez un commentaires 😉
Recent Entries
- Reponse tardive aux commentaires
- CCIE #43827
- VRF-Aware GETVPN, DMVPN, et FLEXVPN Spoke To Spoke
- Mes articles sur supportforums
- Définir des « handlers » personnalisés pour associer les liens d’un protocole avec une application perso.
- DMVPN over GETVPN avec KS COOP (redondance) et KS Forwarding
- EAP-TLS avec Autorité de certification autonome (Standalone CA) sous Windows 2003
- Static subnet NAT avec VRF pour monter des ‘PODs’ (LAB)
- Capture WiFi en mode monitor sous windows, et capture par process
- Comment taper un point d’interrogation ‘?’ dans un mot de passe ?
septembre 30th, 2011 at 14:49
Bonjour
j’ai vu votre CV sur le net et je voudrais vous demandez si vous pouvez m’aider sur un mon projet de Stage;
on ma demandé de faire une authentification sur un Serveur RADIUS WPA2 existant avec un certificat autorité(AC) propre de l’entreprise PKI pour les PC;
et on ma donnée une nouvelle AC pour les Wifi IPAD.et on ma demandé de leur une authentification wifi IPAD et entreprise ma proposé comme solution:
Soit adapter l’existant pour valider l’AC, sur le serveur existant,
Soit le dupliquer sur un autre serveur et configurer un nouveau radius
et j’ai vue toutes les conf sur le /ETC/RADDB
Merci d’avance pour votre aide..
Cordialement
Sam
octobre 9th, 2011 at 21:20
Bonjour Samir,
Je ne connais pas du tout freeradius, je ne peux pas vraiment aider la dessus.
juin 12th, 2012 at 15:16
Bonjour j’aimerai bien savoir si j’utilise le PEAP le certificat n’est obligatoire que pour l’ACS
juin 24th, 2012 at 21:00
Bonjour,
Pour PEAP, Le client attends effectivement un Certificat Serveur. On peut désactiver sa validation. L’identité du client se fait via username/password.