소개
이 문서에서는 ISE(Identity Services Engine) 관리 액세스를 위한 외부 2단계 인증을 구성하는 데 필요한 단계에 대해 설명합니다.이 예에서는 ISE 관리자가 RADIUS 토큰 서버에 대해 인증하고 푸시 알림 형태의 추가 인증이 Duo 인증 프록시 서버에서 관리자의 모바일 디바이스로 전송됩니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- RADIUS 프로토콜
- ISE RADIUS 토큰 서버 및 ID 구성
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- ISE(Identity Services Engine)
- AD(Active Directory)
- Duo 인증 프록시 서버
- Duo 클라우드 서비스
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
네트워크 다이어그램
구성
Duo 구성
1단계. Windows 또는 Linux 시스템에 Duo Authentication Proxy Server 다운로드 및 설치: https://duo.com/docs/ciscoise-radius#install-the-duo-authentication-proxy
참고:이 시스템은 ISE 및 Duo 클라우드(인터넷)에 액세스할 수 있어야 합니다.
2단계. authproxy.cfg 파일을 구성합니다.
Notepad+ 또는 WordPad와 같은 텍스트 편집기에서 이 파일을 엽니다.
참고: 기본 위치는 C:\Program Files (x86)\Duo Security Authentication Proxy\conf\authproxy.cfg에 있습니다.
3단계. Duo Admin Panel에서 "Cisco ISE RADIUS" 애플리케이션을 생성합니다.https://duo.com/docs/ciscoise-radius#first-steps
4단계. authproxy.cfg 파일을 편집하고 이 구성을 추가합니다.
ikey= xxxxxxxxxxxxxxxxxxxxxxxxxx
skey= xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
api_host=api-xxxxxxxx.duosecurity.com
radius_ip_1=10.127.196.189 Sample IP address of the ISE server
radius_secret_1=******
failmode=secure
client=ad_client
port=1812
5단계. ad_client를 Active Directory 세부 정보로 구성합니다.Duo Auth Proxy는 기본 인증을 위해 아래 정보를 사용하여 AD에 대해 인증합니다.
[ad_client]
host=10.127.196.230 Sample IP address of the Active Directory
service_account_username=< AD-username >
service_account_password=< AD-password >
search_dn=CN=Users,DC=gce,DC=iselab,DC=local
참고:네트워크에 인터넷 액세스를 위해 HTTP 프록시 연결이 필요한 경우 authproxy.cfg에 http_proxy 세부 정보를 추가합니다.
6단계. Duo 보안 인증 프록시 서비스를 다시 시작합니다.파일을 저장하고 Windows 시스템에서 Duo 서비스를 다시 시작합니다.Windows 서비스 콘솔(services.msc)을 열고 서비스 목록에서 Duo 보안 인증 프록시 서비스를 찾은 다음 이미지에 표시된 대로 다시 시작을 클릭합니다.
7단계. 사용자 이름을 생성하고 엔드 디바이스에서 Duo Mobile을 활성화합니다.https://duo.com/docs/administration-users#creating-users-manually
Duo Admin Panel에서 사용자를 추가합니다.이미지에 표시된 대로 Users(사용자) > add users(사용자 추가)로 이동합니다.
최종 사용자에게 전화기에 Duo 앱이 설치되어 있는지 확인합니다.
이미지에 표시된 대로 Activate Duo Mobile을 선택합니다.
이미지에 표시된 대로 Generate Duo Mobile Activation Code를 선택합니다.
이미지에 표시된 대로 Send Instructions by SMS(SMS로 지침 보내기)를 선택합니다.
SMS에서 링크를 클릭하면 Duo 앱이 이미지에 표시된 대로 Device Info 섹션의 사용자 계정에 연결됩니다.
ISE 컨피그레이션
1단계. ISE를 Duo 인증 프록시와 통합합니다.
Administration(관리) > Identity Management(ID 관리) > External Identity Sources(외부 ID 소스) > RADIUS Token(RADIUS 토큰)으로 이동하여 Add(추가)를 클릭하여 새 RADIUS 토큰 서버를 추가합니다.이미지에 표시된 대로 [일반] 탭, [연결] 탭의 [IP 주소] 및 [공유 키]에서 서버 이름을 정의합니다.
참고:Server Timeout(서버 시간 제한)을 60초로 설정하여 사용자가 푸시를 처리할 충분한 시간을 갖도록 합니다.
2단계. 이미지에 표시된 대로 Administration(관리) > System(시스템) > Admin Access(관리 액세스) > Authentication(인증) > Authentication Method(인증 방법)로 이동하고 이전에 구성한 RADIUS 토큰 서버를 ID 소스로 선택합니다.
3단계. 다음 이미지에 표시된 대로 Administration(관리) > System(시스템) > Admin Access(관리 액세스) > Administrators(관리자) > Admin Users(관리자 사용자)로 이동하고 관리자 사용자를 External(외부)로 생성하고 수퍼 관리자 권한을 제공합니다.
다음을 확인합니다.
이 섹션을 사용하여 컨피그레이션이 제대로 작동하는지 확인합니다.
ISE GUI를 열고 RADIUS 토큰 서버를 ID 소스로 선택하고 관리자 사용자로 로그인합니다.
문제 해결
이 섹션에서는 컨피그레이션 문제를 해결하는 데 사용할 수 있는 정보를 제공합니다.
클라우드 또는 Active Directory의 Duo 프록시 연결과 관련된 문제를 해결하려면 authproxy.cfg의 주 섹션 아래에 "debug=true"를 추가하여 Duo Auth Proxy에서 디버깅을 활성화합니다.
로그는 다음 위치에 있습니다.
C:\Program Files (x86)\Duo 보안 인증 프록시\log
Notepad++ 또는 WordPad와 같은 텍스트 편집기에서 authproxy.log 파일을 엽니다.
ISE에서 요청을 수신하고 Duo Cloud로 전송하는 Duo Auth Proxy의 코드 조각을 기록합니다.
2019-08-19T04:59:27-0700 [DuoForwardServer (UDP)] Sending request from 10.127.196.189 to radius_server_auto
2019-08-19T04:59:27-0700 [DuoForwardServer (UDP)] Received new request id 2 from ('10.127.196.189', 62001)
2019-08-19T04:59:27-0700 [DuoForwardServer (UDP)] (('10.127.196.189', 62001), duoadmin, 2): login attempt for username u'duoadmin'
2019-08-19T04:59:27-0700 [DuoForwardServer (UDP)] Sending AD authentication request for 'duoadmin' to '10.127.196.230'
2019-08-19T04:59:27-0700 [duoauthproxy.modules.ad_client._ADAuthClientFactory#info] Starting factory
Duo 인증 프록시의 로그 조각이 Duo 클라우드에 연결할 수 없습니다.
2019-08-19T04:59:27-0700 [duoauthproxy.modules.ad_client._ADAuthClientFactory#info] Stopping factory
2019-08-19T04:59:37-0700 [-] Duo preauth call failed
Traceback (most recent call last):
File "twisted\internet\defer.pyc", line 654, in _runCallbacks
File "twisted\internet\defer.pyc", line 1475, in gotResult
File "twisted\internet\defer.pyc", line 1416, in _inlineCallbacks
File "twisted\python\failure.pyc", line 512, in throwExceptionIntoGenerator
File "duoauthproxy\lib\radius\duo_server.pyc", line 111, in preauth
File "twisted\internet\defer.pyc", line 1416, in _inlineCallbacks
File "twisted\python\failure.pyc", line 512, in throwExceptionIntoGenerator
File "duoauthproxy\lib\duo_async.pyc", line 246, in preauth
File "twisted\internet\defer.pyc", line 1416, in _inlineCallbacks
File "twisted\python\failure.pyc", line 512, in throwExceptionIntoGenerator
File "duoauthproxy\lib\duo_async.pyc", line 202, in call
File "twisted\internet\defer.pyc", line 654, in _runCallbacks
File "duoauthproxy\lib\duo_async.pyc", line 186, in err_func
duoauthproxy.lib.duo_async.DuoAPIFailOpenError: API Request Failed: DNSLookupError('api-xxxxxxxx.duosecurity.com',)
2019-08-19T04:59:37-0700 [-] (('10.127.196.189', 62001), duoadmin, 3): Failmode Secure - Denied Duo login on preauth failure
2019-08-19T04:59:37-0700 [-] (('10.127.196.189', 62001), duoadmin, 3): Returning response code 3: AccessReject
2019-08-19T04:59:37-0700 [-] (('10.127.196.189', 62001), duoadmin, 3): Sending response
관련 정보