VPN, 어떻게 동작하는가? (Client-to-Site VPN)

vinca·2024년 8월 13일
1

Introduction

VPN이란 무엇일까?

일반적으로 흔히 접하는 expressVPN 부터 NordVPN까지 어디선가 많이 들어보았을 것이다.

이러한 VPN은 주로 "IP를 우회하기 위해, 자신의 정보를 숨기고 웹 서핑을 즐기기 위해, 특정 국가에서 차단된 콘텐츠에 접속하기 위해 " 사용되어 왔다.

이렇다보니 VPN하면 어딘가 친숙하면서도 막연하게 암호화, 익명성, 우회 등으로 생각하기 쉽다.

넓게 보면 다 맞는 말이지만, IT를 공부하다보면 네트워크 파트에서 VPN이 나오게되고, 이 VPN이 왠지 모르게 내가 사용하던 그런 VPN과는 다른 개념인 것 같이 느껴지는 이질감이 드는 경우가 있다.

본 글에서는 어려운 부분은 최대한 배제하고 최대한 쉽게 정리해보고자 한다.

VPN의 종류

먼저 VPN은 크게 두가지로 분류된다.
Client-to-Site VPNSite-to-Stie VPN으로 분류되는데, 본 글에서는 Client-to-Site VPN에 대해서 알아보도록 한다.

Client-to-Site VPN

Client-to-Site VPN은 우리가 흔히 사용해왔던 expressVPN, NordVPN과 같은 종류의 VPN이다.

즉, 주로 사용자가 "외부의 차단된 사이트에 접속하기 위해서 " 또는, "자신의 IP정보를 숨기기 위해서 " 사용하는 VPN이라 할 수 있다.

암호화 프로토콜로는 SSL VPN, IPsec, OpenVPN, L2TP/IPsec, PPTP, IKEv2등을 사용한다.

Client-to-Site VPN의 구조

그럼 Client-to-Site VPN은 어떤 구조를 가질까?
아래 그림을 보도록 하자.

이를 글로 정리하면 다음과 같은 구조가 된다.

사용자 디바이스 ➡️ VPN 클라이언트 ➡️ ISP ➡️ VPN 서버 ➡️ 외부 인터넷 사이트
 └─────────────────────────────────────┘
               터널링(ENCRYPED)

이 때, 터널링이란 외부에서 패킷이나 데이터를 확인할 수 없는 암호화된 통로로 VPN을 통해 암호화(Encryped)되는 범위를 의미한다.

따라서 Client-to-Site VPN에서 터널링 범위는 그림과 같이 사용자 ➡️ ISP ➡️ VPN 서버까지가 되는 것을 확인할 수 있다.

💡 ISP : Internet Service Provider의 약자로 KT, SKT, LG U+ 등의 인터넷을 제공해주는 통신업체

Client-to-Site VPN의 동작과정

이제 본 구조를 화살표를 따라가며 어떻게 동작하는지 알아보도록 하자.

사용자 디바이스 ➡️ VPN 클라이언트 ➡️ ISP ➡️ VPN 서버 ➡️ 외부 인터넷 사이트
 └─────────1,2──────────────────4────┘    5       6
               터널링(ENCRYPED)
                     3
  1. 사용자가 VPN 클라이언트를 사용자 디바이스에 설치한다.
  1. 사용자는 VPN 클라이언트를 통해 VPN 서버에 연결 요청을 보낸다.

  2. 사용자 인증이 이루어지고 사용자 ➡️ ISP ➡️ VPN 서버 까지의 터널링이 형성된다.
    (이 과정에서 익명의 IP가 사용자에게 부여되고, 사용자는 이 IP를 통해서 통신하게 된다.)

  3. 사용자가 보내는 모든 트래픽은 암호화되어 VPN 서버로 전송되고, ISP는 암호화된 해당 트래픽을 확인할 수 없다.
    (사용자 IP만을 확인할 수 있는데, 해당 IP도 사실 사용자의 IP가 아니다.)

  4. VPN 서버는 사용자의 트래픽을 복호화하여 어디로 접속하는 지 확인하고, 실제 접속하고자하는 사이트로 트래픽을 전달한다.

  5. 해당 사이트에서는 응답을 반환하여 사용자에게 보여준다.


여기서 보면 알겠지만, ISP는 암호화된 사용자 트래픽을 확인할 수 없지만, VPN 서버는 사용자의 요청을 인터넷으로(원하는 사이트로) 보내줘야 하므로 사용자 트래픽을 복호화 할 수 밖에 없다.

