VPN 구축 및 정리

Content

  1. 목적

  2. VPN 이란?
    2.1. VPN 정의
    2.2. VPN의 특징

  3. VPN 터널링 프로토콜
    3.1. 2계층 프로토콜
    1) PPTP (Point-to-Point Tunneling Protocol)
    2) L2TP (Layer 2 Tunneling Protocol)
    3.2. 3계층 프로토콜
    1) IPsec (IP Security)

  4. VPN 실습
    4.1. Windows PPTP 환경 구축

  5. 결론

참고문헌

1. 목적

본 과제는 VPN을 직접 구성하는 과정을 정리하고, 호스트 IP와 VPN IP를 비교하여 구축을 검증한다. 그리고 자신이 구축한 VPN의 특징( 프로토콜 등 )에 대한 정리를 한다. 이를 통해서 가상 네트워크의 종류와 원리에 대한 이해를 도모한다.

2. VPN 이란?

2.1. VPN 정의

VPN 연결 개요 VPN 연결 개요

VPN (Virtual Private Network)은 인터넷과 같은 공중 네트워크를 이용해서 사설 네트워크를 사용할 수 있도록 가상의 네트워크를 구성한 것이다. 여러 지점에 분산되어 있는 사설망을 하나로 통합하기에 한계가 있기 때문에 공중망을 이용하여 데이터 전송을 하는 것을 일컫는다. 예를 들어 여러 지점을 소유하고 있는 기업에서 다른 지점 간에 사내 망을 통한 통신이 필요할 때 직접적인 연결을 하기는 많은 비용이 들기 때문에 VPN을 구축하여 공중망을 이용함에도 같은 사내 망을 이용하는 것과 비슷한 효과를 내도록 한다.

공중망을 경유하여 데이터가 전송되더라도 외부인으로부터 안전하게 보호되도록 주소 및 라우터 체계의 비공개, 데이터 암호화, 사용자 인증 및 사용자 액세스 권한 제한 등의 기능을 제공한다.

사설망 (Private Network)
특정한 조직 내에서만 사용되는 네트워크의 일종으로 인증된 자만 사용한다는 점에서 보안성이 높지만 거리에 따라 설치비용이 부담이 들고 관리비용 또한 추가된다.
공중망 (Public Network)
인터넷과 같이 모두에게 공개된 망을 의미하며 누구나 정보 교환이 가능하다는 점에서 보안성이 취약하다. IP 등의 공인된 표준을 따르는 통신 방법을 채택하여 사용한다.

2.2. VPN의 특징

가상 사설망은 응용프로그램의 하단 계층에서 동작하여 응용프로그램을 수정할 필요가 없다. 또한 이미 구축되어 있는 사설망과의 연결, 모바일 환경, 외부와의 보안 통신이 가능하기 때문에 추가적인 구축비용 부담이 적다. 터널링 기술과 암호화 및 인증 기술을 구현하여 사용자에게 투명한 통신 서비스를 제공한다.

VPN의 장점으로 ISP들이 제공하는 인터넷 망을 이용하여 구축이 가능하기 때문에 기존의 사설망을 구축하는데 드는 비용이 절감된다는 점이 있다. 또한 다양한 구축방법, 프로토콜을 제공하여 다양한 VPN을 구축할 수 있다. ( ex. IPsec, MPLS ) 그리고 위치와 상관없이 해당 ISP의 POP로 접속하면 인터넷을 이용하여 VPN 접속이 가능하여 이동 사용자의 접속 부담이 감소된다.

단점으로는 명확한 표준이 없어서 ISP마다 다른 기술을 사용하여 서로 다른 ISP 간의 연동에 문제가 발생한다는 것과 성능 저하의 문제가 있다.

VPN의 구성 유형으로는 L2L (LAN to LAN)과 L2C (LAN to Client)를 들 수 있다. L2L은 본사, 지사 간의 연결 유형을 띄고 있으며 VPN 장비를 설치하여 네트워크를 연결한다. L2C는 재택근무, 이동근무 등 과 같은 소규모에 쓰이며 각 PC에서 VPN Client 프로그램을 이용하여 접속하는 단말의 형태를 한다.

