بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيْم
Introduction
Pada tulisan sebelumnya kita membahas konfigurasi VPN IKEv2/IPSec dengan PSK (Pre-shared Key). Pada tulisan tersebut kita menggunakan perangkat Android sebagai VPN Client. Lalu bagaimana jika kita ingin menggunakan VPN IKEv2 di Windows? Pada Windows 11 contohnya, jika kita ingin menambahkan VPN IKEv2, maka tidak ada pilihan untuk autentikasi menggunakan Pre-shared Key. Salah satu cara autentikasi yang disediakan adalah dengan menggunakan Certificate, yang juga dikenal dengan Digital Signature. Jadi untuk menggunakan VPN IKEv2/IPSec dengan Certificate, kita membutuhkan Certificate pada VPN Server dan VPN Client untuk proses autentikasi.
Dari sisi keamanan, IKEv2 dengan Certificate adalah lebih secure daripada IKEv2 PSK. Karena proses autentikasi dengan Certificate lebih kompleks dibandingkan dengan PSK, yang pihak luar hanya perlu mengetahui secret-nya saja untuk bisa mengakses VPN.
Pada tulisan ini kita akan menggunakan Windows dan juga Android sebagai VPN Client. Untuk VPN Server kita akan menggunakan Mikrotik CHR 7.16. Konfigurasinya hampir identik dengan tulisan IKEv2/IPSec PSK sebelumnya. Perbedaannya hanya ada di IP/IPSec/Identity dan di System/Certificate. Karena Certificate yang diperlukan akan kita buat di Mikrotik itu sendiri.
Konfigurasi pada Router
Certificate
Langkah pertama adalah membuat Certificate yang akan kita gunakan di VPN Server dan juga VPN Client. Ada 3 Certificate yang akan kita buat, yang pertama adalah Certificate Authority atau CA, kemudian Certificate untuk Server, dan terakhir Certificate untuk Client. Certificate Server dan Certificate Client ini nanti akan di-sign atau “ditandatangani” menggunakan Certificate Authority atau CA.
Buat dan sign Certificate Authority (CA)
[[email protected]] > certificate/add name="IKEv2CA" common-name="CA"
[[email protected]] > certificate/sign IKEv2CA ca-crl-host=49.XXX.XXX.X1
Saat sign Certificate, isi “ca-crl-host” dengan IP Public dari Router.
Buat dan sign Certificate untuk VPN Server
[[email protected]] > certificate/add name="IKEv2Server" common-name=49.XXX.XXX.X1 subject-alt-name=IP:49.XXX.XXX.X1 key-usage=tls-server
[[email protected]] > certificate/sign IKEv2Server ca=IKEv2CA
Saat membuat Certificate untuk VPN Server, isi “common-name” dan “subject-alt-name” dengan IP Public atau DNS dari Router.
Saat sign Certificate VPN Server, isi “ca” dengan CA yang kita buat sebelumnya.
Buat dan sign Certificate untuk VPN Client
[[email protected]] > certificate/add name="IKEv2Client" common-name="IKEv2Client" subject-alt-name=IP:49.XXX.XXX.X1 key-usage=tls-client
[[email protected]] > certificate/sign IKEv2Client ca=IKEv2CA
subject-alt-name untuk Certificate VPN Client isi dengan IP Public atau DNS dari Router.
Certificate untuk VPN Client juga di-sign dengan CA yang kita buat sebelumnya.
Export CA dan Certificate VPN Client
Kedua Certificate ini kita export untuk di-download dan di-install di perangkat VPN Client nanti.
[[email protected]] > certificate/export-certificate IKEv2CA type=pem
[[email protected]] > certificate/export-certificate IKEv2Client type=pkcs12 export-passphrase=12345678
Saat export CA, gunakan “type” PEM.
Saat export Certificate VPN Client, gunakan “type” PKCS12, dan isilah export-passphrase dengan kombinasi yang unik agar lebih secure. Passphrase/password ini akan dimasukkan nanti saat menginstall Certificate di perangkat VPN Client.
Kemudian download kedua Certificate tersebut dan salin ke PC dan HP Android.
Selanjutnya kita akan mengkonfigurasi VPN Server.
IP/Pool
Isi dari IP Pool ini adalah range IP Address yang akan diberikan oleh VPN Server kepada VPN Client. Pool ini akan kita tambahkan di IP/IPSec/Mode-Config nanti.
[[email protected]] > ip/pool/add name="secure-vpn-pool" ranges=10.0.1.10-10.0.1.100
IP/IPSec
IP/IPSec/Profile
[[email protected]] > ip/ipsec/profile/add name="secure-profile" dh-group=modp2048 enc-algorithm=aes-128,aes-256 hash-algorithm=sha256
IP/IPSec/Peer
[[email protected]] > ip/ipsec/peer/add name="secure-vpn" exchange-mode=ike2 passive=yes profile=secure-profile send-initial-contact=no
IP/IPSec/Proposal
[[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
Menggunakan rule default yang sudah ada.
[[email protected]] > ip/ipsec/policy/set 0 comment="secure-vpn" peer=secure-vpn proposal=secure-proposal tunnel=yes
IP/IPSec/Mode-Config
[[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 perbedaan utama IPSec PSK dengan IPSec Digital Signature/Certificate. Jika PSK menggunakan auth-method=pre-shared-key, maka Certificate menggunakan auth-method=digital-signature
[[email protected]] > ip/ipsec/identity/add auth-method=digital-signature certificate=IKEv2Server generate-policy=port-strict mode-config=cfg-secure-vpn peer=secure-vpn
Pada certificate, masukkan Certificate untuk VPN Server yang sudah kita buat sebelumnya.
IP/Firewall/NAT
Rule masquerade pada NAT dibutuhkan agar perangkat kita yang pada dasarnya mendapatkan IP Private bisa mengakses internet menggunakan IP Public pada WAN Router.
[[email protected]] > ip/firewall/nat/add chain=srcnat action=masquerade out-interface=ether1
Sesuaikan “out-interface” dengan interface WAN pada Router.
Sampai tahap ini, konfigurasi pada Router sudah selesai. Selanjutnya kita konfigurasi VPN pada perangkat Windows dan Android.
Konfigurasi VPN IKEv2 Windows
Download Certificate
Download CA dan Certificate Client yang sudah di-export sebelumnya.
Pada Windows, kita cukup menginstall Certificate Client saja. Sedangkan CA kita butuhkan saat konfigurasi pada perangkat Android.

Double click Certificate Client yang sudah di-download untuk meng-install. Kemudian Pilih Local Machine pada bagian Store Location.

Pilih Next. Kemudian masukkan passphrase yang kita buat saat meng-export Certificate Client sebelumnya pada kolom Password.

Pilih next sampai tombol Finish. Dan Certificate Client sudah ter-install pada perangkat Windows kita.
Buat VPN IKEv2

Server name or address diisi dengan IP Public dari Router yang digunakan sebagai VPN Server. Selebihnya disesuaikan saja dengan gambar di atas.
Selanjutnya kita coba connect VPN tersebut. Kemungkinan besar kita akan menemui error dengan info “Policy match error” seperti berikut:

Error ini disebabkan karena parameter default IPSec pada VPN yang kita buat di Windows tidak kompatibel dengan parameter yang kita buat di IP/IPSec/Profile dan IP/IPSec/Proposal.
Untuk mengatasi error ini, kita akan meng-update parameter IPSec VPN Client tersebut melalui Powershell.
Buka Powershell sebagai Administrator dan jalankan command berikut:
PS C:\Windows\system32> Set-VpnConnectionIPsecConfiguration -ConnectionName "Mikrotik.Lab" -AuthenticationTransformConstants SHA256128 -CipherTransformConstants AES128 -DHGroup Group14 -EncryptionMethod AES128 -IntegrityCheckMethod SHA256 -PFSgroup PFS2048 -Force
Pada tulisan ini, nama VPN-nya adalah “Mikrotik.Lab”. Jadi ganti ConnectionName “Mikrotik.Lab” dengan nama VPN yang teman-teman buat.
Parameter IPSec yang kita update di atas sekarang sudah sesuai dengan parameter IPSec pada VPN Server. Sekarang kita coba connect kembali VPN tersebut agar dapat disambut dengan error berikutnya :v
Setelah meng-update parameter IPSec pada VPN Client, dan error “Policy mismatch error” sudah teratasi, kemungkinan besar teman-teman masih akan menghadapi error dengan info “IKE authentication credentials are unacceptable” seperti berikut:

Error ini diakibatkan karena Windows tidak secara otomatis menggunakan Certificate VPN Client yang sudah kita install sebelumnya untuk proses autentikasi. Oleh karena itu kita harus mengatur agar VPN Client menggunakan Certificate VPN Client yang sudah kita install.
Pilih Advanced Options

Kemudian More VPN properties

Pada tab Security, pilih use machine certificates, lalu OK.

Sekarang kita coba connect lagi, dan Alhamdulillah VPN berhasil terhubung.


Konfigurasi VPN IKEv2 di Android
PC dengan OS Windows 11 sudah berhasil terhubung ke VPN IKEv2 dengan menggunakan Certificate. Selanjutnya kita konfigurasi juga VPN IKEv2 pada perangkat Android kita.
Pindahkan CA dan Certificate VPN Client yang sebelumnya dibuat ke perangkat Android, lalu install.
Install CA
Pada Android 13, Certificate CA bisa di-install dengan membuka Settings->Security->More security settings->Encryption & credentials->Install a certificate->CA certificate. Kemudian pilih Certificate Authority atau CA yang sudah dipindahkan ke perangkat Android.
Install Certificate VPN Client
Pada Android 13, Certificate VPN Client bisa di-install dengan membuka Settings->Security->More security settings->Encryption & credentials->Install a certificate->VPN & app user certificate. Kemudian pilih Certificate VPN Client yang sudah dipindahkan ke perangkat Android. Lalu masukkan passphrase yang dibuat saat meng-export Certificate VPN Client sebelumnya.

Buat VPN
Apabila CA dan Certificate VPN Client sudah berhasil di-install, selanjutnya buat VPN dengan parameter berikut:

IPSec identifier diisi sama dengan Server address.
User certificate pilih Certificate VPN Client yang sudah di-install sebelumnya.
CA Certificate pilih CA yang sudah di-install sebelumnya.
Kemudian save dan silakan dicoba connect.


Alhamdulillah, perangkat Android berhasil terhubung ke VPN IKEv2 menggunakan certificate.
Selesai
Agar bisa mengkases jaringan lan gmn om, lokal sy 172.16.1.0/24 routing nya gmn yh?
Coba IP Pool nya pake range 172.16.1.0/24 juga om.