본문 바로가기
Routing&Switching

IPsec VPN Tunnel 구성

by 미국NW엔지니어로 살아남기 2021. 4. 18.

추가공부필요한사항

- IPsec은 3계층에서 동작

- 패킷구조

- IKE Phase1역할 (ISAKMP SA) - secure tunnel을 생성하는 목적 (phase2에서 교환할 negotiation 메시지를 위해)

- IKE Phase2역할 (IPsec SA) - 실제 SA negotiation을 보호 (data를 보호하기위한)

 

- MM_NO_STATE (Main Mode no-state) error

  : crypto ipsec의 esp 설정을 peer (esp-des)와 다르게 설정한 후 터널링 상태 확인. MM_NO_STATE라고 나옴. (터널 패킷 전송 불가상태)

 

- IKE Phase1 Main mode (6단계)

1. UDP 500으로 vpn peer(responder)에게 ISAKMP SA제안 패킷송신
2. UDP 500으로 initiator 에게 ISAKMP SA제안 패킷 응답
3. 첫번째/두번째 패킷에서 요청된 사항을 바탕으로 IKE Phase2에 사용할 메시지의 암호화에 사용할 key를 안전하게 교환 (해당키는 실제 통신에서 데이터를 보호하는 목적이아닌 Phase2 메시지 암호화를 위해 쓰임). 쿠키값은 IKE협상 전과정 동안 유지됨. Initiator가 랜덤한 난수 값이 포함된 키교환 페이로드를 보냄

 

4. responder도 랜덤한 난수 값을 포함하여 키교환 페이로드 응답을 보낸 후에 ISAKMP SA가 생성됨. 이 이후의 협상들은 ISAKMP SA 에 의해 암호화 됨
5. 3번째, 4번째 패킷에서 결정된 사항을 바탕으로 Initiator의 인증서를 송부 (인증서를 교환)

 

6. 3번째, 4번째 패킷에서 결정된 사항을 바탕으로 Responder의 인증서를 송부 (인증서를 교환)

- IKE Phase2 Quick mode (3단계)

