프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

VPN

본점과 지점을 연결하는 전용 회선망을 설치하는 것은 비용이 높을 뿐만 아니라 시간도 오래 걸린다. 공용망을 사설망처럼 사용하기 위해 사용하는 것이 바로 가상 사설망인 VPN(Virtual Private Network)이다. VPN은 공중망의 저렴한 비용과 사설망의 안정성을 동시에 갖는다.

단순히 말하면 공용 망에서 데이터 암호화로 주고받아서 마치 사설망처럼 사용하는 기술이다.

 

 

https://blog.naver.com/wnrjsxo/221072250641

 

 

 

필요한 구성 요소

터널링 기술(ex: PPTP, IPSEC : 계층별로 터널링 프로토콜이 존재)

키 관리 기술(키 관리 프레임워크, ex: ISAKMP)

 

 

VPN 기술 분류

  • 방화벽 기반
  • 라우터 기반
  • 전용 하드웨어 기반
  • 전용 소프트웨어 기반

 

 

 

터널링

터널링 프로토콜 종류 설명

 

터널링 되는 데이터를 페이로드(Payload) 라고 부르며 터널링 구간에서 페이로드는 전송되는 데이터로만 취급이 되며 그 내용은 변하지 않는다.

VPN 연결을 구성하는 가장 중요한 요소인 VPN 터널링 프로토콜은 크게 VPN 연결 지점 간에 오가는 데이터 패킷의 암호화, VPN 터널의 생성 및 관리, 그리고 암호화 키 관리를 수행한다.

 

우리가 사용할 IPSec VPN도 터널링에 Key 교환을 통한 암호화를 결합한 VPN 기술이다.

 

 

 

터널링 패킷 확인

단순히 터널링만을 진행하면, 외부에 공인 IP로 캡슐링이 되고, 그 내부를 확인하면 내부 IP까지 확인할 수 있다.

 

 

내부에는 IP가 GRE로 Encapsulation되어 있다.

 

 

 

이처럼 단순한 터널링은 중간에 지나가는 router들에게 내부 IP를 공개하지 않고 공인 IP만 확인하여 패킷을 이동시킬 수 있다.

하지만 암호화는 되지 않았기 때문에, 패킷의 내부까지 확인해 보면 통신 내용을 확인할 수 있게 된다. 따라서 IPSec VPN은 터널링에 암호화까지 적용한 기술이라 할 수 있다.

 

 

 

 

 

 

IPSec(Internet Protocol Security)

 

IPSec는 네트워크 통신에서 보안을 제공하기 위한 프로토콜 스위트이다. IPSec는 인터넷을 통해 데이터를 안전하게 전송하고 네트워크를 보호하는 데 사용된다.

 

