Segurança : Cisco Secure Access Control Server para Windows

Configuração do ACS para Atribuição de uma Política de Grupo no Login usando RADIUS

17 Julho 2008 - Tradução Manual
Outras Versões: Versão em PDFpdf | Tradução por Computador (29 Julho 2013) | Inglês (10 Outubro 2008) | Feedback

Índice

Introdução
Pré-requisitos
      Requisitos
Informações de Apoio
      Configuração de Política de Grupo do ASA
Configuração do ACS para Atribuição de uma Política de Grupo
      Configuração do ACS
Verificação
      Login
      show vpn-sessiondb
Troubleshooting
      Depuração de Atividade do RADIUS
Discussões relacionadas da comunidade de suporte da Cisco

Introdução

Você pode usar uma autenticação RADIUS para atribuir uma política de grupo a um usuário de VPN quando ele fizer login no Adaptive Security Appliance (ASA). A política de grupo aplicada é determinada pelo IETF RADIUS Attribute 25 (Class) atribuído ao grupo do usuário no Access Control Server (ACS).

Neste exemplo, ExamplePolicy1 é atribuída no ASA aos usuários do grupo Employees no ACS, enquanto ExamplePolicy2 é atribuída no ASA aos usuários do grupo Contractors.

O servidor RADIUS neste exemplo é o Cisco Secure ACS versão 4.1.

Pré-requisitos

Requisitos

Este documento requer que uma instalação do RADIUS em funcionamento já esteja configurada no ASA. Consulte o Documento 98594 para aprender a definir uma configuração RADIUS básica no ASA e no Cisco Secure ACS.

Informações de Apoio

Configuração de Política de Grupo do ASA

Para que o ACS e o ASA funcionem juntos para atribuição de uma política de grupo a um usuário no login, o ASA deverá possuir políticas de grupo configuradas para correspondência do RADIUS Attribute 25. A configuração de políticas de grupo está além do escopo deste documento, mas este trecho de configuração mostra como é a configuração de políticas no ASA.

group-policy ExamplePolicy1 internal
group-policy ExamplePolicy1 attributes
 banner value This is ExamplePolicy1
group-policy ExamplePolicy2 internal
group-policy ExamplePolicy2 attributes
 banner value This is ExamplePolicy2

No momento, a única diferença entre as duas políticas de grupo é a faixa exibida no login. Entretanto, muitas outras opções podem ser configuradas.

Configuração do ACS para Atribuição de uma Política de Grupo

Configuração do ACS

Execute estes passos para configurar o IETF RADIUS Attribute 25 (Class) de um grupo para correspondência com uma política de grupo no ASA.

  1. Selecione Interface Configuration no menu à esquerda da exibição do ACS.

  2. Escolha RADIUS (IETF).

  3. Verifique se a opção [025] Class está selecionada na coluna Group.

    radius-assign-group-policy-1.gif

  4. Selecione Group Setup no menu à esquerda.

  5. Selecione o grupo desejado na lista suspensa e clique em Edit Settings.

  6. Role para IETF RADIUS Attributes e localize [025] Class.

  7. Marque a caixa próxima a [025] Class.

  8. Insira o nome da política de grupo no ASA que deseja atribuir aos usuários deste grupo quando fizerem login. Use o formato "ou=Policyname;" onde "Policyname" é substituído pelo nome da sua política de grupo. Clique em Submit + Restart após concluir.

    radius-assign-group-policy-2.gif

Verificação

Use esta seção para verificar a sua configuração.

Login

Um modo simples de testar se a sua configuração foi bem-sucedida é fazer login como um usuário que deveria obter uma política de grupo atribuída pelo ACS. Neste exemplo, uma faixa é configurada para cada política de grupo. Esta captura de tela mostra um usuário do WebVPN que fez login com êxito e ao qual a ExamplePolicy1 está aplicada.

radius-assign-group-policy-3.gif

show vpn-sessiondb

O comando show vpn-sessiondb é extremamente útil quando você deseja verificar se as políticas de grupo corretas estão atribuídas aos seus usuários. Nestes exemplos, kate e ben usam o WebVPN, mas este comando show pode ser usado para qualquer tipo de sessão VPN remota.

Esta saída de exemplo destina-se à kate no grupo Employees e a quem ExamplePolicy1 deve ser atribuída.

ciscoasa#show vpn-sessiondb webvpn

Session Type: WebVPN

