한 걸음 두 걸음

네트워크 Network ] VPN 설정 - 패킷트레이서 Packet Tracer 본문

CSE/Network

네트워크 Network ] VPN 설정 - 패킷트레이서 Packet Tracer

언제나 변함없이 2019. 12. 5. 16:35
반응형

실습목표

  1. 간단한 멀티 라우터 네트워크 설정
  2. IKE 프로토콜 기반의 VPN 설정
  3. 패킷 헤더 분석

1. Multi- Router 네트워크 환경 설정

간단하게 멀티 라우터 네트워크를 설정해줍니다.

각 PC IP설정, 라우터 IP설정을 해주어야 하는데, 2개 이상의 라우터이므로 멀티 라우팅 설정해줍니다.

번외

Multi- Router IP 주소 설정방법

네트워크 구성도는 다음과 같습니다. 라우터 설정부터 다 처음부터 해보면,

라우터 1번에 대해 왼쪽 포트 이렇게 커맨드를 작성하셔도 되고,

Router>
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#int gi0/0
Router(config-if)#ip add 192.168.1.254 255.255.255.0
Router(config-if)# no sh

라우터 1번에 대해 오른쪽 포트, 이렇게 창을 열어서 진행하셔도 좋습니다.

그렇게 3개의 라우터에 모두 IP를 설정해주면

맨 위에 있던 네트워크 구성도처럼 모두 초록불이 됩니다. 주황불은 시간 지나면 나아요~

각 PC에도 IP를 줍니다.

Static라우팅도 설정해줍니다.

왼쪽처럼 명령어로 하셔도 되고 환경 설정에서 추가해주셔도 됩니다. 경로가 몇 개 안되니 정적으로 라우팅설정을 해서 보다 효율적으로 가게 하겠습니다. 위와같이 라우터가 다수 존재하는 상황에서는 라우팅설정을 해주어야합니다. summerization해도 되는데 안해도 상관없습니다.


위는 멀티라우팅 방법인데 이를 참고해서 적용시키면 VPN실습을 위한 기본 세팅이 된 것입니다.


R1과 R3사이에 VPN설정을 해주겠습니다. 그러면 R1내의 모든 호스트, R3내의 모든 호스트에 적용되겠죠? 일부만 할 수 있지만 이번엔 전체에 VPN을 적용시켜보도록 하겠습니다.

2. IKE 프로토콜 기반의 VPN 설정

IKE 1단계 터널 매개변수 정의

  1. 정책 우선순위
    Diffie-Hellman를 써서 암호화에 쓸 키를 자동으로 생성하도록 설정해줍니다.
    Router(config)# crypto isakmp policy [정책 식별 번호]
    형식입니다.

    Router>
    Router>enable
    Router#conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    Router(config)#crypto isakmp policy 1 
    Router(config-isakmp)#

    이 때 [정책 식별 번호]
    정책의 우선 순위 레벨을 정의하기 위해 사용되며 고유해야 합니다.
    1에서 10,000 사이의 숫자를 지정하며, 숫자가 높을수록 우선 순위가 높습니다.

    라우터 1에는 policy 1을, 라우터 3에는 policy 2를 설정해주었습니다.

  2. 암호화 알고리즘 지정
    암호방식은 어떤 것을 쓸 것인지 지정해줍니다.des, 3des, aes 등의 암호방식이 있죠?
    Router(config-isakmp)# encryption [암호화 알고리즘]
Router(config-isakmp)#encryption 3des

IKE 암호화 알고리즘은 다음과 같이 있습니다.

3DES: 168-bit 3DES-CBC암호화 알고리즘
AES128: 128-bit AES-CBC암호화 알고리즘
AES192: 192-bit AES-CBC암호화 알고리즘
AES256: 256-bit AES-CBC암호화 알고리즘
DES: 56-bit DES-CBC암호화 알고리즘

저는 R1과 R3에 모두 Router(config-isakmp)#encryption 3des로 3DES를 사용해주었습니다.

  1. 공개키정보를 주받아야하는데 제 3자에게 노출이 되지 않도록 해시함수를 이용합니다.(양쪽 동일한 해시사용)
    Router(config-isakmp)# hash [해시 알고리즘]
    여기서 사용하는 해시 알고리즘은 md5,sha ,sha1-96., sha2-256-128, sha2-384-192 등 다양한 알고리즘이 있습니다.

    두 라우터에 모두 sha알고리즘을 적용시켜주었습니다.

    Router(config-isakmp)#hash sha
  2. 상대방이 보낸 메세지가 맞는지 확인하기 위해 인증 기법을 정해줍니다.

Router(config-isakmp)# authentication [인증 방식]

여기서 인증방식은 rsa-sig, rsa-encr,pre-share ,ecdsa-256 ,ecdsa-384 등이 있습니다.

