Concernant l'attribution dynamique de VLAN Dot1X

8

Situation:

J'essaie de faire fonctionner 802.1X pour moi. Je veux que le serveur RADIUS attribue dynamiquement des VLAN aux ports en fonction de l'attribut de réponse RADIUS pour un utilisateur particulier. J'ai un commutateur HP E2620 et un serveur FreeRADIUS. Le demandeur est une machine Windows 8.1

J'ai fait référence à ce document sur le site de freeradius.


Ce que j'ai fait jusqu'à présent:

Sur FreeRADIUS, j'ai créé un utilisateur avec ces paramètres:

dot1xtest    User-Password := "secret"
             Tunnel-Type = "VLAN",
             Tunnel-Medium-Type = "IEEE-802",
             Tunnel-Private-Group-ID = "100"

J'ai également essayé à la Tunnel-Pvt-Group-IDplace, mais cela ne fonctionne pas sur FreeRADIUS, aboie juste sur moi (je l'ai vu sur les ressources pour la configuration sur Microsoft NPS, l' une d'entre elles ). J'ai également essayé les valeurs "802", 802, 6 pour le type de tunnel moyen.

J'ai également essayé d'utiliser le nom de VLAN réel au lieu de VLAN-ID comme valeur d'ID de groupe. Quoi qu'il en soit, son type de données est une chaîne.

J'ai configuré le commutateur HP pour utiliser ce serveur RADIUS pour AAA et l'ai configuré pour le port 10:

aaa port-access gvrp-vlans
aaa authentication port-access eap-radius
aaa port-access authenticator 10
aaa port-access authenticator 10 auth-vid 150
aaa port-access authenticator 10 unauth-vid 200
aaa port-access authenticator active

VLAN:

VLAN 100 - VLAN which I want to get after authentication.
VLAN 150 - VLAN which I get now, because my config is not working
VLAN 200 - Unauthorized VLAN which is used on auth. failure

Remarques:

  • Port 10 a également VLAN non balisé 150 qui lui est attribué: vlan 150 untagged 10. Et je ne peux pas me débarrasser de l'affectation statique

  • Tous les VLAN répertoriés ci-dessus sont présents dans la base de données VLAN du commutateur.

  • Chaque fois que je me connecte à ce port, il me demande des informations d'identification; après avoir réussi l'authentification, il m'envoie simplement au VLAN150 et si j'essaie d'échouer, j'arrive au VLAN200.

  • J'ai activé l'authentification 802.1X sur une connexion Windows comme décrit ici .

  • J'ai essayé d'activer GVRP - cela ne change rien


Sortie de commande de diagnostic / show:

Affectation VLAN statique pour le port 10. VLAN 150 non balisé

 SW # show vlans ports 10 detail

 Status and Counters - VLAN Information - for ports 10

  VLAN ID Name                             | Status     Voice Jumbo Mode
  ------- -------------------------------- + ---------- ----- ----- --------
  150     VLAN150                          | Port-based No    No    Untagged

En show logging je vois ceci:

I 08/28/14 08:29:24 00077 ports: port 10 is now off-line
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by AAA
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by STP
I 08/28/14 08:29:29 00076 ports: port 10 is now on-line
I 08/28/14 08:29:29 00001 vlan: VLAN200 virtual LAN enabled
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by AAA
I 08/28/14 08:29:29 00002 vlan: UNUSED virtual LAN disabled
I 08/28/14 08:29:29 00435 ports: port 10 is Blocked by STP
I 08/28/14 08:29:29 00076 ports: port 10 is now on-line
I 08/28/14 08:29:29 00001 vlan: UNUSED virtual LAN enabled
I 08/28/14 08:29:47 00002 vlan: UNUSED virtual LAN disabled

show port-access authenticator production:

