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 ».

Installation Windows CA

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).

Ajout de la CA dans ACS

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).

Example CSR

Suite cela, on aura dans le menu de droite d’ACS du texte en base64 qui correspondras à la requête de certificat ACS.

ACS CSR

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…

Demande de certificat 1Demande de certificat 2

Allez ensuite dans vote autorité de certifications (certsrv.msc) et délivrez le certificat:

Emission du certificat

Retournez ensuite sur le site pour obtenir votre certificat. Ici, je vais le sauvegarder en tant que « c:\certs\acs.cer »:

Obtenir certificat

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 !

Certificat utilisateur

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:

Profile WLAN

 

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

4 Responses to “EAP-TLS avec Autorité de certification autonome (Standalone CA) sous Windows 2003”

  1. SAm Says:

    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

  2. Bastien Migette Says:

    Bonjour Samir,
    Je ne connais pas du tout freeradius, je ne peux pas vraiment aider la dessus.

  3. zak Says:

    Bonjour j’aimerai bien savoir si j’utilise le PEAP le certificat n’est obligatoire que pour l’ACS

  4. Bastien Migette Says:

    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.

Leave a Reply

Le temps imparti est dépassé. Merci de recharger le CAPTCHA.