Advertisements
Home

Securing DMVPN

Leave a comment

Sebenernya article ini tentang IPSec Site2Site VPN, Cuma karena IPSec ini bisa dipasang ke DMVPN…so let try to secure this VPN using it

Pre-requisite

  • DMVPN (config can be found here)
  • Cryptography Fundamental (link can be found here)

————————————————————-

The topology is still the same

Lets show initial DMVPN in the R2 perspective

Only 1 Peer of NBMA Address (which is R1_Hub)…after ping to R3 there goes 35.0.0.3 which is NMBA Addres of R3

Default framework untuk security VPN kita bisa cek dengan cara show crypto isakmp policy

Nah kita bisa liat default yang dikasi klo kita mau VPN-an (klo kita mau config, default-nya ini), nanti ini bakal kita rubah2…

Btw…isakmp itu apa? (Internet Security Association and Key Management Protocol) A framework for negotiation and management of security association between peers

Framework? Jadi klo lo mau masang LCD TV…tentu harus dengan kabel yang sesuai, masang antenna juga harus sesuai, remote-TV nya juga harus sesuai…klo ga, ya jadi ga bisa nonton kan? (Encryption nya harus sesuai, protocol authentication nya harus sesuai, key-password nya harus sesuai), negosiasi antar 2 node sebelum bisa kirim2an data itulah disebut ISAKMP framework

————————————————-

IPSec VPN Site2Site Phases

Untuk bisa konfigurasi IPSec, kita harus melewati (baca: konfig) 2 tahap dulu

Tahap pertama: IKE Phase (Internet Key Exchange Phase), tahap bikin key sama tuker2 key-nya

Tahap kedua: IPSec Phase, ini packet mau di enkripsi “dalemnya” aja atau semuanya

ISAKMP Phase 1


Penjelasan:

  • Crypto isakmp policy [nomor]: kita bikin IKE-nya dengan nomor 10 (semakin kebawah alias <10 artinya semakin bagus/priority)
  • Hash [protocol]: Mau pake hashing tipe apa? MD5 (less secure) atau SHA (more secure but little slow)
  • Authentication [mode]: metode authentikasi-nya mau pake PSK (Pre-shared key), RSA-Encr (RSA Encryption), atau mau pake Digital Certificate (RSA-Sig)
  • Group [nomor]: Tuker2an key-nya mau pake metode apa? Diffie-Hellman 1 (DH-1), atau DH-2, DH-5, dan seterusnya (banyak soalnya)
  • Lifetime [second]: key yang kita exchange itu validitasnya berapa lama (86400 itu 1 hari, default)
  • Encryption [mode] [bit]: data kita mau di enkripsi pake apa? DES, 3DES, atau AES (dan variannya banyak)
  • Crypto isakmp key [STRING] address [ip address]: nah ini key yang kita bikin (end-to-end harus sama yaks) trus ip mana yang boleh join VPN (0.0.0.0 itu semuanya boleh join VPN ke router ini, not secure, tapi gpp…ini cuma contoh hahaha)

Note: ada kalanya kita harus pake RSA-sig karena ketergantungan dengan address-nya itu (ganti IP, rubah lagi konfig-nya, repot)

Atau pake crypto isakmp key [STRING] hostname [HOSTNAME] untuk resolve via DNS address-nya

ISAKMP Phase 2


Penjelasan:

  • Crypto ipsec transform-set [STRING] [ESP type] [bit] [HMAC type]: kita mau bikin IPSec dengan nama [STRING] dimana ESP (encapsulating security payload) nya pake, besarnya berapa (128, 192, 256, etc.), dan HMAC (hashing message authentication code) mau pake apa
  • Mode [tipe]: ada 2 tipe mode untuk IPSec
    • Tunnel mode: semua isi berikut header2 IP-nya di enkripsi

    • Transport mode: data payload-nya aja di enkripsi, header IP-nya masih kebacaipsec-modes-transport-tunnel-3
  • Trus kita bikin IPSec profile (jadi tiap VPN ke beberapa company bisa kita bedain profile-nya) dengan cara crypto ipsec profile [nama profile]
  • Trus masukin framework IPSec (yang transform-set itu) ke sini dengan cara set transform-set [STRING]


