Radius, 802.1X, et switches L3...

Le
Eric Belhomme
Bonjour,

Voici le topo :
- Des switches L3 (de marque Dell, mais là n'est pas la question)
- un réseau d'entreprise assez complexe, avec des VLANS, etc.

Le but : reconfigurer les switches avec le support 802.1X, le but étant
la configuration dynamique des switchports en fonction de ce qu'on y
branche. Idéalement le VMPS de Cisco aurait suffit à mon bonheur, mais là
j'ai du Dell et pas du Cisco, dont il faudra faire avec 802.1X

Autant le préciser tout de suite (mais vous allez vite vous en rendre
compte) je n'entrave que dalle à 802.1X, ni à RADIUS. En revanche je
maîtrise à peu près le dialecte des switches Dell (proche de IOS de Cisco)

J'ai donc compris que 802.1X nécessitait un serveur RADIUS, et que la
référence en la matière était FreeRADIUS. J'ai donc installé FreeRADIUS
2.1.10 (environement Centos 6.2 64 bits)

C'est la que les choses se compliquent : j'ai (à peu près) compris
comment autentifier un *utilisateur* à l'aide de PAP. En revanche, pour
l'autentification de machine, je crois avoir saisi qu'il me fallait jouer
avec EAP, et là je décroche carrément !

Toute la documentation que j'ai pu trouver sur Internet est soit trop
fragmentaire pour que avec ma connaissance du sujet j'arrive à raccrocher
les wagons, soit obsolète ou erronée. Quant à la littérature traitant du
sujet, elle est pour ainsi dire inexistante.

Bref, tout début d'aide pour me mettre le pied à l'étirer serait la
bienvenue :)

Merci, et bonne année 2012 !

--
Rico
On dit, en proverbe commun, heureux est le médecin
qui est appelé sur la déclinaison de la maladie.
-+- François Rabelais (1494?-1553), Tiers livre (chap. 41) -+-
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
xavier
Le #24134841
Eric Belhomme
Bref, tout début d'aide pour me mettre le pied à l'étirer serait la
bienvenue :)



Salut Eric,

Quand on m'avait demandé de faire ça, j'avais trouvé cette doc, copieuse
et complète, pour un portail sécurisé par Radius/802.1x :


--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
Eric Belhomme
Le #24134831
Le Fri, 06 Jan 2012 13:11:17 +0100, Xavier a écrit :

Quand on m'avait demandé de faire ça, j'avais trouvé cette doc, copieuse
et complète, pour un portail sécurisé par Radius/802.1x :




Ah, enfin un début de réponse concret, et qui traite de la problématique
dans sa globalité :)
Excellente doc, tu avais bien fait de la bookmarquer ;)

Merci Xavier :)

Sinon, on souhaite reproduire avec 802.1X le comportement de VMPS de Cisco
(à savoir bascule dans un VLAN en fonction de l'adresse ethernet d'une
machine), existe-il une solution plus "transparente" que WPA Supplicant
pour le client ? Idéalement, j'aurais souhaité ne rien installer pour les
machines "de base" ma problématique étant surtout de placer
automatiquement les équipements (filaires) sur le bon VLAN, sans
authentification spécifique.

--
Rico
Quelque bien qu'on nous dise de nous, on ne nous apprend rien de
nouveau.
-+- François de La Rochefoucauld (1613-1680), Maximes 303 -+-
Eric Masson
Le #24135071
Eric Belhomme
'Lut,

