Home VPN
Post
Cancel

VPN

Private Network vs Public Network

VPN에 대한 이해를 위해서는 먼저 사설망(Private Network)과 공중망(Public Network)에 대한 이해가 필요합니다.

  • 사설망(Private Network) : 특정한 회사나 조직이 소유하고 독점적으로 사용하는 네트워크를 의미합니다.
  • 공중망(Public Network) : 사설망과 반대되는 개념으로 불특정 다수의 사용자에게 서비스를 제공하는 통신망입니다.

공중망은 어느 누구와 언제든 정보 교환이 가능하다는 특징 덕분에 연결성 측면에서 강점이 있지만 보안성이 취약하다는 단점이 있으며, 사설망은 그 반대로 연결성이 약하고 보안성이 강합니다.

쉽게 말해서 예시를 들자면 우리가 가정에서 공유기 내부에서 사설 IP로 사용하고 있는 네트워크가 대표적인 사설망이라고 볼 수 있습니다. 그리고 공중망은 인터넷이라고 볼 수 있죠.

VPN 가상사설망

VPN(Virtual Private Network, 가상사설망)은 인터넷과 같이 여러 사람이 공용으로 사용하는 공중망(Public Network)을 특정인이나 조직이 단독으로 사용하는 사설망(Private Network)처럼 동작시키는 것을 말합니다.

특정 서버에 전용선을 구축하지 않고도 기존의 인터넷 회선을 빌려 안전하게 통신할 수 있도록 해줍니다.

여기서 주목할 것은 Public Network를 Private Network처럼 활용할 수 있다는 점입니다.

인터넷이라는 거대한 망을 터널을 뚫은 것처럼 통신한다 라는 의미로 VPN 터널링이라고도 합니다.

VPN은 접속 형태에 따라 ‘Site-to-Client’과 ‘Site-to-Site’로 구분할 수 있습니다. 자세한 건 아래 예시로 설명하겠습니다.

예시로 설명~

Private Network

아래는 사설망을 가진 회사의 간단한 네트워크 구조도 입니다. VPN 설명을 위해 간략화 하였으니 참고해 주세요 :)

vpn private network

해당 회사의 네트워크 보안 정책은 다음과 같습니다.

  • Private Network는 각각 LAN으로 직접 연결되어 있음
  • 외부 인터넷과는 차단되어 있음
  • 서버는 회사 내 네트워크의 요청만 허용함

보안적으로 완벽 합니다. 외부 인터넷과 차단되어 있기 때문에 불특정 다수의 공격을 1차적으로 막을 수 있겠죠.
그렇게 모든 직원들은 출근을 하고 사무실에서 지정된 컴퓨터로 마음 편하게 작업을 하면 됩니다.

재택근무 Site-to-Client VPN

재택근무를 하라고 합니다. 위와 같은 구조에서 재택 근무가 가능 할까요?

회사 네트워크 입장에서 외부인 집 PC에서는 내부망의 트래픽만 허용하는 보안 정책 상 네트워크 요청이 거절될 수 밖에 없습니다.

여기서 선택지를 3가지로 추려보겠습니다.

  1. 직원 집의 PC까지 LAN선을 설치해 직접 연결한다.
  2. 보안 정책을 바꿔 외부 인터넷의 요청을 허용한다.
  3. Site-to-Client VPN을 이용한다.

1번은 비용이 많이 들고, 2번은 보안상 너무 큰 리스크가 있기 때문에, 정답은 3번을 이용해야 합니다.

실제로도 Site-to-Client VPN을 통해 재택 근무를 진행하는 회사가 많습니다.

SSL VPN

Site-to-Client 방식의 대표적인 VPN은 SSL VPN입니다. SSL(Secure Socket Layer) VPN의 정의는 아래와 같습니다.

‘장소나 단말의 종류와 관계없이 내부 네트워크에 접속할 수 있는 SSL 기반의 가상 사설망(VPN)’

HTTPS 통신에도 사용되는 SSL은 웹 브라우저와 서버 간의 통신에서 정보를 암호화함으로써 도중에 해킹을 통해 정보가 유출되더라도 정보의 내용을 보호할 수 있는 기능을 갖춘 보안 솔루션입니다.

SSL VPN 환경이 구축되어 있으면, 언제 어디서든 외부에서 인터넷으로 내부 네트워크로 접근할 수 있습니다. 마치 내부 네트워크에 접속해 있는 것처럼 이용하죠.

