network 보안

GRE over IPSec VPN 및 이중화

byeong07 2016. 9. 5. 01:26

 

 

 <HQ_VPN>

 

 

 

conf t
int tunnel 1
tunnel mode gre ip
ip add 10.100.1.1 255.255.255.252
tunnel source fastethernet 0/1
tunnel destination 1.1.100.6
keepalive 10 3 -> 10초마다 살아있는지 확인,3번 반복할때 1번도 답변이 오지 않으면 keepalive가 된 것이다.
exit

int tunnel 2
tunnel mode gre ip
ip add 10.100.1.5 255.255.255.252
tunnel source fastethernet 0/1
tunnel destination 1.1.100.10
keepalive 10 3
exit

 

 

router ospf 1
net 10.100.1.1 0.0.0.0 area 0
net 10.100.1.5 0.0.0.0 area 0
           
 New IP  | GRE | IP | OSPF 
 |                                 
 ---> So : 1.1.100.1      --> So : 10.100.1.5
        De : 1.1.100.10          De : 224.0.0.5

 
공중망을 통해서 교환할 수 없지만
GRE가 New ip
IPSec은 GRE 통해서 dynamic 지원된다.

 

 

<Branch1>

 

 

conf t
int tunnel 1
tunnel mode gre ip
ip add 10.100.1.2 255.255.255.252
tunnel source fastethernet 0/0
tunnel destination 1.1.100.1(tunnel의 목적지 ip를 광고하면 안된다.)
keepalive 10 3
exit

router ospf 1
net 10.100.1.2 0.0.0.0 area 0
net 10.2.2.2 0.0.0.0 area 0

 

exit

 

 

<Branch2>

 

 

conf t
int tunnel 2
tunnel mode gre ip
ip add 10.100.1.6 255.255.255.252
tunnel source fastethernet 0/0
tunnel destination 1.1.100.1
keepalive 10 3
exit

router ospf 1
net 10.100.1.6 0.0.0.0 area 0
net 10.3.3.3 0.0.0.0 area 0


   New IP | GRE |  IP | ICMP
    |                        ---> So : 10.10.12.1
    ----> So : 1.1.100.1        De : 10.3.3.3
           De : 1.1.100.10


- Recursive Routing

 

 

 

 

-> Recursive Routing로 up,down이 되는 메시지가 나온다. 

 

 

 


HQ_VPN에서 실제 ip 인터페이스를 광고하면 
Branch1,Branc2에서 로그가 나온다.

 

- GRE Tunnel의 경우 자신이 설정한 tunnel destination
  주소를 해당 tunnel 인터페이스로 광고받게 되면 해당
  tunnel interface가 down과 up상태를 반복하게 된다.

     -> 이를 Recursive routing이라 한다.

 


- 결과적으로 tunnel의 반대편 Device에서 tunnel
  destination 주소를 Routing Protocol로 광고해서는 안된다.

 


tunnel이 살아나려면 목적지 정보가 있어야 되는데 
tunnel 연결된 반대편 장비에서는 반드시 tunnel의 목적지를 광고하면 안된다.

 


 

-  GRE over IPSec VPN
  
  GRE Tunnel의 경우 원격지 Site의 장비와
  Dynamic Routing Protocol을 사용하여 정보
  교환이 가능하다.

  하지만 GRE는 암호화 기능을 제공하지 않기 때문에
   보안성이 없다.

   이 경우 GRE Tunnel 자체를 IPSec으로 보호하게
   되면 Dynamic Routing Protocol을 사용하면서
   GRE Tunnel을 통과하는 모든 패킷에게 보안을
   제공할 수 있다.

 

 

 <HQ_VPN>

 

 


conf t
crypto isakmp policy 1
 authentication pre-share
 encryption aes
 hash sha
 group 2
 lifetime 3600

crypto isakmp key cisco321 address 1.1.100.6
crypto isakmp key cisco321 address 1.1.100.10

crypto ipsec transform-set IPSEC_SA esp-aes esp-sha-hmac

ip access-list extended HQ->Branch1
 permit gre host 1.1.100.1 host 1.1.100.6
      -> 프로토콜 필드는 New IP에 들어있는 것이다.

 

 

 

 


ip access-list extended HQ->Branch2
 permit gre host 1.1.100.1 host 1.1.100.10
crypto map VPN_T 1 ipsec-isakmp
match address HQ->Branch1
set transform-set IPSEC_SA
set peer 1.1.100.6

crypto map VPN_T 2 ipsec-isakmp
match address HQ->Branch2
set transform-set IPSEC_SA
set peer 1.1.100.10