인터넷  프로토콜 스위트(Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 통신규약(프로토콜)의 모음이다.  -위키-

 

 

IPSec은 두 가지 주요 프로토콜, AH(Authentication Header)와 ESP(Encapsulating Security Payload), 그리고 IKE(Internet Key Exchange) 프로토콜을 포함한다.

 

1. AH (Authentication Header)

   - AH는 패킷의 무결성과 인증을 보장하기 위한 프로토콜이다.

   - 무결성은 데이터가 중간에 변경되지 않았음을 보장하며, 인증은 패킷이 신뢰할 수 있는 송신자로부터 나왔음을 확인한다.

   - 하지만 AH는 패킷의 내용을 암호화하지 않으므로, 기밀성을 제공하지는 않는다.

 

2. ESP (Encapsulating Security Payload):

   - ESP는 데이터의 기밀성을 제공하기 위해 사용된다. 또한 인증과 무결성을 제공할 수도 있다.

   - 암호화를 통해 패킷의 내용을 안전하게 전송할 수 있다.

   - ESP는 트랜스폼 세트를 사용하여 다양한 보안 메커니즘을 지원하며, 선택적으로 트래픽 압축도 지원할 수 있다.

(실제 명령어: crypto ipsec transform-set VPN esp-aes esp-sha-hmac   => 정책 선택 가능)

 

3. IKE (Internet Key Exchange):

   - IPSec에서 사용되는 키를 교환하기 위한 프로토콜이다.

   - IPSec 터널을 설정하고 관리하기 위해 키를 교환하고 인증하는 데 사용된다.

   - IKE는 두 시스템 간에 보안 협상을 수행하고, 공유 키를 생성하며, 서로를 인증하는 역할을 한다.

 

IPSec는 주로 가상 사설망(VPN)에서 사용되며, 원격 지점 간의 안전한 통신을 제공하거나, 리모트 액세스 사용자가 기업 네트워크에 안전하게 접속할 수 있도록 도와준다. IPSec은 네트워크 계층에서 동작하므로, TCP/IP 기반의 모든 프로토콜에서 사용할 수 있습니다. (다른 터널링 프로토콜은 2 계층에서 동작하는 것도 있다.)

 

 

 

 

 

ISAKMP(Internet Security Association and Key Management Protocol)

ISAKMP는 IPSec에서 사용되는 키 교환 및 보안 협상을 위한 프로토콜이다. ISAKMP는 IPSec 터널을 설정하고 관리하기 위해 필요한 키 교환, 알고리즘 협상, 사용자 인증 등의 작업을 수행한다.

 

 

1. 키 교환 (Key Exchange):

   - ISAKMP는 IPSec 연결을 설정하기 위해 양측 간에 공유 키를 교환합니다. 이 공유 키는 암호화 및 복호화에 사용되며, 안전한 통신을 가능하게 합니다.

   - 키 교환은 Diffie-Hellman 키 교환 알고리즘을 사용하여 수행됩니다.

 

2. 보안 매개변수 협상 (Security Parameter Negotiation):

   - ISAKMP는 양측 간에 사용할 암호화 및 해시 알고리즘, 인증 방법 등과 같은 보안 매개변수를 협상합니다. 이를 통해 양측이 안전한 통신에 사용할 공통된 보안 정책을 설정합니다.

 

3. 사용자 인증 (User Authentication):

   - ISAKMP는 IPSec 터널을 설정하기 전에 양측 간에 사용자의 신원을 인증합니다. 이는 사전 공유된 키, 디지털 인증서, 사용자 이름 및 암호 등의 방법을 사용할 수 있습니다.

 

4. 보안 협상 (Security Association Negotiation):

   - ISAKMP는 보안 협상을 통해 양측 간에 보안 협회(Security Association, SA)를 설정합니다. SA는 IPSec 터널에서 사용되는 보안 매개변수의 모음이며, 각각의 SA는 특정 통신에 대한 보안 정책을 정의합니다.

 

ISAKMP는 UDP포트 500에서 동작하며, Phase 1과 Phase 2라는 두 단계의 보안 협상을 수행합니다. Phase 1에서는 키 교환 및 보안 매개변수 협상이 이루어지고, Phase 2에서는 IPSec SA가 설정되어 실제 데이터 통신에 사용됩니다. 

 

 

 

 

 

ISAKMP Phase 1

ISAKMP Phase 1은 IPSec VPN 터널을 설정하기 위한 첫 번째 단계로, 양측 간에 안전한 통신을 위한 키 교환 및 보안 매개변수 협상을 수행하는 단계입니다. 

 

1. Diffie-Hellman 키 교환:

   - Phase 1에서는 양측 간에 Diffie-Hellman 키 교환을 수행하여 공유 비밀을 생성합니다.

   - 이 단계에서 생성된 공유 비밀은 나중에 사용되어 IPSec 터널의 키를 동적으로 생성합니다.

 

2. 사전 공유된 키 또는 디지털 인증서를 사용한 사용자 인증:

   - 각 당사자는 서로를 인증하기 위해 사전 공유된 키 또는 디지털 인증서를 사용합니다.

   - 사전 공유된 키를 사용하는 경우, 양측은 미리 공유한 비밀 키를 사용하여 상대방을 인증합니다.

   - 디지털 인증서를 사용하는 경우, 각 당사자는 자신의 디지털 인증서를 상대방에게 제공하여 상대방이 그 인증서의 유효성을 확인하게 합니다.

 

3. 보안 매개변수 협상:

   - 양측은 사용할 암호화 알고리즘, 해시 알고리즘, 인증 방법 등과 같은 보안 매개변수에 대해 협상합니다.

   - 이 단계에서 양측은 공통된 보안 정책을 결정하고, 나중에 Phase 2에서 사용할 SA(Security Association)의 매개변수를 설정합니다.

- 예시: 암호화 방식 지정(AES 256), 키 교환 방식(DH group) , 무결성 확인 (MD5 SHA)

 

4. ISAKMP SA 설정:

   - 이러한 키 교환 및 보안 매개변수 협상을 통해 Phase 1에서는 ISAKMP SA(Security Association)가 설정됩니다.

   - ISAKMP SA는 IPSec 터널을 설정하고 관리하기 위한 기반이 되는 보안 매개변수의 모음입니다.

  - 실제 명령어 예시

crypto isakmp policy 10
encryption aes 256
hash sha 
authentication pre-share 
group 5
lifetime 3600
exit

 

 

Phase 1이 완료되면, 양측 간에 안전한 연결이 설정되어 데이터 통신을 시작할 수 있습니다. 하지만, Phase 1에서는 데이터를 암호화하지 않으며, 실제 데이터 암호화는 Phase 2에서 이루어집니다. Phase 1은 주로 한 번만 수행되며, 장기적인 IPSec 연결을 설정하는 데 사용됩니다.

 

 

 

 

ISAKMP Phase 2

ISAKMP Phase 2는 IPSec 터널에서의 실제 데이터 통신을 위한 보안 연결을 설정하는 단계입니다. 이 단계에서는 Phase 1에서 설정된 키와 보안 매개변수를 기반으로 실제 데이터를 안전하게 교환할 수 있는 Security Association (SA)를 만들어냅니다.

 

 

1. 시작 (Initiation):

   - Phase 2는 Phase 1이 완료된 후 시작됩니다. Phase 1에서 교환한 키 및 보안 매개변수를 기반으로 양측 간에 안전한 통신을 위한 SA를 설정합니다.

   - 데이터 통신을 시작하려는 측이 다른 측에게 Phase 2 터널 설정을 요청합니다.

 

2. 보안 매개변수 협상 (Security Parameter Negotiation):

   - Phase 2에서는 양측이 실제 데이터 통신에 사용할 보안 매개변수를 협상합니다. 이러한 매개변수는 암호화 알고리즘, 해시 알고리즘, 수명 등을 포함합니다.

   - 양측이 공통된 보안 매개변수에 동의하면, 이 정보를 기반으로 SA를 설정합니다.

 

3. 터널 설정 (Tunnel Establishment):

   - 보안 매개변수가 협상되면, 실제 데이터 통신을 위한 터널을 설정합니다. 이 터널은 데이터의 안전한 전송을 보장하기 위해 암호화되고, 필요한 경우 압축됩니다.

   - 터널은 양측 간의 통신 경로를 나타내며, SA에는 통신에 필요한 모든 정보가 포함됩니다.

 

4. 수명 갱신 (Rekeying):

   - Phase 2에서 설정된 SA는 일정 기간이 지나면 만료됩니다. 이때, 수명 갱신이 필요하며, 이를 통해 계속해서 안전한 데이터 통신이 가능하도록 보안 매개변수 및 키를 갱신할 수 있습니다.

 

5. 종료 (Termination):

   - 데이터 통신이 완료되면 또는 터널이 더 이상 필요하지 않을 때, Phase 2는 종료됩니다. 이때 터널이나 SA는 해제되고, 자원이 반환됩니다.

 

ISAKMP Phase 2는 IPSec VPN 및 다른 보안 통신 시나리오에서 중요한 역할을 합니다. 이 단계를 통해 안전하고 신뢰할 수 있는 터널이 설정되어, 안전한 데이터 교환을 가능하게 합니다.

 

 

 

 

Router에서 IPsec 설정 단계 요약

1.     IKE 페이즈 1

-      vpn 장비간 사용할 인증키 RSA

-      암호화 방식 지정(AES), 키 교환 방식(DH group) , 무결성 확인 (MD5 SHA)

-      보안 정책 적용 기간

 

 

2.    IKE 페이즈 2

-      Transform set 변환 정책 세트, VPN으로 보호해야 할 트래픽을 지정 ACL 등으로

-      트래픽 보호용으로 사용할 보안 방식 지정

-      하나의 패킷 내에서 보호되는 데이터의 범위 및 방식: AH, ESP

-      데이터의 암호화 방식: DES. #DES, AES 등으로

-      데이터 변조 방지를 위한 무결성 방식: MD5, S/HA -1,2

 

 

3.     Crypto Map 생성 – 위 두 단계의 조합

-      ISAKMP와 IPsec 정책 설정 후 두 정책을 연결

 

 

4.     Crypto Map 적용 – 인터페이스

-      VPN 활성화

 

 

 

 

VPN 구성 실습

 

 

 

HQ(본사)에서 지사(Branch)로의 트래픽에 라우터 기반 VPN을 적용해 보자.

이때 본사에서 아래처럼 하나의 라우터가 모두 트래픽을 받는다면, 라우터 문제 발생 시 지사와의 연결이 중단된다. 따라서 우리는 두 개의 라우터 기반 VPN을 통해 지사와의 연결 가용성을 높일 것이다.

 

단 하나의 라우터만  사용시 가용성이 낮다.

 

 

 

 

 

GNS3 세부 세팅과 conf 파일

 

 

 

ISP 구역에서 사용되는 routing protocol은 OSPF Area 1을 사용하여 Area 0과 분리하였다.

이제부터 각각의 라우터 config 파일을 살펴보면서 VPN 설정을 진행해 보자.

Config 파일은 Git에 업로드한 것을 참조하자.

 

 

라우터 설정 파일

ISP

 

 

HQ

 

 

 

HQ_VPN1

 

 

 

HQ_VPN2

 

 

 

Branch1

 

 

 

Branch2

 

 

 

 

 

설정 순서

모든 라우터를 위의 config 코드를 step에 맞춰 세팅을 진행한다.

모든 라우터에 step1 진행 -> 모든 라우터에 step2 진행 -> …

 

 

Step1: IP 세팅

Router의 ip를 세팅하고, 공인 IP만을 OSPF area1로 광고한다.

 

 

Step 2: 터널링

터널링 대상(VPN을 맺을 대상)과 터널링 세팅을 진행한다.

 

 

Step 3: 터널링을 통한 OSPF 광고

터널링 후에, 내부 ip를 OSPF area0으로 광고한다.

이때 터널링 후에 내부 IP를 광고해야 만한다.

Step1에서 모두 광고를 해버리면, 트래픽이 아래처럼 터널을 타지 않고 serial port를 통해 전송이 되도록 세팅한다.

 

 

터널링 없이 OSPF 광고

 

 

터널링 세팅 후에 광고를 하면 아래처럼 트래픽이 정상적으로 Tunnel을 타도록 라우팅 경로가 세팅된다.

 

터널링 후 OSPF 광고

 

 

 

이번에 세팅할 IPSec도 Tunneling을 베이스로 한 VPN이기 때문에, 이 설정이 제대로 진행되지 않으면 VPN 설정이 제대로 진행되지 않는다.

 

 

 

Step 4: VPN 설정

위에서 설명한 IPSec VPN적용을 위해서, Phase1,2,3,4를 순서대로 진행한다.

 

//IKE Phase 1단계를 설정한다.
crypto isakmp policy 10
encryption aes 256
hash sha 
authentication pre-share 
group 5
lifetime 3600
exit


//상대 라우터와 ISAKMP 인증을 위한 암호를 지정한다.
crypto isakmp key 0 cloud address 1.1.100.6
crypto isakmp key 0 cloud address 1.1.100.10


//IKE Phase 2에서 보호할 Traffic을 정의한다.
ip access-list extended TOBR1
permit gre host 1.1.100.2 host 1.1.100.6
exit
ip access-list extended TOBR2
permit gre host 1.1.100.2 host 1.1.100.10
exit


//위에서 정의한 Traffic을 보호할 보안 정책을 지정한다. (IKE Phase 2)
crypto ipsec transform-set VPN esp-aes esp-sha-hmac


//Crypto Map을 사용하여 보호할 Traffic 및 Transform set을 조합한다.
crypto map HQ1-VPN 10 ipsec-isakmp 
match address TOBR1
set peer 1.1.100.6
set transform-set VPN
exit


crypto map HQ1-VPN 20 ipsec-isakmp 
match address TOBR2
set peer 1.1.100.10
set transform-set VPN
exit

 

 

 

 

 

Step 5: telnet 활성화 후 VPN 테스트

 

본사에서 지사 1로 telnet 접속이 암호화되는지 확인한다.

 

 

공인 IP로만 발송되는 것이 확인되고, 내부의 페이로드 정보는 전혀 볼 수 없게 암호화되어 있다.

 

ESP로 암호화 되어 있다.

 

branch 1에서 HQ로도 진행해 본다.

 

 

 

 

branch 2에서 HQ로도 진행해 본다.

 

 

 

 

 

 

 

 

 

+ ISP 라우터에 내부 IP 라우팅 경로 감추기

ISP의 라우팅 테이블을 확인해 보면, 다른 area를 사용했지만 내부망의 IP도 경로 설정이 되어있다.

 

사실 각 지사에서 본사로의 트래픽은 tunnel을 타고 가기 때문에 ISP가 내부망 정보까지 가질 필요는 없다.

(엄밀히 말하면 가져서는 안 된다.)

 

 

 

내부 망의 ip 정보까지 숨기려면, 주황색 부분(공개망)은 다른 라우팅 프로토콜(예를 들면 rip)를 사용해야 서로 간에 영향을 안 미칠 것이다.

 

 

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함