본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Cisco ASA 및 Cisco Secure Firewall과 Microsoft Azure 클라우드 서비스 간 VPN의 개념과 구성에 대해 설명합니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
IP 주소 범위 IPSec을 사용하면 VPN 터널에 참가할 수 있습니다. 암호화 도메인은 로컬 트래픽 선택기와 원격 트래픽 선택기를 사용하여 IPSec에서 캡처하고 암호화하는 로컬 및 원격 서브넷 범위를 지정함으로써 정의됩니다.
다음은 VPN 암호화 도메인을 정의하는 두 가지 방법입니다. 경로 기반 또는 정책 기반 트래픽 선택기입니다.
경로 기반:
암호화 도메인은 IPSec 터널로 들어오는 모든 트래픽을 허용하도록 설정됩니다. IPSec 로컬 및 원격 트래픽 선택기는 0.0.0.0으로 설정됩니다. 즉, IPSec 터널로 라우팅되는 트래픽은 소스/대상 서브넷과 상관없이 암호화됩니다.
Cisco ASA(Adaptive Security Appliance)는 버전 9.8 이상에서 VTI(Virtual Tunnel Interface)를 사용하여 경로 기반 VPN을 지원합니다.
FMC(Firepower Management Center)에서 관리하는 Cisco Secure Firewall 또는 FTD(Firepower Threat Defense)는 버전 6.7 이상에서 VTI를 사용하여 경로 기반 VPN을 지원합니다.
정책 기반:
암호화 도메인은 소스와 대상 모두에 대해 특정 IP 범위만 암호화하도록 설정됩니다. 정책 기반 로컬 트래픽 선택기 및 원격 트래픽 선택기는 IPSec을 통해 암호화할 트래픽을 식별합니다.
ASA는 버전 8.2 이상에서 암호화 맵과 함께 정책 기반 VPN을 지원합니다.
Microsoft Azure는 경로 기반, 정책 기반 또는 시뮬레이션된 정책 기반 트래픽 선택기를 사용하는 경로 기반을 지원합니다. Azure는 현재 선택한 VPN 방법을 기반으로 구성할 수 있는 IKE(Internet Key Exchange) 버전을 제한하고 있습니다. 경로 기반에는 IKEv2가 필요하며 정책 기반에는 IKEv1이 필요합니다. IKEv2를 사용하는 경우 Azure에서 경로 기반 연결을 선택해야 하며 ASA는 VTI를 사용해야 합니다.
ASA가 코드 버전 때문에 암호화 맵만 지원하는 경우 정책 기반 트래픽 선택기를 사용하여 경로 기반에 대해 Azure를 구성해야 합니다.
이 작업은 Microsoft에서 UsePolicyBasedTrafficSelectors를 호출하는 옵션을 구현하기 위해 PowerShell 스크립트 배포를 통해 Azure 포털에서 수행됩니다.
여러 온프레미스 정책 기반 VPN 장치에 VPN 게이트웨이 연결
ASA 및 FTD 컨피그레이션 관점에서 요약하려면
컨피그레이션 단계를 완료합니다. IKEv1, VTI를 사용하여 IKEv2 경로 기반 또는 정책 기반 트래픽 선택기 사용(ASA의 암호화 맵)을 사용하여 IKEv2 경로 기반 중 하나를 구성합니다.
ASA에서 Azure로의 Site-to-Site IKEv1 VPN의 경우 다음 ASA 구성을 구현합니다. Azure 포털에서 정책 기반 터널을 구성해야 합니다. 이 예에서는 ASA에서 암호화 맵이 사용됩니다.
ASA의 전체 IKEv1 컨피그레이션 정보에 대해 ASAv의 ASDM 또는 CLI를 사용하여 IKEv1 IPsec Site-to-Site 터널 구성을 참조하십시오.
1단계. 외부 인터페이스에서 IKEv1을 활성화합니다.
Cisco-ASA(config)#crypto ikev1 enable outside
2단계. 해시, 인증, Diffie-Hellman 그룹, 수명 및 암호화에 사용할 알고리즘/방법을 정의하는 IKEv1 정책을 생성합니다.
참고: 나열된 1단계 IKEv1 특성은 About VPN Devices(VPN 디바이스 정보) 및 Site-to-Site VPN Gateway Connections(사이트 대 사이트 VPN 게이트웨이 연결)의 IPsec/IKE Parameters(IPsec/IKE 매개변수)에서 제공됩니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto ikev1 policy 1
Cisco-ASA(config-ikev1-policy)#authentication pre-share
Cisco-ASA(config-ikev1-policy)#encryption aes
Cisco-ASA(config-ikev1-policy)#hash sha
Cisco-ASA(config-ikev1-policy)#group 14
Cisco-ASA(config-ikev1-policy)#lifetime 28800
3단계. IPsec 특성 아래에 터널 그룹을 만들고 피어 IP 주소 및 터널 사전 공유 키를 구성합니다.
Cisco-ASA(config)#tunnel-group 192.168.1.1 type ipsec-l2l
Cisco-ASA(config)#tunnel-group 192.168.1.1 ipsec-attributes
Cisco-ASA(config-tunnel-ipsec)#ikev1 pre-shared-key cisco
4단계. 암호화 및 터널링할 트래픽을 정의하는 액세스 목록을 만듭니다.
이 예에서 관심 트래픽은 10.2.2.0 서브넷에서 10.1.1.0으로 소스가 지정된 터널에서 옵니다. 사이트 간에 여러 서브넷이 포함된 경우 여러 항목을 포함할 수 있습니다.
버전 8.4 이상에서는 네트워크, 서브넷, 호스트 IP 주소 또는 여러 개체의 컨테이너 역할을 하는 개체 또는 개체 그룹을 만들 수 있습니다.
로컬 및 원격 서브넷이 있는 두 객체를 생성하여 암호화 ACL(Access Control List) 및 NAT(Network Address Translation) 문 모두에 사용합니다.
Cisco-ASA(config)#object network 10.2.2.0_24
Cisco-ASA(config-network-object)#subnet 10.2.2.0 255.255.255.0
Cisco-ASA(config)#object network 10.1.1.0_24
Cisco-ASA(config-network-object)#subnet 10.1.1.0 255.255.255.0
Cisco-ASA(config)#access-list 100 extended permit ip object 10.2.2.0_24 object 10.1.1.0_24
5단계. TS(Transform Set)를 구성합니다. 이 설정에는 키워드IKEv1.
A same TS가 원격 끝에도 생성되어야 합니다.
참고: 나열된 2단계 IKEv1 특성은 About VPN Devices(VPN 디바이스 정보) 및 Site-to-Site VPN Gateway Connections(사이트 대 사이트 VPN 게이트웨이 연결)의 IPsec/IKE Parameters(IPsec/IKE 매개변수)에서 제공됩니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto ipsec ikev1 transform-set myset esp-aes esp-sha-hmac
6단계. 암호화 맵을 구성하고 다음 구성 요소가 있는 외부 인터페이스에 적용합니다.
· 피어 IP 주소
· 원하는 트래픽이 포함된 정의된 액세스 목록
· 서비스
· 구성에 PFS(Perfect Forwarding Secrecy)가 설정되어 있지 않습니다. Site-to-Site VPN 게이트웨이 연결에 대한 VPN 장치 및 IPsec/IKE 매개변수 정보는 Azure의 IKEv1에 대해 PFS가 비활성화되었음을 나타냅니다.
선택적인 PFS 설정은 데이터를 보호하기 위해 사용되는 새로운 Diffie-Hellman 키 쌍을 생성합니다(2단계가 시작되기 전에 양쪽이 PFS를 활성화해야 함).
이 설정은 다음 구성을 사용하여 활성화할 수 있습니다. crypto map outside_map 20 set pfs
.
· 2단계 IPSec 수명은 사이트 간 VPN 게이트웨이 연결을 위한 VPN 장치 및 IPsec/IKE 매개변수 정보를 기반으로 합니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto map outside_map 20 match address 100
Cisco-ASA(config)#crypto map outside_map 20 set peer 192.168.1.1
Cisco-ASA(config)#crypto map outside_map 20 set ikev1 transform-set myset
Cisco-ASA(config)#crypto map outside_map 20 set security-association lifetime seconds 3600
Cisco-ASA(config)#crypto map outside_map 20 set security-association lifetime kilobytes 102400000 Cisco-ASA(config)#crypto map outside_map interface outside
7단계. VPN 트래픽에 다른 NAT 규칙이 적용되지 않는지 확인합니다. NAT 예외 규칙을 생성합니다.
Cisco-ASA(config)#nat (inside,outside) 1 source static 10.2.2.0_24 10.2.2.0_24 destination static 10.1.1.0_24 10.1.1.0_24 no-proxy-arp route-lookup
참고: 여러 서브넷을 사용하는 경우 모든 소스 및 대상 서브넷을 포함하는 개체 그룹을 생성하여 NAT 규칙에서 사용해야 합니다.
Cisco-ASA(config)#object-group network 10.x.x.x_SOURCE
Cisco-ASA(config-network-object-group)#network-object 10.4.4.0 255.255.255.0
Cisco-ASA(config-network-object-group)#network-object 10.2.2.0 255.255.255.0
Cisco-ASA(config)#object network 10.x.x.x_DESTINATION
Cisco-ASA(config-network-object-group)#network-object 10.3.3.0 255.255.255.0
Cisco-ASA(config-network-object-group)#network-object 10.1.1.0 255.255.255.0
Cisco-ASA(config)#nat (inside,outside) 1 source static 10.x.x.x_SOURCE 10.x.x.x_SOURCE destination static 10.x.x.x_DESTINATION 10.x.x.x_DESTINATION no-proxy-arp route-lookup
ASA 코드에서 사이트 대 사이트 IKEv2 경로 기반 VPN의 경우 이 컨피그레이션을 사용합니다. Azure가 경로 기반 VPN에 대해 구성되어 있는지 확인하고 Azure 포털에서 UsePolicyBasedTrafficSelectors를 구성하지 마십시오. VTI는 ASA에 구성됩니다.
전체 ASA VTI 컨피그레이션 정보는 CLI Book 3: Cisco ASA Series VPN CLI 컨피그레이션 가이드 9.8을 참조하십시오.
1단계. 외부 인터페이스에서 IKEv2를 활성화합니다.
Cisco-ASA(config)#crypto ikev2 enable outside
2단계. IKEv2 1단계 정책을 추가합니다.
참고: Microsoft는 Azure에서 사용하는 특정 IKEv2 1단계 암호화, 무결성 및 수명 특성과 충돌하는 정보를 게시했습니다. 나열된 특성은 About VPN Devices and IPsec/IKE Parameters for Site-to-Site VPN Gateway Connections(사이트 대 사이트 VPN 게이트웨이 연결에 대한 VPN 디바이스 및 IPsec/IKE 매개변수 정보)에서 제공됩니다. Microsoft의 IKEv2 특성과 충돌하는 정보는 샘플 구성: Cisco ASA 장치(IKEv2/no BGP)입니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto ikev2 policy 1 Cisco-ASA(config-ikev2-policy)#encryption aes-256 Cisco-ASA(config-ikev2-policy)#integrity sha256 Cisco-ASA(config-ikev2-policy)#group 14 Cisco-ASA(config-ikev2-policy)#lifetime seconds 28800
3단계. IKEv2 2단계 IPsec 제안을 추가합니다. 암호화 IPsec 컨피그레이션 모드에서 보안 매개변수를 ikev2 ipsec-proposal
지정합니다.
프로토콜 esp 암호화 {des | 3des | aes | aes-192 | aes-256 | aes-gcm | aes-gcm-192 | aes-gcm-256 | aes-gmac | aes-gmac-192 | aes-gmac-256 | null}
프로토콜 esp 무결성 {md5 | sha-1 | sha-256 | sha-384 | sha-512 | null}
참고: Microsoft는 Azure에서 사용되는 특정 2단계 IPSec 암호화 및 무결성 특성과 관련하여 상충되는 정보를 게시했습니다. 나열된 특성은 About VPN Devices and IPsec/IKE Parameters for Site-to-Site VPN Gateway Connections(사이트 대 사이트 VPN 게이트웨이 연결에 대한 VPN 디바이스 및 IPsec/IKE 매개변수 정보)에서 제공됩니다. Microsoft의 2단계 IPSec 특성과 충돌하는 정보는 샘플 구성: Cisco ASA 장치(IKEv2/no BGP)입니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto ipsec ikev2 ipsec-proposal SET1
Cisco-ASA(config-ipsec-proposal)#protocol esp encryption aes-256
Cisco-ASA(config-ipsec-proposal)#protocol esp integrity sha-256
4단계. 다음을 지정하는 IPSec 프로필을 추가합니다.
참고: Microsoft는 Azure에서 사용되는 특정 2단계 IPSec 수명 및 PFS 특성과 관련하여 상충되는 정보를 게시했습니다. 나열된 특성은 RouteBased VPN IPsec Security Association(IKE Quick Mode SA) Offers에서 제공하는 최선의 방식입니다. Microsoft의 2단계 IPSec 특성과 충돌하는 정보는 샘플 구성: Cisco ASA 장치(IKEv2/no BGP)입니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto ipsec profile PROFILE1
Cisco-ASA(config-ipsec-profile)#set ikev2 ipsec-proposal SET1
Cisco-ASA(config-ipsec-profile)#set security-association lifetime seconds 27000
Cisco-ASA(config-ipsec-profile)#set security-association lifetime kilobytes unlimited
Cisco-ASA(config-ipsec-profile)#set pfs none
5단계. IPsec 특성 아래에 터널 그룹을 만들고 피어 IP 주소 및 IKEv2 로컬 및 원격 터널 사전 공유 키를 구성합니다.
Cisco-ASA(config)#tunnel-group 192.168.1.1 type ipsec-l2l
Cisco-ASA(config)#tunnel-group 192.168.1.1 ipsec-attributes
Cisco-ASA(config-tunnel-ipsec)#ikev2 local-authentication pre-shared-key cisco
Cisco-ASA(config-tunnel-ipsec)#ikev2 remote-authentication pre-shared-key cisco
6단계. 다음을 지정하는 VTI를 생성합니다.
Cisco-ASA(config)#interface tunnel 100 Cisco-ASA(config-if)#nameif vti Cisco-ASA(config-if)#ip address 169.254.0.1 255.255.255.252 Cisco-ASA(config-if)#tunnel source interface outside Cisco-ASA(config-if)#tunnel destination [Azure Public IP] Cisco-ASA(config-if)#tunnel mode ipsec ipv4 Cisco-ASA(config-if)#tunnel protection ipsec profile PROFILE1
7단계. 터널 안으로 트래픽을 가리키도록 고정 경로를 생성합니다. 고정 경로를 추가하려면 다음 명령을 입력합니다. route if_name dest_ip mask gateway_ip [distance]
및 dest_ip
는 mask
Azure 클라우드의 대상 네트워크에 대한 IP 주소입니다(예: 10.0.0.0/24). gateway_ip는 터널 인터페이스 서브넷의 IP 주소(존재 또는 존재하지 않음)여야 합니다(예: 10.254.0.2). 이 gateway_ip의 목적은 터널 인터페이스로 트래픽을 가리키는 것이지만, 특정 게이트웨이 IP 자체는 중요하지 않습니다.
Cisco-ASA(config)#route vti 10.0.0.0 255.255.255.0 10.254.0.2
FTD에서 Azure로의 Site-to-Site IKEv1 VPN의 경우 FTD 디바이스를 FMC에 미리 등록해야 합니다.
1단계. Site-to-Site 정책을 생성합니다. 탐색: FMC dashboard > Devices > VPN > Site to Site.
2단계. 새 정책을 생성합니다. 드롭다운 메뉴를 Add VPN
클릭하고 다음을 선택합니다. Firepower Threat Defense device.
3단계. 창에서 Create new VPN Topology
프로토콜 확인란을 Topology Name,
선택하고 IKEV1
탭을 IKE
클릭합니다. 이 예에서는 사전 공유 키가 인증 방법으로 사용됩니다.
드롭다운 메뉴 Authentication Type
를 클릭하고 를 선택합니다 Pre-shared manual key
. 및 텍스트 필드에 수동 사전 공유 키 Key
를Confirm Key
입력합니다.
4단계. 새 매개변수를 생성하여 ISAKMP 정책 또는 1단계 매개변수를 구성합니다. 동일한 창에서 를 클릭하여 새 ISAKMP 정책을 green plus button
추가합니다. 정책의 이름을 지정하고 원하는 Encryption(암호화), Hash(해시), Diffie-Hellman Group(Diffie-Hellman 그룹), Lifetime(수명) 및 Authentication Method(인증 방법)를 선택한 다음 을 클릭합니다. Save.
5단계. IPsec 정책 또는 2단계 매개변수를 구성합니다. 해당 탭으로 IPsec
이동하여 해당 확인란 Static
을 Crypto Map Type
선택합니다. 옵션의 edit pencil
에서 아이콘 IKEV1 IPsec Proposals
을 Transform Sets
클릭합니다.
6단계. 새 IPsec 제안을 만듭니다. 창에서 IKEv1 IPSec Proposal
를 클릭하여 새 를 green plus button
추가합니다. ESP 암호화 및 ESP 해시 알고리즘에 대한 정책 이름 및 원하는 매개변수를 지정하고 Save.
7단계. 창에서 IKEV1 IPsec Proposal
새 IPsec 정책을 섹션에 추가하고 Selected Transform Sets
을 클릭합니다. OK.
8단계. 탭으로 돌아가 IPSec
원하는 수명 기간 및 크기를 구성합니다.
9단계. Encryption Domain/Traffic Selectors/Protected Networks를 선택합니다. 탭으로 Endpoints
이동합니다. 섹션에서 Node A
를 클릭하여 새 를 green plus button
추가합니다. 이 예에서는 노드 A가 FTD에 대한 로컬 서브넷으로 사용됩니다.
10단계. 창에서 Add Endpoint
사용할 물리적 인터페이스 및 IP 주소와 함께 Device
드롭다운에서 사용할 FTD를 지정합니다.
11단계. 로컬 트래픽 선택기를 지정하려면 해당 옵션으로 Protected Networks
이동한 다음 를 클릭하여 green plus button
새 객체를 만듭니다.
12단계. 창에서 Network Objects
텍스트 옆의 green plus button
를 클릭하여 새 Available Networks
로컬 트래픽 선택기 객체를 만듭니다.
13단계. 창에서 New Network Object
객체의 이름을 지정하고 알맞은 host/network/range/FQDN을 선택합니다. 그런 다음 을 Save
클릭합니다.
14단계. 창의 섹션에 Selected Networks
객체를 추가하고 Network Objects
창에서 OK.
Click OK
on the window를 Add Endpoint
클릭합니다.
15단계. 이 예에서 Azure 끝점인 노드 B 끝점을 정의합니다. 창에서 Create New VPN Topology
섹션으로 이동하고 를 Node B
클릭하여 원격 엔드포인트 트래픽 green plus button
선택기를 추가합니다. 노드 A Extranet
와 동일한 FMC에서 관리하지 않는 모든 VPN 피어 엔드포인트에 대해 지정합니다. 디바이스의 이름(로컬로 중요한 경우에만) 및 해당 IP 주소를 입력합니다.
16단계. 원격 트래픽 선택기 객체를 생성합니다. 섹션으로 Protected Networks
이동하고 를 클릭하여 새 green plus button
객체를 추가합니다.
17단계. 창에서 Network Objects
텍스트 옆의 green plus button
를 클릭하여 Available Networks
새 객체를 만듭니다. 창에서 New Network Object
객체의 이름을 지정하고 알맞은 host/range/network/FQDN을 선택한 다음 Save.
18단계. 다시 창에서 Network Objects
새 원격 개체를 섹션에 추가하고 창 Selected Networks
에서 OK.
Click Ok
on the window를 Add Endpoint
클릭합니다.
19단계. 창에서 Create New VPN Topology
이제 올바른 트래픽 선택기/보호 네트워크가 있는 두 노드를 모두 볼 수 있습니다. 클릭 Save.
20단계. FMC 대시보드에서 오른쪽 상단 창 Deploy
의 을 클릭하고 FTD 디바이스를 선택한 다음 Deploy.
21단계. CLI에서 VPN 컨피그레이션은 ASA 디바이스의 컨피그레이션과 동일하게 보입니다.
암호화 맵이 있는 ASA의 사이트 간 IKEv2 VPN의 경우 이 컨피그레이션을 사용합니다. Azure가 경로 기반 VPN에 대해 구성되어 있는지 확인하고 PowerShell을 사용하여 Azure 포털에서 UsePolicyBasedTrafficSelectors를 구성해야 합니다.
Microsoft에서 제공하는 여러 온프레미스 정책 기반 VPN 장치에 VPN 게이트웨이 연결은 경로 기반 Azure VPN 모드와 함께 UsePolicyBasedTrafficSelector의 구성을 설명합니다. 이 단계를 완료하지 않으면 Azure에서 수신한 트래픽 선택기가 일치하지 않아 암호화 맵이 있는 ASA에서 연결을 설정하지 못합니다.
참조 CLI Book 3: Cisco ASA Series VPN CLI 컨피그레이션 가이드, 암호화 맵 컨피그레이션 정보가 포함된 전체 ASA IKEv2용 9.8
1단계. 외부 인터페이스에서 IKEv2를 활성화합니다.
Cisco-ASA(config)#crypto ikev2 enable outside
2단계. IKEv2 1단계 정책을 추가합니다.
참고: Microsoft는 Azure에서 사용하는 특정 IKEv2 1단계 암호화, 무결성 및 수명 특성과 충돌하는 정보를 게시했습니다. 나열된 특성은 About VPN Devices and IPsec/IKE Parameters for Site-to-Site VPN Gateway Connections(사이트 대 사이트 VPN 게이트웨이 연결에 대한 VPN 디바이스 및 IPsec/IKE 매개변수 정보)에서 제공됩니다. 충돌하는 Microsoft의 IKEv2 특성 정보는 샘플 구성: Cisco ASA 장치(IKEv2/no BGP)입니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto ikev2 policy 1 Cisco-ASA(config-ikev2-policy)#encryption aes-256 Cisco-ASA(config-ikev2-policy)#integrity sha256 Cisco-ASA(config-ikev2-policy)#group 14 Cisco-ASA(config-ikev2-policy)#lifetime seconds 28800
3단계. IPsec 특성 아래에 터널 그룹을 만들고 피어 IP 주소 및 IKEv2 로컬 및 원격 터널 사전 공유 키를 구성합니다.
Cisco-ASA(config)#tunnel-group 192.168.1.1 type ipsec-l2l
Cisco-ASA(config)#tunnel-group 192.168.1.1 ipsec-attributes
Cisco-ASA(config-tunnel-ipsec)#ikev2 local-authentication pre-shared-key cisco
Cisco-ASA(config-tunnel-ipsec)#ikev2 remote-authentication pre-shared-key cisco
4단계. 암호화 및 터널링할 트래픽을 정의하는 액세스 목록을 만듭니다. 이 예에서 관심 트래픽은 10.2.2.0 서브넷에서 10.1.1.0으로 소스가 되는 터널의 트래픽입니다. 사이트 간에 여러 서브넷이 포함된 경우 여러 항목을 포함할 수 있습니다.
버전 8.4 이상에서는 네트워크, 서브넷, 호스트 IP 주소 또는 여러 개체의 컨테이너 역할을 하는 개체 또는 개체 그룹을 만들 수 있습니다. 로컬 및 원격 서브넷이 있는 두 객체를 생성하여 암호화 ACL 및 NAT 문 모두에 사용합니다.
Cisco-ASA(config)#object network 10.2.2.0_24
Cisco-ASA(config-network-object)#subnet 10.2.2.0 255.255.255.0
Cisco-ASA(config)#object network 10.1.1.0_24
Cisco-ASA(config-network-object)#subnet 10.1.1.0 255.255.255.0
Cisco-ASA(config)#access-list 100 extended permit ip object 10.2.2.0_24 object 10.1.1.0_24
5단계. IKEv2 2단계 IPsec 제안을 추가합니다. 암호화 IPsec ikev2 ipsec-proposal 컨피그레이션 모드에서 보안 매개변수를 지정합니다.
프로토콜 esp 암호화 {des | 3des | aes | aes-192 | aes-256 | aes-gcm | aes-gcm-192 | aes-gcm-256 | aes-gmac | aes-gmac-192 | aes-gmac-256 | null}
프로토콜 esp 무결성 {md5 | sha-1 | sha-256 | sha-384 | sha-512 | null}
참고: Microsoft는 Azure에서 사용하는 특정 2단계 IPSec 암호화 및 무결성 특성과 충돌하는 정보를 게시했습니다. 나열된 특성은 RouteBased VPN IPsec Security Association(IKE Quick Mode SA) Offers에서 제공하는 최선의 방식입니다. 충돌하는 Microsoft의 2단계 IPSec 특성 정보는 샘플 구성: Cisco ASA 장치(IKEv2/no BGP)입니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto ipsec ikev2 ipsec-proposal SET1
Cisco-ASA(config-ipsec-proposal)#protocol esp encryption aes-256
Cisco-ASA(config-ipsec-proposal)#protocol esp integrity sha-256
6단계. 암호화 맵을 구성하고 다음 구성 요소가 포함된 외부 인터페이스에 적용합니다.
· 피어 IP 주소
· 원하는 트래픽이 포함된 정의된 액세스 목록
· IKEv2 2단계 IPSec 제안
· 2단계 IPSec 수명(초)
· 옵션 PFS(Perfect Forward Secrecy) 설정 - 데이터를 보호하기 위해 사용되는 새로운 Diffie-Hellman 키 쌍을 생성합니다(2단계가 시작되기 전에 양쪽이 PFS를 활성화해야 함).
Microsoft는 Azure에서 사용하는 특정 2단계 IPSec 수명 및 PFS 특성과 관련하여 충돌하는 정보를 게시했습니다.
나열된 특성은 다음과 같은 최선의 노력을 통해 제공됩니다. RouteBased VPN IPsec Security Association(IKE Quick Mode SA) 서비스.
충돌하는 Microsoft의 2단계 IPSec 특성 정보는 샘플 구성: Cisco ASA 장치(IKEv2/no BGP)입니다. 자세한 내용은 Microsoft Azure 지원에 문의하세요.
Cisco-ASA(config)#crypto map outside_map 20 match address 100 Cisco-ASA(config)#crypto map outside_map 20 set peer 192.168.1.1 Cisco-ASA(config)#crypto map outside_map 20 set ikev2 ipsec-proposal myset
Cisco-ASA(config)#crypto map outside_map 20 set security-association lifetime seconds 27000
Cisco-ASA(config)#crypto map outside_map 20 set security-association lifetime kilobytes unlimited Cisco-ASA(config)#crypto map outside_map 20 set pfs none Cisco-ASA(config)#crypto map outside_map interface outside
8단계. VPN 트래픽에 다른 NAT 규칙이 적용되지 않는지 확인합니다. NAT 예외 규칙을 생성합니다.
Cisco-ASA(config)#nat (inside,outside) 1 source static 10.2.2.0_24 10.2.2.0_24 destination static 10.1.1.0_24 10.1.1.0_24 no-proxy-arp route-lookup
참고: 여러 서브넷을 사용하는 경우 모든 소스 및 대상 서브넷을 포함하는 개체 그룹을 생성하여 NAT 규칙에서 사용해야 합니다.
Cisco-ASA(config)#object-group network 10.x.x.x_SOURCE
Cisco-ASA(config-network-object-group)#network-object 10.4.4.0 255.255.255.0
Cisco-ASA(config-network-object-group)#network-object 10.2.2.0 255.255.255.0
Cisco-ASA(config)#object network 10.x.x.x_DESTINATION
Cisco-ASA(config-network-object-group)#network-object 10.3.3.0 255.255.255.0
Cisco-ASA(config-network-object-group)#network-object 10.1.1.0 255.255.255.0
Cisco-ASA(config)#nat (inside,outside) 1 source static 10.x.x.x_SOURCE 10.x.x.x_SOURCE destination static 10.x.x.x_DESTINATION 10.x.x.x_DESTINATION no-proxy-arp route-lookup
ASA 및 Azure 게이트웨이 모두에서 컨피그레이션을 완료한 후 Azure는 VPN 터널을 시작합니다. 다음 명령을 사용하여 터널이 올바르게 빌드되는지 확인할 수 있습니다.
1단계 SA(Security Association)가 구축되었는지 확인합니다.
다음으로, UDP 포트 500의 로컬 외부 인터페이스 IP 192.168.1.2에서 원격 대상 IP 192.168.2.2로 구축된 IKEv2 SA가 표시됩니다. 또한 암호화된 트래픽이 통과하도록 작성된 유효한 하위 SA도 있습니다.
Cisco-ASA# show crypto ikev2 sa IKEv2 SAs: Session-id:44615, Status:UP-ACTIVE, IKE count:1, CHILD count:1 Tunnel-id Local Remote Status Role 3208253 192.168.1.2/500 192.168.2.2/500 READY INITIATOR Encr: AES-CBC, keysize: 256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK Life/Active Time: 86400/142 sec *-->Child sa: local selector 192.168.0.0/0 - 192.168.0.255/65535 remote selector 192.168.3.0/0 - 192.168.3.255/65535 ESP spi in/out: 0x9b60edc5/0x8e7a2e12
여기에서는 ASA를 개시자로 사용하여 피어 IP 192.168.2.2에 구축한 IKEv1 SA와 남은 수명이 86388초로 표시됩니다.
Cisco-ASA# sh crypto ikev1 sa detail IKEv1 SAs: Active SA: 1 Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey) Total IKE SA: 1 1 IKE Peer: 192.168.2.2 Type : L2L Role : initiator Rekey : no State : MM_ACTIVE Encrypt : aes Hash : SHA Auth : preshared Lifetime: 86400 Lifetime Remaining: 86388
IPSec 보안 연결이 show crypto ipsec sa peer [peer-ip].
Cisco-ASA# show crypto ipsec sa peer 192.168.2.2
peer address: 192.168.2.2
Crypto map tag: outside, seq num: 10, local addr: 192.168.1.2
access-list VPN extended permit ip 192.168.0.0 255.255.255.0 192.168.3.0 255.255.255.0
local ident (addr/mask/prot/port): (192.168.0.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (192.168.3.0/255.255.255.0/0/0)
current_peer: 192.168.2.2
#pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4
#pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 4, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
#TFC rcvd: 0, #TFC sent: 0
#Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0
#send errors: 0, #recv errors: 0
local crypto endpt.: 192.168.1.2/500, remote crypto endpt.: 192.168.2.2/500
path mtu 1500, ipsec overhead 74(44), media mtu 1500
PMTU time remaining (sec): 0, DF policy: copy-df
ICMP error validation: disabled, TFC packets: disabled
current outbound spi: 8E7A2E12
current inbound spi : 9B60EDC5
inbound esp sas:
spi: 0x9B60EDC5 (2606820805)
SA State: active
transform: esp-aes-256 esp-sha256-hmac no compression
in use settings ={L2L, Tunnel, IKEv2, }
slot: 0, conn_id: 182743040, crypto-map: outside
sa timing: remaining key lifetime (kB/sec): (4193279/28522)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x0000001F
outbound esp sas:
spi: 0x8E7A2E12 (2390371858)
SA State: active
transform: esp-aes-256 esp-sha256-hmac no compression
in use settings ={L2L, Tunnel, IKEv2, }
slot: 0, conn_id: 182743040, crypto-map: outside
sa timing: remaining key lifetime (kB/sec): (3962879/28522)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
IPSec SA를 통해 4개의 패킷이 전송되고 4개는 오류 없이 수신됩니다. SPI 0x9B60EDC5가 포함된 하나의 인바운드 SA와 SPI 0x8E7A2E12가 포함된 하나의 아웃바운드 SA가 예상대로 설치됩니다.
또한 항목의 검사를 통해 데이터가 터널을 통과하는지 확인할 수 vpn-sessiondb l2l
있습니다.
Cisco-ASA#show vpn-sessiondb l2l
Session Type: LAN-to-LAN
Connection : 192.168.2.2
Index : 44615 IP Addr : 192.168.2.2
Protocol : IKEv2 IPsec
Encryption : IKEv2: (1)AES256 IPsec: (1)AES256
Hashing : IKEv2: (1)SHA256 IPsec: (1)SHA256
Bytes Tx : 400 Bytes Rx : 400
Login Time : 18:32:54 UTC Tue Mar 13 2018
Duration : 0h:05m:22s
Bytes Tx: and Bytes Rx: IPSec SA를 통해 전송 및 수신된 데이터 카운터를 표시합니다.
1단계. VPN에 대한 트래픽이 Azure 개인 네트워크로 향하는 내부 인터페이스에서 ASA에 수신되는지 확인합니다. 테스트하기 위해 내부 클라이언트에서 연속 ping을 구성하고 ASA에서 패킷 캡처를 구성하여 수신 여부를 확인할 수 있습니다.
capture [cap-name] interface [if-name] match [protocol] [src-ip] [src-mask] [dest-ip] [dest-mask]
show capture [cap-name]
Cisco-ASA#capture inside interface inside match ip host [local-host] host [remote-host]
Cisco-ASA#show capture inside 2 packets captured 1: 18:50:42.835863 192.168.0.2 > 192.168.3.2: icmp: echo request 2: 18:50:42.839128 192.168.3.2 > 192.168.0.2: icmp: echo reply 2 packets shown
Azure의 회신 트래픽이 표시되면 VPN이 올바르게 구축되어 트래픽을 전송/수신합니다.
소스 트래픽이 없는 경우 발신자가 ASA로 올바르게 라우팅되고 있는지 확인합니다.
소스 트래픽이 표시되지만 Azure의 회신 트래픽이 없는 경우 계속 진행하여 이유를 확인합니다.
2단계. ASA 내부 인터페이스에서 수신한 트래픽이 ASA에서 올바르게 처리되고 VPN으로 라우팅되는지 확인합니다.
ICMP 에코 요청을 시뮬레이션하려면
packet-tracer input [inside-interface-name] icmp [inside-host-ip] 8 0 [azure-host-ip] detail
전체 패킷 추적기 사용 지침은 여기에서 확인할 수 있습니다. Troubleshooting Access Problems Using Packet Tracer
Cisco-ASA# packet-tracer input inside icmp 192.168.0.2 8 0 192.168.3.2 detail Phase: 1 Type: CAPTURE Subtype: Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c19afb0a0, priority=13, domain=capture, deny=false hits=3, user_data=0x7f6c19afb9b0, cs_id=0x0, l3_type=0x0 src mac=0000.0000.0000, mask=0000.0000.0000 dst mac=0000.0000.0000, mask=0000.0000.0000 input_ifc=inside, output_ifc=any Phase: 2 Type: ACCESS-LIST Subtype: Result: ALLOW Config: Implicit Rule Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c195971f0, priority=1, domain=permit, deny=false hits=32, user_data=0x0, cs_id=0x0, l3_type=0x8 src mac=0000.0000.0000, mask=0000.0000.0000 dst mac=0000.0000.0000, mask=0100.0000.0000 input_ifc=inside, output_ifc=any Phase: 3 Type: ROUTE-LOOKUP Subtype: Resolve Egress Interface Result: ALLOW Config: Additional Information: found next-hop 192.168.1.1 using egress ifc outside Phase: 4 Type: NAT Subtype: per-session Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c19250290, priority=0, domain=nat-per-session, deny=true hits=41, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=0 src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0 input_ifc=any, output_ifc=any Phase: 5 Type: IP-OPTIONS Subtype: Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c1987c120, priority=0, domain=inspect-ip-options, deny=true hits=26, user_data=0x0, cs_id=0x0, reverse, flags=0x0, protocol=0 src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0 input_ifc=inside, output_ifc=any Phase: 6 Type: QOS Subtype: Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c19a60280, priority=70, domain=qos-per-class, deny=false hits=30, user_data=0x7f6c19a5c030, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=0 src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0 input_ifc=any, output_ifc=any Phase: 7 Type: INSPECT Subtype: np-inspect Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: in id=0x7f6c1983ab50, priority=66, domain=inspect-icmp-error, deny=false hits=27, user_data=0x7f6c1987afc0, cs_id=0x0, use_real_addr, flags=0x0, protocol=1 src ip/id=0.0.0.0, mask=0.0.0.0, icmp-type=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, icmp-code=0, tag=any, dscp=0x0 input_ifc=inside, output_ifc=any Phase: 8 Type: VPN Subtype: encrypt Result: ALLOW Config: Additional Information: Forward Flow based lookup yields rule: out id=0x7f6c19afe1a0, priority=70, domain=encrypt, deny=false hits=2, user_data=0x13134, cs_id=0x7f6c19349670, reverse, flags=0x0, protocol=0 src ip/id=192.168.0.0, mask=255.255.255.0, port=0, tag=any dst ip/id=192.168.3.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0 input_ifc=any, output_ifc=outside Phase: 9 Type: FLOW-CREATION Subtype: Result: ALLOW Config: Additional Information: New flow created with id 43, packet dispatched to next module Module information for forward flow ... snp_fp_tracer_drop snp_fp_inspect_ip_options snp_fp_inspect_icmp snp_fp_adjacency snp_fp_encrypt snp_fp_fragment snp_ifc_stat Module information for reverse flow ... Result: input-interface: inside input-status: up input-line-status: up output-interface: outside output-status: up output-line-status: up Action: allow
NAT는 트래픽을 제외합니다(변환이 적용되지 않음). VPN 트래픽에서 NAT 변환이 발생하지 않는지 확인합니다. 또한 가 output-interface
올바른지 확인합니다. 이는 암호화 맵이 적용되는 물리적 인터페이스 또는 가상 터널 인터페이스여야 합니다.
액세스 목록 드롭이 표시되지 않는지 확인합니다. VPN 단계에 터널이 이미 구축되어 ENCRYPT: ALLOW,
있고 IPSec SA가 Encaps와 함께 설치되어 있는 것으로 표시되는 경우
2.1단계. 패킷 ENCRYPT: ALLOW
추적기에 표시되는 경우.
IPsec SA가 설치되어 있는지 확인하고 를 사용하여 트래픽을 암호화합니다. show crypto ipsec sa.
외부 인터페이스에서 캡처를 수행하여 암호화된 패킷이 ASA에서 전송되고 암호화된 응답이 Azure에서 수신되는지 확인할 수 있습니다.
2.2단계. 패킷 ENCRYPT:DROP
추적기에 표시되는 경우.
VPN 터널이 아직 설정되지 않았지만 협상 중입니다. 이는 터널을 처음 시작할 때 예상되는 조건입니다. 디버그를 실행하여 터널 협상 프로세스를 보고 어디서 오류가 발생하는지 확인합니다.
먼저, 올바른 버전의 IKE가 트리거되었으며 ike-common 프로세스에 관련 오류가 표시되지 않는지 확인합니다.
Cisco-ASA#debug crypto ike-common 255 Cisco-ASA# Mar 13 18:58:14 [IKE COMMON DEBUG]Tunnel Manager dispatching a KEY_ACQUIRE message to IKEv1. Map Tag = outside. Map Sequence Number = 10.
VPN 트래픽이 시작될 때 ike-common 디버그 출력이 표시되지 않으면, 이는 트래픽이 암호화 프로세스에 도달하기 전에 삭제되거나 crypto ikev1/ikev2가 상자에서 활성화되지 않았음을 의미합니다. 암호화 컨피그레이션 및 패킷 삭제를 다시 확인합니다.
ike-common 디버깅에 암호화 프로세스가 트리거된 것으로 표시되는 경우 IKE 구성 버전을 디버깅하여 터널 협상 메시지를 보고 Azure를 사용한 터널 구성에서 오류가 발생한 위치를 식별합니다.
전체 ikev1 디버그 절차 및 분석은 ASA IPsec 및 IKE 디버그(IKEv1 주 모드) 트러블슈팅 TechNote에서 확인할 수 있습니다.
Cisco-ASA#debug crypto ikev1 127
Cisco-ASA#debug crypto ipsec 127
전체 ikev2 디버그 절차 및 분석은 여기에서 확인할 수 있습니다. PSK가 있는 사이트 간 VPN에 ASA IKEv2 디버그를 사용하십시오.
Cisco-ASA#debug crypto ikev2 platform 127 Cisco-ASA#debug crypto ikev2 protocol 127 Cisco-ASA#debug crypto ipsec 127
개정 | 게시 날짜 | 의견 |
---|---|---|
4.0 |
07-Oct-2024 |
업데이트된 기사 설명, 이미지 링크, 스타일 요구 사항 및 서식. |
3.0 |
09-Sep-2022 |
콘텐츠 검토/재인증 |
2.0 |
28-Feb-2022 |
Firestarter 요청의 일부로 FTD 6.7에 대한 지원이 추가되었습니다. |
1.0 |
27-Mar-2019 |
최초 릴리스 |