본문 바로가기

KITRI/네트워크 기초

VPN


@ VPN

VPN은 인터넷을 이용하여 고비용의 사설망을 대체하는 효과를 얻기 위한 기술로 인터넷망과 같은 공중망을 사용하여 둘 이상의 네트워크를 안전하게 연결하기 위하여 가상의 터널을 만들고 암호화된 데이터를 전송할 수 있도록 구성된 네트워크라고 정의할 수 있으며 공중망 상에서 구축되는 논리적인 전용망이라고 할 수 있다. 위키피디아에서는 다음과 같이 VPN을 정의하고 있다.

공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망이다. 가상 사설망에서 메시지는 인터넷과 같은 공공망 위에서 표준 프로토콜을 써서 전달되거나, 가상 사설망 서비스 제공자와 고객이 서비스 수준 계약을 맺은 후 서비스 제공자의 사설망을 통해 전달된다.

전용망-2

전용망 연결

vpn-1

VPN 연결

위의 그림에서와 같이 본점과 지점간에 전용망을 연결하는 것과 공중망(인터넷) 상에서 VPN 터널을 구성하고 VPN을 연결하는 것이 논리적으로 동일하다고 할 수 있으며, VPN은 인터넷을 통해 전용망과 같은 사설 네트워크를 구성할 수 있도록 해주는 기술이라고 이해하면 된다.


@ VPN 터널링 프로토콜

VPN 연결을 구성하는 가장 중요한 요소인 VPN 터널링 프로토콜은 크게 VPN 연결 지점간에 오가는 데이터 패킷의 암호화, VPN 터널의 생성 및 관리, 그리고 암호화 키 관리를 수행한다.  터널링 프로토콜은 데이터가 전송 네트워크를 통과할 수 있도록 하는 라우팅 정보를 포함한 헤더와 개인데이터를 캡슐화한다. 캡슐화된 프레임은 헤더에 추가되어 있는 라우팅 정보를 기반으로 인터넷과 같은 공중망을 경유하여 터널의 엔드포인트로 전송되고 목적지에 도달하면 디캡슐화 되어 최종 목적지로 향하게 된다.

대표적인  VPN 터널링 프로토콜로는 PPTP(Point-to-Point Tunneling Protocol), L2TP(Layer 2 Tunneling Protocol), IPsec(IP Security) 등을 들 수 있다.

@ PPTP(Point-to-Point Tunneling Protocol)

PPTP는 PPP(Point-to-Point) 접속을 확장하여 원격 사용자와 사설망 사이의 보안 접속을 제공하는 Layer 2 터널링 프로토콜로 마이크로소프트, 3Com 등이 공동으로 제안하였다.  PPTP는 인터넷 프로토콜인 TCP/IP를 그대로 이용하면서도 외부인이 접근할 수 없는 별도의 가상사설망을 구축할 수 있도록 해주는 프로토콜이다. PPTP를 사용하여 VPN 사용자(클라이언트)는 PPP(우리가 흔히 쓰는 다이얼업 방식의 인터넷 연결이 여기에 해당된다) 방식으로 서버에 접속한 후 인증을 받으면 VPN 터널이 생성되고 이를 통해 VPN 연결이 가능해진다. 주로 외부에서 사내의 서버에 접속하기 위해 널리 이용되며 Microsoft Windows, 안드로이드 등 다양한 OS에서 기본적으로 제공하고 있다.



pptp-capsule

위의 그림은 PPTP 프로토콜의 캡슐화 및 암호화 과정을 나타낸다. 그림에서와 같이 터널링된 데이터에 대해서 PPTP 프로토콜은 수정된 버전의 GRE(Generic Routing Encapsulation)를 사용하여 PPP 프레임을 캡슐화하고 캡슐화된 PPP 프레임의 페이로드에 대해 암호화나 압축을 수행하게 된다. 이 때 PPP 프레임은 MS-CHAP v2 또는 EAP-TLS 인증 프로세스에서 생성된 암호화 키를 사용하여 MPPE(Microsoft Point-to-Point Encryption, Microsoft 지점 간 암호화)로 암호화할 수 있다. 사용자 인증은 PPP 인증을 이용한다.

4.2 L2TP (Layer 2 Tunneling Protcol)

L2TP는 Microsoft가 제안한 PPTP와 Cisco가 제안한 L2F(Layer 2 Forwarding) 프로토콜을 결합한 것으로 PPTP의 장점과 L2F의 장점을 하나로 모으자는 의도로 개발된 프로토콜이다. PPTP와는 달리 L2TP는 IP 네트워크(UTP/IP) 뿐만 아니라 IP 전송계층이 없는 WAN 구간에서도 사용이 가능하며 X25, 프레임 릴레이, ATM(Asynchronous Transfer Moder) 등 다양한 네트워크를 지원한다는 장점이 있다. PPTP에 비해서 L2TP는 다음과 같은 차이점을 갖는다.

