소개
이 문서에서는 Catalyst 9800 WLC(Wireless LAN Controller)의 로컬 EAP(Extensible Authentication Protocol) 컨피그레이션(예: WLC가 무선 클라이언트에 대한 RADIUS 인증 서버로 수행)에 대해 설명합니다.
사전 요구 사항
요구 사항
이 문서에서는 9800 WLC에서 WLAN의 기본 컨피그레이션에 대해 잘 알고 있으며 무선 클라이언트용 로컬 EAP 서버로 작동하는 WLC에만 초점을 두고 있다고 가정합니다.
사용되는 구성 요소
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
버전 16.12.1의 Catalyst 9800
구성
네트워크 다이어그램

기본 로컬 EAP 컨피그레이션
1단계. 로컬 EAP 프로파일
9800 웹 UI에서 Configuration > Security > Local EAP로 이동합니다.

추가 선택
프로파일 이름을 입력합니다.
보안이 취약하기 때문에 LEAP를 전혀 사용하지 않는 것이 좋습니다. 다른 3가지 EAP 방법 중 하나를 사용하려면 신뢰 지점을 구성해야 합니다. 인증자 역할을 하는 9800에서 클라이언트를 신뢰할 수 있도록 인증서를 전송해야 하기 때문입니다.
클라이언트는 WLC 기본 인증서를 신뢰하지 않으므로 클라이언트 측에서 서버 인증서 검증을 비활성화하거나(권장되지 않음) 클라이언트가 신뢰하는 9800 WLC에 인증서 신뢰 지점을 설치하거나 클라이언트 신뢰 저장소에서 수동으로 가져와야 합니다.

CLI:
(config)#eap profile mylocapeap
(config-eap-profile)#method peap
(config-eap-profile)#pki-trustpoint admincert
2단계. AAA 인증 방법
사용자의 로컬 데이터베이스를 사용하려면 로컬뿐만 아니라 로컬로 가리키는 AAA dot1x 방법을 구성해야 합니다(예: 외부 LDAP 조회를 사용할 수 있음).
Configuration(컨피그레이션) > Security(보안) > AAA로 이동하고 Authentication(인증)에 대한 AAA 방법 목록 탭으로 이동합니다. Add(추가)를 선택합니다.
"dot1x" 유형 및 로컬 그룹 유형을 선택합니다.

3단계. AAA 권한 부여 방법을 구성합니다.
Authorization(권한 부여) 하위 탭으로 이동하여 자격 증명 다운로드 유형의 새 방법을 생성하고 로컬에 지정합니다.
네트워크 권한 부여 유형에 대해서도 동일하게 수행
CLI:
(config)#aaa new-model
(config)#aaa authentication dot1x default local
(config)#aaa authorization credential-download default local
(config)#aaa local authentication default authorization default
(config)#aaa authorization network default local
4단계. 로컬 고급 방법 구성
AAA 고급 탭으로 이동합니다.
로컬 인증 및 권한 부여 방법을 정의합니다. 이 예제는 "default" credential-download 및 "Default" dot1x 메서드를 사용했으므로 로컬 인증 및 권한 부여 드롭다운 상자 모두에 대해 기본값을 설정해야 합니다.
명명된 메서드를 정의한 경우 드롭다운에서 "method list"를 선택하고 다른 필드에서 메서드 이름을 입력할 수 있습니다.

CLI:
aaa local authentication default authorization default
5단계. WLAN 구성
그런 다음 이전 단계에서 정의된 로컬 EAP 프로파일 및 AAA 인증 방법에 대해 802.1x 보안을 위해 WLAN을 구성할 수 있습니다.
Configuration(구성) > Tags and Profiles(태그 및 프로파일) > WLANs(WLAN) > + Add(추가) >
SSID 및 프로파일 이름을 제공합니다.
Dot1x 보안은 기본적으로 Layer 2 아래에서 선택됩니다.
AAA 아래에서 Local EAP Authentication(로컬 EAP 인증)을 선택하고 드롭다운에서 Local EAP profile and AAA Authentication(로컬 EAP 프로파일 및 AAA 인증) 목록을 선택합니다.


(config)#wlan localpeapssid 1 localpeapssid
(config-wlan)#security dot1x authentication-list default
(config-wlan)#local-auth mylocaleap
6단계. 하나 이상의 사용자를 생성합니다.
CLI에서 사용자는 network-user 유형이어야 합니다. 다음은 CLI에서 생성한 사용자의 예입니다.
(config)#user-name 1xuser
creation-time 1572730075
description 1xuser
password 0 Cisco123
type network-user description 1xuser
CLI에서 생성한 이 사용자는 웹 UI에서 볼 수 있지만 웹 UI에서 생성한 경우에는 네트워크 사용자를 16.12로 만들 수 있는 방법이 없습니다.
7단계. 정책 프로파일을 생성합니다. 정책 프로필에 이 WLAN 프로파일을 매핑하기 위한 정책 태그 생성
Configuration(컨피그레이션) > Tags and profiles(태그 및 프로필) > Policy(정책)로 이동합니다.
WLAN에 대한 정책 프로필을 생성합니다.
이 예는 flexconnect 로컬 스위칭을 보여주지만 vlan 1468의 중앙 인증 시나리오를 보여줍니다. 그러나 이는 네트워크에 따라 다릅니다.

