네트워크/Security 2015. 2. 16. 18:26

@[그림 17-12] 네트워크 토폴로지 preconfig.txt

[LAB-22] EZVPN I(Router Server-to-Router Client).txt

[LAB-23] EZVPN II(Router Server-to-PC Client).txt

 

[CCNP 교재]

 

17IPSec VPN

 

           EZVPN 개요 및 구성 요소 ········· Page 431

           EZVPN 구성 ········· Page 432

 

 

@ EZVPN(Easy VPN)

 

EZVPN은 장비 대 장비 인증을 실시하여 영구적인 IPSec VPN을 수행하는 것이 아니라, 평상시에는 IPSec VPN이 구성되어 있지 않다가, 외부에서 접속을 실시하면 외부 접속자와의 IPSec VPN이 시작되는 서비스이다. 그래서 EZVPN는 자택 근무자, 또는 이동 근무자들에게 원격에서 IPSec VPN을 손쉽게 사용할 수 있는 장점을 갖고 있다. 참고로 EZVPN과 비슷한 솔루션으로는 MS에서 개발한 PPTP VPN이 있다.

 

1) EZVPN 구성 요소

 

Site-to-Site IPSec VPN IKE 1단계를 성립하기 위해서 장비 대 장비 인증만 실시하는 반면에, EZVPN은 라우터로 접속하는 사용자 인증도 실시한다. [ 17-17] EZVPN을 구현하기 위한 요소들을 설명하고 있다.

 

[ 17-9] EZVPN 구성 요소

 

구성 요소

내용

EVS

EasyVPN 서버를 의미한다. 보통 VPN 종단 장비 역할을 수행한다.

EVC

EasyVPN 클라이언트를 의미한다.

ISAKMP/IKE

수동키 설정은 지원하지 않으며, 오로지 IKE를 사용해야 한다.

인증 방식

Pre-Share Key RSA Signature만 지원한다.

암호화 알고리즘

DES, 3DES, AES

해시 알고리즘

MD5, SHA

키 교환 방식

Diffie-Hellman Group 2, 5 (Group 1은 지원하지 않는다.)

IPSec 프로토콜

ESP 터널 모드만 지원한다.

IP 주소 할당

클라이언트에게 할당할 Local Pool를 정의한다.

접속 사용자 인증

AAA 기능을 시작하여, 라우터 또는 인증 서버(RADIUS, TACACS+)를 이용하여 사용자 인증을 실시한다.

그룹과 사용자 정책

그룹과 사용자 별로 서로 다른 정책을 구현할 수 있다.

XAUTH 인증

사용자 인증(username, password)을 하기 위한 기능을 수행한다. 만약, 장비 인증을 하기 위한 키가 유출되어도, 사용자 인증을 수행하기 때문에 IPSec VPN 해킹을 방지할 수 있다.

스프릿 터널링

본사로 전송되는 패켓만 IPSec에 적용하는 기능을 수행한다.

RRI 기능

접속한 클라이언트로 패켓 응답이 가능하도록 자동으로 정적 경로를 생성하는 기능을 수행한다.

 

  클라이언트가 본사 EZVPN 서버에 접속하여 IPSec VPN 연결이 성립되면, 클라이언트는 두개의 IP 주소를 갖게 된다. 이때, 하나는 클라이언트 NIC에 설정된 IP 주소이며, 다른 하나는 EZVPN 서버가 할당한 본사 내부 IP 주소이다. 클라이언트는 본사로 패켓을 전송할때에는 ESP 터널 모드를 사용하며, 패켓의 출발지 IP 주소는 EZVPN 서버가 할당해준 것을 사용하고, 목적지 IP 주소는 본사의 EZVPN 서버의 주소가 된다. , 본사 EZVPN 서버 입장에서는 클라이언트가 마치 로컬 네트워크에 연결된 것처럼 인식한다. , 클라이언트가 인터넷을 사용할 경우에는 자신의 NIC에 설정된 IP 주소를 출발지로 사용한다.

 

  2) EZVPN 동작 과정

 

  EZVPN 동작 과정은 다음과 같다.

 

