Profile picture

[네트워크] IPSec VPN 이해하기 #2: VPN 구성 방법

JaehyoJJAng2024년 07월 02일

IPSec VPN 이란?

IPSec VPN은 주로 Site to Site 방식으로 사용되는 VPN이다.

다른 말로 하면 Network to Network 라고도 할 수 있다.

기업을 예시로 들면 본사(Site) 네트워크와 지사(Site) 네트워크를 VPN으로 연결하는 방식이라고 정의할 수 있겠다.

굳이 기업이 아니더라도 사설망과 사설망을 연결하고자 할 때 IPSec VPN을 사용한다.

다시 말해 IPSec VPN은 자신의 아래에 있는 단말(PC1, PC2)에서 VPN의 단말(PC3, PC4)로 넘어가려는 패킷이 터널을 통해(실제로는 공인망을 통해) 상대편 VPN으로 건너갈 수 있도록 하는 것이다.
image


또한 패킷을 암호화함으로써 Layer 3의 단점인 데이터 암호화를 해결한다.

이는 IPSec(Internet Protocol Security) 이라 불리는 Tunneling Protocol이 있기에 가능한 것이다.

패킷의 이동과 암호화는 전적으로 VPN이 책임지기 때문에 VPN 하단의 장비와 PC들은 패킷 이동과 암호화를 신경쓰지 않고 Routing 을 통해 상대편 네트워크로 이동할 수 있다.

위 그림을 보면 본사의 네트워크(10.0.0.x/24)와 지사의 네트워크(10.0.1.x/24)를 VPN을 통해 연결한 것을 확인할 수 있다.

본사 네트워크에 소속된 PC 1(10.0.0.1/32)이 지사 네트워크에 소속된 PC 3(10.0.1.2/32)으로 가기 위해서 해야 하는 것은

Default Gateway를 10.0.0.1로 잡거나 지사의 네트워크(10.0.1.x/24)로 가기 위해 Next hop을 10.0.0.1로 잡는 것 뿐이다.

나머지는 VPN이 모두 맡아서 처리하므로 신경 쓸 필요가 없다.


주요 구성 방법

이번에는 IPSec VPN의 네트워크 구성에 대해 구체적으로 확인해보고자 한다.

아래 그림을 보면 왼쪽에 본사 네트워크가 존재하고 본사_VPN 장비가 있고

오른쪽에는 여러 지사들의 네트워크와 지사_VPN 장비가 있다.

그리고 본사 VPN은 각 지사 VPN과 일대일 터널을 맺고 터널을 통해 서로 통신한다.

필요하다면 지사와 지사를 연결하는 일대일 터널을 맺고 사용할 수도 있다.

이를 통해 본사와 지사의 직원들은 공인망의 존재를 신경 쓸 필요가 없이 멀리 떨어진 네트워크와 사설 IP를 이용하여 통신할 수 있게된다.


예를 들어 본사의 네트워크가 10.0.0.x/24이고,

제 1지사의 네트워크가 20.20.20.x/24이라면 본사의 PC 10.0.0.1/32이 제 1지사의 PC 20.20.20.1/32과 통신하기 위해 설정할 것은

Gateway 혹은 Next hop을 VPN으로 잡는 것이 전부이다.

아래 그림에서는 간단한 표현을 하기 위해 3개의 지사 VPN만을 표현하였지만 실제로는 수십대가 넘는 지사_VPN본사_VPN과 연결하여 사용하기도 한다.
image



이번에는 다른 관점에서의 IPSec VPN 네트워크 구성을 살펴보도록 하자.

위 그림에서는 VPN만을 사용하여 기업의 본사와 지사 네트워크를 표현하였지만 실제 기업에서는 VPN만을 사용하지는 않는다.

보통 기업의 본사에서는 라우터와 스위치 등의 네트워크 장비 뿐만 아니라 방화벽, IPS 등의 보안 장비도 함께 사용된다.

그렇기에 다양한 장비가 운용되는 네트워크 환경에서 IPSec VPN이 어떻게 배치되는지 아는 것 또한 매우 중요하다.

다양한 장비가 운용된다는 것은 곧 대규모 네트워크를 의미하는 것인만큼 대규모 네트워크에서 IPSec VPN이 어떻게 사용되는지를 알면 이해가 더 쉬울 수 있다.

아래 그림을 살펴보도록 하자.
image
<출처: 네트워크 엔지니어 환영>


위 그림 3개는 대규모 네트워크에서의 IPSed VPN 구성도를 그린 것이다.

모든 그림의 좌측(노란색)은 본사 네트워크를 의미하며, 우측(빨간색)은 지사 네트워크를 의미한다.

왼쪽부터 차례로 보면