ISP (Internet Service Provider)
개인, 기업에게 인터넷 접속 서비스, 웹 사이트 구축 등을 제공하는 회사를 말한다.
POP (Point of Presence)
ISP망의 상호 간 접속점으로 가입망에서 인터넷 백본망 접근을 위한 접속점이다.
MPLS (Multi protocol label switching)
cut and through 방식의 패킷 전송 계층 3 레이블 스위칭 기술이다. 비동기 전송 방식과 같은 접속형 통신망에서는 패킷 전송 처리와 경로 계산 처리를 분리하여 패킷의 고속 전송을 구현한 기술이다.
터널링 (Tunneling)
상용망상에서 전용망과 같은 보안효과를 주기 위한 기법으로 VPN 내의 두 호스트 간에 가상경로를 설정해 주어 사용자에게 투명한 통신 서비스를 제공한다. 인터넷과 같은 안전하지 못한 네트워크 환경에서 전용선과 같은 강력한 보안을 제공하는 것으로, IP 패킷이 공중망을 통과할 때 사용자 간에 마치 터널이 뚫린 것처럼 통로를 마련하여 이 통로를 통해 데이터를 안전하게 전송하는 것이다.

3. VPN 터널링 프로토콜

3.1. 2계층 프로토콜

주로 사용자와 접속하고자 하는 위치의 LAN을 연결해 주는 역할을 수행하며 Client-to-LAN을 위한 Remote Access VPN에 주로 사용된다. 사용자 측에서 다이얼 업을 이용하여 접속할 때 ID와 암호를 사용하여 인증 절차를 거친 후에 터널링을 시작한다.

2계층 터널링의 특징으로는 Client-Server Model 이라는 것과 PPP (Point-to-Protocol) 기반의 프로토콜이라는 점이 있다. 또한 ATM (Asynchronous Transfer Mode)와 Frame Relay 등을 지원한다.

1) PPTP (Point-to-Point Tunneling Protocol)

PPTP는 VPN을 구축하기 위한 방법 중 하나로 L2TP, IPsec 또는 OpenVPN으로 사용되지 않지만 라우터 및 클라이언트에서 여전히 일반적으로 사용되고 있다. PPP 기술을 확장하여 만든 규격이며 터널을 확립하고 MS-CHAP와 RC4를 합성하여 암호화를 진행한다. 그리고 Microsoft사에서 개발한 것으로 IP, IPX 또는 NetBEUI (Network BIOS Enhanced User Interface, IBM) 페이로드를 암호화하고, IP헤더로 캡슐화 하여 전송한다. PPTP는 터널의 유지, 보수, 관리를 위하여 TCP연결을 사용하고, 이동통신사용자 (Mobile user)가 서버에 접속하기 용이하게 구성이 되어있다. 따라서 Android, IOS 같은 Mobile 환경에서 기본적으로 지원하고 있다.

IP 주소를 설정할 때 주소의 충돌을 피하기 위해서 LAN의 IP 주소가 원격지의 VPN의 LAN주소와 달라야 한다. 기본적으로 192.168.1.0 서브넷이 사용되기 때문에 10.0.0.0 또는 192.168.111.0 과 같이 LAN의 다른 범위를 설정하여야 한다.

PPTP는 높은 수준의 보안 요구사항을 충족시키지 못할 가능성이 크며 보안 결함이 있어 더 이상 잘 사용되지 않지만 가정용이나 높은 수준의 암호화 등급에 의존하지 않을 경우 사용하기 충분하다. 따라서 12자 이상의 복잡한 암호를 사용하는 것을 제안하고 있다.

IP 데이터그램이 포함된 PPTP 패킷의 구조 IP 데이터그램이 포함된 PPTP 패킷의 구조

PPTP는 네트워크를 전송하기 위해 PPP 프레임을 IP 데이터그램에 캡슙화하게 된다. 캡슐화된 PPP 프레임의 페이로드에 대해 암호화 또는 압축을 하나 또는 모두 수행 가능하다.

다이얼 업
데이터 통신에서 공중교환 전화망 (PSTN)을 통하여 상대방과의 접속을 설정하기 위하여 전화기의 다이얼을 돌리거나 버튼을 누르는 것을 말한다. 많은 사용자가 여러 개의 회선을 공유하는 형태를 갖는 시스템의 전화 접속에 적합하다.
PPP (The Point-to-Point)
서로 다른 업체의 원격 엑세스 소프트웨어들이 시리얼라인 상으로 서로 연결하여 TCP/IP 프로토콜로 통신할 수 있도록 만들기 위해 제정된 표준 규약이다.
ATM (Asynchronous Transfer Mode)
비동기 전송모드의 약어로 ATM 송출정보는 48바이트의 정보와 5바이트의 헤더로 된 53바이트의 셀 (cell) 형태로 온라인 전송을 한다.
Frame Relay (프레임 중계)
디지털 전송로 품질의 향상에 따라 불필요한 전송 오류 제어나 흐름 제어 등 복잡한 기능을 최소화하고, 망 종단 장치에서 처리하도록 함으로써 고속 전송을 실현하는 고속 데이터 전송 기술을 말한다.
IPX (Internetwork packet exchange)
네트워크 사이의 패킷 교환, 넷웨어 (NetWare)의 네트워크 계층 프로토콜은 주소 지정, 경로 선택 및 패킷을 다룬다. 모든 네트워크 프로토콜 가운데 가장 일반적으로 쓰이는 IPX는 사용자가 네트워크에 접속할 때 로드된다.
NetBEUI (Network BIOS Enhanced User Interface, IBM)
넷 바이오스 확장 사용자 인터페이스라고 불리며 이것은 라우터를 통하지 않는 환경 하에서 네트워크 내의 프린터나 폴더를 공유할 수 있도록 하는 프로토콜을 말한다.

