I Objectifs
L’objectif est d’ouvrir le réseau d’entreprise pour un personnel connu.
Le personnel sera identifié par un compte et mot de passe utilisateur utilisé lors de l’ouverture de session. Il faudra également prendre en compte l’authentification du compte ordinateur pour ouvrir un VLAN spécifique afin que l’ordinateur puisse discuter avec le contrôleur de domaine et valider le compte utilisateur de domaine. Ce ne sera qu’après cette étape que la demande d’authentification Radius sera envoyée.
Pour cela il sera utilisé :
- un serveur Free Radius sous Linux, non relié au contrôleur de domaine – les comptes seront renseignés manuellement ;
- un serveur Windows faisant office de contrôleur de domaine, de serveur DNS et de serveur DHCP ;
- un PC sous Windows 10.
II Présentation infrastructure utilisée
L’infrastructure sera la suivante :

Les PC1 et 2 sont présents pour tester le DHCP dans le VLAN 10 et 20. Pour le VLAN 10 le réseau sera 192.168.10.0 et la passerelle sera 192.168.10.254
Le PC Windows 10 servira de test. Il sera dans le VLAN 20 en tant qu’invité. Et si l’utilisateur sera authentifié, le PC basculera dans le VLAN 10. Le VLAN 20 au pour réseau 192.178.20.0 et pour adresse de passerelle 192.168.20.254.
Les 2 serveurs, Free Radius et Windows, sont dans le VLAN 30 qui ont respectivement les @IP 192.168.30.100 et 192.168.30.101. L’adresse IP de passerelle sera 192.168.0.254.
L’ordinateur aura comme nom « PC1″ et sera dans le domaine ‘domaine.local »
III Serveur DHCP Windows
Après avoir installé le service DHCP sur le serveur, il faut définir les étendues des VLAN 10 et 20.

Pour chaque étendue, ne pas oublier de renseigner la passerelle. Ici nommé « Routeur » qui contiendra la passerelle à utiliser par le PC.
Remarque : ne pas regrouper ces étendues dans une étendue globale. Si regroupé, le serveur DHCP reverra la même @ip quelque soit le VLAN source du PC demandeur.
A ce stade, le serveur DHCP est prêt.
IV Serveur Radius
Pour le serveur Radius, on va définir les comptes utilisateurs et ordinateurs à authentifier. Pour cela nous allons ajouter les lignes suivantes dans le fichier /etc/freeradius/3.0/users :

Ici nous autorisons :
- un compte local nommé « Xavior » qui pourra travailler dans le VLAN 10
- le compte d’ordinateur « PC1 » qui pourra travailler dans le VLAN 20 :
- ne connaissant pas le mot de passe du compte d’ordinateur, nous indiquons au serveur Radius de ne pas vérifier le mot de passe et de retourner une authentification réussie (Auth-Type := Accept).
Attention : pour MS-CHAP le fait de forcer l’authentification cela ne marchera pas ! –> DONC définition d’un vlan-invité à faire sur le routeur. Ce sera le 20.
Rappel si pas déjà fait :
Pour que le paramètre VLAN soit renvoyé il faut modifier le fichier /etc/freeradius/3.0/mods-avalaible/eap.conf. Dans les rubriques peap et/ou ttls il faut ces valeurs comme suivant (définie par défaut à « no ») :
copy_request_to_tunnel = yes
use_tunneled_reply = yes
Pour visualiser les log de connexion il faut modifier les paramètres du serveur radius. Pour cela aller dans le fichier radiusd.conf et faire en sorte que les lignes ci-dessous apparaissent :
auth = yes
auth_badpass = yes
auth_goodpass = yes
Une fois ces modifications effectuées, il faut relancer le service freeradius :
systemctl restart freeradius
V Configuration routeur
Il va falloir configurer plusieurs domaines : les VLAN, les redirections DHCP, le serveur radius et les interfaces.
V.1 Configuration des VLAN et de la redirection des requêtes DCHP
Nous avons 3 vlan à configurer :
- le VLAN 10 avec une redirection des requetes DHCP vers le serveur DHCP ;
- le VLAN 20 avec une redirection des requêtes DHCP vers le serveur DHCP ;
- le VLAN 30.
Extrait running-config :
interface Vlan10
ip address 192.168.10.254 255.255.255.0
ip helper-address 192.168.30.101
!
interface Vlan20
ip address 192.168.20.254 255.255.255.0
ip helper-address 192.168.30.101
!
interface Vlan30
ip address 192.168.30.254 255.255.255.0
V.2 Configuration du serveur radius et interface qui doit changer de Vlan
Ici nous allons ajouter les modèles pour les requetes RADIUS.
Extrait Running-config :
aaa new-model
!
!
aaa authentication dot1x default group radius
aaa authorization network default group radius
Puis activer le type d’authentification Radius, l’adresse ip du serveur RADIUS et le code secret associé
Extrait Running-config :
dot1x system-auth-control
radius-server host 192.168.30.100 auth-port 1812 acct-port 1813
radius-server key test
Remarque : voir article précédent pour définir sur le serveur freeradius le mot de passe « secret ».
V.3 Configuration des interfaces
Pour les interfaces 1,2 14 et 15 (PC1, PC2, serveur Linux et Windows) : on associe les interfaces au bon VLAN
extrait running config :
interface FastEthernet1/1
switchport access vlan 10
!
interface FastEthernet1/2
switchport access vlan 20
!
interface FastEthernet1/14
switchport access vlan 30
!
interface FastEthernet1/15
switchport access vlan 30
!
Il reste à définir l’interface 1/3 sur lequel est connecté Windows 10 :
Extrait running-config
interface FastEthernet1/3
dot1x pae authenticator
dot1x port-control auto
dot1x auth-fail vlan 20
dot1x guest-vlan 20
Ici on indique par défaut que le port est ouvert et positionné sur le VLAN 20 (auth-fail et guest-vlan).
Ce VLAN pourra contacter le contrôleur de domaine. C’est obligatoire pour que Windows valide un compte de domaine.
VI Tests de bon fonctionnement
Au démarrage du PC, et avant l’ouverture de session, le PC Windows envoie une trame radius avec comme identifiant le nom de l’ordinateur :

