Em relação à atribuição de VLAN dinâmica Dot1X

8

Situação:

Estou tentando fazer com que o 802.1X funcione para mim. Desejo que o servidor RADIUS atribua dinamicamente VLANs às portas com base no atributo de resposta RADIUS para um usuário específico. Eu tenho um switch HP E2620 e um servidor FreeRADIUS. O suplicante é uma máquina Windows 8.1

Eu me referi a este documento no site freeradius.


O que eu fiz até agora:

No FreeRADIUS, criei um usuário com esses parâmetros:

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

Também tentei Tunnel-Pvt-Group-ID, mas ele não funciona no FreeRADIUS, apenas late (eu vi isso em recursos para configurar no Microsoft NPS, um deles ). Também tentei valores "802", 802, 6 para o tipo médio de túnel.

Também tentei usar o nome da VLAN real em vez da VLAN-ID como valor da ID do grupo. De qualquer forma, seu tipo de dados é string.

Configurei o switch HP para usar este servidor RADIUS para AAA e configurei-o para a 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

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

Notas:

  • Porto 10 também tem VLAN não marcada 150 atribuído a ele: vlan 150 untagged 10. E não consigo me livrar da atribuição estática

  • Todas as VLANs listadas acima estão presentes no banco de dados de VLAN do switch.

  • Sempre que eu conecto a essa porta, solicitamos credenciais; depois de ter êxito na autenticação, ele me envia para a VLAN150 e, se eu tentar falhar, chego à VLAN200.

  • Eu ativei a autenticação 802.1X na conexão do Windows, como descrito aqui .

  • Tentei ativar o GVRP - isso não muda nada


Saída de diagnóstico / comando show:

Atribuição estática de VLAN para a porta 10. VLAN 150 sem marcação

 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

No show logging que vejo isso:

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

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

Teste do usuário 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"

Foi o que vi no TCPdump no servidor RADIUS. Eu estava capturando o tráfego UDP de saída com a porta de origem 1812. É o que meu switch obtém (se realmente, não tenho certeza de como verificar isso ...)

      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

Depurar:

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

Depois disso, desconectei e conectei o cabo e o fiz show debug buffere aqui está a cópia e colar dele . É estranho, nada é dito sobre qualquer atributo relacionado à VLAN.


Questões:

O que estou fazendo errado?

Eu li vários recursos que, se o RADIUS atribuir um switch de ID da VLAN, o usará em primeiro lugar. Em seguida, ele volta à VLAN autorizada configurada para o autenticador de acesso à porta, se a autenticação for bem-sucedida. Se isso não estiver presente, ele atribui a VLAN sem etiqueta configurada na porta. Por que não entendo esse comportamento?

Eu meio que começo a pensar que o atributo Tunnel-Private-Group-Idnão é suportado nessas opções. Parece que todo recurso se refere a Tunnel-Pvt-Group-Idele (configurando na Microsoft). Pena que não tenho o Windows Server para verificar.

Talvez seja relacionado ao firmware? Ainda não tentei atualizar, eu uso o RA_15_06_0009.swi e já existe o RA_15_14_0007.swi por aí


Atualizar

Apenas tentei em um 3500yl-24G-PWRmodelo e ainda não funciona. Então ... eu acho que os switches simplesmente não obtêm a configuração do servidor RADIUS (ou usei atributos ou operadores incorretos?). Como posso solucionar isso?

Alex
fonte
Você tem a porta no vlan100 como marcada?
some_guy_long_gone
Já faz um tempo desde que joguei nos switches HP, mas parece-me que deveria haver uma aaa port-access authenticator 10 auth-vid 150declaração também. IIRC, isso diria ao switch para usar 150 em dispositivos autenticados, a menos que obtenha um valor diferente do RADIUS. Sem isso, suspeito que ele usará apenas o valor da porta configurada. Não estou postando como resposta porque estou trabalhando com pouca memória e muitas vezes falha hoje em dia. Se funcionar, informe-me e postarei como resposta.
YLearn
* legioxi, não a porta está definida como VLAN 150 sem etiqueta. * YLearn, não preciso atribuir uma VLAN específica. Eu quero que ele atribua uma VLAN, dependendo do que o usuário autentica. O Auth-vid é o segundo em prioridade depois do RADIUS (que não funciona). Se nenhum Auth-vid estiver definido, ele escolherá realmente a VLAN sem etiqueta configurada.
Alex

Respostas:

6

Alex, Olá!

Eu criei o ambiente de teste para você, então estou usando o freeradius 2.1.12 + dfsg-1.2 (no debian) e mude o hp 2650. Acabei de repetir sua configuração e não tenho problemas com isso. Meu teste procede ip 10.0.10.29, freeradius ip 192.168.2.60.

configuração de aquisição:

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

E eu usei este manual para ativar o 8021x no Windows:

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

Mas desabilitei o uso de usuários registrados.

Portanto, se os creds do usuário estiverem corretos, eu tenho essa mensagem em /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 no meu switch tenho:

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 os creds estiverem incorretos:

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

talvez você não tenha ativado o 8021x no Windows? Espero que isso ajude você, cara.

