소개
이 문서에서는 RADIUS over DTLS(Datagram Transport Layer Security Protocol)의 컨피그레이션 및 문제 해결에 대해 설명합니다. DTLS는 보안 터널을 통해 전송되는 RADIUS에 대한 암호화 서비스를 제공합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- Cisco ISE(Identity Services Engine)
- RADIUS 프로토콜
- Cisco IOS란
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Cisco Identity Services Engine 2.2
- Catalyst 3650(IOS 16.6.1 포함)
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
구성
설정
1. ISE에 네트워크 디바이스를 추가하고 DTLS 프로토콜을 활성화합니다.
Administration(관리) > Network Resources(네트워크 리소스) > Network Devices(네트워크 디바이스)로 이동합니다. Add(추가)를 클릭하고 최소 필수 필드를 입력합니다.
- Name(이름) - 디바이스의 식별 이름이 추가됩니다.
- IP 주소 - 인증자가 ISE에 연결하는 데 사용하는 IP 주소입니다. 디바이스 범위를 구성할 수 있습니다. 그러려면 적절한 마스크(32보다 작음)를 지정합니다.
- Device Profile(디바이스 프로파일) - 디바이스에 대한 일반 설정 또한 어떤 프로토콜을 처리할지, 자세한 CoA(Change of Authorization) 설정 및 Radius 특성 컨피그레이션을 지정할 수 있습니다. 자세한 내용을 보려면 Administration(관리) > Network Resources(네트워크 리소스) > Network Device Profiles(네트워크 디바이스 프로파일)로 이동합니다.
- 네트워크 장치 그룹 - 장치 유형을 설정하고, 기능 및 장치 위치를 설정합니다. 이 설정은 필수가 아닙니다. 사용자 지정 값을 선택하지 않으면 기본 설정이 사용됩니다.
RADIUS Authentication Settings(RADIUS 인증 설정) 확인란을 선택하고 RADIUS DTLS Settings(RADIUS DTLS 설정)에서 DTLS Required(DTLS 필수) 확인란을 선택합니다. 이렇게 하면 DTLS 보안 터널을 통해서만 인증자와 RADIUS 통신이 가능합니다. 공유 암호 텍스트 상자는 회색으로 표시됩니다. RADIUS DTLS의 경우 이 값은 고정되어 있으며 인증자 측에서 동일한 문자열이 구성됩니다.
2. DTLS 포트 및 유휴 시간 제한을 구성합니다.
DTLS 통신에 사용되는 포트 및 유휴 시간 제한을 Administration(관리) > System(시스템) > Settings(설정) > Protocols(프로토콜) > RADIUS > RADIUS DTLS에서 구성할 수 있습니다.
DTLS 포트는 RADIUS 포트와 다릅니다. 기본적으로 RADIUS는 쌍 1645, 1646 및 1812, 1813을 사용합니다. 기본적으로 인증, 권한 부여, 어카운팅에 DTLS를 사용하며 CoA는 포트 2083을 사용합니다. Idle Timeout(유휴 시간 제한)은 ISE와 인증자가 터널을 통과하는 실제 통신 없이 터널을 유지하는 기간을 지정합니다. 이 시간 제한은 초 단위로 측정되며 범위는 60~600초입니다.
3. ISE 트러스트 스토어에서 DTLS RADIUS 인증서의 수출 발급자
ISE와 인증자 간에 터널을 설정하려면 두 엔터티 모두 인증서를 교환하고 확인해야 합니다. 인증자는 ISE RADIUS DTLS 인증서를 신뢰해야 합니다. 즉, 인증자의 Trust Store에 해당 발급자가 있어야 합니다. ISE 인증서의 서명자를 내보내려면 이미지에 표시된 대로 Administration > System > Certificates로 이동합니다.
RADIUS DTLS 역할이 할당된 인증서를 찾고 이 인증서에 대해 Issued By(발급자) 필드를 선택합니다. ISE Trust Store에서 내보내야 하는 인증서의 일반 이름입니다. 이렇게 하려면 Administration(관리) > System(시스템) > Certificates(인증서)Trusted Certificates(신뢰할 수 있는 인증서)로 이동합니다. 해당 인증서 옆의 확인란을 선택하고 Export(내보내기)를 클릭합니다.
4. 신뢰 지점을 구성하고 인증자에게 인증서를 가져옵니다.
신뢰 지점을 구성하려면 스위치에 로그인하고 명령을 실행합니다.
configure terminal
crypto pki trustpoint isetp
enrollment terminal
revocation-check none
exit
crypto pki 명령이 isetp를 인증하는 인증서를 가져옵니다. 인증서를 수락하라는 프롬프트가 표시되면 yes를 입력합니다.
Switch3650(config)#crypto pki authenticate isetp
Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIDWTCCAkGgAwIBAgIQL9s4RrhtWLpJjBYB5v0dtTANBgkqhkiG9w0BAQUFADA/
MRMwEQYKCZImiZPyLGQBGRYDY29tMRcwFQYKCZImiZPyLGQBGRYHZXhhbXBsZTEP
MA0GA1UEAxMGTEFCIENBMB4XDTE1MDIxMjA3MzgxM1oXDTI1MDIxMjA3NDgxMlow
PzETMBEGCgmSJomT8ixkARkWA2NvbTEXMBUGCgmSJomT8ixkARkWB2V4YW1wbGUx
DzANBgNVBAMTBkxBQiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AMDSfJwvbJLHHJf4vDTalGjKrDI73c/y269IMZV48xpCruNhglcU8CW/T9Ysj6xk
Oogtx2vpG4XJt7KebDZ/ac1Ymjg7sPBPcnyDZCd2a1b39XakD2puE8lVi4RVkjBH
pss2fTWeuor9dzgb/kWb0YqIsgw1sRKQ2Veh1IXmuhX+wDqELHPIzgXn/DOBF0qN
vWlevrAlmBTxC04t1aPwyRk6b6ptjMeaIv2nqy8tOrldMVYKsPDj8aOrFEQ2d/wg
HDvd6C6LKRBpmAvtrqyDtinEl/CRaEFH7dZpvUSJBNuh7st3JIG8gVFstweoMmTE
zxUONQw8QrZmXDGTKgqvisECAwEAAaNRME8wCwYDVR0PBAQDAgGGMA8GA1UdEwEB
/wQFMAMBAf8wHQYDVR0OBBYEFO0TzYQ4kQ3fN6x6JzCit3/l0qoHMBAGCSsGAQQB
gjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQAWbWGBeqE2u6IGdKEPhv+t/rVi
xhn7KrEyWxLkWaLsbU2ixsfTeJDCM8pxQItsj6B0Ey6A05c3YNcvW1iNpupGgc7v
9lMt4/TB6aRLVLijBPB9/p2/3SJadCe/YBaOn/vpmfBPPhxUQVPiBM9fy/Al+zsh
t66bcO3WcD8ZaKaER0oT8Pt/4GHZA0Unx+UxpcNuRRz4COArINXE0ULRfBxpIkkF
pWNjH0rlV55edOga0/r60Cg1/J9VAHh3qK2/3zXJE53N+A0h9whpG4LYgIFLB9ep
ZDim7KGsf+P3zk7SsKioGB4kqidHnm34XjlkWFnrCMQH4HC1oEymakV3Kq24
-----END CERTIFICATE-----
Certificate has the following attributes:
Fingerprint MD5: B33EAD49 87F18924 590616B9 C8880D9D
Fingerprint SHA1: FD729A3B B533726F F8450358 A2F7EB27 EC8A1178
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
5. 스위치의 인증서를 내보냅니다.
스위치의 DTLS에 사용할 신뢰 지점 및 인증서를 선택하고 내보냅니다.
Switch3650(config)#crypto pki export TP-self-signed-721943660 pem terminal
% Self-signed CA certificate:
-----BEGIN CERTIFICATE-----
MIICKTCCAZKgAwIBAgIBATANBgkqhkiG9w0BAQUFADAwMS4wLAYDVQQDEyVJT1Mt
U2VsZi1TaWduZWQtQ2VydGlmaWNhdGUtNzIxOTQzNjYwMB4XDTE2MDQyNzExNDYw
NloXDTIwMDEwMTAwMDAwMFowMDEuMCwGA1UEAxMlSU9TLVNlbGYtU2lnbmVkLUNl
cnRpZmljYXRlLTcyMTk0MzY2MDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
xRybTGD526rPYuD2puMJu8ANcDqQnwunIERgvIWoLwBovuAu7WcRmzw1IDTDryOH
PXt1n5GcQSAOgn+9QdvKl1Z43ZkRWK5E7EGmjM/aL1287mg4/NlrWr4KMSwDQBJI
noJ52CABXUoApuiiJ8Ya4gOYeP0TmsZtxP1N+s+wqjMCAwEAAaNTMFEwDwYDVR0T
AQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSEOKlAPAHBPedwichXL+qUM+1riTAdBgNV
HQ4EFgQUhDipQDwBwT3ncInIVy/qlDPta4kwDQYJKoZIhvcNAQEFBQADgYEAlBNN
wKSS8yBuOH0/jUV7sy3Y9/oV7Z9bW8WFV9QiTQ1lZelvWMTbewozwX2LJvxobGcj
Pi+n99RIH8dBhWwoYl9GTN2LVI22GIPX12jNLqps+Mq/u2qxVm0964Sajs5OlKjQ
69XFfCVot1NA6z2eEP/69oL9x0uaJDZa+6ileh0=
-----END CERTIFICATE-----
구성된 모든 신뢰 지점을 나열하려면 show crypto pki trustpoints 명령을 실행합니다. 인증서가 콘솔에 인쇄되면 파일에 복사하고 PC에 저장합니다.
6. ISE Trust Store로 스위치 인증서를 가져옵니다.
ISE에서 Administration(관리) > Certificates(인증서) > Trusted Certificates(신뢰할 수 있는 인증서)로 이동하고 Import(가져오기)를 클릭합니다.
이제 Browse(찾아보기)를 클릭하고 스위치의 인증서를 선택합니다. (선택 사항) Friendly Name(식별 이름)을 입력하고 Trust for authentication within ISE(ISE 내 인증 신뢰) 및 Trust for client authentication and Syslog(클라이언트 인증 및 Syslog 신뢰) 확인란을 선택합니다. 그런 다음 이미지에 표시된 대로 Submit(제출)을 클릭합니다.
7. 스위치에 RADIUS를 구성합니다.
스위치에 RADIUS 구성을 추가합니다. DTLS를 통해 ISE와 통신하도록 스위치를 구성하려면 다음 명령을 사용합니다.
radius server ISE22
address ipv4 10.48.23.86
key radius/dtls
dtls port 2083
dtls trustpoint client TP-self-signed-721943660
dtls trustpoint server isetp
나머지 AAA 관련 컨피그레이션은 요구 사항 및 설계에 따라 달라집니다. 이 컨피그레이션을 예로 들면 다음과 같습니다.
aaa group server radius ISE
server name ISE22
radius-server attribute 6 on-for-login-auth
radius-server attribute 8 include-in-access-req
radius-server attribute 25 access-request include
aaa authentication dot1x default group ISE
aaa authorization network default group ISE
8. ISE에서 정책을 구성합니다.
ISE에서 인증 및 권한 부여 정책을 구성합니다. 이 단계는 설계 및 요구 사항에 따라 달라집니다.
다음을 확인합니다.
사용자가 인증할 수 있는지 확인하려면 스위치에서 test aaa 명령을 사용합니다.
Switch3650#test aaa group ISE alice Krakow123 new-code
User successfully authenticated
USER ATTRIBUTES
username 0 "alice"
Switch3650#
User successfully authenticated(사용자가 성공적으로 인증됨) 메시지가 표시되어야 합니다. ISE Operations(ISE 작업) > RADIUS > LiveLog로 이동하고 적절한 로그에 대한 세부 정보를 선택합니다(돋보기 클릭).
보고서의 오른쪽에는 단계 목록이 있습니다. 목록의 첫 번째 단계가 RADIUS 패킷이 암호화되어 있는지 확인합니다.
또한 ISE에서 패킷 캡처를 시작하고 test aaa 명령을 한 번 더 실행할 수 있습니다. 캡처를 시작하려면 Operations(운영) > Troubleshoot(문제 해결) > Diagnostic Tools(진단 도구) > General Tools(일반 도구) > TCP Dump(TCP 덤프)로 이동합니다. 인증에 사용 된 정책 서비스 노드를 선택 하고 시작을 클릭 합니다.
인증이 완료되면 Stop and Download(중지 및 다운로드)를 클릭합니다. 패킷 캡처를 열 때 DTLS로 암호화된 트래픽을 볼 수 있어야 합니다.
패킷 #813 - #822은 DTLS 핸드셰이크의 일부입니다. 핸드셰이크가 성공적으로 협상되면 애플리케이션 데이터가 전송됩니다. 패킷 수는 다양할 수 있으며 사용되는 인증 방법(PAP, EAP-PEAP, EAP-TLS 등)에 따라 달라질 수 있습니다. 각 패킷의 내용은 암호화됩니다.
모든 데이터가 전송될 때 터널이 즉시 해제되지 않습니다. ISE에 구성된 IdleTimeout은 통신을 거치지 않고 터널을 설정할 수 있는 기간을 결정합니다. 타이머가 만료되고 새 액세스 요청을 ISE로 전송해야 하는 경우 DTLS 핸드셰이크가 수행되고 터널이 재구축됩니다.
문제 해결
1. ISE에서 요청을 수신하지 않습니다.
기본 DTLS 포트는 2083입니다. 기본 RADIUS 포트는 1645,1646 및 1812,1813입니다. 방화벽이 UDP/2083 트래픽을 차단하지 않는지 확인합니다.
2. DTLS 핸드셰이크가 실패합니다.
ISE에 대한 자세한 보고서에서 DTLS 핸드셰이크가 실패했음을 확인할 수 있습니다.
가능한 이유는 스위치 또는 ISE가 핸드셰이크 중에 전송된 인증서를 신뢰하지 않기 때문입니다. 인증서 컨피그레이션을 확인합니다. ISE의 RADIUS DTLS 역할 및 스위치의 신뢰 지점에 적절한 인증서가 할당되었는지 확인합니다.