SW # show port-access authenticator

 Port Access Authenticator Status

  Port-access authenticator activated [No] : Yes
  Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : Yes

       Auths/  Unauth  Untagged Tagged           % In  RADIUS Cntrl
  Port Guests  Clients VLAN     VLANs  Port COS  Limit ACL    Dir
  ---- ------- ------- -------- ------ --------- ----- ------ -----
  10   1/0     0       150      No     No        No    No     both

Test utilisateur RADIUS:

Linux-server # radtest dot1xtest secret localhost 0 secretkey
Sending Access-Request of id 158 to 127.0.0.1 port 1812
        User-Name = "dot1xtest"
        User-Password = "secret"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=158, length=37
        Tunnel-Type:0 = VLAN
        Tunnel-Medium-Type:0 = 802
        Tunnel-Private-Group-Id:0 = "100"

C'est ce que j'ai vu dans TCPdump sur le serveur RADIUS. Je capturais le trafic UDP sortant avec le port source 1812. C'est ce que mon commutateur obtient (si c'est le cas, je ne sais pas comment vérifier cela ...)

      Tunnel Type Attribute (64), length: 6, Value: Tag[Unused]#13
        0x0000:  0000 000d
      Tunnel Medium Attribute (65), length: 6, Value: Tag[Unused]802
        0x0000:  0000 0006
      Tunnel Private Group Attribute (81), length: 5, Value: 100
        0x0000:  3130 30

Déboguer:

debug security radius-server
debug security port-access authenticator
debug destination buffer

Après cela, j'ai débranché et branché le câble et l'ai fait show debug bufferet voici le copier-coller de celui-ci . C'est bizarre, rien n'est dit sur un attribut lié au VLAN.


Des questions:

Qu'est-ce que je fais mal?

J'ai lu dans un tas de ressources que si le RADIUS attribue un commutateur ID VLAN l'utilise en premier lieu. Il revient ensuite au VLAN autorisé configuré pour l'authentificateur d'accès au port si l'authentification réussit. S'il n'est pas présent, il attribue un VLAN non balisé configuré sur le port. Pourquoi n'ai-je pas ce comportement?

Je commence à penser que l'attribut Tunnel-Private-Group-Idn'est pas pris en charge sur ces commutateurs. Il semble que chaque ressource se réfère à la Tunnel-Pvt-Group-Idplace (configuration sur Microsoft). Dommage que je n'ai pas Windows Server à vérifier.

Peut-être que c'est lié au firmware? Je n'ai pas encore essayé de mettre à niveau, j'utilise RA_15_06_0009.swi et il y a déjà RA_15_14_0007.swi


Mise à jour

Je viens d'essayer sur un 3500yl-24G-PWRmodèle et ne fonctionne toujours pas. Donc ... je suppose que les commutateurs n'obtiennent tout simplement pas la configuration du serveur RADIUS (ou ai-je utilisé des attributs ou des opérateurs incorrects?). Comment puis-je résoudre ce problème?

Alex
la source
Avez-vous le port sur vlan100 comme marqué?
some_guy_long_gone
Cela fait un moment que je n'ai pas joué sur les commutateurs HP, mais il me semble qu'il devrait également y avoir une aaa port-access authenticator 10 auth-vid 150déclaration. IIRC, cela indiquerait au commutateur d'utiliser 150 pour les périphériques authentifiés, sauf s'il obtient une valeur différente de RADIUS. Sans cela, je soupçonne qu'il n'utilisera que la valeur de port configurée. Ne pas publier comme réponse car je travaille sur la mémoire et cela échoue souvent de nos jours. Si cela fonctionne, faites-le moi savoir et je posterai comme réponse.
Apprendre
* legioxi, non le port est défini sur VLAN 150 non balisé. * YLearn, je n'en ai pas besoin pour attribuer un VLAN spécifique. Je veux qu'il attribue un VLAN en fonction de ce que l'utilisateur authentifie. Auth-vid vient en deuxième priorité après RADIUS (qui ne fonctionne pas). Si aucun Auth-vid n'est défini, il choisit en effet le VLAN non balisé configuré.
Alex