PPTP는 IP기반의 네트워크만 지원하는 반면 L2TP는 패킷 중심의 지점간 연결이기만 하면 통신이 가능하다. L2TP는 IP(TCP가 아닌 UDP 사용), 프레임 릴레이 PVC(permanent virtual circuit), X.25 VC(virtual circuit), ATM VC에서 사용할 수 있다.

PPTP는 두 지점 사이에 하나의 터널만 가능하지만 L2TP는 두 지점 사이에 여러개의 터널을 사용할 수 있으며 터널에 따른 QoS를 적용할 수 있다.

PPTP와 달리 PPP 데이터 그램을 암호화하지 않으므로 암호화에는 IPsec(IP Security)를 사용하는데 이러한 L2TP와 IPsec의 조합을 L2TP/IPsec이라고 한다.

L2TP/IPsec의 캡슐화는 L2TP 캡슐화와 IPsec 캡슐화의 두 단계로 구성된다.

l2tp-capsule

위의 그림과 같이 PPP 프레임(PPP 헤더+IP 데이터그램)이 L2TP 헤더 및 UDP 헤더와 함께 래핑된다.

ipsec-capsule

다음으로  L2TP 메시지가 IPsec ESP(Encapsulating Security Payload) 헤더 및 트레일러, 메시지 무결성과 인증을 제공하는 IPsec 인증 트레일러, 최종 IP 헤더와 함께 래핑된다. IP 헤더에는 VPN 클라이언트와 VPN 서버에 해당하는 원본 및 대상 IP 주소가 포함되어 있다. 이 때, L2TP 메시지는 IKE(Internet Key Exchange) 협상 프로세스에서 생성된 암호화키를 사용하여 DES(Date Encryption Standard) 또는 3DES(Triple DES)로 암호화된다. L2TP에서는 인증서 혹은 사전 공유키를 사용하여 인증을 수행한다.

4.3 IPsec(IP Security)

IPsec은 VPN 터널링의 업계 표준 프로토콜로 강력한 사용자 인증과 암호화를 제공하는 Layer 3 프로토콜이다. IETF IPsec Working Group에 의해 제안되었으며 데이터 송신자의 인증을 허용하는 인증 헤더(AH)와, 송신자의 인증 및 데이터 암호화를 함께 지원하는 보안 페이로드 캡슐화(ESP: Encapsulating Security Payload)의 두 종류의 보안 서비스를 제공한다.

인증 헤더(Authentication Header, AH):   데이터의 무결성과 인증 및 재사용 방지를 위한 헤더로 페이로드는 암호화하지 않아 완전한 기밀을 보장하지는 않으나 Replay Attack을 방지함

보안 페이로드 캡슐화(Encapsulating Security Payload, ESP): 데이터의 무결성과 인증 및 기밀성을 제공, 트랜스포트 계층 세그먼트를 암호화할 경우와 전체 IP 패킷을 암호화할 경우에 사용

IPsec은 보안 게이트웨이 간의 연결 상태에 따라 터널 모드와 전송(Transport) 모드의 두가지 모드로 나뉘어진다.

 터널 모드에서는 IP 헤더와 페이로드를 모두 암호화하지만 전송 모드에서는 페이로드만 암호화하는데 두 모드의 특징은 다음과 같다.

전송(Transport) 모드

IP 페이로드만 암호화되고 IP 헤더는 변하지 않음

  • 패킷에 작은 바이트(byte)만 더해지는 장점이 있음
    • 공용 네트워크상에서 패킷의 마지막 출발지와 목적지를 식별할 수 있으므로 QoS 등이 가능함
    • 클라이언트가 패킷에 대한 암호화, 복호화를 수행함
    • IP 헤더가 암호화되지 않으므로 Layer 4 이상에서는 트래픽을 분석할 수 있음
  • 터널 모드
    • IP 헤더와 페이로드가 모두 암호화되며 새로운 패킷의 페이로드가 됨
    • 라우터가 IPsec 프록시처럼 동작하게 하고 라우터가 호스트 대신에 암호화를 수행함
    • 출발지의 라우터가 패킷을 암호화하고 IPsec을 통해 전달함
    • 목적지의 라우터는 IPsec을 통해 전달된 패킷을 복호화 함
    • 단말이 IPsec을 수정할 필요가 없으며 트래픽을 분석할 수 없다는 장점이 있음

IPsec은 LAN-to-LAN 방식의 VPN과 Dialup-To-LAN 방식을 동시에 지원할 뿐 아니라 IPv6를 필수적으로 지원하도록 되어 있어서 확장성에 유리하다는 장점과 함께 서로 다른 VPN 제품들 간의 호환성을 극대화할 수 있다는 점에서 많은 장점이 있으나 IP 프로토콜 처리 비용 증가 및 통신 지연으로 인한 성능 저하의 우려가 존재한다.


@ IPSEC VPN 구성 실습

@ Site-to-Site IPSec VPN 

  