Sinon, on souhaite reproduire avec 802.1X le comportement de VMPS de
Cisco (à savoir bascule dans un VLAN en fonction de l'adresse
ethernet d'une machine), existe-il une solution plus "transparente"
que WPA Supplicant pour le client ?



Tiens, à titre documentaire, VMPS bascule le port du switch en untagged
avec le vlan id prévu ou alors modifie le paramétrage de la station cliente
pour que les trames ethernet soient taggées avec le vlan id prévu dans
le paramétrage, stp ?

En l'absence d'un mécanisme comme VMPS, il va amha falloir jouer avec
les notifications d'activation d'interface sur le switch pour modifier
sa config ou celle du client par script...

--
Et puis, je sais que ça ne se fait pas de reprendre sur l'orthographe,
mais l'usage Usenetien veut qu'on écrive "scançeur".
En ajoutant "fâssiste", pour faire bonne mesure.
-+- XH in
erwan
Le #24135291
Eric Masson
Eric Belhomme
'Lut,

Sinon, on souhaite reproduire avec 802.1X le comportement de VMPS de
Cisco (à savoir bascule dans un VLAN en fonction de l'adresse
ethernet d'une machine), existe-il une solution plus "transparente"
que WPA Supplicant pour le client ?



Tiens, à titre documentaire, VMPS bascule le port du switch en untagged
avec le vlan id prévu ou alors modifie le paramétrage de la station cliente
pour que les trames ethernet soient taggées avec le vlan id prévu dans
le paramétrage, stp ?



Solution n°1. Il met le pvid du port à ce que la config lui dit.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Eric Masson
Le #24135981
writes:

'Lut,

Solution n°1. Il met le pvid du port à ce que la config lui dit.



Pour émuler le truc, en fonction des capacités du switch, il y a
peut-être moyen de s'en sortir.

S'il peut logger via syslog les événements d'activation/désactivation
d'une interface, et qu'il dispose d'une cli complète, les informations
nécessaires sont accessibles.

Via un log monitor (*) , sur un événement d'activation d'une interface,
un script va va accéder au switch (ssh, telnet ?) pour récupérer la
table des adresses mac, sélectionner l'adresse mac associée à
l'interface et modifier le vlan id associé à l'interface en question
après avoir recherché la valeur nécessaire (sql, ldap ?)

Ça ne gère pas le cas de plusieurs clients sur un port du switch, ce
n'est pas forcément top comparé à une solution gérée par le firmware,
mais ça peut dépanner.

* : http://www.usenix.org/events/bsdcon/full_papers/glass/glass_html/
--
salut c Herve je voulais savoir si tu puvais m'envoyer le crack pour
wingate.
-+- Is in
Eric Belhomme
Le #24195711
Le Fri, 06 Jan 2012 14:14:59 +0000, Eric Belhomme a écrit :

Salut,

Je reviens (un peu tardivement) à la charge sur ce sujet... J'ai mis en
place une maquette, avec un switch L3 Dell 7048, un serveur freeRadius
2.10 (sous debian Squeeze) et une machine cliente (Debian Squeeze aussi)
avec wpa-supplicant.

Mon switch switch est configuré en "dot1x" avec auth Radius, et les ports
du switch basculent bien entre les modes "authorized", "unauthorized", et
"guest". /mais/ (car il y a un mais) l'affectation du bon VLAN en mode
authorized ne fonctionne pas : je me retrouve systématiquement en VLAN 1.

Voici les logs de freeradius :

rad_recv: Access-Request packet from host 172.16.253.254 port 49158,
ide, length8
User-Name = ""
Called-Station-Id = "5c-26-0a-b9-fc-92"
Calling-Station-Id = "00:19:5b:fe:ac:2d"
NAS-Identifier = "5c-26-0a-b9-fc-90"
NAS-Port = 3
Framed-MTU = 1500
NAS-Port-Type = Ethernet
State = 0x6f4a4a956f484ec306b2eda69b7ec338
EAP-Message = 0x020200160410c5321433b1ff1ef371e4060073be6b3b
Message-Authenticator = 0xf9d6c377ee1d02b588959fb6ddf9a871
# Executing section authorize from file /etc/freeradius/sites-enabled/
default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] Looking up realm "eve" for User-Name = ""
[suffix] Found realm "eve"
[suffix] Adding Stripped-User-Name = "vulcano"
[suffix] Adding Realm = "eve"
[suffix] Authentication realm is LOCAL.
++[suffix] returns ok
[eap] EAP packet type response id 2 length 22
[eap] No EAP Start, assuming it's an on-going EAP conversation
++[eap] returns updated
[files] users: Matched entry vulcano at line 94
++[files] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] WARNING: Auth-Type already set. Not setting to PAP
++[pap] returns noop
Found Auth-Type = EAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group authenticate {...}
[eap] Request found, released from the list
[eap] EAP/md5
[eap] processing type md5
[eap] Freeing handler
++[eap] returns ok
# Executing section post-auth from file /etc/freeradius/sites-enabled/
default
+- entering group post-auth {...}
++[exec] returns noop
Sending Access-Accept of id 65 to 172.16.253.254 port 49158
EAP-Message = 0x03020004
Message-Authenticator = 0x00000000000000000000000000000000
User-Name = "vulcano"
Finished request 1.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 64 with timestamp +10
Cleaning up request 1 ID 65 with timestamp +10
Ready to process requests.



ce qui me chagrine, c'est qu'on ne voit pas le message Access-Accept
pousser les infos IEEE-802 que j'ai spécifié ! Coté logs du switch, c'est
plutôt succinct :

TRAPMGR[297273792]: traputil.c(614) 977 %% Link Up: Gi1/0/3
DOT1X[261278512]: dot1x_radius.c(824) 979 %% Dot1x Authenticated
Successfully
TRAPMGR[297273792]: traputil.c(614) 980 %% Gi1/0/3 status is authorized
RADIUS[276461936]: radius.c(1823) 981 %% RADIUS: Server Entry is Null or
Could not allocate Radius Packet
RADIUS[276461936]: radius.c(1863) 982 %% RADIUS: radiusRequestInfoProcess
(): Could not successfully process the request
TRAPMGR[297273792]: traputil.c(614) 983 %% Gi1/0/3 is transitioned from
the Forwarding state to the Blocking state in instance 0
TRAPMGR[297273792]: traputil.c(614) 984 %% Gi1/0/3 is transitioned from
the Learning state to the Forwarding state in instance 0


mon fichier users ressemble à ceci :

vulcano Cleartext-Password := "secret"

DEFAULT Huntgroup-Name == "switches-l2", Realm == "eve"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-ID = 3


D'après ce que j'au vu sur le web, je devrais voir dans les logs de
freeradius (au moins en mode debug) des choses comme :

Sending Access-Accept of id 75 to 157.159.10.119 port 1645
Tunnel-Type:0 = VLAN
Tunnel-Medium-Type:0 = IEEE-802
Tunnel-Private-Group-Id:0 = "50"


Bref, j'ai une connerie quelque part, mais je vois pas où... des idées ?

--
Rico
Parbieu, dit le meunier, est bien fou du cerveau
Qui prétend contenter tout le monde et son père.
-+- Jean de La fontaine,
Le Meunier, son Fils et l'Âne (Fables III.1) -+-
Publicité
Poster une réponse
Anonyme