Réponses:

6

Alex, bonjour là-bas!

J'ai construit un environnement de test pour vous, donc j'utilise freeradius 2.1.12 + dfsg-1.2 (sur debian) et je change de hp 2650. Je viens de répéter votre configuration et je n'ai aucun problème avec cela. Mon test procurve ip 10.0.10.29, test freeradius ip 192.168.2.60.

procurve config:

Running configuration:

; J4899A Configuration Editor; Created on release #H.10.83

hostname "ProCurve Switch 2650"
interface 1
   no lacp
exit
interface 2
   no lacp
exit
interface 3
   no lacp
exit
interface 4
   no lacp
exit
interface 5
   no lacp
exit
interface 6
   no lacp
exit
interface 7
   no lacp
exit
interface 8
   no lacp
exit
interface 9
   no lacp
exit
interface 10
   no lacp
exit
snmp-server community "public" Unrestricted
vlan 1
   name "DEFAULT_VLAN"
   untagged 11-50
   ip address dhcp-bootp
   no untagged 1-10
   exit
vlan 100
   name "success"
   untagged 1-10
   exit
vlan 200
   name "fail"
   exit
aaa authentication port-access eap-radius
radius-server host 192.168.2.60 key test
aaa port-access authenticator 1-10
aaa port-access authenticator 1 unauth-vid 200
aaa port-access authenticator 2 unauth-vid 200
aaa port-access authenticator 3 unauth-vid 200
aaa port-access authenticator 4 unauth-vid 200
aaa port-access authenticator 5 unauth-vid 200
aaa port-access authenticator 6 unauth-vid 200
aaa port-access authenticator 7 unauth-vid 200
aaa port-access authenticator 8 unauth-vid 200
aaa port-access authenticator 9 unauth-vid 200
aaa port-access authenticator 10 unauth-vid 200
aaa port-access authenticator active

/ etc / freeradius / users:

<...>
testuser User-Password := test
        Tunnel-Type = VLAN,
        Tunnel-Medium-Type = IEEE-802,
        Tunnel-Private-Group-Id = "100"
<...>

/etc/freeradius/radiusd.conf:

<...>
client switch {
        ipaddr          = 10.0.10.29
        secret          = test
        require_message_authenticator = no
        nastype     = other
}
<...>

Et j'ai utilisé ce manuel pour activer 8021x dans Windows:

http://windows.microsoft.com/en-us/windows/enable-802-1x-authentication#1TC=windows-7 

Mais, j'ai désactivé l'utilisation des crédits d'utilisateur enregistrés.

Donc, si les codes d'utilisateur sont corrects, j'ai ce message dans /var/log/freeradius/radius.log

tail -f /var/log/freeradius/radius.log
Fri Sep  5 12:54:14 2014 : Auth: Login OK: [testuser/<via Auth-Type = EAP>] (from client switch port 0 via TLS tunnel)
Fri Sep  5 12:54:14 2014 : Auth: Login OK: [testuser/<via Auth-Type = EAP>] (from client switch port 1 cli b4-99-ba-5a-bb-65)

et sur mon interrupteur, j'ai eu:

ProCurve Switch 2650(eth-1)# sh vlans ports 1

 Status and Counters - VLAN Information - for ports 1

  802.1Q VLAN ID Name         Status       Voice
  -------------- ------------ ------------ -----
  100            success      Port-based   No

Si les crédits sont incorrects:

Fri Sep  5 12:56:06 2014 : Auth: Login incorrect: [sasdasd/<via Auth-Type = EAP>] (from client switch port 0 via TLS tunnel)
Fri Sep  5 12:56:06 2014 : Auth: Login incorrect: [sasdasd/<via Auth-Type = EAP>] (from client switch port 1 cli b4-99-ba-5a-bb-65)