int fa 0/1
crypto map VPN_T

 

<Branch1>

 

 

 

conf t
crypto isakmp policy 1
 authentication pre-share
 encryption aes
 hash sha
 group 2
 lifetime 3600

 

 

crypto isakmp key cisco321 address 1.1.100.1

 

 

 

 

crypto ipsec transform-set IPSEC_SA esp-aes esp-sha-hmac

 

 

 

 

 

ip access-list extended Branch1
 permit gre host 1.1.100.6 host 1.1.100.1

crypto map VPN_T 1 ipsec-isakmp
match address Branch1
set transform-set IPSEC_SA
set peer 1.1.100.1

int fa 0/0
crypto map VPN_T

 

 


 <Branch2>

conf t
crypto isakmp policy 1
 authentication pre-share
 encryption aes
 hash sha
 group 2
 lifetime 3600

crypto isakmp key cisco321 address 1.1.100.1

crypto ipsec transform-set IPSEC_SA esp-aes esp-sha-hmac

ip access-list extended Branch2
 permit gre host 1.1.100.10 host 1.1.100.1

crypto map VPN_T 1 ipsec-isakmp
 match address Branch2
 set transform-set IPSEC_SA
 set peer 1.1.100.1

 

 

 


int fa 0/0
 crypto map VPN_T

 

 

 

 

 

show crypto isakmp sa

 

 
vpn과 isp 캡쳐

 


 - IPSec tunnel mode

        New IP    | ESP  | New IP | GRE |  IP | ICMP | trailer (hash 코드)
          (GRE)                             --> so : 1.1.100.1       IP --> so 10.10.12.1
            |                                       De : 1.1.100.6                 de: 10.2.2.2
           ------> So : 1.1.100.1                
                      De : 1.1.100.6    

 
 
IPsec transport mode
 
        New IP    | ESP  | GRE |  IP | ICMP | trailer (hash 코드)
        (GRE)                           --> So : 10.10.12.1         
         --> So : 1.1.100.1              De : 10.2.2.2
               De : 1.1.100.6    
 
     esp가 뒤에 오는 것이 transport mode 
-> 부하를 줄이는 것도 transport mode

 

 

 

 

 

 

R1에서 10.2.2.2, 10.3.3.3 ping(10.2.2.2 repear 10000)을 하고
캡쳐하면 ESP로 보인다.

 

 

 
- Transport 모드 변경

<HQ_VPN/Branch1/Branch2>

 

 

 

 

 

 

 

conf t
crypto ipsec transform-set IPSEC_SA esp-aes esp-sha-hmac
 mode transport


- 설정 후 다음과 같이 VPN 연결을 끊고, 다시 연결되게
  만들자.

<HQ_VPN>

 

 

 

 

-> 1.1.100.6,1.1.100.10 session 끊는 설정

 

 

 <Branch1/Branch2>

 

 

 

 

clear crypto session remote 1.1.100.1

** Verify **

show crypto ipsec sa

 

 

 

 


 

- GRE over IPSec VPN 이중화 


<R1>

 

 

 


conf t
int fa 0/1
ip add 10.10.13.1 255.255.255.0
no shut

router ospf 1
net 10.10.13.1 0.0.0.0 area 0


 

<ISP>

 

 

 

 

conf t
int fa 2/0
 ip add 1.1.100.13 255.255.255.252
 no shut

<Branch1>

 


 

conf t
int tunnel 2
tunnel mode gre ip
ip add 10.100.1.14 255.255.255.252
tunnel source fastethernet 0/0
tunnel destination 1.1.100.14
keepalive 10 3
exit

router ospf 1
net 10.100.1.14 0.0.0.0 area 0

 

 

 

crypto isakmp key cisco321 address 1.1.100.14

ip access-list extended Branch1->HQ2
 permit gre host 1.1.100.6 host 1.1.100.14

crypto map VPN_T 2 ipsec-isakmp
 match address Branch1->HQ2
 set transform-set IPSEC_SA
 set peer 1.1.100.14

 
<Branch2>

 

 

 

conf t
int tunnel 1
tunnel mode gre ip
ip add 10.100.1.10 255.255.255.252
tunnel source fastethernet 0/0
tunnel destination 1.1.100.14
keepalive 10 3
exit

 

 


 

router ospf 1

net 10.100.1.10 0.0.0.0 area 0

 

 

 


crypto isakmp key cisco321 address 1.1.100.14

ip access-list extended Branch2->HQ2
 permit gre host 1.1.100.10 host 1.1.100.14

