本文檔演示如何配置思科自適應安全裝置(ASA),以使用遠端身份驗證撥入使用者服務(RADIUS)伺服器對WebVPN使用者進行身份驗證。本示例中的RADIUS伺服器是4.1版思科訪問控制伺服器(ACS)伺服器。此配置在運行軟體版本8.0(2)的ASA上使用自適應安全裝置管理器(ASDM) 6.0(2)執行。
注意:在本示例中,為WebVPN使用者配置了RADIUS身份驗證,但是此配置也可用於其他型別的遠端訪問VPN。只需將AAA伺服器組分配到所需的連線配置檔案(隧道組),如下所示。
本節提供在ACS和ASA上配置RADIUS身份驗證的資訊。
完成以下步驟以配置ACS伺服器與ASA通訊。
從ACS螢幕的左側選單中選擇Network Configuration。
在AAA Clients下,選擇Add Entry。
提供使用者端資訊:
AAA Client Hostname —您選擇的名稱
AAA Client IP Address— 安全裝置與ACS聯絡的地址
Shared Secret— 在ACS和安全裝置上配置的金鑰
在Authenticate Using 下拉選單中,選擇RADIUS (Cisco VPN 3000/ASA/PIX 7.x+)。
按一下Submit+Apply。
在ASDM中完成以下步驟,以將ASA配置為與ACS伺服器通訊並驗證WebVPN客戶端。
選擇Configuration > Remote Access VPN > AAA Setup > AAA Server Groups。
按一下「AAA Server Groups」旁邊的Add。
在顯示的窗口中,為新的AAA伺服器組指定名稱並選擇RADIUS 作為協定。完成後按一下OK。
確保在頂部窗格中選擇了新組,並按一下下部窗格右側的Add。
提供伺服器資訊:
Interface Name—ASA必須用來連線ACS伺服器的介面
Server Name or IP address—ASA必須用來連線ACS伺服器的地址
Server Secret Key— 在ACS伺服器上為ASA配置的共用金鑰
配置AAA伺服器組和伺服器後,導航到Configuration > Remote Access VPN > Clientless SSL VPN Access > Connection Profiles以將WebVPN配置為使用新的AAA配置。
注意:即使此示例使用WebVPN,您也可以將任何遠端訪問連線配置檔案(隧道組)設定為使用此AAA設定。
選擇要配置AAA的配置檔案,並按一下Edit。
在Authentication 下,選擇之前建立的RADIUS伺服器組。完成後按一下OK。
在命令列介面(CLI)中完成以下步驟,以配置ASA與ACS伺服器通訊並驗證WebVPN客戶端。
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伺服器聯絡後,會顯示成功或失敗消息。
可以在命令列中使用test 命令測試您的AAA設定。向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伺服器的資料包。第二個資料包是來自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
|
初始版本 |