① 클라이언트가 EZVPN 서버로 접속을 실시한다.

② 클라이언트가 EZVPN 서버에게 자신의 IKE 1단계 정책 내용을 전송한다.

EZVPN 서버는 클라이언트로부터 수신한 IKE 1단계 정책 내용을 검색하여 관리용 접속 정보를 생성한다.

EZVPN 서버는 XAUTH 기능을 수행하여 사용자에 대한 인증을 수행한다.

IKE 모드 설정 기능을 이용하여 EZVPN 서버가 클라이언트에게 정책 내용을 전송한다.

EZVPN 서버는 클라이언트로 패켓 응답이 가능하도록 RRI(Reverse Routing Injection) 기능을 이용하여 클라이언트 네트워크에 대한 정적 경로를 생성하여 라우팅 테이블에 등록한다.

EZVPN 서버와 클라이언트간에 IKE 2단계 SA 정보를 교환한다.

 

 

EZVPN 구성

 

그럼 [그림 17-11]을 참조하여 R1 EZVPN 서버, R3 EZVPN 클라이언트로 구성하도록 하자.

 

[그림 17-11] 네트워크 토폴로지

 

  

 ① 사용자 인증을 위한 AAA 설정

 

[예제 17-24] R1에서 사용자 정보와 AAA 관련 설정

R1(config)#username admin privilege 15 password cisco

R1(config)#

R1(config)#aaa new-model

R1(config)#aaa authentication login EZVPN-LOGIN local

R1(config)#aaa authorization network EZVPN-AUTH local


 

IKE 1단계 설정

 

[예제 17-25] R1에서 IKE 1단계 설정

R1(config)#crypto isakmp policy 10

R1(config-isakmp)#authentication pre-share

R1(config-isakmp)#hash md5

R1(config-isakmp)#encryption 3des

R1(config-isakmp)#group 2

 

 

EVC에게 할당할 IP 주소 범위 설정

 

[예제 17-26] R1에서 Local Pool 설정(범위 : 150.1.13.100 ~ 150.1.13.110)

R1(config)#ip local pool EZ-POOL 150.1.13.100 150.1.13.110

R1(config)#crypto isakmp client configuration address-pool local EZ-POOL

 

 

   ④ EVS로 접속될 그룹 생성

 

[예제 17-27] R1에서 ACL 설정과 EVC 그룹 정책 설정

R1(config)#access-list 113 permit ip 150.1.13.0 0.0.0.255 any

R1(config)#crypto isakmp client configuration group EZ-GROUP

R1(config-isakmp-group)#key cisco1234

R1(config-isakmp-group)#pool EZ-POOL

R1(config-isakmp-group)#dns 168.126.63.1 168.126.63.2

R1(config-isakmp-group)#domain cisco.com

R1(config-isakmp-group)#acl 113

 

 

IKE 2단계 설정과 RRI 기능 실시

 

[예제 17-28] R1에서 IKE 2단계 설정과 RRI 기능 실시

R1(config)#crypto ipsec transform-set TEST esp-3des esp-md5-hmac

R1(cfg-crypto-trans)#exit

R1(config)#crypto dynamic-map EZVPN 10

R1(config-crypto-map)#set transform-set TEST

R1(config-crypto-map)#reverse-route

 

 

‘crypto-map’을 이용한 EZVPN 구성 요소 통합

 

[예제 17-29] R1에서 ‘crypto-map’을 이용한 EZVPN 구성 요소 통합 설정

R1(config)#crypto map EVS client authentication list EZVPN-LOGIN

R1(config)#crypto map EVS isakmp authorization list EZVPN-AUTH

R1(config)#crypto map EVS client configuration address respond

R1(config)#crypto map EVS 10 ipsec-isakmp dynamic EZVPN

 

 