crypto map VPN_T 2 ipsec-isakmp
 match address Branch2->HQ2
 set transform-set IPSEC_SA
 set peer 1.1.100.14


<HQ_VPN2>

 

 

 

conf t
int fa 0/0 
ip add 10.10.13.2 255.255.255.0
 no shut

int fa 0/1
 ip add 1.1.100.14 255.255.255.252
 no shut

ip route 0.0.0.0 0.0.0.0 fa 0/1 1.1.100.13

 

 

 

int tu 2
 ip add 10.100.1.13 255.255.255.252
 tunnel source 1.1.100.14
 tunnel destination 1.1.100.6
 keepalive 10 3

int tu 1
 ip add 10.100.1.9 255.255.255.252
 tunnel source 1.1.100.14
 tunnel destination 1.1.100.10
 keepalive 10 3

 

 


router ospf 1
 net 10.10.13.2 0.0.0.0 area 0
 net 10.100.1.13 0.0.0.0 area 0
 net 10.100.1.9 0.0.0.0 area 0

 

 


 

crypto isakmp policy 1
 authentication pre-share
 encryption aes
 hash sha
 group 2
 lifetime 3600

crypto isakmp key cisco321 address 1.1.100.6
crypto isakmp key cisco321 address 1.1.100.10

 

 

 

 

crypto ipsec transform-set IPSEC_SA esp-aes esp-sha-hmac
 mode transport

ip access-list extended HQ2->Branch1
 permit gre host 1.1.100.14 host 1.1.100.6

ip access-list extended HQ2->Branch2
 permit gre host 1.1.100.14 host 1.1.100.10

crypto map VPN_T 1 ipsec-isakmp
 match address HQ2->Branch1
 set transform-set IPSEC_SA
 set peer 1.1.100.6

 


 

crypto map VPN_T 2 ipsec-isakmp
 match address HQ2->Branch2
 set transform-set IPSEC_SA
 set peer 1.1.100.10

int fa 0/1
 crypto map VPN_T


 

 

 

-> show ip route 확인, 10.3.3.0으로 가는 경로가 두 개 있다.

- 설정 후 R1에서 Routing Table을 확인하게 되면
  Branch1과 Branch2의 내부 네트워크 경로가
  양쪽 VPN 장비로 Load-balancing 되고 있다.
  (Metric이 동일하기 때문이다.)

  평상시 HQ에서 Branch로 향하는 트래픽은
  'HQ_VPN' 장비를 사용하게 하고, Branch2로
  향하는 트래픽은 'HQ_VPN2' 장비를 사용하도록
  경로 조정을 한다.

 


<HQ_VPN/Branch1>

 

 

 

- 경로 조정으로 bandwidth 값 설정

-> ospf metric에서 cost를 구한다.  
    cost(10의 8승/bandwidth)
                             (bps)

 

 10의 8승/10000     

 

 

conf t
int tu 1
bandwidth 10

 

 

 

 

 

<HQ_VPN2/Branch2>

 

 

 

conf t
int tu 1
bandwidth 10

 

 

-> show ip route 확인, ospf metric 값을 구하여 경로 조정이 되었다.

    설정한 것처럼 10.2.2.0은 10.10.12.2를 통하여 지나간다.

    10.3.3.0의 경로는 10.10.13.2를 통해 지나가는 것을 알 수 있다.

 

 

 

-> ping 10.2.2.2 repeat 10

 

 

 


-> R1과 HQ_VPN이 연결된 interface가 끊어졌을 때 R1에서 ping 10.2.2.2 repeat 10 설정했다.
    그것을 wireshark로 패킷 캡쳐를 하게 되면 interface가 shutdown이 되어 icmp ping이 안 들어오는 것을 알 수 있다.

 

 

 


-> R1과 HQ_VPN2를 wireshark로 캡쳐한다.
    그러면 R1과 HQ_VPN interface가 끊어져서 icmp packet이 들어오는 것을 알 수 있다.
    또한 경로가 조정되어 10.10.13.1이 출발지가 된 것을 알 수 있다.

 

 

 

-> show ip route 확인, HQ_VPN과 R1이 연결된 interface가 shutdown이 되어 경로가 10.10.13.2로 변경되었다.

R1과 HQ_VPN, R1,HQ_VPN2 캡쳐

 

 

 

 

'network 보안' 카테고리의 다른 글

ARP Spoofing  (0) 2018.06.06
CoPP (Control Plane Policing)  (0) 2016.09.03
TCP Intercept  (0) 2016.09.03
IP Spooping Attack 방어  (0) 2016.09.02
IPSec VPN  (1) 2016.09.01