Username     : kate                   Index        : 21
Public IP    : 10.88.250.211
Protocol     : Clientless
Encryption   : RC4                    Hashing      : SHA1
Bytes Tx     : 4207283                Bytes Rx     : 1352862
Group Policy : ExamplePolicy1         Tunnel Group : ExampleGroup1
Login Time   : 10:24:01 UTC Thu Aug 16 2007
Duration     : 0h:01m:43s
NAC Result   : Unknown
VLAN Mapping : N/A                    VLAN         : none

Esta saída de exemplo destina-se a ben no grupo Contractors e a quem ExamplePolicy2 deve ser atribuída.

ciscoasa#show vpn-sessiondb webvpn

Session Type: WebVPN

Username     : ben                    Index        : 22
Public IP    : 10.88.250.211
Protocol     : Clientless
Encryption   : RC4                    Hashing      : SHA1
Bytes Tx     : 4331698                Bytes Rx     : 1373769
Group Policy : ExamplePolicy2         Tunnel Group : ExampleGroup1
Login Time   : 10:27:25 UTC Thu Aug 16 2007
Duration     : 0h:02m:41s
NAC Result   : Unknown
VLAN Mapping : N/A                    VLAN         : none

Troubleshooting

Use esta seção para fazer troubleshooting de sua configuração.

Depuração de Atividade do RADIUS

Quando você ativa a depuração do RADIUS, é possível examinar a resposta real do servidor ACS para se certificar de que ele contém o atributo Class desejado. As saídas do exemplo nesta seção mostram que debug radius foi ativado. Este comando ativa a depuração de sessão do RADIUS bem como a sua decodificação de pacotes. Em cada saída de depuração apresentada nesta seção, o primeiro pacote decodificado é o pacote enviado do ASA para o servidor ACS. O segundo pacote é a resposta do servidor ACS.

Nota:  Consulte Informações Importantes sobre Comandos de Depuração antes de usar comandos debug.

Nesta saída, o ASA entra em contato com o ACS para autenticar o usuário kate. O ACS responde com access-accept, bem como com o atributo Class que atribui ExamplePolicy1 a kate porque ela é membro de Employees no servidor ACS.

ciscoasa#debug radius
ciscoasa# radius mkreq: 0x72
alloc_rip 0xd5627ae4
    new request 0x72 --> 36 (0xd5627ae4)
got user ''
got password
add_req 0xd5627ae4 session 0x72 id 36
RADIUS_REQUEST
radius.c: rad_mkpkt

RADIUS packet decode (authentication request)

--------------------------------------
Raw packet data (length = 113).....
01 24 00 71 df 2c f5 8a fb 18 71 56 d7 c4 ad e2    |  .$.q.,....qV....
73 30 a9 2e 01 06 6b 61 74 65 02 12 26 1b fb 69    |  s0....kate..&..i
2e ec 8d 74 14 b9 8c d8 64 d9 2a 57 1f 0f 31 30    |  ...t....d.*W..10
2e 38 38 2e 32 35 30 2e 32 31 31 3d 06 00 00 00    |  .88.250.211=....
05 04 06 c0 a8 01 01 05 06 00 00 00 24 1a 24 00    |  ............$.$.
00 00 09 01 1e 69 70 3a 73 6f 75 72 63 65 2d 69    |  .....ip:source-i
70 3d 31 30 2e 38 38 2e 32 35 30 2e 32 31 31 85    |  p=10.88.250.211.
6a                                                 |  j