‘crypto map’ 인터페이스 적용

 

[예제 17-30] R1 s1/0.12 인터페이스에 ‘crypto map’ 적용

R1(config)#int s1/0.12

R1(config-subif)#crypto map EVS

 

 

R3에서 EVC 구성

 

[예제 17-31] R3에서 EZVPN 클라이언트 설정

R3(config)#crypto isakmp policy 10

R3(config-isakmp)#authentication pre-share

R3(config-isakmp)#hash md5

R3(config-isakmp)#encryption 3des

R3(config-isakmp)#group 2

R3(config-isakmp)#exit

 

R3(config)#crypto ipsec client ezvpn EZVPN

R3(config-crypto-ezvpn)#connect auto

R3(config-crypto-ezvpn)#group EZ-GROUP key cisco1234

R3(config-crypto-ezvpn)#mode network-extension

R3(config-crypto-ezvpn)#peer 13.13.9.1

R3(config-crypto-ezvpn)#exit

 

R3(config)#int s1/0.23

R3(config-subif)#crypto ipsec client ezvpn EZVPN outside

R3(config-subif)#

R3(config-subif)#int fa0/0

R3(config-if)#crypto ipsec client ezvpn EZVPN inside

 

R1 R3에서 EZVPN 서버 및 클라이언트 설정이 완료되었다면, R1에서 다음과 같이 IPSec 연결 상태 정보를 확인하도록 하자.

 

[예제 17-32] R1에서 확인한 IKE 1단계와 IKE 2단계 연결 상태

R1#show crypto session

Crypto session current status

 

Interface: Serial1/0.12

Session status: DOWN-NEGOTIATING

Peer: 13.13.8.3 port 500

  IKE SA: local 13.13.9.1/500 remote 13.13.8.3/500 Inactive

 

  현재 EVS R1으로 클라이언트 접속이 없기 때문에, IPSec 연결 상태가 ‘DOWN’ 상태인 것을 알 수 있다. 그럼 R3에서 다음과 같은 메시지가 주기적으로 출력되는지 확인하도록 하자.

 

[예제 17-33] R3에서 출력되는 EZVPN 접속 방법 메시지

R3#

00:36:59: EZVPN(EZVPN): Pending XAuth Request, Please enter the following command:

00:36:59: EZVPN: crypto ipsec client ezvpn xauth

 

  R3에서는 주기적으로 crypto ipsec client ezvpn xauth’ 메시지가 출력되는데, 이는 EVS로 접속하기 위한 방법을 알려주는 수단이다. 그럼 다음과 같이 R3에서 EVS R1으로 접속을 실시하도록 하자.

 

[예제 17-34] R3에서 EVS R1으로 접속 시도

R3#crypto ipsec client ezvpn xauth

Username: admin

Password:

R3#

00:37:17: CRYPTO-6-EZVPN_CONNECTION_UP: (Client) User= Group=EZ-GROUP Client_public_addr=13.13.8.3 Server_public_addr=13.13.9.1 NEM_Remote_Subnets=150.3.13.10/255.255.255.0

 

  접속이 완료되었면, R1 R3에서 IPSec 연결 상태를 확인하도록 하자.

 

[예제 17-35] R1에서 확인한 IKE 1단계와 IKE 2단계 연결 상태

R1#show crypto session

Crypto session current status

 

Interface: Serial1/0.12

Username: admin

Group: EZ-GROUP

Session status: UP-ACTIVE    

Peer: 13.13.8.3 port 500

  IKE SA: local 13.13.9.1/500 remote 13.13.8.3/500 Active

  IPSEC FLOW: permit ip 150.1.13.0/255.255.255.0 150.3.13.0/255.255.255.0

        Active SAs: 2, origin: dynamic crypto map

 

R3#show crypto session

Crypto session current status

 

Interface: Serial1/0.23

Session status: UP-ACTIVE    