그럼 SSL VPN의 동작 원리를 알아봅시다.

  1. 서버에는 SSL VPN 장비를, 클라이언트 PC에는 전용 Agent 프로그램(브라우저도 가능)을 설치하는 등의 환경을 구축합니다.
  2. 외부의 클라이언트는 인터넷 브라우저나 전용 Agent 프로그램을 이용해 SSL VPN 장비의 public IP로 접속하여 로그인을 요청합니다.
  3. IP Pool에 해당 클라이언트의 IP를 저장하고 내부망의 IP주소를 할당해 줍니다.
  4. 클라이언트는 두 개의 IP 주소를 가지게 되며, 내부 사설망으로 향하는 접속이 있다면 VPN 터널링을 수행하고, 향하지 않는 접속은 기존과 같이 사용자 PC의 라우팅을 따릅니다.
  5. 내부 사설망으로 요청이 오면 저장해 둔 라우팅 테이블 정보에 따라 내부 네트워크에 접속되어 있는 IP로 인식하며 동작합니다.
  6. 서버의 응답은 VPN 장비가 받고 해당 값을 요청한 클라이언트에 전달합니다.

vpn ssl

회사 내부에 설치된 VPN 장비가 IP Pool에 각 IP 정보를 저장하고 프록시처럼 동작하는 걸 볼 수 있습니다. 서버 입장에서는 클라이언트 PC가 내부 네트워크에서 요청하고 응답을 받아가는 것 처럼 보이겠죠?

2번의 로그인 과정에서 ID/PW를 이용하거나 OTP, 공인인증서 등을 활용할 수도 있습니다.

또한 SSL VPN의 주요 장점 중 하나는 최신 웹 브라우저에 구현된 TLS 기술을 사용하므로 특정 클라이언트 소프트웨어를 설치할 필요가 없다는 것입니다.

타 네트워크 연결 - Site-to-Site VPN

이번에는 외부에 있는 다른 Private Network와 통신을 하려고 합니다.

Public Network를 통해 통신해도 되겠지만 외부에 노출되기 때문에 보안적으로는 좋은 선택지는 아닐 것입니다.

사실 해당 요구사항에 대한 해답은 여러개가 존재하지만 해당 포스트에서는 Site-to-Site VPN을 이용하여 해결해 봅시다.

IPsec VPN

Site-to-Site VPN 방식의 대표적인 VPN은 IPsec VPN 입니다.

외부에 있는 네트워크와 우리 회사의 Private Network를 IPsec(Internet Protocol Security)으로 암호화하여 터널링 통신으로 연결하는 서비스 입니다.

해당 VPN 환경이 구축되어 있으면, 허가된 네트워크는 언제든지 기업 내 사설 네트워크에 보안 처리된 방식으로 안전하게 접속할 수 있습니다.

IPsec VPN은 SSL VPN 방식과 달리 두개의 VPN 장비가 필요합니다. 서버 별로 프록시 서버처럼 동작하는 오브젝트가 하나씩 존재한다고 이해하셔도 좋습니다.

vpn ipsec

IPsec은 두 가지의 모드를 지원하며 대부분 터널 모드를 사용합니다. (위 그림은 터널 모드)

  • 전송 모드(Transport Mode) : IP 페이로드만 암호화, IP 헤더는 변경하지 않음
  • 터널 모드(Tunnel Mode) : IP 패킷을 모두 암호화하고 새로운 Public IP 헤더를 추가함

vpn ipsec Image Reference : https://commons.wikimedia.org/

위 모드 등에서 IP 패킷을 변경하는 방식은 IPsec 프로토콜 종류에 따라 결정됩니다. 종류에 따라 IP 패킷에 아래와 같은 헤더를 추가함으로써 인증/암호화 하여 인터넷 프로토콜의 취약점을 보완합니다.

  • IKE(Internet Key Exchange) : 통신 중인 호스트 간 SA를 확립하고, 통신 세션 과정에 사용할 암호 키와 알고리즘을 협상한다.
  • AH(Authentication Header) : AH는 전송하는 패킷에 헤더 필드를 추가한다. 헤더 필드에는 패킷 내용이 암호화된 해시가 포함되어 있다. 패킷을 수신하는 호스트는 해당 해시를 이용해 페이로드가 전송 도중에 변경되지 않았음을 확인할 수 있다.
  • ESP(Encapsulating Security Payload) : 페이로드를 암호화하고 패킷 헤더에 순차적으로 번호를 부여한다. 수신 호스트는 패킷 헤더에 부여된 번호로 중복 패킷이 아님을 확인할 수 있다.

그렇다면 VPN우회의 원리는?

위의 내용을 이해했다면 VPN을 사용했을 때 항상 특정 서버를 거쳐서 통신한다는 것을 알 수 있습니다.

종종 인터넷을 이용하다가 warning.go.kr의 페이지를 가는 이유는 국가가 해당 도메인(=홈페이지)를 검열하기 때문인데요.

VPN 우회를 하게되면, 다른 지역, 다른 나라의 네트워크망을 거쳐서, 또는 거치는 것 처럼 꾸밀 수 있기 때문에 해당 검열을 피할 수 있게 되는 것이죠.

References

This post is licensed under CC BY 4.0 by the author.

Intellij Jira 연동

HTTPS