소개
이 문서에서는 Cisco ISE와 Secure LDAPS 서버를 외부 ID 소스로 통합하는 방법을 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- ISE(Identity Service Engine) 관리에 대한 기본 지식
- Active Directory/LDAPS(Secure Lightweight Directory Access Protocol)에 대한 기본 지식
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco ISE 2.6 패치 7
- Active Directory LDS(Lightweight Directory Services)가 설치된 Microsoft Windows 버전 2012 R2
- 기본 신청자 및 사용자 인증서가 설치된 Windows 10 OS PC
- Cisco Switch C3750X with 152-2.E6 image
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
LDAPS에서는 디렉토리 바인딩이 설정될 때 전송 중인 LDAP 데이터(사용자 자격 증명 포함)의 암호화를 허용합니다. LDAPS는 TCP 포트 636을 사용합니다.
이러한 인증 프로토콜은 LDAPS에서 지원됩니다.
- EAP Generic Token Card(EAP-GTC)
- PAP(Password Authentication Protocol)
- EAP 전송 계층 보안(EAP-TLS)
- PEAP-TLS(Protected EAP Transport Layer Security)
참고: EAP-MSCHAPV2(PEAP, EAP-FAST 또는 EAP-TTLS의 내부 방법), LEAP, CHAP 및 EAP-MD5는 LDAPS 외부 ID 소스에서 지원되지 않습니다.
구성
이 섹션에서는 네트워크 디바이스의 컨피그레이션 및 ISE와 Microsoft AD(Active Directory) LDAPS 서버의 통합에 대해 설명합니다.
네트워크 다이어그램
이 컨피그레이션 예에서는 엔드포인트가 LAN(Local Area Network)에 연결하기 위해 스위치와의 이더넷 연결을 사용합니다. 연결된 switchport는 802.1x 인증을 위해 구성되어 ISE로 사용자를 인증합니다. ISE에서 LDAPS는 외부 ID 저장소로 구성됩니다.
이 이미지는 사용되는 네트워크 토폴로지를 보여줍니다.
Active Directory에서 LDAPS 구성
도메인 컨트롤러에 ID 인증서 설치
LDAPS를 활성화하려면 다음 요구 사항을 충족하는 DC(Domain Controller)에 인증서를 설치합니다.
- LDAPS 인증서는 도메인 컨트롤러 개인 인증서 저장소에 있습니다.
- 인증서와 일치하는 개인 키가 도메인 컨트롤러의 저장소에 있으며 인증서와 올바르게 연결되어 있습니다.
- Enhanced Key Usage 확장에는 서버 인증(1.3.6.1.5.5.7.3.1) 개체 식별자(OID라고도 함)가 포함됩니다.
- 도메인 컨트롤러(예: DC1.testlab.com)의 FQDN(Fully Qualified Domain Name)은 Subject(주체) 필드의 CN(Common Name) 및 Subject Alternative Name Extension(주체 대체 이름 확장)의 DNS 항목 특성 중 하나에 있어야 합니다.
- 인증서는 도메인 컨트롤러와 LDAPS 클라이언트가 신뢰하는 CA(Certificate Authority)에서 발급해야 합니다. 신뢰할 수 있는 보안 통신의 경우 클라이언트와 서버는 서로의 루트 CA와 인증서를 발급한 중간 CA 인증서를 신뢰해야 합니다.
- 키를 생성하려면 Schannel CSP(암호화 서비스 공급자)를 사용해야 합니다.
LDAPS 디렉토리 구조 액세스
Active Directory 서버의 LDAPS Directory에 액세스하려면 LDAP 브라우저를 사용합니다. 이 LAB에서는 Software LDAP Browser 4.5를 사용합니다.
1. TCP 포트 636에서 도메인에 대한 연결을 설정합니다.
2. 간소화를 위해 AD에서 ISE OU라는 OU(Organizational Unit)를 만들고 UserGroup이라는 그룹이 있어야 합니다. 두 명의 사용자(user1 및 user2)를 만들고 이 사용자를 UserGroup 그룹의 멤버로 만듭니다.
참고: ISE의 LDAP ID 소스는 사용자 인증에만 사용됩니다.
ISE를 LDAPS 서버와 통합
1. 신뢰할 수 있는 인증서에서 LDAP 서버 루트 CA 인증서를 가져옵니다.
2. ISE 관리자 인증서를 검증하고 ISE 관리자 인증서 발급자 인증서가 신뢰할 수 있는 인증서 저장소에도 있는지 확인합니다.
3. LDAPS 서버를 통합하려면 LDAPS 디렉토리의 다른 LDAP 속성을 사용합니다. Administration(관리) > Identity Management(ID 관리) > External Identity Sources(외부 ID 소스) > LDAP Identity Sources(LDAP ID 소스) > Add(추가)로 이동합니다.
4. [일반 사항] 탭에서 다음 속성을 구성합니다.
Subject Objectclass: 이 필드는 사용자 계정의 Object 클래스에 해당합니다. 다음 네 가지 클래스 중 하나를 사용할 수 있습니다.
주체 이름 특성: 이 필드는 요청의 사용자 이름을 포함하는 특성의 이름입니다. 이 특성은 ISE가 LDAP 데이터베이스의 특정 사용자 이름을 조회할 때 LDAPS에서 검색됩니다(cn, sAMAccountName 등을 사용할 수 있음). 이 시나리오에서는 엔드포인트의 user1 사용자 이름이 사용됩니다.
Group Name Attribute(그룹 이름 특성): 그룹 이름을 보유한 특성입니다. LDAP 디렉토리의 그룹 이름 속성 값은 User groups(사용자 그룹) 페이지의 LDAP 그룹 이름과 일치해야 합니다
Group Objectclass: 이 값은 검색에서 그룹으로 인식되는 객체를 지정하는 데 사용됩니다.
그룹 맵 특성: 이 특성은 사용자가 그룹에 매핑되는 방법을 정의합니다.
Certificate Attribute(인증서 특성): 인증서 정의를 포함하는 특성을 입력합니다. 이러한 정의는 선택적으로 클라이언트가 인증서 인증 프로필의 일부로 정의할 때 제시하는 인증서를 검증하는 데 사용할 수 있습니다. 이러한 경우 클라이언트 인증서와 LDAP ID 소스에서 검색된 인증서 간에 이진 비교가 수행됩니다.
5. LDAPS 연결을 구성하려면 연결 탭으로 이동합니다.
6. 도메인 컨트롤러에서 dsquery를 실행하여 LDAP 서버에 연결하는 데 사용할 사용자 이름 DN을 가져옵니다.
PS C:\Users\Administrator> dsquery user -name poonarg
"CN=poonarg,CN=Users,DC=testlab,DC=com"
1단계. 초LDAP 서버의 올바른 IP 주소 또는 호스트 이름을 설정하고, LDAPS 포트(TCP 636) 및 관리 DN을 정의하여 SSL을 통해 LDAP에 연결합니다.
2단계. 보안 인증 및 서버 ID 확인 옵션을 활성화 합니다.
3단계. 드롭다운 메뉴에서 LDAP Server Root CA 인증서 및 ISE admin certificate Issuer CA 인증서를 선택합니다(동일한 LDAP 서버에 설치된 인증 기관도 ISE admin 인증서를 발급하기 위해 사용함).
4단계. Test Bind to server를 선택합니다. 이 시점에서는 검색 기반이 아직 구성되지 않았기 때문에 어떤 주제나 그룹도 검색되지 않습니다.
7. Directory Organization(디렉토리 조직) 탭 아래에서 Subject/Group Search Base(주체/그룹 검색 기반)를 구성합니다. ISE가 LDAP에 조인하는 지점입니다. 이제 조인 지점의 하위 항목인 주체 및 그룹만 검색할 수 있습니다. 이 시나리오에서 주체 및 그룹 모두 OU=ISE OU에서 검색됩니다.
8. 이 이미지에 표시된 대로 Groups(그룹)에서 Add(추가)를 클릭하여 ISE의 LDAP에서 그룹을 가져오고 그룹을 검색합니다.
스위치 구성
802.1x 인증을 위해 스위치를 구성합니다. Windows PC가 switchport Gig2/0/47에 연결되었습니다.
aaa new-model
radius server ISE
address ipv4 x.x.x.x auth-port 1812 acct-port 1813
key xxxxxx
aaa group server radius ISE_SERVERS
server name ISE
!
aaa server radius dynamic-author
client x.x.x.x server-key xxxxxx
!
aaa authentication dot1x default group ISE_SERVERS local
aaa authorization network default group ISE_SERVERS
aaa accounting dot1x default start-stop group ISE_SERVERS
!
dot1x system-auth-control
ip device tracking
!
radius-server attribute 6 on-for-login-auth
radius-server attribute 8 include-in-access-req
!
!
interface GigabitEthernet2/0/47
switchport access vlan xx
switchport mode access
authentication port-control auto
dot1x pae authenticator
엔드포인트 구성
Windows 네이티브 서 플리 컨 트가 사용 되고 LDAP 지원 EAP 프로토콜 중 하나가 사용 됩니다, 사용자 인증 및 권한 부여를 위한 EAP-TLS.
1. PC에 사용자 인증서(user1용)가 프로비저닝되어 있고 클라이언트 인증의 용도로 사용되었는지, 신뢰할 수 있는 루트 인증 기관에서 발급자 인증서 체인이 PC에 있는지 확인합니다.
2. Dot1x 인증을 활성화하고 Microsoft:Smart Card 또는 EAP-TLS 인증을 위한 기타 인증서로 인증 방법을 선택합니다.
3. Additional Settings(추가 설정)를 클릭하면 창이 열립니다. 이 이미지에 표시된 대로 인증 모드를 지정하고 사용자 인증을 선택합니다.
ISE에서 정책 설정 구성
EAP-TLS 프로토콜이 사용되므로 정책 집합을 구성하기 전에 인증서 인증 프로파일을 구성해야 하며 ID 소스 시퀀스가 나중에 인증 정책에서 사용됩니다.
ID 소스 시퀀스의 인증서 인증 프로파일을 참조하고 인증 검색 목록에서 LDAPS 외부 ID 소스를 정의합니다.
이제 유선 Dot1x 인증에 대한 정책 집합을 구성합니다.
이 컨피그레이션 후 LDAPS ID 소스에 대해 EAP-TLS 프로토콜을 사용하여 엔드포인트를 인증합니다.
다음을 확인합니다.
1. PC에 연결된 스위치 포트에서 인증 세션을 확인합니다.
2. LDAPS 및 ISE 컨피그레이션을 확인하기 위해 서버에 대한 테스트 연결을 통해 주체 및 그룹을 검색할 수 있습니다.
3. 사용자 인증 보고서를 확인합니다.
4. 엔드포인트에 대한 자세한 인증 보고서를 확인합니다.
5. ISE에서 LDAPS 서버로 향하는 패킷 캡처를 수행하여 ISE와 LDAPS 서버 간에 데이터가 암호화되었는지 확인합니다.
문제 해결
이 섹션에서는 이 컨피그레이션에서 발생하는 몇 가지 일반적인 오류와 그 해결 방법에 대해 설명합니다.
- 인증 보고서에서 다음 오류 메시지를 볼 수 있습니다.
Authentication method is not supported by any applicable identity store
이 오류 메시지는 선택한 방법이 LDAP에서 지원되지 않음을 나타냅니다. 동일한 보고서의 인증 프로토콜이 지원되는 방법(EAP-GTC, EAP-TLS 또는 PEAP-TLS) 중 하나를 표시하는지 확인합니다.
2. 서버에 대한 테스트 바인딩이 오류와 함께 종료되었습니다.
가장 일반적으로 이는 LDAPS 서버 인증서 유효성 검사 실패 때문입니다. 이러한 유형의 문제를 해결하려면 ISE에서 패킷 캡처를 수행하고 디버그 레벨에서 세 가지 런타임 및 prrt-jni 구성 요소를 모두 활성화하고, 문제를 다시 생성한 다음 prrt-server.log 파일을 확인합니다.
패킷 캡처가 잘못된 인증서에 대해 불평하고 포트 서버가 다음을 표시합니다.
04:10:20,197,ERROR,0x7f9c5b6f1700,LdapSslConnectionContext::checkCryptoResult(id = 1289): error message = SSL alert: code=0x22A=554 ; source=local ; type=fatal ; message="Server certificate identity verification failed: host IP didnt match SAN IP.s3_clnt.c:1290
참고: LDAP 페이지의 호스트 이름은 인증서의 주체 이름(또는 임의의 주체 대체 이름)으로 구성해야 합니다. 따라서 주체 또는 SAN에 이러한 인증서가 없으면 작동하지 않으며 SAN 목록에 IP 주소가 있는 인증서가 필요합니다.
3. 인증 보고서에서 ID 저장소에서 주체를 찾을 수 없음을 알 수 있습니다. 즉, 보고서의 사용자 이름이 LDAP 데이터베이스의 사용자에 대한 Subject Name Attribute와 일치하지 않습니다. 이 시나리오에서는 이 특성의 값이 sAMAccountName으로 설정되었습니다. 즉 ISE가 LDAP 사용자가 일치하는 항목을 찾으려고 할 때 LDAP 사용자의 sAMAccountName 값을 확인합니다.
4. 서버 테스트에 바인딩하는 동안 제목 및 그룹을 올바르게 검색할 수 없습니다. 이 문제의 가장 큰 원인은 검색 기준에 대한 잘못된 컨피그레이션입니다. LDAP 계층 구조는 leaf-to-root 및 dc(여러 단어로 구성 가능)에서 지정해야 합니다.
관련 정보