2) L2TP (Layer 2 Tunneling Protocol)

L2TP는 PPTP와 L2F를 결합한 방법으로 마이크로소프트사와 시스코에서 지원하고 있으며, 호환성이 뛰어나다는 장점이 있다. PPTP와의 공통점으로 PPP 트래픽을 암호화하기 때문에 IP, IPX, NetBEUI, AppleTalk 등의 다양한 상위 로컬 네트워크 프로토콜을 사용할 수 있다. 또한 PPP에서 제공하는 사용자 인증이나 데이터 암호화, 압축 등의 보안 기능을 사용한다.

차이점으로는 PPTP는 IP기반의 네트워크만 지원하는 반면 L2TP는 패킷 중심의 지점 간 연결이기만 하면 통신이 가능하다. 또한 두 지점 사이에 하나의 터널만을 생성하는 PPTP와는 다르게 두 지점사이에 여러 개의 터널을 사용할 수 있으며 터널에 따른 QoS를 적용할 수 있다.

IP 데이터그램이 포함된 L2TP 패킷의 구조 IP 데이터그램이 포함된 L2TP 패킷의 구조

L2F (Layer 2 Forwarding Protocol)
시스코사에서 제안된 프로토콜로서 NAS 개시 VPN이기 때문에 사용자는 별도의 sw가 필요하지 않다. 하나의 터널에서 여러 개의 연결을 지원하여 다자간 통신이 가능하다. 전송 계층 프로토콜로 TCP가 아닌 UDP를 사용한다.
QoS (Quality of Service)
다른 응용 프로그램, 사용자, 데이터 흐름 등에 우선순위를 정하여 데이터 전송에 특정 수준의 성능을 보장하기 위한 능력을 말한다. QoS의 측정요소에는 대표적으로 Bandwidth, Delay, Jitter, Packet Loss를 꼽을 수 있다.

3.2. 3계층 프로토콜

IPSec이 대표적인 프로토콜이며 주로 LAN-to-LAN VPN에 이용된다. LAN-to-LAN VPN은 VPN 터널을 이용하여 통신하는 주체가 LAN 단위의 네트워크이며 주로 기업의 본사와 지사 사이의 네트워크를 말한다.

3계층 터널링 프로토콜의 특징으로는 네트워크 계층 레벨의 VPN을 구성한다는 것과 LAN-to-LAN 모델, 링크 계층과 독립적으로 구성된다는 점, 우수한 보안성을 가진다는 점이 있다.

1) IPsec (IP Security)

IPsec ESP를 사용하여 L2TP 트래픽 암호화 IPsec ESP를 사용하여 L2TP 트래픽 암호화

IPsec은 IP망에서 안전하게 정보를 전송하는 표준화된 3계층 터널링 프로토콜이다. IP계층의 보안을 위해 IETF에 의해 제안되었으며 VPN 구현에 널리 쓰이고 있다. AH (Authentication Header)와 ESP (Encapsulation Security Payload)를 통해 IP 데이터그램의 인증과 무결성, 기밀성을 제공한다.

IPsec에는 전송모드와, 터널모드가 존재한다. 전송모드는 IP 페이로드를 암호화하여 IP헤더로 캡슐화 하는 것이고 터널모드는 IP 패킷을 모두 암호화하여 전송하는 것을 말한다. 터널모드의 IPsec은 터널의 종단점과 첫 번째 라우터 사이는 평문으로 전송하며 라우터와 라우터 사이만 암호화가 되기 때문에 주로 망 간 연결에 사용된다.

IPsec의 해더는 AH와 ESP가 있다. AH는 데이터와 순서번호를 보유하고 있으며 송신자를 확ㅇ니하고 메시지가 송신되는 동안 수정되지 않았음을 보장하는 헤더로 암호화 기능이 없다. ESP는 IP 페이로드를 암호화하여 데이터 기밀성을 제공하므로 3자의 악의에 의해 데이터가 노출되는 것을 차단한다.

4. VPN 실습

4.1. Windows PPTP 환경 구축

본 실습에서는 Windows 7, Windows XP 환경에서 PPTP 프로토콜 서버와 클라이언트를 구축하여 서로 통신하는 과정에 대하여 알아본다. 두 환경 모두 가상머신을 통해서 구축 하며 Windows 7환경에서 서버를 먼저 구축하고 Windows XP 환경에서 구축된 서버로 접속을 한다.