pyatka
fonte
Ei, cara, obrigado! Isso é muito apreciado! No entanto, fiz tudo para ativar o dot1x no Windows. Percebo que você escolheu a VLAN 100 como VLAN padrão sem etiqueta na porta de switch à qual está tentando se conectar. Isso funciona para mim também. Eu obtenho uma VLAN sem etiqueta configurada em uma porta de switch quando obtiver êxito. Mas e se você definir a VLAN sem etiqueta para sua porta como 1 e tentar atribuir a VLAN 100 via RADIUS? Isso funciona para você? E se eu tiver vários usuários diferentes com valores diferentes de ID do Grupo Privado de Túnel?
Alex
11
Entendido :) Acabei de fugir do meu trabalho, se ninguém o ajudar, tentarei fazer isso na segunda-feira (quando tiver acesso ao meu testlab, ele isolou-se, infelizmente)
pyatka
11
ainda não há sucesso ... O MAC-auth funciona muito bem (conjuntos de portas em qualquer objetivo vlan não marcado), mas o 8021x (ou ambos com MAC-auth) não está funcionando - em qualquer combinação de tudo o que pode ser ajustado ;-) I` tentarei fazer o mesmo com outro sistema operacional cliente (não janelas), talvez essa seja uma chave. Além disso, parece muito estranho, porque eu tenho dumps de raio-tráfego, e ihmo, todas as mensagens parece ser correta ...
pyatka
2

Uau, eu nunca teria pensado nisso. Foi apenas uma solução aleatória.

Portanto, o problema estava authorizena seção na defaultconfiguração do meu site em /etc/raddb/sites-enabled/default, era meio que o padrão. Eu realmente não sei o que há com isso (se vocês, pessoal, sabem, comentam sobre isso, por favor), vão fazer alguma pesquisa sobre isso; Aqui está:

eap {
    ok = return
}

Eu comentei isso e substituí por:

eap

Eu não esperava mais fazê-lo funcionar e depois me reconectei e ... aconteceu, apenas aleatoriamente e estou tão animado agora! Eu recebi uma VLAN dinamicamente:

Depurar:

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 - ainda mostra VLAN não autorizada 200 e VLAN autorizada 150

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 a VLAN sem etiqueta na porta 10 foi configurada para 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

Além disso, se você quiser que ele funcione, é necessário criar todas as VLANs necessárias no switch, caso contrário, você obterá esse tipo de coisa:

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 o Windows dirá apenas: o Authentication failedque também é meio confuso.

Não consegui fazê-lo funcionar com VLANs desconhecidas, apesar do GVRP estar ativado, ter aaa port-access gvrp-vlanssido definido e eu também ter definido explicitamente unknown-vlans learna interface 10, mas tudo bem ... nvm.

Alex
fonte
1

Você precisa adicionar o seguinte comando:

aaa port-access authenticator 10 auth-vid 150

Isso indicaria ao switch que a porta 10 usará a VLAN atribuída pelo auth-vid para dispositivos autenticados, a menos que obtenha um valor diferente do RADIUS. Sem isso, ele usará apenas o valor da porta configurada e ignorará todas as atribuições de VLAN fornecidas pelo RADIUS.

Eu pesquisei e encontrei esse boato em um dos meus documentos salvos da HP:

Se o servidor RADIUS especificar uma VLAN para um suplicante autenticado conectado a uma porta do autenticador 802.1X, essa atribuição da VLAN substituirá qualquer atribuição da VLAN do cliente autorizado configurada na porta do autenticador. Isso ocorre porque as duas VLANs não possuem marcação e o switch permite apenas uma associação de VLAN sem marcação por porta. Por exemplo, suponha que você configurou a porta 4 para colocar fornecedores autenticados na VLAN 20. Se um servidor RADIUS autentica o suplicante “A” e atribui esse suplicante à VLAN 50, a porta pode acessar a VLAN 50 durante a sessão do cliente. Quando o cliente se desconecta da porta, a porta descarta essas atribuições e usa apenas as associações à VLAN para as quais está configurada estaticamente.

YLearn
fonte
Infelizmente, ainda não funciona. Eu recebo a VLAN 150 atribuída e não a RADIUS
Alex
Lembre-se de que, ao solucionar um problema como esse, pode haver mais de um erro na configuração. Isso muda alguma outra saída ( show loggingou show port-access authenticatorpor exemplo)? Você combinou isso com algumas das outras alterações que você tentou anteriormente? Talvez uma que você descartou fosse necessária, mas estava faltando outra peça também antes de trabalhar.
YLearn
Sim, eu tentei combinar .. Mostrar comandos ainda mostram o mesmo comportamento / saída. Não consigo mais pensar em nada. Eu acho que esse comando específico não é o problema. É a próxima prioridade após a VLAN atribuída ao RADIUS e não muda nada. O problema, IMO, é que o switch não recebe atributos RADIUS para VLAN ou não está sendo processado ou está incorreto. Quero dizer, veja como essa configuração é simples: integratingit.wordpress.com/2012/07/05/…
Alex #