소개
이 문서에서는 Radius 및 TACACS 통신을 보호하기 위해 9800 WLC와 ISE 서버 간의 IPsec(Internet Protocol Security) 컨피그레이션에 대해 설명합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
- ISE
- Cisco IOS® XE WLC 컨피그레이션
- 일반 IPsec 개념
- 일반 RADIUS 개념
- 일반 TACACS 개념
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- 무선 컨트롤러: 17.09.04a를 실행하는 C9800-40-K9
- Cisco ISE: 버전 3 패치 4 실행
- 스위치: 9200-L-24P
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
IPsec은 IETF에서 개발한 개방형 표준의 프레임워크입니다. 인터넷과 같은 보호되지 않는 네트워크를 통해 민감한 정보를 전송할 때 보안을 제공합니다. IPsec은 네트워크 레이어에서 작동하여 Cisco 라우터와 같은 참여 IPsec 장치(피어) 간 IP 패킷을 보호하고 인증합니다. 9800 WLC와 ISE 서버 간 IPsec을 사용하여 RADIUS 및 TACACS 통신을 보호합니다.
구성
네트워크 다이어그램
네트워크 다이어그램
ISE 구성
Cisco ISE는 터널 및 전송 모드에서 IPsec을 지원합니다. Cisco ISE 인터페이스에서 IPsec을 활성화하고 피어를 구성하면 Cisco ISE와 NAD 간에 IPsec 터널이 생성되어 통신을 보호합니다.
사전 공유 키를 정의하거나 IPsec 인증에 X.509 인증서를 사용할 수 있습니다. IPsec은 기가비트 이더넷 1~기가비트 이더넷 5 인터페이스에서 활성화할 수 있습니다.
Cisco ISE 릴리스 2.2 이상은 IPsec을 지원합니다.
참고: Cisco ISE Essentials 라이센스가 있는지 확인합니다.
Network Devices(네트워크 디바이스) 창에서 특정 IP 주소로 NAD(Network Access Device)를 추가합니다.
Cisco ISE GUI에서 Administration(관리) 위에 마우스를 놓고 System(시스템) > Settings(설정) > Protocols(프로토콜) > IPsec > Native IPsec으로 이동합니다.
Cisco ISE PSN과 NAD 간의 보안 연결을 구성하려면 Add(추가)를 클릭합니다.
- 노드를 선택합니다.
- NAD IP 주소를 지정합니다.
- 필요한 IPsec 트래픽 인터페이스를 선택합니다.
- NAD에서도 사용할 사전 공유 키를 입력합니다.
General(일반) 섹션에서 지정된 세부 정보를 입력합니다.
- IKEv2를 선택합니다.
- 터널 모드를 선택합니다.
- ESP/AH 프로토콜로 ESP를 선택합니다.
ISE 네이티브 IPSec 컨피그레이션
1단계 설정:
- 암호화 알고리즘으로 AES256을 선택합니다.
- SHA512를 알고리즘으로 선택합니다.
- GROUP14를 DH 그룹으로 선택합니다.
2단계 설정에서
- 암호화 알고리즘으로 AES256을 선택합니다.
- SHA512를 알고리즘으로 선택합니다.
IPSec 1단계 및 2단계 구성
eth1 게이트웨이를 다음 홉으로 사용하여 ISE CLI에서 WLC로의 경로를 구성합니다.
ise3genvc/admin#configure t
Entering configuration mode terminal
ise3genvc/admin(config)#ip route 10.78.8.77 255.255.255.255 gateway 10.106.33.1
ise3genvc/admin(config)#end
ise3genvc/admin#show ip route | include 10.78.8.77
10.78.8.77 10.106.33.1 eth1
9800 WLC 컨피그레이션
9800 WLC의 IPSec 컨피그레이션은 GUI에 표시되지 않으므로 모든 컨피그레이션은 CLI에서 수행해야 합니다.
다음은 ISE 서버의 컨피그레이션 단계입니다. 각 단계에는 이 섹션의 관련 CLI 명령이 함께 제공되어 지침을 제공합니다.
WLC IPSec 컨피그레이션 단계
IKEv2 제안 컨피그레이션
컨피그레이션을 시작하려면 글로벌 컨피그레이션 모드로 들어가서 IKEv2 제안서를 생성합니다. 식별 목적으로 제안에 고유한 이름을 지정합니다.
crypto ikev2 proposal ipsec-prop
encryption aes-cbc-256
integrity sha512
group 14
exit
다음으로, 정책을 구성하고 이전에 생성한 제안을 이 정책 내에 매핑합니다.
crypto ikev2 policy ipsec-policy
proposal ipsec-prop
exit
IKE 인증에 사용할 암호화 키링을 정의합니다. 이 키링에는 필요한 인증 자격 증명이 저장됩니다.
crypto ikev2 keyring mykey
peer ise
address 10.106.33.23 255.255.255.255
pre-shared-key Cisco!123
exit
IKE SA의 협상 불가능한 매개변수에 대한 리포지토리 역할을 하는 IKEv2 프로파일을 구성합니다. 여기에는 로컬 또는 원격 ID, 인증 방법, 인증된 피어에 대해 사용 가능한 서비스가 포함됩니다.
crypto ikev2 profile ipsec-profile
match identity remote address 10.106.33.23 255.255.255.255
authentication remote pre-share
authentication local pre-share
keyring local mykey
exit
변형 집합을 생성하고 터널 모드에서 작동하도록 구성합니다.
crypto ipsec transform-set TSET esp-aes 256 esp-sha512-hmac
mode tunnel
exit
ISE 인터페이스 IP에 대한 통신만 허용하도록 ACL을 생성합니다.
ip access-list extended ISE_ALLOW
10 permit ip host 10.78.8.77 host 10.106.33.23
전역 컨피그레이션에서 암호화 맵을 구성합니다. 변형 집합, IPsec 프로필 및 ACL을 암호화 맵에 첨부합니다.
crypto map ikev2-cryptomap 1 ipsec-isakmp
set peer 10.106.33.23
set transform-set TSET
set ikev2-profile ipsec-profile
match address ISE_ALLOW
마지막으로, 암호화 맵을 인터페이스에 연결합니다. 이 시나리오에서 RADIUS 트래픽을 전달하는 무선 관리 인터페이스는 관리 인터페이스 VLAN 내에서 매핑됩니다.
int vlan 2124
crypto map ikev2-cryptomap
다음을 확인합니다.
WLC
9800 WLC에서 IPSec을 확인하는 데 사용할 수 있는 show 명령입니다.
- ip 액세스 목록 표시
- 암호화 맵 표시
- show crypto ikev2 sa detailed
- crypto ipsec sa 세부 정보 표시
POD6_9800#show ip access-lists ISE_ALLOW
Extended IP access list ISE_ALLOW
10 permit ip host 10.78.8.77 host 10.106.33.23 (6 matches)
POD6_9800#show crypto map
Interfaces using crypto map MAP-IKEV2:
Crypto Map IPv4 "ikev2-cryptomap" 1 ipsec-isakmp
Peer = 10.106.33.23
IKEv2 Profile: ipsec-profile
Access-List SS dynamic: False
Extended IP access list ISE_ALLOW
access-list ISE_ALLOW permit ip host 10.78.8.77 host 10.106.33.23
Current peer: 10.106.33.23
Security association lifetime: 4608000 kilobytes/3600 seconds
Dualstack (Y/N): N
Responder-Only (Y/N): N
PFS (Y/N): N
Mixed-mode : Disabled
Transform sets={
TSET: { esp-256-aes esp-sha512-hmac } ,
}
Interfaces using crypto map ikev2-cryptomap:
Vlan2124
POD6_9800#show crypto ikev2 sa detailed
IPv4 Crypto IKEv2 SA
Tunnel-id Local Remote fvrf/ivrf Status
1 10.78.8.77/500 10.106.33.23/500 none/none READY
Encr: AES-CBC, keysize: 256, PRF: SHA512, Hash: SHA512, DH Grp:14, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/617 sec
CE id: 1699, Session-id: 72
Local spi: BA3FFBBFCF57E6A1 Remote spi: BEE60CB887998D58
Status Description: Negotiation done
Local id: 10.78.8.77
Remote id: 10.106.33.23
Local req msg id: 0 Remote req msg id: 2
Local next msg id: 0 Remote next msg id: 2
Local req queued: 0 Remote req queued: 2
Local window: 5 Remote window: 1
DPD configured for 0 seconds, retry 0
Fragmentation not configured.
Dynamic Route Update: disabled
Extended Authentication not configured.
NAT-T is not detected
Cisco Trust Security SGT is disabled
Initiator of SA : No
PEER TYPE: Other
IPv6 Crypto IKEv2 SA
POD6_9800#show crypto ipsec sa detail
interface: Vlan2124
Crypto map tag: ikev2-cryptomap, local addr 10.78.8.77
protected vrf: (none)
local ident (addr/mask/prot/port): (10.78.8.77/255.255.255.255/0/0)
remote ident (addr/mask/prot/port): (10.106.33.23/255.255.255.255/0/0)
current_peer 10.106.33.23 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 285, #pkts encrypt: 285, #pkts digest: 285
#pkts decaps: 211, #pkts decrypt: 211, #pkts verify: 211
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#pkts no sa (send) 0, #pkts invalid sa (rcv) 0
#pkts encaps failed (send) 0, #pkts decaps failed (rcv) 0
#pkts invalid prot (recv) 0, #pkts verify failed: 0
#pkts invalid identity (recv) 0, #pkts invalid len (rcv) 0
#pkts replay rollover (send): 0, #pkts replay rollover (rcv) 0
##pkts replay failed (rcv): 0
#pkts tagged (send): 0, #pkts untagged (rcv): 0
#pkts not tagged (send): 0, #pkts not untagged (rcv): 0
#pkts internal err (send): 0, #pkts internal err (recv) 0
local crypto endpt.: 10.78.8.77, remote crypto endpt.: 10.106.33.23
plaintext mtu 1022, path mtu 1100, ip mtu 1100, ip mtu idb Vlan2124
current outbound spi: 0xCCC04668(3435153000)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0xFEACCF3E(4272738110)
transform: esp-256-aes esp-sha512-hmac ,
in use settings ={Tunnel, }
conn id: 2379, flow_id: HW:379, sibling_flags FFFFFFFF80000048, crypto map: ikev2-cryptomap, initiator : False
sa timing: remaining key lifetime (k/sec): (4607994/2974)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xCCC04668(3435153000)
transform: esp-256-aes esp-sha512-hmac ,
in use settings ={Tunnel, }
conn id: 2380, flow_id: HW:380, sibling_flags FFFFFFFF80000048, crypto map: ikev2-cryptomap, initiator : False
sa timing: remaining key lifetime (k/sec): (4607994/2974)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
ISE
ise3genvc/admin#application configure ise
It will present multiple options. Select option 34.
[34]View Native IPSec status
45765332-52dd-4311-93ed-44fd64c55585: #1, ESTABLISHED, IKEv2, bee60cb887998d58_i* ba3ffbbfcf57e6a1_r
local '10.106.33.23' @ 10.106.33.23[500]
remote '10.78.8.77' @ 10.78.8.77[500]
AES_CBC-256/HMAC_SHA2_512_256/PRF_HMAC_SHA2_512/MODP_2048
established 1133s ago, rekeying in 6781s, reauth in 78609s
net-net-45765332-52dd-4311-93ed-44fd64c55585: #2, reqid 1, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_512_256
installed 1133s ago, rekeying in 12799s, expires in 14707s
in ccc04668, 5760 bytes, 96 packets, 835s ago
out feaccf3e, 5760 bytes, 96 packets, 835s ago
local 10.106.33.23/32
remote 10.78.8.77/32
Enter 0 to exit from this context.
IPSec 상태를 보여주는 ISE GUI
패킷 캡처
WLC에서 EPC를 수행하여 클라이언트 RADIUS 트래픽이 ESP 터널을 통과하는지 확인합니다. 컨트롤 플레인 캡처를 사용하면 암호화되지 않은 상태로 컨트롤 플레인을 떠나는 패킷을 관찰할 수 있습니다. 그런 다음 패킷이 암호화되어 유선 네트워크로 전송됩니다.
WLC와 ISE 간의 IPSec 패킷
문제 해결
WLC 디버깅
9800 WLC는 Cisco IOS XE에서 작동하므로 다른 Cisco IOS XE 플랫폼에서와 유사한 IPSec 디버그 명령을 사용할 수 있습니다. 다음은 IPSec 문제를 해결하는 데 유용한 두 가지 핵심 명령입니다.
- crypto ikev2 디버그
- 디버그 crypto ikev2 오류
ISE 디버깅
IPSec 로그를 보려면 ISE CLI에서 이 명령을 사용합니다. 디버깅 명령은 WLC에서 필요하지 않습니다.
- show logging application strongswan/charon.log tail
참조
Cisco Catalyst 9800 Series Wireless Controller 소프트웨어 컨피그레이션 가이드, Cisco IOS XE Cupertino 17.9.x
Cisco ISE와 NAD 간의 통신을 보호하는 IPsec 보안
IKEv2(Internet Key Exchange 버전 2) 구성
ISE 3.3 Native IPsec to Secure NAD(Cisco IOS XE) 통신 구성