Per quanto riguarda l'assegnazione dinamica VLAN Dot1X


8

Situazione:

Sto cercando di far funzionare 802.1X per me. Voglio che il server RADIUS assegni dinamicamente le VLAN alle porte in base all'attributo di risposta RADIUS per un determinato utente. Ho uno switch HP E2620 e un server FreeRADIUS. Il supplicant è una macchina Windows 8.1

Ho fatto riferimento a questo documento sul sito Web di freeradius.


Quello che ho fatto finora:

Su FreeRADIUS ho creato un utente con tali parametri:

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

Ho anche provato Tunnel-Pvt-Group-IDinvece, ma non funziona su FreeRADIUS, mi abbaia (ho visto questo sulle risorse per la configurazione su Microsoft NPS, uno di questi ). Inoltre ho provato i valori "802", 802, 6 per il tipo di tunnel medio.

Inoltre ho provato a utilizzare il nome VLAN effettivo anziché VLAN-ID come valore ID gruppo. Comunque il suo tipo di dati è stringa.

Ho configurato lo switch HP per utilizzare questo server RADIUS per AAA e impostato per la porta 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

Appunti:

  • Port 10 ha anche VLAN senza tag 150 assegnato: vlan 150 untagged 10. E non riesco a liberarmi del compito statico

  • Tutte le VLAN sopra elencate sono presenti nel database VLAN dello switch.

  • Ogni volta che mi collego a questa porta mi chiede credenziali; dopo che avrò successo con l'autenticazione, mi invierà semplicemente su VLAN150 e se provo a fallire arrivo a VLAN200.

  • Ho abilitato l'autenticazione 802.1X sulla connessione Windows proprio come descritto qui .

  • Ho provato ad abilitare GVRP - non cambia nulla


Uscita comando diagnostico / mostra:

Assegnazione VLAN statica per la porta 10. VLAN 150 senza tag

 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 vedo questo:

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

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 utente 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"

Questo è quello che ho visto in TCPdump sul server RADIUS. Stavo catturando il traffico UDP in uscita con la porta di origine 1812. È ciò che il mio switch ottiene (se lo fa effettivamente, non sono sicuro di come controllare ...)

      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

Debug:

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

Dopodiché ho scollegato e collegato il cavo e l'ho fatto show debug buffered ecco il copia-incolla di esso . È strano, non si dice nulla su qualsiasi attributo correlato alla VLAN.


Domande:

Che cosa sto facendo di sbagliato?

Ho letto in un mucchio di risorse che se RADIUS assegna uno switch ID VLAN lo usa in primo luogo. Quindi torna alla VLAN autorizzata configurata per l'autenticazione dell'accesso alla porta se l'autenticazione ha esito positivo. Se ciò non è presente, assegna la VLAN senza tag configurata sulla porta. Perché non ho questo comportamento?

In un certo senso inizio a pensare che l'attributo Tunnel-Private-Group-Idnon sia supportato su questi switch. Sembra invece che ogni risorsa si riferisca Tunnel-Pvt-Group-Id(configurazione su Microsoft). Peccato che non ho Windows Server da controllare.

Forse è relativo al firmware? Non ho ancora provato ad aggiornare, io uso RA_15_06_0009.swi e c'è già RA_15_14_0007.swi là fuori


Aggiornare

Ho appena provato un 3500yl-24G-PWRmodello e ancora non funziona. Quindi ... immagino, gli switch non ottengono la configurazione dal server RADIUS (o ho usato attributi o operatori errati?). Come posso risolvere questo?


Hai la porta su vlan100 come taggata?
some_guy_long_gone

È passato un po 'di tempo da quando ho giocato sugli switch HP, ma mi sembra che ci dovrebbe essere anche una aaa port-access authenticator 10 auth-vid 150dichiarazione. IIRC, questo direbbe allo switch di utilizzare 150 per dispositivi autenticati a meno che non ottenga un valore diverso da RADIUS. Senza questo, sospetto che utilizzerà solo il valore della porta configurata. Non pubblicare post come risposta perché sto lavorando senza memoria e spesso non riesce al giorno d'oggi. Se funziona, fammi sapere e posterò come risposta.
Impara

* legioxi, no la porta è impostata su VLAN 150 senza tag. * YImpara, non mi serve per assegnare una VLAN specifica. Voglio che assegni una VLAN a seconda dell'autenticazione dell'utente. Auth-vid è il secondo in ordine di priorità dopo RADIUS (che non funziona). Se non è impostato Auth-vid, scegli effettivamente la VLAN senza tag configurata.
Alex,

Risposte:


6

Alex, ciao!

Ho creato un ambiente di test per te, quindi sto usando Freeradius 2.1.12 + dfsg-1.2 (su debian) e cambio HP 2650. Ho appena ripetuto la tua configurazione e non ho problemi con questo. Il mio 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 / utenti:

<...>
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
}
<...>

E ho usato questo manuale, per abilitare 8021x in Windows:

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

Ma ho disabilitato l'uso dei crediti utente registrati.

Quindi, se i crediti utente sono corretti, ho questo messaggio 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)

e sul mio interruttore ho ottenuto:

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

Se i crediti non sono corretti:

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