Le PC est dans le VLAN 20 :
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa1/0, Fa1/4, Fa1/5, Fa1/6
Fa1/7, Fa1/8, Fa1/9, Fa1/10
Fa1/11, Fa1/12, Fa1/13
10 VLAN0010 active Fa1/1
20 VLAN0020 active Fa1/2, Fa1/3
30 VLAN0030 active Fa1/14, Fa1/15
Lors de l’ouverture d’une session, le compte et mot de passe est transmis au serveur Radius :

Le VLAN est alors changé et passe du 20 au 10 :
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa1/0, Fa1/4, Fa1/5, Fa1/6
Fa1/7, Fa1/8, Fa1/9, Fa1/10
Fa1/11, Fa1/12, Fa1/13
10 VLAN0010 active Fa1/1, Fa1/3
20 VLAN0020 active Fa1/2
30 VLAN0030 active Fa1/14, Fa1/15
Et l’adresse IP est bien dans le bon réseau :

En revanche, si une connexion est effectuée avec un autre compte non connu du serveur Radius :
Les logs du serveurs Radius :

Le Vlan 20 est sélectionné :
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa1/0, Fa1/4, Fa1/5, Fa1/6
Fa1/7, Fa1/8, Fa1/9, Fa1/10
Fa1/11, Fa1/12, Fa1/13
10 VLAN0010 active Fa1/1
20 VLAN0020 active Fa1/2, Fa1/3
30 VLAN0030 active Fa1/14, Fa1/15
Et l’adresse IP a changée :

VII Conclusion
Il a bien été abordé la changement de Vlan suivant le type d’utilisateur. En terme de sécurité c’est un peu léger et en terme d’administration peu pratique. En effet il est nécessaire de recréer les comptes Windows dans la partie FreeRadius et cela nécessite de connaître les mots de passe des utilisateurs. Bref cela permet de voir le principe global de changement de Vlan mais ce type d’implémentation en production est à proscrire.
Pour aller plus loin, et dans un premier temps il faudrait créer une ACL pour isoler le VLAN 20. Cette ACL ne permettrait de discuter qu’avec le contrôleur de domaine.
Dans l’idéal, il faudrait créer 3 VLAN :
- le premier VLAN servant à accueillir n’importe quel PC. Ce Vlan ne devant avoir accès à aucunes ressources (ACL totalement restrictive) :
- le soucis est que les PC dans ce VLAN se verraient : ce qui peut poser un problème de sécurité … (A étudier)
- néanmoins on peut y mettre des « pots de miel » et commencer par ce biais à détecter de futurs attaquants ….
- le deuxième VLAN servant à autoriser un PC connu et pouvant discuter avec le contrôleur de domaine (ACL ne permettant de discuter qu’avec le contrôleur de domaine) :
- 2 méthodes :
- soit en utilisant l’adresse MAC du PC (moins sûr)
- soit en vérifiant les identifiants du compte d’ordinateur avec l’AD (plus sûr)
- 2 méthodes :
- le troisième VLAN autorisant l’accès aux ressources réseaux après une authentification utilisateur réussie.
Pour pouvoir implémenter ces règles, le serveur Radius :
- est toujours un freeradius et doit être connecté avec le contrôleur de domaine pour valider les identifiants, il sera placé comme mandataire pour les comptes windows,
- est un autre serveur Radius tel que celui de microsoft (NPS).