ProCurve Switch 2650(eth-1)# sh vlans ports 1

 Status and Counters - VLAN Information - for ports 1

  802.1Q VLAN ID Name         Status       Voice
  -------------- ------------ ------------ -----
  200            fail         Port-based   No

Peut-être que vous n'avez pas activé 8021x dans Windows? J'espère que cela vous aide, mec.

pyatka
la source
Hé, mec, merci! C'est très apprécié! Cependant, j'ai tout fait pour activer le dot1x sous Windows. Je remarque que vous avez choisi VLAN 100 comme VLAN non balisé par défaut sur le port de commutation auquel vous essayez de vous connecter. Cela fonctionne aussi pour moi de cette façon. J'obtiens un VLAN non étiqueté configuré sur un port de commutation lorsque je réussis. Mais que se passe-t-il si vous définissez VLAN non balisé pour votre port sur 1 et essayez d'attribuer VLAN 100 via RADIUS? Est-ce que ça marche pour toi? Que faire si j'ai plusieurs utilisateurs différents avec différentes valeurs Tunnel-Private-Group-Id?
Alex
1
Compris :) Je viens de m'échapper de mon travail, si personne ne t'aide, j'essaierai de le faire lundi (quand j'aurai accès à mon laboratoire de test, il s'est isolé, malheureusement)
pyatka
1
il n'y a pas encore de succès ... MAC-auth fonctionne très bien (le port définit n'importe quel objectif vlan non balisé), mais 8021x (ou les deux avec MAC-auth) ne fonctionne pas - dans toutes les combinaisons de tout ce qui peut être réglé ;-) I` Je vais essayer de faire la même chose avec un autre OS client (pas Windows), c'est peut-être une clé. En outre, cela semble très étrange, car j'ai des décharges de trafic de rayon, et ihmo, tous les messages semblent être corrects ...
pyatka
2

Wow, je n'aurais jamais pensé à celui-ci. Ce n'était qu'une solution aléatoire.

Donc, le problème était avec la authorizesection dans la defaultconfiguration de mon site à /etc/raddb/sites-enabled/default, c'était une sorte de défaut. Je ne sais pas vraiment ce qui se passe avec ça (si vous, les gars, savez, commentez ça, s'il vous plaît), vous allez faire des recherches là-dessus; C'est ici:

eap {
    ok = return
}

J'ai commenté cela et remplacé par juste:

eap

Je n'espérais plus pouvoir le faire fonctionner, puis je me suis reconnecté et ... c'est arrivé, juste au hasard et je suis tellement excité maintenant! J'ai reçu un VLAN de manière dynamique:

Déboguer:

0001:03:15:51.07 RAD  mRadiusCtr:ACCESS REQUEST id: 194 to 192.168.1.27,
   session: 56, access method: PORT-ACCESS, User-Name: dot1x,
   Calling-Station-Id: dead00-00beef, NAS-Port-Id: 10, NAS-IP-Address:
   192.168.100.17.
0001:03:15:51.10 RAD  tRadiusR:ACCESS ACCEPT id: 194 from 192.168.1.27 received.
0001:03:15:51.10 1X   m8021xCtrl:Port 10: received Success for client
   dead00-00beef, finished authentication session.
0001:03:15:51.10 1X   m8021xCtrl:Port: 10 MAC: dead00-00beef RADIUS Attributes,
   vid: 100.
0001:03:15:51.10 1X   m8021xCtrl:Port 10: starting session for client
   dead00-00beef.

SW # show port-access authenticator 10 vlan - affiche toujours le VLAN 200 non autorisé et le VLAN 150 autorisé

Port Access Authenticator VLAN Configuration

  Port-access authenticator activated [No] : Yes
  Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No

       Access  Unauth  Auth
  Port Control VLAN ID VLAN ID
  ---- ------- ------- -------
  10   Auto    200     150

SW # show vlans ports 10 detail - Et le VLAN non balisé sur le port 10 a été réglé sur VLAN 100

 Status and Counters - VLAN Information - for ports 10

  VLAN ID Name                 | Status     Voice Jumbo Mode
  ------- -------------------- + ---------- ----- ----- --------
  100     VLAN100              | Port-based No    No    Untagged

SW # show port-access authenticator

  Port Access Authenticator Status

  Port-access authenticator activated [No] : Yes
  Allow RADIUS-assigned dynamic (GVRP) VLANs [No] : No

       Auths/  Unauth  Untagged Tagged           % In  RADIUS Cntrl
  Port Guests  Clients VLAN     VLANs  Port COS  Limit ACL    Dir
  ---- ------- ------- -------- ------ --------- ----- ------ -----
  10   1/0     0       100      No     No        No    No     both

De plus, si vous voulez que cela fonctionne, vous devez créer tous les VLAN requis sur le commutateur, sinon vous obtiendrez ce genre de choses:

W 09/12/14 12:47:57 02400 dca: 8021X client, RADIUS-assigned VID validation
            error. MAC DEAD0000BEEF port 10 VLAN-Id 0 or unknown.

et Windows va juste dire: Authentication failedce qui est un peu déroutant aussi.

Je ne l'ai pas vraiment fait fonctionner avec des VLAN inconnus malgré le fait que GVRP était activé, a aaa port-access gvrp-vlansété défini et j'ai également explicitement défini unknown-vlans learnsur l'interface 10, mais eh bien ... nvm.

Alex
la source
1

Vous devez ajouter la commande suivante:

aaa port-access authenticator 10 auth-vid 150

Cela indiquerait au commutateur que le port 10 utilisera le VLAN attribué par l'authentification pour les périphériques authentifiés à moins qu'il n'obtienne une valeur différente de RADIUS. Sans cela, il utilisera simplement la valeur de port configurée et ignorera toutes les affectations de VLAN fournies par RADIUS.

J'ai creusé et trouvé cette friandise dans l'un de mes documents HP enregistrés:

Si le serveur RADIUS spécifie un VLAN pour un demandeur authentifié connecté à un port d'authentification 802.1X, cette affectation de VLAN remplace toute affectation de VLAN de client autorisé configurée sur le port d'authentification. En effet, les deux VLAN ne sont pas balisés et le commutateur n'autorise qu'une seule appartenance VLAN non balisée par port. Par exemple, supposons que vous ayez configuré le port 4 pour placer des suppléments authentifiés dans le VLAN 20. Si un serveur RADIUS authentifie le suppliant «A» et affecte ce supplicant au VLAN 50, alors le port peut accéder au VLAN 50 pendant la durée de la session client. Lorsque le client se déconnecte du port, le port supprime ces affectations et utilise uniquement les appartenances VLAN pour lesquelles il est configuré statiquement.

YApprendre
la source
Malheureusement, cela ne fonctionne toujours pas. Je reçois le VLAN 150 assigné et non le RADIUS
Alex
Gardez à l'esprit que lors du dépannage d'un problème comme celui-ci, il peut y avoir plusieurs erreurs dans la configuration. Est-ce que cela change l'une des autres sorties ( show loggingou show port-access authenticatorpar exemple)? Avez-vous combiné cela avec certains des autres changements que vous avez essayés précédemment? Peut-être que celui que vous avez exclu était nécessaire, mais il manquait également un autre morceau avant de travailler.
Apprendre
Ouais, j'ai essayé de combiner .. Les commandes Show montrent toujours le même comportement / sortie. Je ne peux plus penser à rien. Je suppose que cette commande spécifique n'est pas du tout le problème. Il vient juste en priorité après le VLAN attribué par RADIUS et ne change rien. Le problème, IMO, est que le commutateur n'obtient pas d'attributs RADIUS pour le VLAN ou qu'ils ne sont pas traités ou sont en quelque sorte incorrects. Je veux dire, regardez à quel point cette configuration est simple: integratingit.wordpress.com/2012/07/05/…
Alex