- 라우터에 vpn 모듈이 지원하면 비용이 들어가지 않는다.
- ISP는 사설 IP단을 모르기 때문에 로그의 흔적은 없다.

 

    단점
  - 라우터에 부하가 심함 (유입된 트래픽에 대해서 자신이 변형시킨다.)

 

   (2페이지)
   1. 공인 단에 대한 정책 수립
   1-1 공인 정책과 사설 정책의 링크 - 트래픽 정의
                                                  - 공인단과 사설단 링크

   2. 사설 단에 대한 정책 수립


 ◎ IPsec VPN 설정 흐름

1. ACL를 이용하여 VPN 대상으로 하는 트래픽 정의
2. SA 파라메터 값을 지정하기 위한 IKE 정책(ISAKMP SA = Phase 1)을 정의
3. 인증 관련 설정 값(공유키, 패스워드, IP 주소)을 설정
4. IPsec 통신을 하기 위한 트랜스폼-셋(Transform-set)을 정의
5. IPSec 정책을 정의(IPSec SA 생성 = Phase 2)
6. 인터페이스에 IPSec 정책을 적용


isakmp (Internet Security Association and Key Management Protocol):통신암호키 교환 규약
ike (Internet Key Exchange)

 


 

기존 인터넷을 이용하기 때문에 본사, ISP, 지사 라우터는 라우팅 프로토콜이 설정이 되어 있어야 한다.

본사 - ip route 192.168.2.0 255.255.255.0 10.10.3.1

지사 - ip route 192.168.1.0 255.255.255.0 10.10.2.1

 

 ◎ R3 설정

R3(config)#crypto isakmp policy 10 //(Phase 1).IKE 1(ISAKMP SA) 정책 설정 (2의 16승까지 사용)
R3(config-isakmp)#? 
     ISAKMP commands:
     authentication  Set authentication method for protection suite   // 인증
     default   Set a command to its defaults
     encryption  Set encryption algorithm for protection suite        // 암호화 방식 지정
     exit   Exit from ISAKMP protection suite configuration mode
     group   Set the Diffie-Hellman group      // 키 교환 방식 (1, 2, 5)
     hash   Set hash algorithm for protection suite    // 무결성 확인 방식
     lifetime   Set lifetime for ISAKMP security association   // 보안 정책 사용기간
     no   Negate a command or set its defaults
  (default, exit, no 빼고는 나머지 모두 설정 여기까지 페이지1 설정 완료)


R3(config-isakmp)#authentication pre-share   // 관리자간 미리 공유. pre-share
R3(config-isakmp)#encryption 3des              // 암호화 방식을 3des
R3(config-isakmp)#group 2             // Group 2로 설정
R3(config-isakmp)#hash md5         // 무결성을 위한 해쉬 알고리즘은 MD5 사용
R3(config-isakmp)#lifetime 3600      // 정책 사용기간 3600초(1시간동안은 일일이 정책들을 참고하지 않는다.)
R3(config-isakmp)#exit
  (공인정책 수립 완료)

 

R3(config)#crypto isakmp key 123$ address 10.10.3.1                                      //Pre-shared 키 설정, 공유키와 상대방 IP 주소 설정
R3(config)#access-list 110 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255   //IPSec 대상 트래픽 정의
R3(config)#crypto ipsec transform-set HOT esp-3des esp-sha-hmac              //트랜스폼-셋 설정(IPSec 통신 설정)
R3(cfg-crypto-trans)#exit

R3(config)#crypto map hot-map 10 ipsec-isakmp    //(Phase 2)IKE 2(IPsec SA) 정책 설정
R3(config-crypto-map)#match address 110            //전송시 유효한것만 지정
R3(config-crypto-map)#set peer 10.10.3.1              //리모트 공인 IP 
R3(config-crypto-map)#set transform-set HOT       //wangvpn 보호
R3(config-crypto-map)#exit

R3(config)#interface serial 1/0                           //인터페이스에 IPSec 정책 적용
R3(config-if)#crypto map hot-map
    (사설정책 수립 완료)

 같은 방법으로 지사 라우터에도 설정한다.

 


@ 실습 결과



@ PING을 날려서 세션이 있는지 확인

 


VPN 세션이 잡히지 않음. 디버깅했으나 확인이 되지 않았고 원인 찾는중..


@ 확인명령어
R3#sh crypto map                         // crypto map 전체 설정 내용 확인
R3#sh crypto ipsec transform-set  // 변환세트 확인

R3#sh crypto isakmp key       // pre-shared key 확인 ( cisco )
R3#sh crypto isakmp policy   // IKE Phase 1 정책을 확인

R3#sh crypto isakmp sa       // session 이 현재는 VPN 트래픽이 없어서 열려있지 않다. 
R3#ping 192.168.2.1 so lo 0    // 관심있는 트래픽을 보냈다
R3#sh crypto isakmp sa       // sassion 이 열린것을 볼 수 있다

R3#debug crypto isakmp       // debug 확인
R3#debug crypto ipsec        // debug 확인



자료 출처 : http://gotocloud.co.kr/?p=1280
    


'KITRI > 네트워크 기초' 카테고리의 다른 글

WPA  (0) 2017.10.19
test  (0) 2017.10.09
CHAP 인증  (0) 2017.10.09
트러블슈팅  (0) 2017.10.09
STP  (0) 2017.10.09