In Bezug auf die dynamische VLAN-Zuweisung von Dot1X

8

Situation:

Ich versuche, 802.1X für mich zum Laufen zu bringen. Ich möchte, dass der RADIUS-Server Ports basierend auf dem RADIUS-Antwortattribut für einen bestimmten Benutzer dynamisch VLANs zuweist. Ich habe einen HP E2620-Switch und einen FreeRADIUS-Server. Der Supplicant ist ein Windows 8.1-Computer

Ich habe auf dieses Dokument auf der freeradius-Website verwiesen.


Was ich bisher gemacht habe:

Auf FreeRADIUS habe ich einen Benutzer mit folgenden Parametern erstellt:

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

Ich habe es auch versucht Tunnel-Pvt-Group-ID, aber es funktioniert nicht unter FreeRADIUS, sondern bellt mich nur an (ich habe dies bei Ressourcen für die Konfiguration unter Microsoft NPS gesehen, eine davon ). Außerdem habe ich die Werte "802", 802, 6 für den Tunnelmedientyp ausprobiert.

Außerdem habe ich versucht, den tatsächlichen VLAN-Namen anstelle der VLAN-ID als Gruppen-ID-Wert zu verwenden. Auf jeden Fall ist sein Datentyp Zeichenfolge.

Ich habe den HP Switch so konfiguriert, dass er diesen RADIUS-Server für AAA verwendet, und dies für Port 10 eingerichtet:

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

VLANs:

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

Anmerkungen:

  • Port 10 ist auch das VLAN 150 ohne Tags zugewiesen : vlan 150 untagged 10. Und ich kann die statische Zuordnung nicht loswerden

  • Alle oben aufgeführten VLANs sind in der VLAN-Datenbank des Switch vorhanden.

  • Immer wenn ich an diesen Port anschließe, werden Sie nach Anmeldeinformationen gefragt. Nachdem ich die Authentifizierung erfolgreich abgeschlossen habe, werde ich nur an VLAN150 gesendet. Wenn ich versuche, einen Fehler zu machen, erhalte ich VLAN200.

  • Ich habe die 802.1X-Authentifizierung unter Windows-Verbindung wie hier beschrieben aktiviert .

  • Ich habe versucht, GVRP zu aktivieren - es ändert nichts


Ausgabe des Diagnose- / Showbefehls:

Statische VLAN-Zuweisung für Port 10. VLAN 150 ohne Tags

 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

In show logging sehe ich das:

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 Ausgabe:

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

RADIUS-Benutzertest:

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"

Dies habe ich in TCPdump auf dem RADIUS-Server gesehen. Ich habe ausgehenden UDP-Verkehr mit dem Quellport 1812 erfasst. Es ist das, was mein Switch erhält (wenn dies tatsächlich der Fall ist, weiß ich nicht, wie ich das überprüfen soll ...).

      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

Debuggen:

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

Danach habe ich das Kabel ausgesteckt und eingesteckt show debug bufferund hier ist das Kopieren und Einfügen . Es ist seltsam, es wird nichts über irgendetwas gesagt, das mit VLAN zusammenhängt.


Fragen:

Was mache ich falsch?

Ich habe in einer Reihe von Ressourcen gelesen, dass, wenn der RADIUS einen VLAN-ID-Switch zuweist, dieser überhaupt verwendet wird. Wenn die Authentifizierung erfolgreich ist, wird auf das für Port-Access Authenticator konfigurierte autorisierte VLAN zurückgegriffen. Ist dies nicht der Fall, wird das am Port konfigurierte VLAN ohne Tags zugewiesen. Warum verstehe ich dieses Verhalten nicht?

Ich fange an zu denken, dass das Attribut Tunnel-Private-Group-Idauf diesen Schaltern nicht unterstützt wird. Es scheint, dass sich jede Ressource Tunnel-Pvt-Group-Idstattdessen bezieht (Konfiguration unter Microsoft). Schade, dass ich Windows Server nicht überprüfen muss.

Vielleicht hängt es mit der Firmware zusammen? Ich habe noch nicht versucht, ein Upgrade durchzuführen. Ich verwende RA_15_06_0009.swi und es gibt bereits RA_15_14_0007.swi


Aktualisieren