Windows 7 VPN Server 구축

컴퓨터 연결 허용 창 컴퓨터 연결 허용 창

새 사용자 생성 창 새 사용자 생성 창

­먼저 해당 서버에 접속할 수 있는 Client 계정을 생성한다.

사용할 네트워크 종류 선택 창 사용할 네트워크 종류 선택 창

IP 설정 창 IP 설정 창

그 후 인터넷 연결을 허용하고 VPN에 사용할 네트워크를 선택한다. 그림 7에서는 IPv4를 선택하였다.

­해당 항목을 선택하면 IP 설정 창이 나타난다. 호출자가 LAN을 액세스 할 수 있도록 허용하고 IP 주소를 할당해 준다. 일반적으로 현재 네트워크와 충돌하지 않는 사설 IP 대역을 지정하여 설정한다. 그림 8에서는 10.1.0.1 ~ 10.1.0.10의 범위로 선택하였다.

데이터 보안 항목 체크 데이터 보안 항목 체크

­위의 설정을 마치고 ‘들어오는 연결’에 들어가 모든 사용자의 암호 및 데이터 보안 필요 항목을 체크한다. 이로써 Windows 7을 PPTP Server로 사용하기 위한 준비가 완료 되었다. 다음으로 Client를 설정한다.

Windows XP VPN Client 구축

Client Connection 창 Client Connection 창

Connection 종류 선택 Connection 종류 선택

­네트워크 설정에 접속하여 Create a new connection을 클릭하여 진행하도록 한다. 항목에서 VPN 관련 항목을 찾아 선택한다. ( connect to the network at my workplace )

Network Connection 선택 Network Connection 선택

Connection 할 Server 이름 설정 Connection 할 Server 이름 설정

­위의 Virtual Private Network connection 창을 선택하고 접속할 server의 이름을 임의로 설정한다.

Client VPN Server IP 입력 창 Client VPN Server IP 입력 창

Client VPN Connection 창 Client VPN Connection 창

­VPN Server Selection 항목에서는 Server의 IP를 기재해 주어야 한다. 본 실습에서는 Windows 7환경에서 구축한 server의 IP를 입력한다.

­위 과정을 모두 마치면 user name과 password를 입력하는 창이 나오고 server에서 등록하였던 client의 name, password를 입력하여 접속 할 수 있다.

Client VPN Networking 속성 창 Client VPN Networking 속성 창

Windows XP Advanced TCP/IP Settings Windows XP Advanced TCP/IP Settings

­만약 접속은 되었지만 인터넷 연결이 안 되는 경우에는 다음과 같이 설정한다. Security 탭에 접속을 하게 되면 VPN 서버에 따라 설정된 값이 다르게 출력이 되어있다. VPN 종류에 맞게 PPTP로 변경하고 IP 속성의 Advanced에 들어가 원격 네트워크에 기본 게이트웨이를 사용하도록 설정해야 인터넷 사용이 가능하다.

Server Client 접속 확인

Windows 7 VPN Server 연결 확인 Windows 7 VPN Server 연결 확인

VPN Client 연결 확인 1 VPN Client 연결 확인 1

VPN Client 연결 확인 2 VPN Client 연결 확인 2

Windows XP ipconfig 내역 Windows XP ipconfig 내역

­Server와 Client를 살펴보면 Server 측에 들어오는 연결이 하나 생성되어 있고 서버에서 접근을 허용한 temp 계정으로 접속을 하고 있다.

­Client는 VPN에 접속됨을 표시하고 있고 ipconfig를 통해 살펴보면 Server와 통신하기 위해 Server에서 설정하였던 가상 IP 대역 중 하나를 선택하여 사용하고 있음을 확인할 수 있다. Client 측에서 인터넷을 사용할 경우 서버의 IP를 통해서 통신하는 것을 확인하였다.

5. 결론

VPN에 대한 기본적인 개념과 프로토콜의 종류에 대하여 알 수 있었고 여러 프로토콜에 대해 정리하고 PPTP를 실습하면서 가상 네트워크에 대한 공부를 할 수 있었다.

참고문헌

[1] VPN 설명, URL : https://en.wikipedia.org/wiki/Virtual_private_network

[2] VPN 설명, 도서 : 알기 쉬운 정보보안 기사 산업기사, 조상진 저

[3] VPN 터널링 프로토콜, URL : http://m.blog.daum.net/allofone21c/1716763

[4] PPTP 실습 환경 구축, URL : http://studyforus.tistory.com/212

[5] PPTP 실습 환경 구축, URL : http://tibyte.kr/200