Parsed packet data.....
Radius: Code = 1 (0x01)
Radius: Identifier = 36 (0x24)
Radius: Length = 113 (0x0071)
Radius: Vector: DF2CF58AFB187156D7C4ADE27330A92E
Radius: Type = 1 (0x01) User-Name
Radius: Length = 6 (0x06)
Radius: Value (String) =
6b 61 74 65                                        |  kate
Radius: Type = 2 (0x02) User-Password
Radius: Length = 18 (0x12)
Radius: Value (String) =
26 1b fb 69 2e ec 8d 74 14 b9 8c d8 64 d9 2a 57    |  &..i...t....d.*W
Radius: Type = 31 (0x1F) Calling-Station-Id
Radius: Length = 15 (0x0F)
Radius: Value (String) =
31 30 2e 38 38 2e 32 35 30 2e 32 31 31             |  10.88.250.211
Radius: Type = 61 (0x3D) NAS-Port-Type
Radius: Length = 6 (0x06)
Radius: Value (Hex) = 0x5
Radius: Type = 4 (0x04) NAS-IP-Address
Radius: Length = 6 (0x06)
Radius: Value (IP Address) = 192.168.1.1 (0xC0A80101)
Radius: Type = 5 (0x05) NAS-Port
Radius: Length = 6 (0x06)
Radius: Value (Hex) = 0x24
Radius: Type = 26 (0x1A) Vendor-Specific
Radius: Length = 36 (0x24)
Radius: Vendor ID = 9 (0x00000009)
Radius: Type = 1 (0x01) Cisco-AV-pair
Radius: Length = 30 (0x1E)
Radius: Value (String) =
69 70 3a 73 6f 75 72 63 65 2d 69 70 3d 31 30 2e    |  ip:source-ip=10.
38 38 2e 32 35 30 2e 32 31 31 85 6a                |  88.250.211.j
send pkt 192.168.1.2/1645
rip 0xd5627ae4 state 7 id 36
rad_vrfy() : response message verified
rip 0xd544d2e8
 : chall_state ''
 : state 0x7
 : timer 0x0
 : reqauth:
     df 2c f5 8a fb 18 71 56 d7 c4 ad e2 73 30 a9 2e
 : info 0x72
     session_id 0x72
     request_id 0x24
     user 'kate'
     response '***'
     app 0
     reason 0
     skey 'secretkey'
     sip 192.168.1.2
     type 1

RADIUS packet decode (response)

--------------------------------------
Raw packet data (length = 70).....
02 24 00 46 cb 46 53 67 3b 5a 77 99 9e c3 91 5e    |  .$.F.FSg;Zw....^
85 54 70 48 19 14 6f 75 3d 45 78 61 6d 70 6c 65    |  .TpH..ou=Example
50 6f 6c 69 63 79 31 3b 08 06 ff ff ff ff 19 18    |  Policy1;........
43 41 43 53 3a 30 2f 31 61 37 2f 63 30 61 38 30    |  CACS:0/1a7/c0a80
31 30 31 2f 33 36                                  |  101/36

Parsed packet data.....
Radius: Code = 2 (0x02)
Radius: Identifier = 36 (0x24)
Radius: Length = 70 (0x0046)
Radius: Vector: CB4653673B5A77999EC3915E85547048
Radius: Type = 25 (0x19) Class
Radius: Length = 20 (0x14)
Radius: Value (String) =
6f 75 3d 45 78 61 6d 70 6c 65 50 6f 6c 69 63 79    |  ou=ExamplePolicy
31 3b                                              |  1;
Radius: Type = 8 (0x08) Framed-IP-Address
Radius: Length = 6 (0x06)
Radius: Value (IP Address) = 255.255.255.255 (0xFFFFFFFF)
Radius: Type = 25 (0x19) Class
Radius: Length = 24 (0x18)
Radius: Value (String) =
43 41 43 53 3a 30 2f 31 61 37 2f 63 30 61 38 30    |  CACS:0/1a7/c0a80
31 30 31 2f 33 36                                  |  101/36
rad_procpkt: ACCEPT
RADIUS_ACCESS_ACCEPT: normal termination
RADIUS_DELETE
remove_req 0xd5627ae4 session 0x72 id 36
free_rip 0xd5627ae4
radius: send queue empty

Nesta saída, o ASA entra em contato com o ACS para autenticar o usuário ben. O ACS responde com access-accept, bem como com o atributo Class que atribui ExamplePolicy2 a ben porque ele é membro de Contractors no servidor ACS.

ciscoasa#debug radius
ciscoasa# radius mkreq: 0x75
alloc_rip 0xd5627ae4
    new request 0x75 --> 37 (0xd5627ae4)
got user ''
got password
add_req 0xd5627ae4 session 0x75 id 37
RADIUS_REQUEST
radius.c: rad_mkpkt

RADIUS packet decode (authentication request)

