네트워크/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 교재]
제17장 IPSec 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# |
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# |
접속이 완료되었면, 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# |
접속 해지가 완료되었다면, 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 |