Configuration(컨피그레이션) > Tags and profiles(태그 및 프로파일) > Tags(태그)로 이동합니다.
태그 내의 정책 프로필에 WLAN을 할당합니다.

8단계. 액세스 포인트에 정책 태그를 구축합니다.
이 경우 단일 AP의 경우 AP에 직접 태그를 할당할 수 있습니다.
Configuration(컨피그레이션) > Wireless(무선) > Access points(액세스 포인트)로 이동하여 구성할 AP를 선택합니다.
할당된 태그가 구성된 태그인지 확인합니다.
다음을 확인합니다.
기본 컨피그레이션 행은 다음과 같습니다
aaa new-model
aaa authentication dot1x default local
aaa authorization credential-download default local
aaa local authentication default authorization default
eap profile mylocaleap
method peap
pki-trustpoint admincert
user-name 1xuser
creation-time 1572730075 description 1xuser
password 0 Cisco123
type network-user description 1xuser
wlan ndarchis_leap 1 ndarchis_leap
local-auth mylocaleap
security dot1x authentication-list default
no shutdown
문제 해결
Cisco IOS-XE 16.12 및 이전 릴리스는 로컬 eap 인증에 대해 TLS 1.0만 지원하며, 클라이언트가 TLS 1.2만 지원하는 경우 문제가 발생할 수 있습니다. Cisco IOS-XE 17.1 이상에서는 TLS 1.2 및 TLS 1.0을 지원합니다.
연결에 문제가 있는 특정 클라이언트를 트러블슈팅하려면 RadioActive Tracing을 사용합니다. Troubleshooting(문제 해결) > RadioActive Trace(무선 활성 추적)로 이동하여 클라이언트 MAC 주소를 추가합니다.
해당 클라이언트에 대한 추적을 활성화하려면 Start를 선택합니다.

