セキュリティ : Cisco Secure Access Control Server for Windows

RADIUS を使用してログイン時にグループ ポリシーを割り当てる ACS の設定

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2012 年 12 月 18 日) | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

RADIUS 認証を使用すると、VPN ユーザが適応型セキュリティ アプライアンス(ASA)にログインするときに、グループ ポリシーをユーザに割り当てることができます。 適用されるグループ ポリシーは、Access Control Server(ACS)でユーザのグループに割り当てる IETF RADIUS 属性 25(クラス)によって決定されます。

この例では、ACS で Employees グループに属しているユーザには ASA で ExamplePolicy1 が割り当てられる一方で、Contractors グループのユーザには ASA で ExamplePolicy2 が割り当てられます。

この例の RADIUS サーバは Cisco Secure ACS バージョン 4.1 です。

前提条件

要件

このドキュメントでは、動作する RADIUS セットアップがすでに ASA に設定されていることを必要とします。 基本 RADIUS 設定を ASA および Cisco Secure ACS に設定する方法については、『ドキュメント 98594』を参照してください。

背景説明

ASA グループ ポリシー設定

ログイン時にグループ ポリシーをユーザに割り当てるように ACS と ASA を連携させるには、RADIUS 属性 25 に対応するグループ ポリシーが ASA に設定されている必要があります。 グループ ポリシー設定はこのドキュメントの範囲を超えますが、この設定スニペットを見ると、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

現在は、2 つのグループ ポリシーの違いは、ログイン時に表示されるバナーだけです。 一方、設定可能なオプションは他にも多数存在します。

グループ ポリシーの割り当てのための ACS の設定

ACS の設定

ASA のグループ ポリシーと対応するようにグループの IETF RADIUS 属性 25(クラス)を設定するには、次の手順を実行します。

  1. ACS 画面の左のメニューから [Interface Configuration] を選択します。

  2. [RADIUS (IETF)] を選択します。

  3. [[025] Class] の [Group] 列がオンであることを確認します。

    /image/gif/paws/98608/radius-assign-group-policy-1.gif

  4. 左のメニューで [Group Setup] を選択します。

  5. ドロップダウンから目的のグループを選択し、[Edit Settings] をクリックします。

  6. [IETF RADIUS Attributes] までスクロール ダウンし、[[025] Class] を見つけます。

  7. [[025] Class] の横のボックスをオンにします。

  8. このグループのユーザがログインするときにユーザに割り当てる ASA のグループ ポリシーの名前を入力します。 形式「ou=Policyname 使用して下さい; 」「グループ ポリシーの名前の Policyname を」取り替えるところ。 設定が終了したら、[Submit + Restart] をクリックします。

    /image/gif/paws/98608/radius-assign-group-policy-2.gif

確認

このセクションは、設定を確認する際に参照してください。

ログイン

正しく設定してあるかどうかを簡単にテストする方法の 1 つとして、ACS によってグループ ポリシーが割り当てられるユーザとしてログインする方法があります。 この例では、各グループ ポリシーについてのバナーが設定されています。 このスクリーンショットは、正常にログインし、ExamplePolicy1 を適用された WebVPN ユーザを示します。

/image/gif/paws/98608/radius-assign-group-policy-3.gif

show vpn-sessiondb

ユーザに正しいグループ ポリシーが割り当てられているかどうかを確認する場合は、show vpn-sessiondb コマンドが非常に有用です。 これらの例では、kate および ben が WebVPN を使用していますが、この show コマンドは任意の種類のリモート VPN セッションに使用できます。

この例は、Employees グループに属し、ExamplePolicy1 が割り当てられると想定される kate に対する出力です。

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

この例は、Contractors グループに属し、ExamplePolicy2 が割り当てられると想定される ben に対する出力です。

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

トラブルシューティング

ここでは、設定に関するトラブルシューティングについて説明します。

RADIUS アクティビティのデバッグ

RADIUS デバッグをイネーブルにすると、ACS サーバからの実際の応答を調べて、目的のクラス属性が含まれていることを確認できます。 このセクションの出力例は、debug radius がイネーブルにされていることを示します。 このコマンドにより RADIUS セッションのデバッグがイネーブルになり、さらに RADIUS パケットのデコードもイネーブルになります。 このセクションで提示する各デバッグ出力では、デコードされた最初のパケットが、ASA から ACS サーバに送信されたパケットになっています。 2 番目のパケットは ACS サーバからの応答です。

注: debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。

この出力では、ASA は、ユーザ kate を認証するために ACS に接続します。 ACS は、access-accept および、ACS サーバで Employees のメンバであるために ExamplePolicy1kate に割り当てるクラス属性で応答します。

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

この出力では、ASA は、ユーザ ben を認証するために ACS に接続します。 ACS は、access-accept および、ACS サーバで Contractors のメンバであるために ExamplePolicy2ben に割り当てるクラス属性で応答します。

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

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 98608