本文档演示如何配置思科自适应安全设备(ASA)以使用远程身份验证拨入用户服务(RADIUS)服务器对WebVPN用户进行身份验证。本示例中的RADIUS服务器是4.1版思科访问控制服务器(ACS)在运行软件版本8.0(2)的ASA上使用自适应安全设备管理器(ASDM) 6.0(2)执行此配置。
注意:在本示例中,为WebVPN用户配置了RADIUS身份验证,但是此配置也可用于其他类型的远程访问VPN。只需将 AAA 服务器组分配给所需的连接配置文件(隧道组)即可,如下所示。
需要进行基本 WebVPN 配置。
Cisco ACS 必须已为用户配置用户身份验证。有关详细信息,请参阅用户管理的添加基本用户帐户部分。
本部分提供有关如何在 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
|
初始版本 |