소개
이 문서에서는 AnyConnect IPsec(IKEv2)은 물론 인증서 및 인증, 권한 부여 및 계정 관리(AAA) 인증을 사용하여 PC를 Cisco ASA(Adaptive Security Appliance)에 연결하는 방법에 대해 설명합니다.
참고: 이 문서의 예에서는 ASA와 AnyConnect 간의 IKEv2 연결을 가져오기 위해 사용되는 관련 부품만 설명합니다. 전체 컨피그레이션 예는 제공되지 않습니다. NAT(Network Address Translation) 또는 액세스 목록 컨피그레이션은 이 문서에서 설명되거나 필요하지 않습니다.
연결 준비
이 섹션에서는 PC를 ASA에 연결하기 전에 필요한 준비에 대해 설명합니다.
적절한 EKU가 있는 인증서
ASA 및 AnyConnect 조합에는 필요하지 않지만 RFC에서는 인증서에 EKU(Extended Key Usage)가 있어야 합니다.
- ASA용 인증서에는 서버 인증 EKU가 포함되어야 합니다.
- PC의 인증서에는 클라이언트 인증 EKU가 포함되어야 합니다.
참고: 최신 소프트웨어 버전을 사용하는 IOS 라우터는 EKU를 인증서에 배치할 수 있습니다.
ASA의 컨피그레이션
이 섹션에서는 연결이 수행되기 전에 필요한 ASA 컨피그레이션에 대해 설명합니다.
참고: Cisco ASDM(Adaptive Security Device Manager)을 사용하면 몇 번의 클릭만으로 기본 컨피그레이션을 생성할 수 있습니다. Cisco에서는 실수를 방지하기 위해 이를 사용할 것을 권장합니다.
암호화 맵 컨피그레이션
다음은 암호화 맵 컨피그레이션의 예입니다.
crypto dynamic-map DYN 1 set pfs group1
crypto dynamic-map DYN 1 set ikev2 ipsec-proposal secure
crypto dynamic-map DYN 1 set reverse-route
crypto map STATIC 65535 ipsec-isakmp dynamic DYN
crypto map STATIC interface outside
IPsec 제안
다음은 IPsec 제안 예제 컨피그레이션입니다.
crypto ipsec ikev2 ipsec-proposal secure
protocol esp encryption aes 3des
protocol esp integrity sha-1
crypto ipsec ikev2 ipsec-proposal AES256-SHA
protocol esp encryption aes-256
protocol esp integrity sha-1
IKEv2 정책
다음은 IKEv2 정책 컨피그레이션의 예입니다.
crypto ikev2 policy 1
encryption aes-256
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 10
encryption aes-192
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 20
encryption aes
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 30
encryption 3des
integrity sha
group 5 2
prf sha
lifetime seconds 86400
crypto ikev2 policy 40
encryption des
integrity sha
group 5 2
prf sha
lifetime seconds 86400
클라이언트 서비스 및 인증서
이 경우 외부 인터페이스인 올바른 인터페이스에서 클라이언트 서비스 및 인증서를 활성화해야 합니다. 다음은 컨피그레이션의 예입니다.
crypto ikev2 enable outside client-services port 443
crypto ikev2 remote-access trustpoint OUTSIDE
ssl trust-point OUTSIDE outside
참고: SSL(Secure Sockets Layer)에도 동일한 신뢰 지점이 할당됩니다. 이는 의도한 것이며 필수 사항입니다.
AnyConnect 프로파일 활성화
ASA에서 AnyConnect 프로파일을 활성화해야 합니다. 다음은 컨피그레이션의 예입니다.
webvpn
enable outside
anyconnect image disk0:/anyconnect-win-3.0.5080-k9.pkg 1 regex "Windows NT"
anyconnect profiles Anyconnect disk0:/anyconnect.xml
anyconnect enable
tunnel-group-list enable
사용자 이름, 그룹 정책 및 터널 그룹
다음은 ASA의 기본 사용자 이름, group-policy 및 tunnel-group에 대한 컨피그레이션의 예입니다.
group-policy GroupPolicy_AC internal
group-policy GroupPolicy_AC attributes
dns-server value 4.2.2.2
vpn-tunnel-protocol ikev1 ikev2 l2tp-ipsec ssl-client ssl-clientless
default-domain value cisco.com
webvpn
anyconnect profiles value Anyconnect type user
username cisco password 3USUcOPFUiMCO4Jk encrypted privilege 15
tunnel-group AC type remote-access
tunnel-group AC general-attributes
address-pool VPN-POOL
default-group-policy GroupPolicy_AC
tunnel-group AC webvpn-attributes
authentication aaa certificate
group-alias AC enable
group-url https://bsns-asa5520-1.cisco.com/AC enable
without-csd
AnyConnect 프로파일
다음은 관련 부품이 굵게 표시된 프로파일 예입니다.
<?xml version="1.0" encoding="UTF-8"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
"http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>
<AutomaticCertSelection UserControllable="true">false
</AutomaticCertSelection>
<ShowPreConnectMessage>false</ShowPreConnectMessage>
<CertificateStore>All</CertificateStore>
<CertificateStoreOverride>false</CertificateStoreOverride>
<ProxySettings>Native</ProxySettings>
<AllowLocalProxyConnections>true</AllowLocalProxyConnections>
<AuthenticationTimeout>12</AuthenticationTimeout>
<AutoConnectOnStart UserControllable="true">false</AutoConnectOnStart>
<MinimizeOnConnect UserControllable="true">true</MinimizeOnConnect>
<LocalLanAccess UserControllable="true">false</LocalLanAccess>
<ClearSmartcardPin UserControllable="true">true</ClearSmartcardPin>
<AutoReconnect UserControllable="false">true
<AutoReconnectBehavior UserControllable="false">DisconnectOnSuspend
</AutoReconnectBehavior>
</AutoReconnect>
<AutoUpdate UserControllable="false">true</AutoUpdate>
<RSASecurIDIntegration UserControllable="true">Automatic
</RSASecurIDIntegration>
<WindowsLogonEnforcement>SingleLocalLogon</WindowsLogonEnforcement>
<WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment>
<AutomaticVPNPolicy>false</AutomaticVPNPolicy>
<PPPExclusion UserControllable="false">Disable
<PPPExclusionServerIP UserControllable="false"></PPPExclusionServerIP>
</PPPExclusion>
<EnableScripting UserControllable="false">false</EnableScripting>
<EnableAutomaticServerSelection UserControllable="false">false
<AutoServerSelectionImprovement>20</AutoServerSelectionImprovement>
<AutoServerSelectionSuspendTime>4</AutoServerSelectionSuspendTime>
</EnableAutomaticServerSelection>
<RetainVpnOnLogoff>false
</RetainVpnOnLogoff>
</ClientInitialization>
<ServerList>
<HostEntry>
bsns-asa5520-1
<HostAddress>bsns-asa5520-1.cisco.com</HostAddress>
<UserGroup>AC</UserGroup>
<PrimaryProtocol>IPsec</PrimaryProtocol>
</HostEntry>
</ServerList>
</AnyConnectProfile>
이 컨피그레이션 예에 대한 몇 가지 중요한 참고 사항은 다음과 같습니다.
- 프로필을 생성할 때 HostAddress는 IKEv2에 사용되는 인증서의 CN(Certificate Name)과 일치해야 합니다. 이를 정의하려면 crypto ikev2 remote-access trustpoint 명령을 입력합니다.
- UserGroup은 IKEv2 연결이 속하는 터널 그룹의 이름과 일치해야 합니다. 일치하지 않으면 연결이 자주 실패하고 디버그가 DH(Diffie-Hellman) 그룹 불일치 또는 유사한 오탐을 나타냅니다.
연결 설정
이 섹션에서는 프로파일이 이미 있는 경우의 PC-ASA 연결에 대해 설명합니다.
참고: 연결하기 위해 GUI에 입력하는 정보는 AnyConnect 프로필에 구성된 <HostName> 값입니다. 이 경우 전체 FQDN(Fully Qualified Domain Name)이 아니라 bsns-asa5520-1이 입력됩니다.
AnyConnect를 통해 처음 연결을 시도하면 게이트웨이에서 인증서를 선택하라는 메시지를 표시합니다(자동 인증서 선택이 비활성화된 경우).
그런 다음 사용자 이름 및 비밀번호를 입력해야 합니다.
사용자 이름 및 비밀번호가 수락되면 연결에 성공하고 AnyConnect 통계를 확인할 수 있습니다.
ASA에서 확인
연결에 IKEv2, AAA 및 인증서 인증이 사용되는지 확인하려면 ASA에서 다음 명령을 입력합니다.
bsns-asa5520-1# show vpn-sessiondb detail anyconnect filter name cisco
Session Type: AnyConnect Detailed
Username : cisco Index : 6
Assigned IP : 172.16.99.5 Public IP : 1.2.3.4
Protocol : IKEv2 IPsecOverNatT AnyConnect-Parent
License : AnyConnect Premium
Encryption : AES256 AES128 Hashing : none SHA1 SHA1
Bytes Tx : 0 Bytes Rx : 960
Pkts Tx : 0 Pkts Rx : 10
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : GroupPolicy_AC Tunnel Group : AC
Login Time : 15:45:41 UTC Tue Aug 28 2012
Duration : 0h:02m:41s
Inactivity : 0h:00m:00s
NAC Result : Unknown
VLAN Mapping : N/A VLAN : none
IKEv2 Tunnels: 1
IPsecOverNatT Tunnels: 1
AnyConnect-Parent Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 6.1
Public IP : 1.2.3.4
Encryption : none Auth Mode : Certificate and userPassword
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Client Type : AnyConnect
Client Ver : 3.0.08057
IKEv2:
Tunnel ID : 6.2
UDP Src Port : 60468 UDP Dst Port : 4500
Rem Auth Mode: Certificate and userPassword
Loc Auth Mode: rsaCertificate
Encryption : AES256 Hashing : SHA1
Rekey Int (T): 86400 Seconds Rekey Left(T): 86238 Seconds
PRF : SHA1 D/H Group : 5
Filter Name :
Client OS : Windows
IPsecOverNatT:
Tunnel ID : 6.3
Local Addr : 0.0.0.0/0.0.0.0/0/0
Remote Addr : 172.16.99.5/255.255.255.255/0/0
Encryption : AES128 Hashing : SHA1\
Encapsulation: Tunnel
Rekey Int (T): 28800 Seconds Rekey Left(T): 28638 Seconds
Rekey Int (D): 4608000 K-Bytes Rekey Left(D): 4608000 K-Bytes
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Bytes Tx : 0 Bytes Rx : 960
Pkts Tx : 0 Pkts Rx : 10
알려진 주의 사항
다음은 이 문서에 설명된 정보와 관련된 알려진 주의 사항 및 문제입니다.
- IKEv2 및 SSL 신뢰 지점은 동일해야 합니다.
- FQDN을 ASA측 인증서의 CN으로 사용하는 것이 좋습니다. AnyConnect 프로파일에서 <HostAddress>에 대해 동일한 FQDN을 참조해야 합니다.
- 연결할 때 AnyConnect 프로파일에서 <HostName> 값을 삽입해야 합니다.
- IKEv2 컨피그레이션에서도 AnyConnect가 ASA에 연결되면 IPsec이 아닌 SSL을 통해 프로파일 및 이진 업데이트를 다운로드합니다.
- IKEv2를 통한 ASA로의 AnyConnect 연결에서는 더 간단한 구현을 허용하는 전용 메커니즘인 EAP-AnyConnect를 사용합니다.