이 문서에서는 WebVPN 사용자 인증에 RADIUS(Remote Authentication Dial-In User Service) 서버를 사용하도록 Cisco ASA(Adaptive Security Appliance)를 구성하는 방법을 설명합니다. 이 예에서 RADIUS 서버는 Cisco ACS(Access Control Server) 서버 버전 4.1입니다. 이 컨피그레이션은 소프트웨어 버전 8.0(2)을 실행하는 ASA에서 ASDM(Adaptive Security Device Manager) 6.0(2)을 사용하여 수행됩니다.
참고: 이 예에서는 RADIUS 인증이 WebVPN 사용자를 위해 구성되었지만 이 컨피그레이션은 다른 유형의 원격 액세스 VPN에도 사용할 수 있습니다. 그림과 같이 AAA 서버 그룹을 원하는 연결 프로파일(터널 그룹)에 할당합니다.
기본 WebVPN 컨피그레이션이 필요합니다.
Cisco ACS에는 사용자 인증을 위해 구성된 사용자가 있어야 합니다. 자세한 내용은 사용자 관리의 기본 사용자 계정 추가 섹션을 참조하십시오.
이 섹션에서는 ACS 및 ASA에서 RADIUS 인증을 구성하는 정보를 제공합니다.
ACS 서버가 ASA와 통신하도록 구성하려면 다음 단계를 완료하십시오.
ACS 화면의 왼쪽 메뉴에서 Network Configuration(네트워크 컨피그레이션)을 선택합니다.
AAA Clients(AAA 클라이언트) 아래에서 Add Entry(항목 추가)를 선택합니다.
클라이언트 정보를 제공합니다.
AAA Client Hostname(AAA 클라이언트 호스트 이름) - 선택한 이름
AAA Client IP Address(AAA 클라이언트 IP 주소) - 보안 어플라이언스가 ACS에 연결하는 주소
Shared Secret(공유 암호) - ACS 및 보안 어플라이언스에 구성된 비밀 키입니다
Authenticate Using(사용하여 인증) 드롭다운에서 RADIUS(Cisco VPN 3000/ASA/PIX 7.x+)를 선택합니다.
Submit+Apply를 클릭합니다.
ASA가 ACS 서버와 통신하고 WebVPN 클라이언트를 인증하도록 구성하려면 ASDM에서 다음 단계를 완료합니다.
Configuration(구성) > Remote Access VPN(원격 액세스 VPN) > AAA Setup(AAA 설정) > AAA Server Groups(AAA 서버 그룹)를 선택합니다.
AAA Server Groups 옆에 있는 Add를 클릭합니다.
나타나는 창에서 새 AAA 서버 그룹의 이름을 지정하고 프로토콜로 RADIUS를 선택합니다. 완료되면 OK(확인)를 클릭합니다.
상단 창에서 새 그룹이 선택되었는지 확인하고 하단 창의 오른쪽에 있는 Add(추가)를 클릭합니다.
서버 정보를 제공합니다.
Interface Name(인터페이스 이름) - ASA가 ACS 서버에 연결하기 위해 사용해야 하는 인터페이스
Server Name or IP address(서버 이름 또는 IP 주소) - ASA가 ACS 서버에 연결하기 위해 사용해야 하는 주소입니다.
Server Secret Key(서버 비밀 키) - ACS 서버의 ASA에 대해 구성된 공유 비밀 키
AAA 서버 그룹 및 서버를 구성한 경우 WebVPN에서 새 AAA 컨피그레이션을 사용하도록 구성하려면 Configuration(컨피그레이션) > Remote Access VPN(원격 액세스 VPN) > Clientless SSL VPN Access(클라이언트리스 SSL VPN 액세스) > Connection Profiles(연결 프로파일)로 이동합니다.
참고: 이 예에서는 WebVPN을 사용하지만 이 AAA 설정을 사용하도록 원격 액세스 연결 프로파일(터널 그룹)을 설정할 수 있습니다.
AAA를 구성할 프로필을 선택하고 Edit(편집)를 클릭합니다.
Authentication(인증)에서 이전에 생성한 RADIUS 서버 그룹을 선택합니다. 완료되면 OK(확인)를 클릭합니다.
ASA가 ACS 서버와 통신하고 WebVPN 클라이언트를 인증하도록 구성하려면 CLI(Command Line Interface)에서 다음 단계를 완료합니다.
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(원격 액세스 VPN) > AAA Setup(AAA 설정) > AAA Server Groups(AAA 서버 그룹)를 선택합니다.
상단 창에서 원하는 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 서버로 전송된 패킷입니다. 두 번째 패킷은 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 서버가 액세스 거부 메시지를 전송합니다.
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 |
최초 릴리스 |