pre-share는 상대방이 미리 정한 암호를 알고있는지 확인하는 방식입니다.(해시값을 만들 때 함께 넣어 HMAC으로 활용합니다.)
사실은 실제로 공인인증서를 통해서 암호를 나눠야하지만 간단하기 위해 pre-share를 사용해봤습니다.
rsa-sig는 RSA s서명입니다.
ecdsa-256는 ECDSA-256-bit 서명입니다.
ecdsa-384: ECDSA-384-bit 서명입니다.

Router(config-isakmp)#authentication pre-share 
  1. Diffie-Hellman 그룹 지정
    Router(config-isakmp)# group [DH 그룹 번호]
    이 때 DH그룹번호에 따라 사용되는 암호의 크기가 다릅니다. 암호의 크기가 클 수록 보안성은 좋아지지만, 계산하는데 시간이 더 걸려서 성능이 떨어지므로 적절한 것으로 그룹을 설정해야합니다.
    1그룹은 768bit
    2그룹은 1,024bit
    5그룹은 1,536bit
    이므로 R1, R3에 모두 2그룹으로 적용시켜주었습니다.

  2. 보안 연계(SA) 수명 시간 지정
    VPN을 한 번 설정하면 이는 얼마의 기간동안 유효하게 할 것인가 정합니다.

  3. 시간이 지나면 다시 설정해주어야합니다.

    Router(config-isakmp)# lifetime [VPN 지속시간(s)]

    저는 24시간으로 해서 86400으로 설정해주었습니다.

    Router(config-isakmp)#lifetime 86400
  4. 사전 공유 열쇠 지정(인증 기법을 pre-share로 선택한 경우)
    상대 IP주소는 상대 라우터의 IP주소입니다.

    Router(config)# crypto isakmp key [비밀번호] address [상대 IP 주소]

    여기서 비밀번호는 두 라우터 동일하게 설정해주었습니다.

    Router1(config)# crypto isakmp key TestKey address 220.10.4.2
  • 이제 R1 R2사이에 안전하게 정보를 교환할 수 있는 채널이 형성되었습니다.

IKE 2단계 터널 매개변수 정의

실제 데이터를 주고 받을 때 어떤 암호화를 하고 양 방향 같은 암호화방식을 사용할지 등은 2단계에서 합니다.
(평문을 암호문으로 바꿀 때 트랜스폼셋을 설정하듯 어떻게 암호화 할 것인지, 어떻게 인증할 것인지가 주입니다.)

  1. 환 집합 정의
    서로 같은 걸로 해주었네요.

    Router(config)# crypto ipsec transform-set [정책 식별 이름] [IPsec 암호화 알고리즘] [인증 알고리즘]

    이 때 두 라우터에 같은 알고리즘 esp-3des esp-sha를 적용시켜주었습니다

    Router(config)# crypto ipsec transform-set Router1Transform esp-3des esp-sha

     

  2. 보안 대상 트래픽 접근 제어 목록 지정
    양 쪽 라우터가 포함된 네트워크 내 호스트에 모두 VPN을 설정해줍니다. 일부만 해도 되지만 모두 해주겠습니다.

    Router1(config)# access-list 101 permit ip 220.10.1.0 0.0.0.255 220.10.5.0 0.0.0.255
  3. 비밀지도 작성

    Router(config)# crypto map [정책 식별 이름] [정책 식별 번호] ipsec-isakmp

    를 사용하며,

    Router1(config)# crypto map Router1CryptoMap 10 ipsec-isakmp

    처럼 활용하면 됩니다. 여기서 정책식별이름은 두 라우터 동일하게 10으로 설정해주었습니다.

    이 비밀지도 작성은

    Router(config-crypto-map)# set peer [상대 IP 주소]
    Router(config-crypto-map)# match address [접근 제어 목록]
    Router(config-crypto-map)# set transform-set [IPsec 정책 이름]

    로 해주어야 합니다. 각 라우터 1과 3에 설정해줍니다.

    마지막으로 인터페이스에 비밀지도 적용하기 위해서는

    Router1(config)# int s0/0/0
    Router1(config-if)# crypto map Router1CryptoMap

    이런식으로 설정해줍니다. Router3는 Router3CryptoMap으로 해주세요.

이 때 두 라우터에 같은 알고리즘 esp-3des esp-sha을 적용시켜주었습니다.


이제 패킷의 헤더를 분석해보면 목적지 라우터까지 추가 헤더ESP가 붙어서 함께 갑니다.

 

레퍼런스 : https://www.arubanetworks.com/techdocs/ArubaOS_84_Web_Help/content/arubaframestyles/1commandlist/crypto_isakmp_policy.htm

반응형