بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيْم
Introduction
Tutorial ini menggunakan Router Mikrotik sebagai VPN Server, dan perangkat Android sebagai VPN Client. Metode autentikasi yang akan digunakan pada tutorial ini adalah PSK (Pre-shared Key). Jadi Client dapat terhubung ke Server menggunakan secret/password.
VPN ini sudah penulis aplikasikan pada Mikrotik CCR 1016 ROS v6.49.13, dan juga Mikrotik CHR v7.16, dengan beberapa perangkat Android 13 sebagai VPN Client. Bagi teman-teman yang membutuhkan Mikrotik CHR, cbtp.co.id menyediakan layanan Mikrotik CHR dengan harga murah, bandwidth yang tinggi, dan ping yang sangat kecil.
Silakan ikuti langkah-langkah berikut secara berurutan untuk mengkonfigurasi IKEv2/IPSec PSK pada Router Mikrotik atau Mikrotik CHR.
IP/IPSec/Profile
Langkah pertama adalah membuat profile. Profile ini memuat parameter-parameter keamanan yang nantinya akan digunakan oleh IP/IPSec/Peer. Yang perlu diperhatikan di sini adalah, perangkat Android sebagai Client, harus kompatibel dengan parameter-parameter yang kita atur pada Mikrotik sebagai Server. Misalnya Auth. Algorithm “sha512” adalah parameter dengan tingkat keamanan paling tinggi. Akan tetapi kemungkinan besar perangkat Android yang kita gunakan tidak kompatibel dengan sha512. Sehingga perangkat Android tidak akan bisa terhubung dengan VPN, atau bisa terhubung tapi tidak dapat melakukan pertukaran data. Jadi parameter-paramater yang ada pada IPSec harus kita sesuaikan untuk memastikan kompatibilitas antara VPN Client dengan VPN Server.

CLI: [[email protected]] > ip/ipsec/profile/add name="secure-profile" dh-group=modp2048 enc-algorithm=aes-128,aes-256 hash-algorithm=sha256
IP/IPSec/Peer
Address kita set menjadi 0.0.0.0/0 atau ::/0. Artinya Peer ini akan menerima semua request dari range IP 0.0.0.0-255.255.255.255. Karena umumnya perangkat Android yang kita gunakan menggunakan IP dynamic dari provider.
Profile adalah yang kita buat di IP/IPSec/Profile sebelumnya.
Exchange Mode kita set menjadi IKE2. Makanya jenis VPN ini adalah “IKEv2″/IPSec.
Passive=yes. Artinya Peer ini akan menunggu request koneksi dari client, jadi bukan Server yang melakukan request ke Client.

CLI: [[email protected]] > ip/ipsec/peer/add name="secure-vpn" address=0.0.0.0/0 exchange-mode=ike2 passive=yes profile=secure-profile send-initial-contact=no
IP/IPSec/Proposal
Parameter pada Proposal ini juga harus kita sesuaikan dengan kompatibilitas dari Client. Karena algoritma paling tinggi dan paling secure belum tentu kompatibel dengan perangkat Android yang akan menjadi Client.
Proposal yang kita buat ini nantinya akan digunakan oleh IP/IPSec/Policy.

CLI: [[email protected]] > ip/ipsec/proposal/add name="secure-proposal" auth-algorithms=sha256 enc-algorithms=aes-128-cbc,aes-256-cbc pfs-group=ecp256
IP/IPSec/Policy
Di menu ini sudah ada rule default seperti di bawah ini. Kita akan menggunakan rule ini saja. Akan tetapi Proposal-nya kita ganti ke proposal yang kita buat di IP/IPSec/Proposal sebelumnya.

CLI: [[email protected]] > ip/ipsec/policy/set 0 proposal=secure-proposal
IP/Pool
Selanjutnya kita buat IP Pool. Ini adalah range IP Address yang akan diberikan oleh VPN Server kepada Client. Permisalannya seperti PC kita yang menerima IP Address secara otomatis dari DHCP Server. Untuk range IP ini bisa disesuaikan dengan kebutuhan. Misalnya jika Router Mikrotik kita memiliki LAN yang ingin kita akses dari luar menggunakan VPN ini. Tapi apabila hanya digunakan untuk internetan saja, maka bebas ingin menggunakan range IP Address apapun.

CLI: [[email protected]] > ip/pool/add name="secure-vpn-pool" ranges=192.168.1.10-192.168.1.254
IPSec/Mode-Config
Kemudian IP Pool yang sudah kita buat sebelumnya, akan kita masukkan di sini.
Address Prefix Length di-set 32. Jadi masing-masing Client akan menerima IP Address dengan prefix /32.