Peer: 13.13.9.1 port 500

  IKE SA: local 13.13.8.3/500 remote 13.13.9.1/500 Active

  IPSEC FLOW: permit ip 150.3.13.0/255.255.255.0 150.1.13.0/255.255.255.0

        Active SAs: 2, origin: crypto map

 

  정보 확인 결과, R1 R3 IPSec 연결 상태가 ‘UP-ACTIVE’인 것을 알 수 있다. 그럼 R1에서 라우팅 테이블을 확인하여 RRI 기능으로 하여금 클라이언트 서브넷 ‘150.3.13.0/24’ 정보가 정적 경로로 생성되었는지 확인하도록 하자.

 

[예제 17-36] R1에서 확인한 클라이언트 서브넷 정보

R1#show ip route

~ 중간 생략 ~

     150.1.0.0/24 is subnetted, 1 subnets

C       150.1.13.0 is directly connected, FastEthernet0/0

     150.3.0.0/24 is subnetted, 1 subnets

S       150.3.13.0 [1/0] via 13.13.8.3

 

  그럼 클라이언트 서브넷에 위치한 R5에서 ‘150.1.13.254’ Ping 테스트를 실시하도록 하자.

 

[예제 17-37] R1에서 확인한 패켓 암호화/복호화 통계

R5#ping 150.1.13.254 repeat 10

 

Type escape sequence to abort.

Sending 10, 100-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds:

.!!!!!!!!!

Success rate is 90 percent (9/10), round-trip min/avg/max = 68/79/96 ms

 

  Ping 테스트가 완료되었다면, R1에서 IPSec을 이용하여 실시된 패켓 암호화 및 복호화 상태를 확인하도록 하자.

 

[예제 17-38] R1에서 확인한 패켓 암호화/복호화 통계

R1#show crypto engine connections active

Crypto Engine Connections

 

   ID Interface  Type  Algorithm           Encrypt  Decrypt IP-Address

    1 Se1/0.12   IPsec 3DES+MD5                  0       10 13.13.9.1

    2 Se1/0.12   IPsec 3DES+MD5                  9        0 13.13.9.1

 1001 Se1/0.12   IKE   MD5+3DES                  0        0 13.13.9.1

 

  정보 확인 결과, IKE 2단계 SA를 이용하여 패켓 암호화 및 복호화가 정상적으로 처리되는 것을 알 수 있다 그럼 R3에서 EZVPN 접속을 해지하도록 하자.

 

[예제 17-39] R3에서 EZVPN 접속 해지

R3#clear crypto ipsec client ezvpn EZVPN

R3#% Nameserver entry 168.126.63.1 does not exist

% Nameserver entry 168.126.63.2 does not exist

 

R3#

00:45:38: %CRYPTO-6-EZVPN_CONNECTION_DOWN: (Client)  User=  Group=EZ-GROUP  Client_public_addr=13.13.8.3  Server_public_addr=13.13.9.1

 

 접속 해지가 완료되었다면, R1에서 IPSec 연결 상태를 확인하도록 하자.

 

[예제 17-40] R1에서 확인한 IKE 1단계와 IKE 2단계 연결 상태

R1#show crypto session                  

Crypto session current status

 

Interface: Serial1/0.12

Session status: DOWN-NEGOTIATING

Peer: 13.13.8.3 port 500

  IKE SA: local 13.13.9.1/500 remote 13.13.8.3/500 Inactive

IKE SA: local 13.13.9.1/500 remote 13.13.8.3/500 Inactive

 

'네트워크 > Security' 카테고리의 다른 글

리모트 접속 관리 & DNS & SSH & NTP  (0) 2015.03.27
PKI(CA) & IPSec VPN(RSA Signature)  (0) 2015.02.16
DMVPN(Dynamic Multipoint VPN)  (0) 2015.02.16
GRE over IPSec VPN  (0) 2015.02.16
Site-to-Site IPSec VPN  (0) 2015.02.16
Posted by 김정우 강사(카카오톡 : kim10322)
,


Q