Le principe des VLANs étant compris, la dernière étape va consister à mettre en ?uvre une commutation automatique des ports du SWITCH sur l'un ou l'autre VLAN, suivant que la machine qui s'y connecte sera authentifiée ou non.
Conformément au cahier des charges, nous utilisons simplement l'adresse MAC de la machine, ce qui évitera d'avoir à installer sur chaque client un système d'authentification plus sophistiqué (un certificat, par exemple, comme nous le verrons avec WPA2-TLS). Cette méthode n'est pas parfaite, loin de là, dans la mesure où une adresse MAC peut être falsifiée, mais elle a le mérite d'être simple à mettre en ?uvre.
Il nous faudra tout de même disposer de SWITCHs capables d'interroger un serveur RADIUS, en lui envoyant l'adresse MAC du client en guise de nom d'utilisateur et de mot de passe. Nous utilisons ici un SWITCH HP Procurve 2650.
Lorsqu'il sort de sa boîte, ce SWITCH est configuré avec un seul VLAN, nommé « DEFAULT_VLAN » (et qui est aussi le « PRIMARY_VLAN »). Tous les ports du SWITCH sont affectés à ce VLAN, si bien que sans aucune configuration particulière, ce SWITCH fonctionnera comme un SWITCH de base.
Pour le configurer, plusieurs solutions sont proposées, à commencer par une liaison série RS232 (gardez au moins un vieux PC), qui est initialement le seul moyen possible pour accéder à la configuration (In the factory default configuration, the SWITCH has no IP (Internet Protocol) address and subnet mask, and no passwords. In this state, it can be managed only through a direct console connection).
Par la suite, nous pourrons accéder au SWITCH par le réseau, via telnet, un mini serveur web embarqué (mais vraiment minimaliste), ou même ssh. En effet les SWITCHs administrables peuvent recevoir une adresse IP pour accéder à l'administration par le réseau. Sur ce modèle de SWITCH, nous pourrons même assigner une adresse IP par VLAN, ce qui n'est absolument pas nécessaire, voire dangereux. Comme notre propos est plutôt de parler des VLANs, nous passerons ces détails sordides.
Nous supposons donc que la configuration de base du SWITCH est faite, et principalement la configuration IP du DEFAULT_VLAN :
Internet (IP) Service IP Routing : Disabled Default Gateway : 192.168.10.1 Default TTL : 64 Arp Age : 20 VLAN | IP Config IP Address Subnet Mask ------------ + ---------- --------------- --------------- DEFAULT_VLAN | Manual 192.168.10.11 255.255.255.0
Donc, nous avons un « DEFAULT_VLAN » qui est aussi le « PRIMARY_VLAN », et qui contient tous les ports du SWITCH. Il y a quelques contraintes à connaître à propos de ces deux VLANs :
Nous n'allons conserver que quelques ports, dont les deux ports 1GB/s sur DEFAULT_VLAN, laisser PRIMARY_VLAN dessus, tous les autres ports étant réservés à deux autres VLANs qu'il nous reste à créer :
Nous allons restreindre le DEFAULT_VLAN aux ports 33-50 (sans tag). Ce VLAN nous servira à administrer le SWITCH, à accueillir les DNS, DHCP, RADIUS et autres services « administratifs ».
Les ports 1 à 6 seront assignés au PARADIS_VLAN de façon statique (sans tag). Nous y placerons par la suite les ressources du réseau à offrir aux stations « connues ».
Comme ce SWITCH ne supporte pas d'avoir des ports assignés à aucun VLAN, nous allons mettre les ports 7 à 32 dans le ENFER_VLAN. Nous reviendrons éventuellement sur ce choix plus tard.
Les ports 49 et 50 seront quant à eux assignés aux trois VLANs. Bien entendu, ici, il faudra utiliser les tags. L'un des deux ports servira à connecter le routeur et l'autre sera réservé aux extensions futures (un second SWITCH, par exemple).
Au final, la (magnifique) interface web nous montrera ceci :
Mais qu'importe la beauté lorsque le travail est bien fait, n'est-ce pas ?
Notez que tout le travail fait jusqu'ici a pu l'être par l'entremise de cette interface. Pour la suite, ce sera quelque peu différent.
Il nous reste maintenant à expliquer au SWITCH que les ports 7 à 32 doivent être attribués au VLAN 2 ou au VLAN 3, suivant que l'authentification par adresse MAC sera réussie ou non. Pour réaliser cette opération, l'interface web n'est pas exploitable, le menu en mode texte via telnet, ssh ou rs232 non plus. Il nous faut passer par le moyen le plus rustique, la ligne de commande. C'est la documentation qui va venir à notre secours,
Voici la procédure. Dans la console :
configure
(Pour entrer dans le mode configuration)
aaa port-access mac-based addr-format multi-colon aaa port-access mac-based 7-32
Vérifiez que vous obtenez un message indiquant que LACP a été désactivé (LACP est un protocole de gestion d'agrégations de liens, qui sort du cadre de cette étude, mais qui est incompatible avec les VLANs de niveau 2).
aaa port-access mac-based 7-32 auth-vid 2 aaa port-access mac-based 7-32 unauth-vid 3
show port-access 7-32 mac-based config
Cette ligne permet de vérifier que notre configuration est bien enregistrée :
Port Access MAC-Based Configuration
MAC Address Format : multi-colon Client Client Logoff Re-Auth Unauth Auth Port Enabled Limit Moves Period Period VLAN ID VLAN ID ----- -------- ------ ------ --------- --------- -------- -------- 7 Yes 1 No 300 0 3 2 8 Yes 1 No 300 0 3 2 9 Yes 1 No 300 0 3 2 10 Yes 1 No 300 0 3 2 11 Yes 1 No 300 0 3 2 12 Yes 1 No 300 0 3 2 13 Yes 1 No 300 0 3 2 14 Yes 1 No 300 0 3 2 15 Yes 1 No 300 0 3 2 16 Yes 1 No 300 0 3 2 17 Yes 1 No 300 0 3 2 18 Yes 1 No 300 0 3 2 19 Yes 1 No 300 0 3 2 20 Yes 1 No 300 0 3 2 21 Yes 1 No 300 0 3 2 22 Yes 1 No 300 0 3 2 23 Yes 1 No 300 0 3 2 24 Yes 1 No 300 0 3 2 25 Yes 1 No 300 0 3 2 26 Yes 1 No 300 0 3 2 27 Yes 1 No 300 0 3 2 28 Yes 1 No 300 0 3 2 29 Yes 1 No 300 0 3 2 30 Yes 1 No 300 0 3 2 31 Yes 1 No 300 0 3 2 32 Yes 1 No 300 0 3 2
C'est correct. Nous pouvons écrire le tout en mémoire :
write memory
En ce qui concerne « l'auth-vid », ce paramètre pourra éventuellement être écrasé par une valeur renvoyée, en cas d'authentification réussie, par le serveur RADIUS, ce qui apporte plus de souplesse si l'on doit disposer de plus de deux VLANs suivant les clients.
C'est presque fini, mais pas tout à fait. Notre SWITCH ne devinera pas tout seul qui est notre serveur RADIUS, il faut le lui indiquer.
Notre futur serveur RADIUS aura l'adresse 192.168.10.2. Comme nous le verrons plus loin, il faudra définir une clé de chiffrement partagée entre le serveur et ses « clients ». Nous allons choisir quelque chose de difficile à trouver : chutt
radius-server host 192.168.10.2 key epikoi
Vérifions :
show radius Status and Counters - General RADIUS Information Deadtime(min) : 0 Timeout(secs) : 5 Retransmit Attempts : 3 Global Encryption Key : Auth Acct Server IP Addr Port Port Encryption Key --------------- ----- ----- -------------------------------- 192.168.10.2 1812 1813 epikoi
C'est ok
write memory
Il ne reste plus qu'à mettre en place le serveur RADIUS, que nous connecterons sur le DEFAULT_VLAN (que nous avons configuré pour un réseau IP 192.168.10.0/24).
Il peut se faire par la suite que l'on souhaite redonner à des ports leur fonctionnement « normal » après les avoir attribués à une authentification par RADIUS. Pour ce faire, il faudra sur ces ports successivement :
Supposons que l'on veuille remettre les ports 30 à 32 dans leur état « normal » :
configure no aaa port-access mac-based 30-32 no aaa port-access mac-based 30-32 auth-vid no aaa port-access mac-based 30-32 unauth-vid write memory
Vérifions :
show port-access 7-32 mac-based config Port Access MAC-Based Configuration
MAC Address Format : multi-colon Client Client Logoff Re-Auth Unauth Auth Port Enabled Limit Moves Period Period VLAN ID VLAN ID ----- -------- ------ ------ --------- --------- -------- -------- ... 24 Yes 1 No 300 0 3 2 25 Yes 1 No 300 0 3 2 26 Yes 1 No 300 0 3 2 27 Yes 1 No 300 0 3 2 28 Yes 1 No 300 0 3 2 29 Yes 1 No 300 0 3 2 30 No 1 No 300 0 0 0 31 No 1 No 300 0 0 0 32 No 1 No 300 0 0 0