Habe gerade ein 3500yl-24G-PWRModell anprobiert und funktioniert immer noch nicht. Also ... ich denke, Switches erhalten die Konfiguration einfach nicht vom RADIUS-Server (oder habe ich falsche Attribute oder Operatoren verwendet?). Wie kann ich das beheben?

Alex
quelle
Haben Sie den Port auf vlan100 als markiert?
some_guy_long_gone
Es ist schon eine Weile her, dass ich auf HP Switches gespielt habe, aber es scheint mir, dass es auch eine aaa port-access authenticator 10 auth-vid 150Aussage geben sollte . IIRC würde dies den Switch anweisen, 150 für authentifizierte Geräte zu verwenden, es sei denn, er erhält einen anderen Wert als RADIUS. Ohne dies wird vermutlich nur der konfigurierte Portwert verwendet. Nicht als Antwort posten, weil ich an Speicher arbeite und es heutzutage oft fehlschlägt. Wenn es funktioniert, lass es mich wissen und ich werde es als Antwort posten.
YLearn
* legioxi, nein, der Port ist auf Untagged VLAN 150 eingestellt. * YLearn, ich brauche ihn nicht, um ein bestimmtes VLAN zuzuweisen. Ich möchte, dass ein VLAN zugewiesen wird, je nachdem, welcher Benutzer sich authentifiziert. Auth-vid hat nach RADIUS (was nicht funktioniert) den zweiten Platz in der Priorität. Wenn kein Auth-vid festgelegt ist, wird tatsächlich ein konfiguriertes VLAN ohne Tags ausgewählt.
Alex

Antworten:

6

Alex, hallo da!

Ich habe eine Testumgebung für Sie erstellt, daher verwende ich Freeradius 2.1.12 + dfsg-1.2 (auf Debian) und schalte HP 2650 um. Ich habe gerade Ihre Konfiguration wiederholt und habe keine Probleme damit. Mein 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
}
<...>

Und ich habe dieses Handbuch verwendet, um 8021x in Windows zu aktivieren:

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

Aber ich habe die Verwendung von protokollierten Benutzer-Creds deaktiviert.

Also, wenn Benutzer Creds korrekt sind, habe ich diese Nachricht in /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)

und auf meinem Schalter habe ich:

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

Wenn Creds falsch sind:

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

Vielleicht haben Sie 8021x in Windows nicht aktiviert? Ich hoffe das hilft dir Mann.