문제가 다시 발생하면 Generate 버튼을 선택하여 디버깅 출력이 포함된 파일을 생성할 수 있습니다.
잘못된 암호로 인해 연결하지 못한 클라이언트의 예
2019/10/30 14:54:00.781 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Sent EAPOL packet - Version : 3,EAPOL Type : EAP, Payload Length : 8, EAP-Type = EAP-FAST
2019/10/30 14:54:00.781 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - REQUEST, ID : 0x5
2019/10/30 14:54:00.784 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Received EAPOL packet - Version : 1,EAPOL Type : EAP, Payload Length : 204, EAP-Type = EAP-FAST
2019/10/30 14:54:00.784 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - RESPONSE, ID : 0x5
2019/10/30 14:54:00.785 {wncd_x_R0-0}{2}: [caaa-authen] [23294]: (info): [CAAA:AUTHEN:66000006] DEBUG: mlist=(null) for type=0
2019/10/30 14:54:00.788 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Sent EAPOL packet - Version : 3,EAPOL Type : EAP, Payload Length : 85, EAP-Type = EAP-FAST
2019/10/30 14:54:00.788 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - REQUEST, ID : 0x6
2019/10/30 14:54:00.791 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Received EAPOL packet - Version : 1,EAPOL Type : EAP, Payload Length : 6, EAP-Type = EAP-FAST
2019/10/30 14:54:00.791 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - RESPONSE, ID : 0x6
2019/10/30 14:54:00.791 {wncd_x_R0-0}{2}: [caaa-authen] [23294]: (info): [CAAA:AUTHEN:66000006] DEBUG: mlist=(null) for type=0
2019/10/30 14:54:00.792 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Sent EAPOL packet - Version : 3,EAPOL Type : EAP, Payload Length : 59, EAP-Type = EAP-FAST
2019/10/30 14:54:00.792 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - REQUEST, ID : 0x7
2019/10/30 14:54:00.795 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Received EAPOL packet - Version : 1,EAPOL Type : EAP, Payload Length : 75, EAP-Type = EAP-FAST
2019/10/30 14:54:00.795 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - RESPONSE, ID : 0x7
2019/10/30 14:54:00.795 {wncd_x_R0-0}{2}: [caaa-authen] [23294]: (info): [CAAA:AUTHEN:66000006] DEBUG: mlist=(null) for type=0
2019/10/30 14:54:00.796 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Sent EAPOL packet - Version : 3,EAPOL Type : EAP, Payload Length : 91, EAP-Type = EAP-FAST
2019/10/30 14:54:00.796 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - REQUEST, ID : 0x8
2019/10/30 14:54:00.804 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Received EAPOL packet - Version : 1,EAPOL Type : EAP, Payload Length : 123, EAP-Type = EAP-FAST
2019/10/30 14:54:00.804 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - RESPONSE, ID : 0x8
2019/10/30 14:54:00.804 {wncd_x_R0-0}{2}: [caaa-authen] [23294]: (info): [CAAA:AUTHEN:66000006] DEBUG: mlist=(null) for type=0
2019/10/30 14:54:00.805 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Sent EAPOL packet - Version : 3,EAPOL Type : EAP, Payload Length : 139, EAP-Type = EAP-FAST
2019/10/30 14:54:00.805 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - REQUEST, ID : 0x9
2019/10/30 14:54:00.808 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Received EAPOL packet - Version : 1,EAPOL Type : EAP, Payload Length : 75, EAP-Type = EAP-FAST
2019/10/30 14:54:00.808 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - RESPONSE, ID : 0x9
2019/10/30 14:54:00.808 {wncd_x_R0-0}{2}: [caaa-authen] [23294]: (info): [CAAA:AUTHEN:66000006] DEBUG: mlist=(null) for type=0
2019/10/30 14:54:00.808 {wncd_x_R0-0}{2}: [eap] [23294]: (info): FAST:EAP_FAIL from inner method MSCHAPV2
2019/10/30 14:54:00.808 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Sent EAPOL packet - Version : 3,EAPOL Type : EAP, Payload Length : 59, EAP-Type = EAP-FAST
2019/10/30 14:54:00.808 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - REQUEST, ID : 0xa
2019/10/30 14:54:00.811 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Received EAPOL packet - Version : 1,EAPOL Type : EAP, Payload Length : 59, EAP-Type = EAP-FAST
2019/10/30 14:54:00.811 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] EAP Packet - RESPONSE, ID : 0xa
2019/10/30 14:54:00.811 {wncd_x_R0-0}{2}: [caaa-authen] [23294]: (info): [CAAA:AUTHEN:66000006] DEBUG: mlist=(null) for type=0
2019/10/30 14:54:00.812 {wncd_x_R0-0}{2}: [eap-auth] [23294]: (info): FAIL for EAP method name: EAP-FAST on handle 0xBD000006
2019/10/30 14:54:00.812 {wncd_x_R0-0}{2}: [dot1x] [23294]: (info): [e836.171f.a162:capwap_90000004] Raised identity update event for eap method EAP-FAST
2019/10/30 14:54:00.813 {wncd_x_R0-0}{2}: [errmsg] [23294]: (note): %DOT1X-5-FAIL: Authentication failed for client (e836.171f.a162) with reason (Cred Fail) on Interface capwap_90000004 AuditSessionID 00000000000000101D28423A Username: fakeuser
2019/10/30 14:54:00.813 {wncd_x_R0-0}{2}: [auth-mgr] [23294]: (info): [e836.171f.a162:capwap_90000004] Authc failure from Dot1X, Auth event fail
실패 시 추적
활성화된 디버그가 없는 경우에도 trace-on-failure 명령을 사용하여 지정된 mac 주소에 대한 오류 이벤트 목록을 확인할 수 있습니다.
다음 예에서는 AAA 방법이 처음에 누락되었으며(AAA 서버 중단 이벤트) 몇 분 후에 클라이언트가 잘못된 자격 증명을 사용했습니다.
이 명령은 릴리스 16.12 및 그 이전의 show logging trace-on-failure 요약에 있으며 Cisco IOS-XE 17.1 이상에서 show logging profile wireless(filter mac <mac>) trace-on-failure를 표시합니다. 17.1 이상에서는 클라이언트 MAC 주소에 대해 필터링할 수 있다는 점에서 기술적 차이는 없습니다.
Nico9800#show logging profile wireless filter mac e836.171f.a162 trace-on-failure
Displaying logs from the last 0 days, 0 hours, 10 minutes, 0 seconds
executing cmd on chassis 2 ...
sending cmd to chassis 1 ...
Collecting files on current[1] chassis.
# of files collected = 30
Collecting files on current[2] chassis.
# of files collected = 30
Collecting files from chassis 1.
Time UUID Log
----------------------------------------------------------------------------------------------------
2019/10/30 14:51:04.438 0x0 SANET_AUTHC_FAILURE - AAA Server Down username , audit session id 000000000000000F1D260BB0,
2019/10/30 14:58:04.424 0x0 e836.171f.a162 CLIENT_STAGE_TIMEOUT State = AUTHENTICATING, WLAN profile = ndarchis_leap, Policy profile = leap, AP name = LABap_2802