7. Initiator가 Responder에게 SA설정을 제안하는 메시지. (여기서 SPI는 IPsec VPN Data의 키값을 말하며, 모든 패킷들은 SPI index key에 의해 암호화됨.

 

8. Responder가 가지고있는 SA설정들을 Initiator에게서 받은 메시지와 비교해서 최종 SA설정을 결정해서 Initiator 에게 인증시도

 

9. Initiator가 responder에게 인증 응답을 함으로써 터널링 맺는 과정 종료

================================================================

- 터널을 만드는 과정에서 사용되는 것이 IKE 프로토콜

- IKE (Internet Key Exchange) 란 SA를 셋업하기위해 사용되는 프로토콜

- 2가지 단계를 거쳐 SA를 생성하고 이를 바탕으로 암호화 통신

- Phase 1 IKE SA 설정 과정

  : 목적 - Phase 2에서 SA관련 설정들이 안전하게 협상될 수 있도록 보안 채널 생성

  : 모드 - Main mode, Aggressive mode

- Phase 2 IPsec SA 설정 과정

  : 목적 - 실질적인 IPsec 연결을 하는 단계

  : 모드 - Quick mode

- Phase 1 IKE SA 설정 과정 

  : 어떤 IKE SA설정들을 사용할 것인지 협상 (i.e. payload에 encryption(3DES), hash (MD5), 

 

================================================================

IPsec VPN

- 본사, 지사 간의 보안통신에 가장 많이 사용

- 구성요소로 IKE (Internet Key Exchange), ISAKMP (Internet Security Association and Key Management Protocol), SA (Security Association), ESP (Encapsulation Security Payload), AH (Authentication Header) 등이 있음

- 비싼 전용 회선이 아닌 공인 인터넷(공인망)을 사용해 사설망과 사설망을 연결

- 인터넷 프로토콜의 취약점인 데이터 암호화 문제를 해결, 공인 인터넷 망을 지나가도 안전이 보장

 

IKE and ISAKMP

- ISAKMP는 데이터 암호화, 무결성, 인증 등의 일을 하는 절차를 명시한 프로토콜

- IKE는 ISAKMP가 명시한 각 절차에서 필요한 구체적인 프로토콜의 종류와 사용방법을 정의

- ISAKMP와 IKE가 비슷하여 혼동하는 경우가 많아 이 둘을 통합한 것이 IKEv2이며, Cisco에서는 IKEv1을 사용

 

IKE 동작 단계

- IKE 1단계 : 사용할 보안정책인 ISAKMP SA를 결정, 각 보안 알고리즘에서 사용할 임시키 생성, 상대장비 인증

- IKE 2단계 : 실제 데이터의 송수신을 위해 필요한 보안정책인 IPsec SA를 결정

 

SA (Security Association)

- 보안통신을 위해 필요한 여러가지 알고리즘 및 정책의 집합.

- ISAKMP SA : ISAKMP 보안정책의 집합

- IPsec SA : 실제 데이터를 IPsec으로 송수신하기 위한 보안정책 집합

 

ESP (Encapsulation Security Payload) & AH (Authentication Header)

- ESP & AH : 실제 데이터를 encapsulation (캡슐화)하고 보호하기위한 프로토콜

- ESP : 데이터 암호화와 무결성 확인 기능 존재

- AH : 암호화 제공하지않기때문에 많이 사용되지 않음

 

IPsec-GRE Tunneling 구현

- ACL 생성

     로컬 네트워크(서울or제주) -> 반대쪽 라우터 게이트웨이

     라우터 외부인터페이스 -> 반대쪽 라우터 게이트웨이

 

     access-list 101 permit gre host 10.0.0.2 host 10.0.0.1 

     access-list 101 permit gre 172.16.0.0 0.0.0.255 host 10.0.0.1

 

     access-list 101 permit gre host 10.0.0.1 host 10.0.0.2

     access-list 101 permit gre 192.168.10.0 0.0.0.255 host 10.0.0.2

 

- ISAKMP Policy와 Key생성

     crypto isakmp policy 10 // Jeju

     authentication pre-share // 공유키방식 인증

     crypto isakmp key cisco address 10.0.0.1 // key=cisco 양측 동일

 

     crypto isakmp policy 10 // Seoul

     authentication pre-share // 공유키방식 인증

     crypto isakmp key cisco address 10.0.0.2 // key=cisco 양측 동일

 

- IPsec transform-set 생성

     crypto ipsec transform-set tset esp-aes 256 // trans-form 생성 

 

- crypto map 생성 후 인터페이스에 적용

     crypto map tunnel-map 10 ipsec-isakmp

     description Tunneling-IPsec // 주석

     set peer 10.0.0.1 // 반대측 게이트웨이주소

     set transform-set tset // 방금 설정한 transform

     match address 101 // 방금 설정한 ACL

 

LAN-to-LAN IPsec Tunnel Between Two Routers.pdf
0.27MB

 

<IPsec을 구성하는 프로토콜 헤더와 알고리즘>

- AH(Authentication Header), ESP(Encapsulating Security Payload) : 인터넷 프로토콜의 설계에 패킷의 암호화가 반영되어있지않음. 보완을 위해 특정헤더를 추가함으로써 패킷을 인증/암호화하여 인터넷의 취약점 보완.

- DES, 3DES, AES :  터널 생성시 서로를 인증하기위한 인증서 / 데이터 패킷 암호화하는데 사용

- MD5, SHA : 패킷이 변질되지않았음을 증명(해시알고리즘)

- Diffie-Hellman : 키를 생성하기위한 알고리즘

 

 

<VPN 분류>

- VPN은 접속 방식, 터널링 프로토콜, 통신 계층, 운영 주체 기준에 따라 다양한 종류로 나뉨

- 접속 방식 분류 : Site to Site(IPsec VPN)와 Client to Site (SSL VPN)

- 터널링 프로토콜 분류 : PPTP/L2TP, IPsec, SSL VPN

- 통신계층 분류 : L2 / L3 / L4기반의 VPN

 

 

 

<Reference>

- ipsec 순서 설명잘되어있음

  : https://networklessons.com/cisco/ccie-routing-switching/ipsec-internet-protocol-security#Message_1

  :  https://www.mustbegeek.com/configure-site-to-site-ipsec-vpn-tunnel-in-cisco-ios-router/

- VPN (설명잘되어있음) : https://blog.apnic.net/2020/07/29/how-to-ipsec-vpn-configuration/

- https://run-it.tistory.com/43

- https://aws-hyoh.tistory.com/163

- https://aws-hyoh.tistory.com/161

- https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kim10322&logNo=150048282557 

- https://ssanggu.github.io/ch2/2.18-ipsec-site-to-site-vpn%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0/

- https://aws-hyoh.tistory.com/entry/IPSec-VPN-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1

- m.blog.naver.com/PostView.nhn?blogId=jogilsang&logNo=220907228001&proxyReferer=https:%2F%2Fwww.google.com%2F

- blog.naver.com/PostView.nhn?blogId=jujinho218&logNo=220678922858&parentCategoryNo=28&categoryNo=&viewDate=&isShowPopularPosts=true&from=search

 

 

 

 

 

 

'Routing&Switching' 카테고리의 다른 글

Route Redistribute (RIP - Static)  (0) 2021.09.10
What is SSL / TLS  (0) 2021.08.23
GRE 터널  (0) 2021.08.22
STP (Spanning Tree Protocol) & BDPU  (0) 2021.08.06
[GNS3] OSPF Distribute-List Filtering  (0) 2020.10.02