Pyatka
quelle
Hey Mann, danke! Das wird sehr geschätzt! Ich habe jedoch alles getan, um dot1x unter Windows zu aktivieren. Ich stelle fest, dass Sie VLAN 100 als Standard-VLAN ohne Tags für den Switchport ausgewählt haben, zu dem Sie eine Verbindung herstellen möchten. Das funktioniert auch bei mir so. Wenn ich erfolgreich bin, wird ein nicht getaggtes VLAN auf einem Switchport konfiguriert. Aber was ist, wenn Sie das VLAN ohne Tags für Ihren Port auf 1 setzen und versuchen, VLAN 100 über RADIUS zuzuweisen? Funktioniert das für dich? Was ist, wenn ich mehrere verschiedene Benutzer mit unterschiedlichen Tunnel-Private-Group-ID-Werten habe?
Alex
1
Verstanden :) Ich bin gerade von meinem Job entkommen, wenn dir niemand helfen würde, werde ich versuchen, dies am Montag zu tun (wenn ich Zugang zu meinem Testlab bekomme, ist es leider isoliert)
pyatka
1
Es gibt noch keinen Erfolg ... MAC-Auth funktioniert hervorragend (Port-Sets in jedem Ziel ohne Tag-VLAN), aber 8021x (oder beides mit MAC-Auth) funktioniert nicht - in keiner Kombination von allem, was eingestellt werden kann ;-) I` Ich werde versuchen, dasselbe mit einem anderen Client-Betriebssystem (nicht Windows) zu tun. Vielleicht ist dies ein Schlüssel. Außerdem sieht es sehr seltsam aus, weil ich Dumps von Radius-Verkehr habe, und ihmo, alle Nachrichten scheinen korrekt zu sein ...
pyatka
2

Wow, ich hätte nie daran gedacht. Es war nur eine zufällige Lösung.

Das Problem war also der authorizeAbschnitt in meiner defaultSite-Konfiguration unter /etc/raddb/sites-enabled/default, es war eine Art Standard. Ich weiß nicht wirklich, was damit los ist (wenn ihr das wisst, kommentiert das bitte), werde ich etwas darüber recherchieren. hier ist es:

eap {
    ok = return
}

Ich habe dies auskommentiert und durch nur ersetzt:

eap

Ich hatte nicht mehr gehofft, es jemals zum Laufen zu bringen und dann habe ich mich wieder verbunden und ... es ist passiert, nur zufällig und ich bin jetzt so aufgeregt! Mir wurde dynamisch ein VLAN zugewiesen:

Debuggen:

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 - zeigt weiterhin Unauthorized VLAN 200 und Authorized VLAN 150 an

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 - Und das nicht getaggte VLAN an Port 10 wurde eingestellt 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

Wenn Sie möchten, dass es funktioniert, müssen Sie alle erforderlichen VLANs auf dem Switch erstellen. Andernfalls erhalten Sie Folgendes:

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.

und das Windows wird nur sagen: Das Authentication failedist auch etwas verwirrend.

aaa port-access gvrp-vlansIch habe es nicht ganz geschafft, mit unbekannten VLANs zu arbeiten, obwohl GVRP aktiviert war, eingestellt wurde und ich auch explizit unknown-vlans learnauf Schnittstelle 10 eingestellt habe, aber na ja ... nvm.

Alex
quelle
1

Sie müssen den folgenden Befehl hinzufügen:

aaa port-access authenticator 10 auth-vid 150

Dies würde dem Switch mitteilen, dass Port 10 das von auth-vid zugewiesene VLAN für authentifizierte Geräte verwendet, sofern es keinen anderen Wert als RADIUS erhält. Ohne dies wird nur der konfigurierte Portwert verwendet und alle von RADIUS bereitgestellten VLAN-Zuweisungen ignoriert.

Ich habe ein bisschen gegraben und diesen Leckerbissen in einem meiner gespeicherten HP Dokumente gefunden:

Wenn der RADIUS-Server ein VLAN für einen authentifizierten Supplicant angibt, der mit einem 802.1X-Authentifizierungsport verbunden ist, überschreibt diese VLAN-Zuweisung alle am Authentifizierungsport konfigurierten VLAN-Zuweisungen für autorisierte Clients. Dies liegt daran, dass beide VLANs nicht mit Tags versehen sind und der Switch nur eine VLAN-Mitgliedschaft ohne Tags pro Port zulässt. Angenommen, Sie haben Port 4 so konfiguriert, dass authentifizierte Supplicants in VLAN 20 platziert werden. Wenn ein RADIUS-Server den Supplicant „A“ authentifiziert und diesen Supplicant VLAN 50 zuweist, kann der Port für die Dauer der Clientsitzung auf VLAN 50 zugreifen. Wenn der Client die Verbindung zum Port trennt, löscht der Port diese Zuweisungen und verwendet nur die VLAN-Mitgliedschaften, für die er statisch konfiguriert ist.

YLearn
quelle
Leider funktioniert es immer noch nicht. Ich bekomme VLAN 150 zugewiesen und nicht das RADIUS
Alex
Beachten Sie, dass bei der Fehlerbehebung bei einem solchen Problem möglicherweise mehr als ein Fehler in der Konfiguration auftritt. Ändert dies eine der anderen Ausgaben ( show loggingoder show port-access authenticatorzum Beispiel)? Haben Sie dies mit einigen anderen Änderungen kombiniert, die Sie zuvor versucht haben? Vielleicht wurde eines benötigt, das Sie ausgeschlossen haben, aber vor der Arbeit fehlte auch ein anderes Stück.
YLearn
Ja, ich habe versucht zu kombinieren. Show-Befehle zeigen immer noch das gleiche Verhalten / die gleiche Ausgabe. Mir fällt nichts mehr ein. Ich denke, dieser spezielle Befehl ist überhaupt nicht das Problem. Nach dem von RADIUS zugewiesenen VLAN hat es nur Priorität und ändert nichts. Das Problem, IMO, ist, dass der Switch entweder keine RADIUS-Attribute für VLAN erhält oder nicht verarbeitet wird oder irgendwie falsch ist. Ich meine, schauen Sie, wie einfach diese Konfiguration ist: integratingit.wordpress.com/2012/07/05/…
Alex