28 April 2019

Cara Setting VPN IPSec Tunnel Site-to-Site MikroTik

IPSec Tunnel adalah salah satu metode mengamankan jaringan interkoneksi di 2 lokasi/router berbeda melalui jaringan internet, yang dapat menghubungkan infrastruktur IT dalam suatu perusahaan atau instansi.

Sudah banyak saya meng implementasikan VPN tunneling menggunakan IPSec Tunnel di beberapa perusahaan atau instansi yang mempunyai banyak cabang, terlebih yang membutuhkan keamanan jaringan extra. Metode interkoneksi Site-to-Site yang sangat terbukti efektif, efesien dan aman.

Cara Setting VPN IPSec Tunnel Site-to-Site MikroTik


VPN IPSec Tunnel Site-to-Site


Kali ini saya coba mencontohkan setting IPSec Tunnel pada 2 perusahaan di lokasi berbeda yang menginginkan jaringan lokal kantor A dan kantor B saling terhubung melalui jaringan internet. Contoh topologi ipsec tunnel seperti gambar dibawah :

Contoh topologi ipsec tunnel site to site mikrotik
Contoh Topologi IPSec Tunnel Site to Site MikroTik

Pada contoh tutorial ini saya menggunakan routerboard dengan versi ROS 6.44.2 di kedua router. kemungkinan contoh gambar mungkin berbeda jika Anda menggunakan versi dibawahnya.

Konfigurasi IP Address di masing-masing lokasi :
SITE A
Mikrotik Router
IP Public Statis 172.22.0.1 (ilustrasi)
IP Lokal 192.168.200.0/24

SITE B
Mikrotik Router
IP Public Statis 172.22.0.2 (ilustrasi)
IP Lokal 192.168.1.0/24

(1) Menambahkan IPSec Peer


SITE A
/ip ipsec peer
add address=172.22.0.2/32 name=ipsec-to-site-b

Menu Winbox IP > IPSec > tab Peers

IPSec Peer ke Site B

SITE B
/ip ipsec peer
add address=172.22.0.1/32 name=ipsec-to-site-a

Menu Winbox IP > IPSec > tab Peers

IPSec Peer ke Site A

(2) Menambahkan IPSec Peer Identity

Disini kita menggunakan Auth. Method: "pre shared key" dengan "Secret:" yang anda tentukan.

SITE A
/ip ipsec identity
add peer=ipsec-to-site-b secret=ipsec_secret

Menu Winbox IP > IPSec > tab Identities


IPSec Peer Identity

SITE B
/ip ipsec identity
add peer=ipsec-to-site-a secret=ipsec_secret

Menu Winbox IP > IPSec > tab Identities


IPSec Peer Identity

Dari 2 step yang sudah dilakukan, cek peer-ing apakah sudah terkoneksi dengan baik
[adam@MikroTik] > ip ipsec remote-peers print 
Flags: R - responder, N - natt-peer 
 #    ID                   STATE              REMOTE-ADDRESS                         
 0                         established        172.22.0.2

Kita bisa lihat dari contoh diatas tunnel state "established". Kita mengkonfigurasi dengan benar pada kedua sisi dan keduanya sudah saling berhubungan. Tunnel sudah terbentuk di kedua router, tapi tunnel ini belum berguna sama sekali. Kita belum dapat mengirim data apa pun melalui tunnel. Kita perlu konfigurasi router lebih lanjut agar dapat mengirim data melalui IPSec tunnel ini.

(3) Menambahkan IPSec Policy

Langkah berikutnya adalah membuat policy untuk menentukan networks di kedua sisi. Dalam contoh ini, kita akan menghubungkan 2 jaringan lokal. Jaringan lokal SITE A (192.168.200.0/24) bisa terkoneksi ke jaringan lokal SITE B (192.168.1.0/24), begitu juga sebaliknya.

SITE A
/ip ipsec policy
add src-address=192.168.200.0/24 dst-address=192.168.1.0/24 
    sa-src-address=172.22.0.1 sa-dst-address=172.22.0.2 tunnel=yes

SITE B
/ip ipsec policy
add src-address=192.168.1.0/24 dst-address=192.168.200.0/24 
    sa-src-address=172.22.0.2 sa-dst-address=172.22.0.1 tunnel=yes

Jika sudah SAs (Security Associations) akan terbentuk di tab "Installed SAs" seperti ini :
[adam@MikroTik] > /ip ipsec installed-sa print 
Flags: H - hw-aead, A - AH, E - ESP 
 0  E spi=0x9D0D146 src-address=172.22.0.1:4500 dst-address=172.22.0.2:4500 
      state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size=256 
      auth-key="4fabef43d03ad0b5e05c6e43b61140d2ccc812ad" 
      enc-key="63d34ecbdcd07f6d13df46d81f9c59a1dfc3804ce0a2ddcd8a588273890d7279" 
      addtime=apr/24/2019 19:02:49 expires-in=9m30s add-lifetime=24m/30m 
      current-bytes=72300 current-packets=1205 replay=128 

 1  E spi=0x5AFB75B src-address=172.22.0.2:4500 dst-address=172.22.0.1:4500 
      state=mature auth-algorithm=sha1 enc-algorithm=aes-cbc enc-key-size=256 
      auth-key="a25f131974274163f6026365066d3922258e9a82" 
      enc-key="012c5b4914f741cd6a9f2c674d9be013db7d5c5adb2a22f799d0b20c96e5d51f" 
      addtime=apr/24/2019 19:02:49 expires-in=9m30s add-lifetime=24m/30m 
      current-bytes=72300 current-packets=1205 replay=128


Bypass Masquerade/Outgoing NAT & Fasttrack


IP > Firewall > NAT tambahkan rules berikut dan posisikan di paling atas :
/ip firewall nat
add action=accept chain=srcnat disabled=yes dst-address=192.168.1.0/24 src-address=\
    192.168.200.0/24
add action=accept chain=srcnat disabled=yes dst-address=192.168.200.0/24 src-address=\
    192.168.1.0/24

IP > Firewall > RAW tambahkan rules berikut :
/ip firewall raw
add action=notrack chain=prerouting dst-address=192.168.1.0/24 src-address=\
    192.168.200.0/24
add action=notrack chain=prerouting dst-address=192.168.200.0/24 src-address=\
    192.168.1.0/24

Testing

Langkah terakhir kita cek IPSec tunnel Site-to-Site yang sudah kita setting, apakah sudah terkoneksi dengan baik di kedua jaringan lokal masing-masing lokasi.

Ping Host Site A ke Site B
Ping Host Site A ke Site B

Ping Host Site B ke Site A
Ping Host Site B ke Site A