forse non hai abilitato 8021x in Windows? Spero che questo ti aiuti, amico.


Ehi, amico, grazie! È molto apprezzato! Tuttavia, ho fatto di tutto per abilitare dot1x su Windows. Ho notato che hai scelto VLAN 100 come VLAN priva di tag predefinita sullo switchport a cui stai tentando di connetterti. Funziona anche per me in questo modo. Ottengo una VLAN senza tag configurata su uno switchport quando ci riesco. Ma cosa succede se imposti la VLAN senza tag per la tua porta su 1 e provi ad assegnare VLAN 100 tramite RADIUS? Funziona per te? Cosa succede se ho più utenti diversi con valori ID tunnel-privato-gruppo-diversi?
Alex,

1
Capito :) Sono appena scappato dal mio lavoro, se nessuno non ti avrebbe aiutato, proverò a farlo lunedì (quando potrò accedere al mio testlab, purtroppo isolato, purtroppo)
pyatka

1
non c'è ancora successo ... MAC-auth funziona alla grande (set di porte in qualsiasi obiettivo senza tag vlan), ma 8021x (o entrambi con MAC-auth) non funziona - in qualsiasi combinazione di tutto ciò che può essere regolato ;-) I` Proverò a fare lo stesso con un altro sistema operativo client (non Windows), forse questa è una chiave. Inoltre, sembra molto strano, perché ho discariche di traffico radio, e ihmo, tutti i messaggi sembrano essere corretti ...
pyatka

2

Caspita, non avrei mai pensato a questo. Era solo una soluzione casuale.

Quindi, il problema era con la authorizesezione nella mia defaultconfigurazione del sito su /etc/raddb/sites-enabled/default, era un po 'di default. Non so davvero cosa succede (se, ragazzi, sapete, commentatelo, per favore), faremo delle ricerche su questo; Ecco qui:

eap {
    ok = return
}

Ho commentato questo e sostituito con solo:

eap

Non speravo più di farlo funzionare e poi mi sono riconnesso e ... è successo, a caso e adesso sono così eccitato! Mi è stata assegnata una VLAN in modo dinamico:

Debug:

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 - mostra ancora VLAN 200 non autorizzata e VLAN 150 autorizzata

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 - E la VLAN senza tag sulla porta 10 è stata impostata su 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

Inoltre, se vuoi che funzioni, devi creare tutte le VLAN richieste sullo switch, altrimenti otterrai questo tipo di cose:

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.

e Windows dirà solo: anche Authentication failedquesto è un po 'confuso.

Non è riuscito a farlo funzionare con VLAN sconosciute nonostante il fatto che GVRP fosse abilitato, aaa port-access gvrp-vlansimpostato e che ho anche impostato esplicitamente unknown-vlans learnsull'interfaccia 10, ma vabbè ... nvm.


1

Devi aggiungere il seguente comando:

aaa port-access authenticator 10 auth-vid 150

Questo direbbe allo switch che la porta 10 utilizzerà la VLAN assegnata con autenticazione video per i dispositivi autenticati a meno che non ottenga un valore diverso da RADIUS. Senza questo, utilizzerà semplicemente il valore della porta configurata e ignorerà qualsiasi assegnazione VLAN fornita da RADIUS.

Ho fatto qualche ricerca e ho trovato questo bocconcino in uno dei miei documenti HP salvati:

Se il server RADIUS specifica una VLAN per un supplicant autenticato collegato a una porta dell'autenticatore 802.1X, questa assegnazione VLAN sovrascrive qualsiasi assegnazione VLAN client / client configurata sulla porta dell'autenticatore. Questo perché entrambe le VLAN sono senza tag e lo switch consente solo un abbonamento VLAN senza tag per porta. Ad esempio, supponiamo che tu abbia configurato la porta 4 per posizionare i fornitori autenticati nella VLAN 20. Se un server RADIUS autentica il supplicante "A" e assegna questo supplicant alla VLAN 50, la porta può accedere alla VLAN 50 per la durata della sessione client. Quando il client si disconnette dalla porta, la porta elimina queste assegnazioni e utilizza solo le appartenenze VLAN per le quali è configurata staticamente.


Sfortunatamente, non funziona ancora. Mi viene assegnata la VLAN 150 e non quella RADIUS
Alex,

Tieni presente che durante la risoluzione di un problema come questo, potrebbe esserci più di un errore nella configurazione. Questo cambia qualche altro output ( show loggingo show port-access authenticatorper esempio)? Hai combinato questo con alcune delle altre modifiche che hai provato in precedenza? Forse uno che hai escluso era necessario, ma mancava anche un altro pezzo prima di lavorare.
Impara

Sì, ho provato a combinare .. I comandi Show mostrano ancora lo stesso comportamento / output. Non riesco più a pensare a niente. Immagino che questo comando specifico non sia affatto il problema. È la priorità successiva dopo VLAN assegnata a RADIUS e non cambia nulla. Il problema, IMO, è che l'interruttore non ottiene gli attributi RADIUS per VLAN o non viene elaborato o in qualche modo non è corretto. Voglio dire, guarda quanto è semplice quella configurazione: integratingit.wordpress.com/2012/07/05/…
Alex
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.