--------------------------------------
Raw packet data (length = 112).....
01 25 00 70 cf 5c 65 3a eb 48 e1 06 c7 f4 1d 92    |  .%.p.\e:.H......
63 60 19 de 01 05 62 65 6e 02 12 a3 6d 71 a2 2c    |  c`....ben...mq.,
a8 92 ad 5d 19 00 37 d4 c2 8d ca 1f 0f 31 30 2e    |  ...]..7......10.
38 38 2e 32 35 30 2e 32 31 31 3d 06 00 00 00 05    |  88.250.211=.....
04 06 c0 a8 01 01 05 06 00 00 00 25 1a 24 00 00    |  ...........%.$..
00 09 01 1e 69 70 3a 73 6f 75 72 63 65 2d 69 70    |  ....ip:source-ip
3d 31 30 2e 38 38 2e 32 35 30 2e 32 31 31 19 45    |  =10.88.250.211.E

Parsed packet data.....
Radius: Code = 1 (0x01)
Radius: Identifier = 37 (0x25)
Radius: Length = 112 (0x0070)
Radius: Vector: CF5C653AEB48E106C7F41D92636019DE
Radius: Type = 1 (0x01) User-Name
Radius: Length = 5 (0x05)
Radius: Value (String) =
62 65 6e                                           |  ben
Radius: Type = 2 (0x02) User-Password
Radius: Length = 18 (0x12)
Radius: Value (String) =
a3 6d 71 a2 2c a8 92 ad 5d 19 00 37 d4 c2 8d ca    |  .mq.,...]..7....
Radius: Type = 31 (0x1F) Calling-Station-Id
Radius: Length = 15 (0x0F)
Radius: Value (String) =
31 30 2e 38 38 2e 32 35 30 2e 32 31 31             |  10.88.250.211
Radius: Type = 61 (0x3D) NAS-Port-Type
Radius: Length = 6 (0x06)
Radius: Value (Hex) = 0x5
Radius: Type = 4 (0x04) NAS-IP-Address
Radius: Length = 6 (0x06)
Radius: Value (IP Address) = 192.168.1.1 (0xC0A80101)
Radius: Type = 5 (0x05) NAS-Port
Radius: Length = 6 (0x06)
Radius: Value (Hex) = 0x25
Radius: Type = 26 (0x1A) Vendor-Specific
Radius: Length = 36 (0x24)
Radius: Vendor ID = 9 (0x00000009)
Radius: Type = 1 (0x01) Cisco-AV-pair
Radius: Length = 30 (0x1E)
Radius: Value (String) =
69 70 3a 73 6f 75 72 63 65 2d 69 70 3d 31 30 2e    |  ip:source-ip=10.
38 38 2e 32 35 30 2e 32 31 31 19 45                |  88.250.211.E
send pkt 192.168.1.2/1645
rip 0xd5627ae4 state 7 id 37
rad_vrfy() : response message verified
rip 0xd544d2e8
 : chall_state ''
 : state 0x7
 : timer 0x0
 : reqauth:
     cf 5c 65 3a eb 48 e1 06 c7 f4 1d 92 63 60 19 de
 : info 0x75
     session_id 0x75
     request_id 0x25
     user 'ben'
     response '***'
     app 0
     reason 0
     skey 'secretkey'
     sip 192.168.1.2
     type 1

RADIUS packet decode (response)

--------------------------------------
Raw packet data (length = 70).....
02 25 00 46 2d 78 a3 18 ee fc 2f ac 66 b3 06 33    |  .%.F-x..../.f..3
53 31 cf 19 19 14 6f 75 3d 45 78 61 6d 70 6c 65    |  S1....ou=Example
50 6f 6c 69 63 79 32 3b 08 06 ff ff ff ff 19 18    |  Policy2;........
43 41 43 53 3a 30 2f 31 61 61 2f 63 30 61 38 30    |  CACS:0/1aa/c0a80
31 30 31 2f 33 37                                  |  101/37

Parsed packet data.....
Radius: Code = 2 (0x02)
Radius: Identifier = 37 (0x25)
Radius: Length = 70 (0x0046)
Radius: Vector: 2D78A318EEFC2FAC66B306335331CF19
Radius: Type = 25 (0x19) Class
Radius: Length = 20 (0x14)
Radius: Value (String) =
6f 75 3d 45 78 61 6d 70 6c 65 50 6f 6c 69 63 79    |  ou=ExamplePolicy
32 3b                                              |  2;
Radius: Type = 8 (0x08) Framed-IP-Address
Radius: Length = 6 (0x06)
Radius: Value (IP Address) = 255.255.255.255 (0xFFFFFFFF)
Radius: Type = 25 (0x19) Class
Radius: Length = 24 (0x18)
Radius: Value (String) =
43 41 43 53 3a 30 2f 31 61 61 2f 63 30 61 38 30    |  CACS:0/1aa/c0a80
31 30 31 2f 33 37                                  |  101/37
rad_procpkt: ACCEPT
RADIUS_ACCESS_ACCEPT: normal termination
RADIUS_DELETE
remove_req 0xd5627ae4 session 0x75 id 37
free_rip 0xd5627ae4
radius: send queue empty

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Document ID: 98608