IPSec VPN이란?
앞서 VPN 쉽게 이해하기에서 언급한 것처럼 IPSec VPN은 주로 Site to Site 방식으로 사용되는 VPN입니다. 다른 말로 하면 Network to Network라고 할 수 있는데요. 기업을 예시로 들자면 본사(Site) 네트워크와 지사(Site) 네트워크를 VPN으로 연결하는 방식이라고 정의할 수 있습니다. 굳이 기업이 아니더라도 사설망과 사설망을 연결하고자 할 때 IPSec VPN을 사용합니다. 다시 말해 IPSec VPN은 자신의 아래에 있는 단말(PC 1, PC 2)에서 VPN의 단말(PC 3, PC 4)로 넘어가려는 패킷이 터널을 통해(실제로는 공인망을 통해) 상대편 VPN으로 건너갈 수 있도록 기능하는 것이죠.
또한 패킷을 암호화함으로써 Layer 3의 단점인 데이터 암호화를 해결합니다. 이는 IPSec(Internet Protocol Security)이라 불리는 Tunneling Protocol(이하 터널링 프로토콜)이 있기에 가능한 것입니다. 패킷의 이동과 암호화는 전적으로 VPN이 책임지기 때문에 VPN 하단의 장비와 PC들은 패킷 이동과 암호화를 신경 쓰지 않고 Routing(이하 라우팅)을 통해 상대편 네트워크로 이동할 수 있습니다. VPN 쉽게 이해하기에서 말씀드렸던 2가지를 구현하는 것이지요.
1. 비싼 전용 회선이 아닌 공인 인터넷(공인망)을 사용해 사설망과 사설망을 연결할 수 있어야 한다.
2. 인터넷 프로토콜의 취약점인 데이터 암호화 문제를 해결, 공인 인터넷망을 지나가도 안전이 보장되어야 한다.
위 그림을 보시면 본사의 네트워크(10.10.10.x/24)와 지사의 네트워크(10.10.20.x/24)를 VPN을 통해 연결한 것을 확인할 수 있습니다. 본사 네트워크에 소속된 PC 1(10.10.10.10/32)이 지사 네트워크에 소속된 PC 3(10.10.20.10./32)으로 가기 위해서 해야 하는 것은 Default Gateway를 10.10.10.1로 잡거나 지사의 네트워크(10.10.20.x/24)로 가기 위해 Next Hop을 10.10.10.1로 잡는 것뿐입니다. 나머지는 VPN이 모두 맡아 처리하므로 신경 쓸 필요가 없지요. IPsec VPN을 사용함으로써 얻는 편리함입니다.
주요 구성 방법
이번엔 IPSec VPN의 네트워크 구성에 대해 구체적으로 보고자 합니다. 아래 그림을 보시면 왼쪽에 본사 네트워크가 존재하고 본사_VPN이 있고 오른쪽에는 여러 지사들의 네트워크와 지사_VPN이 있습니다. 그리고 본사 VPN은 각 지사 VPN과 일대일 터널을 맺고 터널을 통해 서로 통신합니다. 필요하다면 지사와 지사를 연결하는 일대일 터널을 맺고 사용할 수도 있지요. 이를 통해 본사와 지사의 직원들은 공인망의 존재를 신경 쓸 필요 없이 멀리 떨어진 네트워크와 사설 IP를 이용하여 통신할 수 있습니다.
예를 들어 본사의 네트워크가 10.10.10.x/24이고 제1지사의 네트워크가 20.20.20.x/24이라면 본사의 PC 10.10.10.1/32이 제1지사의 PC 20.20.20.1/32과 통신하기 위해 설정할 것은 Gateway 혹은 Next Hop을 VPN으로 잡는 것이 전부이죠. 여담으로 아래 그림에서는 간단한 표현을 위해 3개의 지사 VPN만을 표현하였지만 실제로는 수십대가 넘는 지사_VPN을 본사_VPN과 연결하여 사용하기도 합니다.
다른 관점에서 IPSec VPN 네트워크 구성을 보도록 하겠습니다. 위에서는 VPN만을 사용해 기업의 본사와 지사 네트워크를 표현했지만 기업에서는 VPN만을 사용하지는 않습니다. 보통 기업의 본사에서는 라우터와 스위치 등의 네트워크 장비뿐만 아니라 방화벽, IPS 등의 보안 장비도 함께 사용하지요. 그렇기에 다양한 장비가 운용되는 네트워크에서 IPSec VPN이 어떻게 배치되는지를 아는 것 또한 매우 중요합니다. 다양한 장비가 운용된다는 것은 곧 대규모 네트워크를 운용하는 것을 의미하는 것인만큼 대규모 네트워크에서 IPSec VPN이 어떻게 사용되는지를 보면 실무에서의 사용에 대한 이해가 더 쉬울 수 있습니다. 아래 그림을 살펴보겠습니다.
위 그림 3개는 대규모 네트워크에서의 IPSec VPN 구성을 그린 것입니다. 모든 그림의 좌측(노란색)은 본사 네트워크이며 우측(빨간색)은 지사 네트워크입니다. 왼쪽부터 차례로 설명하자면 첫 번째 그림에서는 공인 IP를 보유한 라우터가 IPSec VPN의 기능과 라우팅 모두를 담당합니다. 두 번째 그림에서는 방화벽 하단에 IPSec VPN을 두고 별도의 인터넷 회선을 통해 본사와 지사의 네트워크를 연결하며 세 번째 그림에서는 VPN이 공인 IP를 보유한 라우터와 내부 스위치 사이에 존재하며 본사와 지사 네트워크를 연결합니다.
위 3가지 구성은 IPSec VPN을 구성하는 표준 구성이라고 말할 수 없습니다. 그저 제가 직접 기술지원을 했거나 보고 들은 곳의 구성을 그려본 것일 뿐이죠. IPSec VPN을 어떻게 활용하느냐에 따라 IPSec VPN의 위치는 다양한 곳에 배치될 수 있기 때문에 수많은 구성이 존재하며 설치되는 곳의 네트워크의 특성에 맞게 VPN을 설치합니다. 방화벽과 같이 정책에 의해 패킷을 차단하는 장비가 있는 경우 VPN을 어디에 설치하느냐에 따라 정책 관리의 주체가 달라질 수 있고 VPN은 패킷을 암호화하는 만큼 IPS와 같은 장비가 복호화된 패킷을 볼 수 있도록 IPSec VPN의 위치를 적절히 배치할 수 있습니다. 또한 IPSec VPN을 사용한다는 것은 본사와 지사의 트래픽 이동이 잦다는 것을 의미하므로 방화벽, IPS 등의 장비에 주는 부하를 최소화하는 방향으로 설치할 수도 있죠.
IPSec VPN의 정의와 구성을 확인하였으니 이제 IPSec VPN의 터널이 어떻게 생성되는지 살펴보고자 합니다. 그전에 'IPSec'이 무엇인지 알아야 합니다. 터널링 프로토콜인 IPSec을 모르고서야 IPSec VPN을 안다고 할 수 없겠죠?
IPSec(Internet Protocol Security)
IPSec(Internet Protocol Security)은 통신 세션의 각 IP 패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜(IP) 통신을 위한 인터넷 프로토콜 스위트이다. 이 보안은 통신 세션의 개별 IP 패킷을 인증하고 암호화함으로써 처리된다. IPSec은 세션의 시작에서 에이전트들 사이에서 상호 인증을 확립하거나 세션을 맺는 중에 사용될 암호화 키의 협상을 위한 프로토콜을 포함한다.
- 출처 : 위키백과 -
IPSec은 Internet Protocol Security의 줄임말로 IP 패킷의 암호화와 인증, 그리고 암호화를 위한 키 관리를 맡은 프로토콜 스위트(Protocol Suite)입니다. IPSec VPN을 IPSec VPN이라 부르는 이유는 VPN 터널을 생성하고 데이터를 암호화하는 방식에 있어 IPSec의 규칙을 철저히 따르기 때문입니다. 여기서 IPSec의 역할은 인터넷 경유 구간에서 안전한 터널을 생성하고(①) 패킷을 인증할 수단을 제공하며(②) 패킷을 암호화할 키를 관리하고 제공하는 것(③)입니다.
또한 IPSec에는 Transport Mode와 Tunnel Mode로 나뉘는 운용 모드라는 것이 존재하는데 단말에서 단말로 직접 터널을 연결할 것인지, VPN을 양쪽 네트워크에 두고 VPN 간 터널을 연결할 것인지를 결정하고 운용하는 기능입니다. 전자를 Transport Mode(이하 전송 모드) 후자를 Tunnel Mode(이하 터널 모드)라고 부릅니다. 아래 그림에서 잘 표현하고 있지요.
간략히 설명하면 전송 모드는 IP Header를 변형하지 않고 그대로 사용하면서 IP Header를 제외한 데이터 부분만을 인증 혹은 보호하며 단말이 이 모든 과정을 담당하기에 단말과 단말 간 통신이 가능하다는 특징이 있습니다. 반면 터널 모드는 New IP Header(공인 IP)를 추가적으로 씌워 Origin IP Header(사설 IP)를 캡슐화하고 IP 패킷 전체를 인증 혹은 보호하며, VPN 장비가 이를 도맡아 하므로 사설 네트워크와 사설 네트워크 간 통신을 가능케 합니다. 현재 사용하고 있는 IPSec VPN의 대부분은 터널 모드를 사용합니다. 또한 지금껏 설명한 IPSec VPN은 이 터널 모드를 따르는 것이며 앞으로 나올 내용 모두 터널 모드임을 가정하고 설명하는 것이며 앞으로도 계속 언급됩니다.
이제 아래 그림을 통해 IPSec을 구성하는 프로토콜 헤더와 알고리즘을 확인해보겠습니다.
VPN 쉽게 이해하기에서 인터넷 프로토콜(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가 수행하는 터널 생성 과정과 암호화 키 생성 과정에서 위 그림에서 나온 프로토콜 헤더와 알고리즘이 모두 사용되는 것이죠. 그러므로 IKE에 대해 잘 아는 것이 IPSec VPN을 제대로 이해하는 지름길이 됩니다.
다음 문서에서는 AH, ESP 프로토콜 헤더와 IKE 그리고 터널 생성 과정에 대해 알아보도록 하겠습니다. 다시 한 번 말씀드리지만 앞으로도 이 모든 과정은 전송 모드가 아닌 터널 모드라는 가정 하에 설명을 진행합니다.
'Network Infra 쉽게 이해하기 > VPN 쉽게 이해하기' 카테고리의 다른 글
SSL VPN 쉽게 이해하기 #1 (15) | 2023.01.01 |
---|---|
IPSec VPN 쉽게 이해하기 #4 (20) | 2021.09.12 |
IPSec VPN 쉽게 이해하기 #3 (10) | 2021.08.21 |
IPSec VPN 쉽게 이해하기 #2 (6) | 2021.08.07 |
VPN 쉽게 이해하기 (21) | 2021.07.01 |
댓글