Daaaann….jgn lupa itu profile dimasukin ke tunnel nya (metode nya mirip kek kita bikin ACL, masukin ke interface itu ACL)


Nanti ada pemberitahuan kek diatas…kenapa?? Karena R2 dan teman2nya belum dikasi ginian juga….

Caranya?? Ya bikin aja sama kek R1…

———————————————–

Verifikasi



Sekarang kita liat via Wireshark…

GRE Biasa…


GRE with IPSec


Reference

Protected DMVPN vide by Keith Barker #6783

http://www.firewall.cx/networking-topics/protocols/870-ipsec-modes.html

http://packetlife.net/media/library/6/IPsec.pdf

Advertisements

DMVPN Introduction (Dynamic Multipoint VPN)

3 Comments

Well…its been a while since last time I post something to my beloved blog, and now lets go straight to the topic

What is DMVPN? Why we use it? And How we do it?

Prerequisite for learning:

  • GRE (generic routing encapsulation)
  • knowledge of Routing (Protocol)
  • and….a little bit about CEF

btw…since this is the introduction, I’ll teach you how to develop DMVPN Phase 1

———————————-

Introduction

A problem with GRE…

Klo kita punya kasus kek gambar diatas…bagaimana supaya R2, R3, R4 bisa terkoneksi satu sama lain dengan GRE?

Klo yang pernah nyoba pasti jawabnya…Hub-and-Spoke atau lebih bagus lagi…FULL MESH

Baru 4 node aja…kita harus handle 6 tunnel, bayangin klo 7, 8, sampe 10 router atau kantor cabang

The solution…we will build dynamic tunnel called DMVPN (Dynamic Multipath VPN)

———————————————-

DMVPN…how it works

DMVPN itu terdiri dari 3(5) teknologi:

  1. Multipoint GRE (mGRE)
  2. Next-Hop Resolution Protocol (NHRP)
  3. Dynamic Routing Protocol (EIGRP, RIP, OSPF, BGP)
  4. *Dynamic IPsec encryption
  5. *Cisco Express Forwarding (CEF)

Basic DMVPN cukup pake 3 point diatas…Secure DMVPN baru pake point 4, dan…DMVPN phase 2 & 3 pake point 5

DMVPN phase? Ya…DMVPN VPN dibagi jadi 3 fase

  • Phase 1: Spoke register dynamically to Hub each time they want to do communication between Spoke
  • Phase 2: Spoke-to-Spoke tunnel…using CEF, but still use Hub for NHRP source
  • Phase 3: multiple Hub for scalability

mGRE: daripada gw bikin tunnel static tiap node kek GRE, mending gw bikin hub-and-spoke aja, gw tanyain ke hub…jalan untuk ke tujuan/destination lewat mana, baru gw bikin tunnel kesana

trus nanyainnya pake apa? Pake NHRP (Next-Hop Resolution Protocol)

Apaan itu NHRP? Next Hop Resolution Protocol (NHRP) is a protocol or method that can be used so that a computer sending data to another computer can learn the most direct route (the fewest number of hops) to the receiving computer (RFC 2332)

Kek contoh diatas…tapi mirip kek ARP (Address Resolution Protocol) yah? Ho oh

Bedanya dimana? Ya beda tong…ARP minta tolong switch buat minta next-hop mac-address, NHRP minta tolong router untuk minta next-hop IP

Spoke dalam NHRP disebut NHC (NHRP Client), sedangkan Hub dalam NHRP disebut NHS (NHRP Server)

————————————————

DMVPN Configuration

Pre-config:

  • IP addressing and Default route in each router (except Internet)
  • Klo pake GNS…pake IOS 3725

On Hub (R1)

Penjelasan:

Int tunnel 0 dan tunnel source fa0/0 pretty self-explanatory (and ip address too)

  • Tunnel mode gre multipoint: ini mGRE-nya
  • Tunnel key 1234: security measure buat tunnel (MANDATORY since IOS 12.3(14)T or 12.3(11)T3…klo ga, mGRE ga mau jalan)
  • Ip nhrp network-id: locally significant, biar si router tau dia mau ngirim NHRP ke “domain” mana (jadi 2 tunnel atau lebih bisa join di domain yang sama, lebih dinamis…contoh: buat PT.A pake id 1, buat PT.B pake id 2)
  • Ip nhrp authentication [STRING]: security measure, hanya node2 yang tau yang berhak bikin tunnel via registrasi ke hub
  • Ip nhrp map multicast dynamic: salah satu key component DMVPN, jadi Hub bisa mapping siapa mau bikin tunnel ke siapa, asal ngomong dulu ke dia (mapping-nya kek mac-address Port Security “sticky” di switch)
  • Ip nhrp shortcut: digunakan di DMVPN phase 3, untuk rewrite CEF entry…after getting redirect message? Who gave it?…
  • Ip nhrp redirect: this is the one who gave it, fitur ini mirip ke ICMP Redirect, klo si hub tau best path ke destination yang lebih pendek/cepat…dia akan ngasih tau ke source node-nya “kirim aja ke sono langsung…”

Jadi untuk ip nhrp shortcut and redirect digunakan untuk DMVPN phase 2 dan 3

Penjelasan:

Rata2 sekarang switch/router sudah mendukung jumbo frame (MTU lebih dari 1500), tapi klo engga…dengan path-mtu-discovery, router bisa ngukur besar paket yang akan dikirim supaya ga di fragmentasi (that’s the definition of MTU right?!?)

(kadang2 suka ga jalan ini mtu-discovery, entah karena ICMP nya ke blok makanya “pengukuran” MTU-nya kaga jalan, jadi kasi aja no path-mtu-discovery…). Kita juga bisa kasi manual MTU limiter kek Ip mtu 1400 artinya kita set max MTU 1400, nah MSS (max-segment size) kita kurangin -40 (best practice dr expert gitu, gw juga ga tau kenapa mesti -40) jadi 1360 biar ga kepotong (tindakan preventif kali ya…)

In R2, R3, and R4 (bedain IP-nya aja)

Penjelasan:

Most notable configuration in this router is ip nhrp nhs [destination tunnel ip address], artinya kita ngasi tau ke router ini…klo mau bikin tunnel tolong registrasi ke ip tersebut (NHS)

Emang ip tersebut bisa diraih lewat mana? Untuk bisa ke ip tersebut kita pointing ke ip physical/fisiknya router target, and that’s why ip nhrp map [ip tunnel] [ip physical] placed in CLI

Plus klo mau multicast…kirim aja ke ip physical tersebut juga dengan ip nhrp map multicast [ip physical]

By the way…dalam NHRP…IP Physical tersebut dinamakan NBMA Address

DMVPN is done…anything missing? Yes…now the routing takes place

Masukin ip network tunnel-nya, masukin juga network 10.0.0.0-nya (di R2, R3, dan R4 juga sama)

Don’t forget….EIGRP is DISTANCE VECTORthere is SPLIT HORIZON (jalan keluar DAN masuknya Cuma 1…interface tunnel 0), so disabling split-horizon (no ip split-horizon) and next-hop-self (no ip next-hop-self) will do the wonder

————————————————

The Verification

Dari sini kita bisa liat…R1 dynamically learn about others tunnel via NHRP

And lets check out the routing table

Lets check in R2 pinging and tracing to R3

Lets check the wireshark…(coba ping dari R4 ke R2, trus cek di R1…jgn di cek sama yang udah tunneling kek R2 ke R4 misalkan)

Anddd…R1 correctly redirect to 172.16.0.2 which is R2 tunnel IP

————————————————

Reference:

DMVPN Explained by Petr Lapukhov #16379 @http://blog.ine.com/2008/08/02/dmvpn-explained/

DMVPN Type by by Petr Lapukhov #16379 @http://blog.ine.com/2008/12/23/dmvpn-phase-3/#more-400

NHRP by IETF RFC 2332 @http://www.ietf.org/rfc/rfc2332.txt?number=2332

NHRP Network-id https://supportforums.cisco.com/discussion/12075461/dmvpn-ip-nhrp-network-id

Adjust MSS https://learningnetwork.cisco.com/thread/40703