첫 번째 그림에서는 공인 IP를 보유한 라우터가 IPSec VPN의 기능과 라우팅 모두를 담당하고 있다.

두 번째 그림에서는 방화벽 하단에 IPSec VPN을 두고 별도의 인터넷 회선을 통해 본사와 지사의 네트워크를 연결한다.

세 번째 그림에서는 VPN이 공인 IP를 보유한 라우터와 내부 스위치 사이에 존재하며 본사와 지사 네트워크를 연결한다.


이제 IPSec VPN의 정의와 구성을 확인했으니 터널이 어떻게 생성되는지 살펴보자.

그전에 'IPSec'이 대체 무엇인지 이해해야 한다.

터널링 프로토콜인 IPSec 을 모른다면 IPSec VPN을 안다고 말할 수 없다.


IPSec (Internet Protocol Security)

IPSec은 IP 패킷의 암호화와 인증, 그리고 암호화를 위한 키 관리를 맡은 프로토콜 스위트(Protocol Suite)이다.

IPSec VPN이라고 부르는 이유는 VPN 터널을 생성하고 데이터를 암호화하는 방식에 있어 IPSec의 규칙을 철저히 따르기 때문이다.

여기서 IPSec의 역할은 다음과 같다.

  • 1. 인터넷 경유 구간에서 안전한 터널을 생성
  • 2. 패킷을 인증할 수단을 제공
  • 3. 패킷을 암호화할 키를 관리하고 제공

또한 IPSec에는 Transport mode와 Tunnel Mode로 나뉘는 운용 모드 라는 것이 존재하는데

단말에서 단말로 직접 터널을 연결할 것인지, VPN을 양쪽 네트워크에 두고 VPN 간 터널을 연결할 것인지를 결정하고 운용하는 기능이다.

전자를 Transport mode, 후자는 Tunnel mode라고 부른다.

아래 그림에서 잘 표현하고 있다.
image
<출처: https://commons.wikimedia.org>


간략히 설명하면 전송 모드는 IP Header를 변형하지 않고 그대로 사용하면서 IP Header를 제외한 데이터 부분만을 인증 혹은 보호하며 단말이 이 모든 과정을 담당하기에 단말과 단말 간 통신이 가능하다는 특징이 있다.


반면, 터널 모드는 New IP Header(공인 IP)를 추가적으로 씌워 Origin IP Header(사설 IP)를 캡슐화하고 IP 패킷 전체를 인증 혹은 보호하며 VPN 장비가 이를 도맡아 하므로 사설 네트워크와 사설 네트워크 간 통신을 가능케 한다.


현재 사용하고 있는 IPSec VPN의 대부분은 터널 모드를 사용한다.

앞으로 나올 내용 모두 터널 모드임을 가정하고 설명할 것이다.


아래 그림을 통해 IPSec을 구성하는 프로토콜 헤더와 알고리즘을 확인해보자.
image
<출처: https://networklessons.com>

인터넷 프로토콜(IP)의 설계에는 패킷의 암호화가 반영되지 않는 것을 알고 있는가?

그 약점을 해결하기 위해 IP 패킷에 특정 헤더를 추가함으로써 패킷을 인증/암호화하여 인터넷 프로토콜의 취약점을 보완하게 되는데

여기에 사용되는 프로토콜 헤더가 바로 맨 윗줄에 있는 AH(Authentication Header) , 그리고 ESP(Encapsulating Security Payload) 이다.

그 아랫칸에는 터널 생성 시 서로를 인증하기 위한 인증서 / 데이터 패킷을 암호화하는데 사용되는 알고리즘 DES, 3 DES, AES가 보인다.


그리고 패킷이 변질되지 않았음을 증명하기 위해 사용되는 MD5, SHA가 있고, 마지막으로 키를 생성하기 위한 Diffie-Hellman 알고리즘이 있다.


지금까지 IPSec의 3가지 역할에 대해 기록하였고 거기에 사용되는 프로토콜과 알고리즘을 설명하였지만 어떻게 사용하는지에 대한 언급은 없었다.

IPSec 터널을 생성하고 키를 생성/관리하는 가장 중요한 프로토콜이 빠졌기 때문인데

바로 키 관리 프로토콜인 Internet Key Exchange(IKE) 라고 한다.

IKE는 터널을 안전하게 생성하기 위한 VPN 간의 협상 과정을 책임지며 패킷을 암호화하기 위한 알고리즘 등을 협의하고 결정하는 중요한 역할을 한다.

IKE가 수행하는 터널 생산 과정과 암호화 키 생성 과정에서 위 그림에서 나온 프로토콜 헤더와 알고리즘이 모두 사용되는 것이다.


출처


Loading script...