Mise en place de WDS sur un subnet d'access-point Cisco
Pourquoi WDS ?
WDS permet à une borne dans un subnet de collecter les infos "radio" de toutes les autres. C'est INDISPENSABLE pour pouvoir utiliser toutes les fonctionnalités "radio" de WLSE (radio scan, localisation de Rogues, etc...). Cela permet aussi d'avoir du "fast-roaming" dans le cas de bornes authentifiant les utilisateurs par 802.1x (passage d'un borne a l'autre sans avoir un cycle complet d'authentification 802.1x).
Les bornes s'authentifient sur la "WDS Master" en utilisant LEAP (type EAP made-in Cisco). L'AP "Master" en-capsule les messages LEAP dans des attributs Radius. Le serveur WLSE lui-même s'authentifie sur chacun des AP WDS Master qu'il manage.
Pour activer WDS dans un subnet, il faut :
- un WDS master par subnet (une borne au choix...)
- un serveur Radius qui est capable de faire du LEAP
Configuration de la borne maitre
Nous allons tous d'abord activer AAA et configuré le serveur radius.
aaa new-model aaa group server radius radiusWds server a.b.c.d auth-port 1812 acct-port 1813 exit aaa authentication login aaaWds group radiusWds radius-server host a.b.c.d auth-port 1812 acct-port 1813 key 0 SECRET_SHARED_KEY
La seconde phase configure les choses suivantes :
- Définition de l'authentification WLCCP
- Priorité (max) et interface a utiliser
- IP du serveur WLSE
- Ajout du WDS master lui meme comme "AP membre" (en précisant son login et password)
wlccp authentication-server infrastructure aaaWds wlccp wds priority 254 interface BVI1 wlccp wnm ip address w.x.y.z wlccp ap username login_ap_1 password 0 passwd_ap_1
Configuration des autres bornes du subnet
Il suffit juste de préciser le user/passwd de cette AP pour ce connecter au master.
wlccp ap username login_ap_x password 0 passwd_ap_x
Configuration de WLSE
Il faut remplir le login/password qui sera utilisé pour s'authentifier sur chaque access point "WDS Master" de l'infrastructure wifi dans :
Devices -> Discover -> Device Credentials -> WLCCP Credentials
Le serveur Freeradius
Pas trop de souci normalement à ce niveau la ... freeradius supporte trés bien LEAP
Voici un extrait des choses importantes de radiusd.conf
modules { eap { default_eap_type = leap ignore_unknown_eap_types = no leap { } } } authorize { preprocess eap files } authenticate { eap }
et le fichier users (une tabulation entre le login et User-Password) :
login_ap_1 User-Password == "passwd_ap_1" login_ap_2 User-Password == "passwd_ap_2" login_ap_3 User-Password == "passwd_ap_3" login_ap_4 User-Password == "passwd_ap_4" login_wlse User-Password == "passwd_wlse"
Ceci marche parfaitement pour les Access-Point... on le constate par la commande suivante sur le WDS Master :
ap_1#sh wlccp wds ap MAC-ADDR IP-ADDR STATE LIFETIME 0012.0087.b1f7 10.0.207.132 REGISTERED 536 0012.0087.b206 10.0.207.130 REGISTERED 488
Par contre, il y a un probleme pour l'authentification du "Wireless Network Manager" (WLSE) :
ap_1#sh wlccp wnm status WNM IP Address : 10.1.2.11 Status : AUTH IN PROGRESS
C'est en fait un probleme de WLSE qui n'utilise pas correctement EAP et LEAP. voici un patche pour freeradius qui résoud ce problème (du mauvais coté ... mais bon...)