CLI: [[email protected]] > ip/ipsec/mode-config/add name="cfg-secure-vpn" address-pool=secure-vpn-pool address-prefix-length=32
IP/IPSec/Identity
Di sinilah kita akan menentukan metode autentikasi kita. Karena VPN yang akan kita konfigurasi menggunakan PSK (Pre-shared Key), maka kita akan memilih pre shared key pada Auth. Method.
Secret kita isi dengan kombinasi karakter, seperti password. Isilah dengan kombinasi yang kompleks dan rumit agar tidak mudah diketahui pihak luar.
Mode Configuration adalah IP/IPSec/Mode-Config yang kita buat sebelumnya.
Generate Policy ganti menjadi port strict

CLI: [[email protected]] > ip/ipsec/identity/add comment="secure-vpn" auth-method=pre-shared-key generate-policy=port-strict mode-config=cfg-secure-vpn peer=secure-vpn secret=12345
Sampai poin ini VPN sudah selesai dikonfigurasi dan seharusnya sudah bisa terhubung dengan perangkat Android kita. Akan tetapi belum dapat kita gunakan untuk mengakses internet. Kenapa? Karena perangkat Android kita mendapatkan IP Address dari IP Pool yang kita buat di IP/Pool, misalnya IP 192.168.1.253. Sedangkan IP ini tidak ada pada global routing, dan WAN pada Router Mikrotik kita menggunakan IP public. Jadi agar perangkat Android kita bisa mengakses internet, kita perlu mengkonfigurasi NAT masquerade pada IP/Firewall/NAT.

IP/Firewall/NAT
[[email protected]] > ip/firewall/nat/add chain=srcnat action=masquerade out-interface=ether1
chain=srcnat -> Action dari rule ini akan mempengaruhi atau merubah source address dari trafik.
action=masquerade -> masquerade mengubah IP Address dari trafik ke IP Address interface yang ditentukan.
out-interface=ether1 -> Inilah interface yang ditentukan tersebut. Dalam tutorial ini, IP Address dari ether1 adalah 49.XXX.XXX.X1.
Jadi rule NAT ini akan merubah source address dari trafik yang keluar dari ether1, ke IP dari ether1. Sehingga perangkat Android kita bisa mengakses internet atau global route.
Konfigurasi di Android
Selanjutnya tambahkan VPN di perangkat Android.
Type pilih IKEv2/IPSec PSK.
Server address isi dengan IP public (WAN) dari Router Mikrotik atau CHR. Pada tutorial ini penulis menggunakan IP public 49.XXX.XXX.X1.
IPSec identifier isikan sama dengan server address.
IPSec pre-shared key isi dengan secret yang kita buat di IP/IPSec/Identity sebelumnya.

Setelah selesai, silakan dicoba konek menggunakan VPN tersebut. Apabila berhasil, maka status VPN akan menunjukkan “Connected” atau “Terhubung”.

Referensi:
https://help.mikrotik.com/docs/display/ROS/IPsec
https://blog.pessoft.com/2016/05/29/mikrotik-ipsec-tunnel-with-ddns-and-nat/
kalo dari modem isp udah ada ip publik, di kasih ip private buat ke mikrotik, apakah bisa menggunakan konfigurasi di atas?
Maaf telat reply.
Bisa. Caranya dengan mengaktifkan DDNS di ip/cloud. Jadi nanti Mikrotik-nya dapet dns-name (ex. xxxx.sn.mynetname.net). Nah dns-name nya ini yang digunakan buat menyambungkan VPN, bukan IP Address.
Terima kasih atas panduan konfigurasi VPN IKEv2 ini, sangat membantu! Saya ingin bertanya, apakah metode IKEv2 dengan IPsec PSK ini cukup aman untuk penggunaan jangka panjang di jaringan publik? Apakah ada perbedaan signifikan dalam hal keamanan atau performa jika dibandingkan dengan metode menggunakan sertifikat (certificate-based)?
Salam,
Hanifah
Hi Hanifah.
IKEv2 sampai saat ini masih menjadi 1 dari beberapa protokol paling aman dalam dunia per-vpn-an. Untuk keamanan tentu lebih aman certificate, karena user perlu memiliki ceritificate tersebut untuk bisa terhubung ke VPN. Sedangkan PSK (Pre-shared Key), user cukup mengetahui kombinasi password-nya saja, dan sudah bisa terhubung ke VPN tersebut. Adapun mengenai performa, penulis tidak menggali lebih dalam tentang perbedaan dari kedua metode tersebut.
Alhamdulillah makasih rekan sudah solved akhirnya issue vpn di android versi 14 ke mikrotik