このドキュメントでは、WebVPN ユーザの認証に Remote Authentication Dial-In User Service(RADIUS)を使用するための Cisco Adaptive Security Appliance(ASA)の設定方法を説明しています。この例での RADIUS サーバは Cisco Access Control Server(ACS)バージョン 4.1 です。この設定は、ソフトウェア バージョン 8.0(2) が稼働する ASA 上の Adaptive Security Device Manager(ASDM)6.0(2) で実行されます。
注:この例では、RADIUS認証はWebVPNユーザ用に設定されていますが、この設定は他のタイプのリモートアクセスVPNにも使用できます。示されているように、必要な接続プロファイル(トンネル グループ)に AAA を割り当てるだけです。
基本的な WebVPN 設定が必要です。
ユーザ認証のためには、Cisco ACS にユーザが設定されている必要があります。詳細は、『ユーザ管理』の「基本ユーザ アカウントの追加」セクションを参照してください。
このセクションでは、ACS と ASA で RADIUS 認証を設定するための情報を提供しています。
ASA と通信するように ACS サーバを設定するには、次の手順を実行します。
ACS 画面の左のメニューから Network Configuration を選択します。
AAA Clients にある Add Entry をクリックします。
次のようにクライアント情報を入力します。
AAA Client Hostname:任意の名前
AAA Client IP Address:セキュリティアプライアンスがACSに連絡する元のアドレス
共有秘密:ACSとセキュリティアプライアンスで設定された秘密キー
Authenticate Using ドロップダウン メニューで RADIUS (Cisco VPN 3000/ASA/PIX 7.x+) を選択します。
[Submit+Apply] をクリックします。
ACS サーバと通信して WebVPN クライアントを認証するように ASA を設定するには、ASDM で次の手順を実行します。
Configuration > Remote Access VPN > AAA Setup > AAA Server Groupsの順に選択します。
AAA Server Groups の横にある Add をクリックします。
表示されたウィンドウで、新しい AAA サーバ グループの名前を指定して、プロトコルに RADIUS を選択します。完了したら、[OK] をクリックします。
トップ ペインで自分の新しいグループが選択されているのを確認して、下方のペインの右で Add をクリックします。
次のようにサーバ情報を入力します。
Interface Name:ACSサーバに到達するためにASAが使用する必要のあるインターフェイス
Server Name or IP address:ACSサーバに到達するためにASAが使用する必要のあるアドレス
Server Secret Key:ACSサーバでASA用に設定された共有秘密キー。
AAAサーバグループとサーバを設定したら、Configuration > Remote Access VPN > Clientless SSL VPN Access > Connection Profilesの順に選択し、新しいAAA設定を使用するようにWebVPNを設定します。
注:この例ではWebVPNを使用していますが、このAAA設定を使用するように任意のリモートアクセス接続プロファイル(トンネルグループ)を設定できます。
AAA を設定するプロファイルを選択して、Edit をクリックします。
Authentication の下で、事前に作成してある RADIUS サーバ グループを選択します。完了したら、[OK] をクリックします。
ACS サーバと通信して WebVPN クライアントを認証するように ASA を設定するには、CLI で次の手順を実行します。
ciscoasa#configure terminal !--- Configure the AAA Server group. ciscoasa(config)# aaa-server RAD_SRV_GRP protocol RADIUS ciscoasa(config-aaa-server-group)# exit !--- Configure the AAA Server. ciscoasa(config)# aaa-server RAD_SRV_GRP (inside) host 192.168.1.2 ciscoasa(config-aaa-server-host)# key secretkey ciscoasa(config-aaa-server-host)# exit !--- Configure the tunnel group to use the new AAA setup. ciscoasa(config)# tunnel-group ExampleGroup1 general-attributes ciscoasa(config-tunnel-general)# authentication-server-group RAD_SRV_GRP
ここでは、設定が正常に機能しているかどうかを確認します。
AAA Server Groups 設定画面の Test ボタンで、RADIUS 設定を確認します。ユーザ名とパスワードを入力したら、このボタンにより、テスト認証要求を ACS サーバに送信できます。
Configuration > Remote Access VPN > AAA Setup > AAA Server Groupsの順に選択します。
最上部のペインで対象の AAA サーバ グループを選択します。
下部のペインでテストする AAA サーバを選択します。
下部のペインの右側にある [Test] ボタンをクリックします。
表示されるウィンドウで、[Authentication] オプション ボタンをクリックして、テスト対象のクレデンシャルを入力します。完了したら、[OK] をクリックします。
ASA から AAA サーバへのコンタクトの後で、成功メッセージか失敗メッセージが表示されます。
AAA 設定をテストするためにコマンドラインで test コマンドを使用できます。テスト要求が AAA サーバに送信され、コマンド ラインに結果が表示されます。
ciscoasa#test aaa-server authentication RAD_SVR_GRP host 192.168.1.2 username kate password cisco123 INFO: Attempting Authentication test to IP address <192.168.1.2> (timeout: 12 seconds) INFO: Authentication Successful
このシナリオでの認証のトラブルシューティングには、debug radius コマンドが有効です。このコマンドにより RADIUS セッションのデバッグがイネーブルになり、さらに RADIUS パケットのデコードもイネーブルになります。提示される各デバッグ出力では、デコードされた最初のパケットが、ASA から ACS サーバに送信されたパケットになっています。2 番目のパケットは ACS サーバからの応答です。
注:debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。
認証が成功すると、RADIUS サーバから access-accept メッセージが送信されます。
ciscoasa#debug radius !--- First Packet. Authentication Request. ciscoassa#radius mkreq: 0x88 alloc_rip 0xd5627ae4 new request 0x88 --> 52 (0xd5627ae4) got user '' got password add_req 0xd5627ae4 session 0x88 id 52 RADIUS_REQUEST radius.c: rad_mkpkt RADIUS packet decode (authentication request) -------------------------------------- Raw packet data (length = 62)..... 01 34 00 3e 18 71 56 d7 c4 ad e2 73 30 a9 2e cf | .4.>.qV....s0... 5c 65 3a eb 01 06 6b 61 74 65 02 12 0e c1 28 b7 | \e:...kate....(. 87 26 ed be 7b 2c 7a 06 7c a3 73 19 04 06 c0 a8 | .&..{,z.|.s..... 01 01 05 06 00 00 00 34 3d 06 00 00 00 05 | .......4=..... Parsed packet data..... Radius: Code = 1 (0x01) Radius: Identifier = 52 (0x34) Radius: Length = 62 (0x003E) Radius: Vector: 187156D7C4ADE27330A92ECF5C653AEB 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) = 0e c1 28 b7 87 26 ed be 7b 2c 7a 06 7c a3 73 19 | ..(..&..{,z.|.s. 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) = 0x34 Radius: Type = 61 (0x3D) NAS-Port-Type Radius: Length = 6 (0x06) Radius: Value (Hex) = 0x5 send pkt 192.168.1.2/1645 rip 0xd5627ae4 state 7 id 52 rad_vrfy() : response message verified rip 0xd544d2e8 : chall_state '' : state 0x7 : timer 0x0 : reqauth: 18 71 56 d7 c4 ad e2 73 30 a9 2e cf 5c 65 3a eb : info 0x88 session_id 0x88 request_id 0x34 user 'kate' response '***' app 0 reason 0 skey 'secretkey' sip 192.168.1.2 type 1 !--- Second Packet. Authentication Response. RADIUS packet decode (response) -------------------------------------- Raw packet data (length = 50)..... 02 34 00 32 35 a1 88 2f 8a bf 2a 14 c5 31 78 59 | .4.25../..*..1xY 60 31 35 89 08 06 ff ff ff ff 19 18 43 41 43 53 | `15.........CACS 3a 30 2f 32 61 36 2f 63 30 61 38 30 31 30 31 2f | :0/2a6/c0a80101/ 35 32 | 52 Parsed packet data..... Radius: Code = 2 (0x02) Radius: Identifier = 52 (0x34) Radius: Length = 50 (0x0032) Radius: Vector: 35A1882F8ABF2A14C531785960313589 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 32 61 36 2f 63 30 61 38 30 | CACS:0/2a6/c0a80 31 30 31 2f 35 32 | 101/52 rad_procpkt: ACCEPT RADIUS_ACCESS_ACCEPT: normal termination RADIUS_DELETE remove_req 0xd5627ae4 session 0x88 id 52 free_rip 0xd5627ae4 radius: send queue empty
認証が失敗すると、ACS サーバから access-reject メッセージが送信されます。
ciscoasa#debug radius !--- First Packet. Authentication Request. ciscoasa# radius mkreq: 0x85 alloc_rip 0xd5627ae4 new request 0x85 --> 49 (0xd5627ae4) got user '' got password add_req 0xd5627ae4 session 0x85 id 49 RADIUS_REQUEST radius.c: rad_mkpkt RADIUS packet decode (authentication request) -------------------------------------- Raw packet data (length = 62)..... 01 31 00 3e 88 21 46 07 34 5d d2 a3 a0 59 1e ff | .1.>.!F.4]...Y.. cc 15 2a 1b 01 06 6b 61 74 65 02 12 60 eb 05 32 | ..*...kate..`..2 87 69 78 a3 ce d3 80 d8 4b 0d c3 37 04 06 c0 a8 | .ix.....K..7.... 01 01 05 06 00 00 00 31 3d 06 00 00 00 05 | .......1=..... Parsed packet data..... Radius: Code = 1 (0x01) Radius: Identifier = 49 (0x31) Radius: Length = 62 (0x003E) Radius: Vector: 88214607345DD2A3A0591EFFCC152A1B 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) = 60 eb 05 32 87 69 78 a3 ce d3 80 d8 4b 0d c3 37 | `..2.ix.....K..7 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) = 0x31 Radius: Type = 61 (0x3D) NAS-Port-Type Radius: Length = 6 (0x06) Radius: Value (Hex) = 0x5 send pkt 192.168.1.2/1645 rip 0xd5627ae4 state 7 id 49 rad_vrfy() : response message verified rip 0xd544d2e8 : chall_state '' : state 0x7 : timer 0x0 : reqauth: 88 21 46 07 34 5d d2 a3 a0 59 1e ff cc 15 2a 1b : info 0x85 session_id 0x85 request_id 0x31 user 'kate' response '***' app 0 reason 0 skey 'secretkey' sip 192.168.1.2 type 1 !--- Second packet. Authentication Response. RADIUS packet decode (response) -------------------------------------- Raw packet data (length = 32)..... 03 31 00 20 70 98 50 af 39 cc b9 ba df a7 bd ff | .1. p.P.9....... 06 af fb 02 12 0c 52 65 6a 65 63 74 65 64 0a 0d | ......Rejected.. Parsed packet data..... Radius: Code = 3 (0x03) Radius: Identifier = 49 (0x31) Radius: Length = 32 (0x0020) Radius: Vector: 709850AF39CCB9BADFA7BDFF06AFFB02 Radius: Type = 18 (0x12) Reply-Message Radius: Length = 12 (0x0C) Radius: Value (String) = 52 65 6a 65 63 74 65 64 0a 0d | Rejected.. rad_procpkt: REJECT RADIUS_DELETE remove_req 0xd5627ae4 session 0x85 id 49 free_rip 0xd5627ae4 radius: send queue empty
改定 | 発行日 | コメント |
---|---|---|
1.0 |
21-Aug-2007 |
初版 |