📍 이것이 VPN을 선택할 때 노 로그, 노 로깅 정책이 중요한 이유이다.

VPN을 안쓰면?

그렇다면 이처럼 VPN을 사용해서 암호화되는 것은 알겠는데, 안 쓰게 되면 내 어떤 정보가 ISP에 공개되는 지 알아보도록 하자.

위 그림과 같이 VPN을 사용하지 않으면 암호화 되지 않은 상태로 ISP를 그대로 통과해서 인터넷에 접속되게 된다.

이럴 경우 차단된 사이트 또는 컨텐츠에 접근 시 ISP 단에서 막히게될 것이고 "사용할 수 없는 서비스 또는 국가 입니다. " 가 출력되게 된다.

VPN을 사용하지 않을 경우, 노출되는 정보

VPN을 사용하지 않는 경우, ISP가 확인할 수 있는 정보(외부로 노출되는 정보)는 다음과 같다.

  1. http:// 로 접속하는 경우
    암호화되지 않은 상태로 데이터를 전송하기 때문에, ISP는 사용자 IP를 포함한 사용자가 방문하는 웹사이트의 모든 내용(예: 페이지의 텍스트, 이미지 등)을 포함하여 트래픽을 거의 완전히 볼 수 있다.

  2. https:// 로 접속하는 경우
    http 보다는 그나마 조금 더 양호하지만, 이 또한 사용자의 대부분의 정보가 노출된다.
    SSL/TLS 암호화를 사용하여 데이터를 전송하기 때문에, ISP는 사용자가 방문하는 웹사이트의 세부적인 콘텐츠는 볼 수 없다. 그러나 ISP는 여전히 사용자가 접속한 도메인(예: www.example.com)과 같은 메타데이터는 볼 수 있고, 사용자 IP 또한 그대로 노출된다.

결론은 VPN을 사용하지 않으면, 대부분의 사용자의 활동은 전부 기록되고 있다고 봐도 무방하다. 이는 사이트 및 ISP 로깅정책에 의해 달라지며 통신비밀보호법에 의해 n개월 간 필수적으로 보관한다.

SSL VPN

회사를 다니는 경우, 간혹 회사 VPN을 사용해서 회사 서버에 접속하는 경우가 있었을 것이다. (F5 VPN)

사실 본 글을 작성하게 된 이유 또한 회사망에 접속해서 서류를 발급받을 일이 있어 VPN을 사용하다가 궁금해서 정리할 겸 작성하게 되었다. ✏️

Client-to-Site VPN인 것은 동일하나, 이 경우에는 ISP에서 차단되는 것이 아니라, 회사 내부 서버에서 허용된 IP 주소 목록이 아니므로 차단되게 된다.

회사의 내부망에 접속하는 과정은 다음과 같다.

회사 내에서 접속 과정

사용자 디바이스 ➡️ VPN 클라이언트 ➡️ ISP ➡️ 회사 VPN 서버 ➡️ 회사 내부망
 └──────────────────────────────────────┘
               터널링(ENCRYPED)
  1. 회사 VPN 서버 URL(vpn.company.co.kr)에 접속
  2. 사용자 이름, 비밀번호, OTP등을 통해 사용자를 인증
  1. SSL/TLS 세션 설정 및 터널링 형성

  2. 회사 내부망에 해당하는 내부 IP 주소 할당
    (가상 네트워크 인터페이스가 생성되고, 여기에 회사 내부 IP가 할당됨)

# 새롭게 생성된 회사 내부망 IP
xxx@xxx-MacBookPro ~ % ifconfig
utun4: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1384
	inet 192.168.10.41 --> 1.1.1.1 netmask 0xffffffff
  1. 회사 내부망으로의 접속에 대한 라우팅 설정

실제로 이처럼 라우팅 테이블을 열어보면, 회사 내부(203. 또는 218.XXX.) 로 접속할 때, 새롭게 생성된 회사 내부망 IP를 게이트웨이로 내부로 접속하는 것을 확인할 수 있다.

여기서 출력되는 가려진 회사 공인IP 주소로 접속해보면 실제 회사 서버로 연결되는 것을 확인할 수 있었다.
또한, 보안적인 측면에서 DNS 서버를 통해 쿼리 후 접속이 아닌, 직접 IP로 접속하는 경우 차단되어 있었으나. 일부 legacy 사이트는 IP로 직접적인 접근이 가능하기도 했다.

profile
붉은 배 오색 딱다구리 개발자 🦃Cloud & DevOps

0개의 댓글