Pada artikel Mikrotik Road Warrior Wireguard VPN telah dibahas penerapan site to site VPN mengguanakan Wireguard dengan konsep Road Warrior antara Endpoint Mikrotik ke Endpoint Mikrotik.
Kali ini kita akan membahas penerapan site to site VPN mengguanakan Wireguard dengan konsep Road Warrior antara Endpoint Mikrotik dengan Sistem Operasi OpenBSD.
Sebelumnya kita sudah membahas cara kerja site to site Wireguard VPN.
WireGuard adalah sebuah protokol VPN (Virtual Private Network) yang dirancang untuk mengamankan komunikasi antara perangkat-perangkat yang terhubung melalui jaringan publik, seperti internet.
Cara kerja WireGuard memang melibatkan pertukaran kunci (key exchange), tetapi tidak hanya terbatas pada pertukaran Public Key.
Berikut adalah cara kerja umum dari protokol WireGuard:
- Generate Key Pair (Pasangan Kunci): Setiap perangkat yang ingin terhubung ke jaringan melalui WireGuard memiliki sepasang kunci, yaitu kunci privat (private key) dan kunci publik (public key).
- Pertukaran Public Key: Ketika dua perangkat ingin berkomunikasi, mereka akan saling bertukar kunci publik mereka. Kunci publik ini biasanya digunakan untuk mengidentifikasi perangkat satu sama lain.
- Inisialisasi Peer: Setelah pertukaran kunci publik, setiap perangkat menginisialisasi peer connection ke perangkat lain dengan menggunakan kunci publik yang diterima. Selama inisialisasi, informasi tentang IP address dan konfigurasi lainnya dapat disepakati.
- Session Key Generation: Setelah peer connection diinisialisasi, perangkat-perangkat tersebut akan secara dinamis menghasilkan session key yang digunakan untuk mengenkripsi dan mendekripsi data yang dikirimkan antara mereka.
- Data Encryption and Transmission: Setiap data yang dikirim antara perangkat-perangkat tersebut akan dienkripsi dengan menggunakan session key yang telah dihasilkan. Data yang dienkripsi akan dikirim melalui jaringan publik.
- Data Decryption: Data yang diterima oleh perangkat penerima akan dienkripsi dengan menggunakan session key yang sesuai untuk mendekripsikan data tersebut:
Dalam intinya, WireGuard menggabungkan teknik-teknik modern dan efisien untuk mengamankan komunikasi antara perangkat dengan overhead yang relatif rendah. Karena protokol ini lebih sederhana dibandingkan dengan beberapa alternatif lainnya, seperti IPSec, implementasinya lebih mudah dipahami dan diaudit secara keamanan.
Persiapan Endpoint Mikrotik.
Dengan asumsi kita telah mempersiapkan Mikrotik yang terhubung dengan Interface IP Public sebagai Endpoint Wireguard seperti pada artikel Mikrotik Road Warrior Wireguard VPN.
Persiapan Endpoint OpenBSD.
Login ke sistem OpenBSD anda. Dan masuk ke dalam root (su).
pkg_add wireguard-tools
Install wireguard-tools.
nano /etc/sysctl.conf
Edit file /etc/sysctl.conf dengan nano.
net.inet.ip.forwarding=1
net.pipex.enable=1
net.inet.ipcomp.enable=1
net.inet.gre.allow=1
net.pipex.enable=1
net.inet.ipcomp.enable=1
net.inet.gre.allow=1
Isikan seperti berikut. Kemudian save.
mkdir -p /etc/wireguard
Buat directory wireguard di /etc.
chmod 700 /etc/wireguard
Berikan akses 700 ke /etc/wireguard.
cd /etc/wireguard
Pindah ke dalam directory /etc/wireguard.
wg genkey > secret.key
Generate secret.key dengan wg.
chmod 600 secret.key
Berikan akses 600 ke file secret.key.
wg pubkey < secret.key > public.key
Generate Public Key berdasarkan secret.key menggunakan wg.
nano /etc/wireguard/wg0.conf
Buat baru atau edit file wg0.conf di /etc/wireguard.
[Interface]
PrivateKey = aN.....................................
[Peer]
PublicKey = 8ea.....................................
Endpoint = 139.x.x.x:13231
AllowedIPs = 0.0.0.0/0
PrivateKey = aN.....................................
[Peer]
PublicKey = 8ea.....................................
Endpoint = 139.x.x.x:13231
AllowedIPs = 0.0.0.0/0
Sesuaikan dengan konfigurasi pada Endpoint Mikrotik yang sebelumnya sudah kita konfigurasi. Perlu diketahui, dalam Sistem Operasi OpenBSD, kita tidak bisa menggunakan Endpoint menggunakan hostname atau domain name. Harus menggunakan IP Address.
nano /etc/hostname.wg0
Buat baru atau edit file hostname.wg0 di /etc.
inet 10.10.10.221 255.255.255.0 NONE
up
!/usr/local/bin/wg setconf wg0 /etc/wireguard/wg0.conf
up
!/usr/local/bin/wg setconf wg0 /etc/wireguard/wg0.conf
Disini kita mendefinisikan IP Address untuk interface wg0 dengan IP 10.10.10.221/24.
nano /etc/hostname.em0
Edit file hostname.em0 (Konfigurasi Ethernet dasar di OpenBSD, seperti IP Address, Gateway) di /etc.
192.168.1.221
!route add -host 139.x.x.x 192.168.1.211
!route add -host 139.x.x.x 192.168.1.211
Disini terlihat interface fisik ethernet yang saya gunakan menggunakan IP Address 192.168.1.221, dan mengarahkan IP Address Endpoint Mikrotik (139.x.x.x) ke Gateway 192.168.1.211 (wajib).
route add -net default 10.10.10.221
ping -c 4 10.10.10.211
rdate -s 192.168.1.211
ping -c 4 10.10.10.211
rdate -s 192.168.1.211
Langkah terkahir adalah menambahkan default route ke interface wg0 yaitu 10.10.10.221. /etc/rc.local adalah bagian yang terakhir dijalankan setelah urutan startup boot OpenBSD.
Dalam file /etc/rc.local tersebut saya juga menambahkan perintah untuk ping sebanyak 4 kali ke Remote IP Wireguard (di sisi Endpoint Mikrotik), dan Sinkronisasi waktu di Sistem Operasi OpenBSD ke NTP server local (192.168.1.211) yang sekaligus berfungsi sebagai Gateway.
Langkah terakhir adalah reboot Sistem Operasi OpenBSD anda. Dan lakukan test ping ke Remote IP Wireguard.
Mikrotik OpenBSD Road Warrior Wireguard VPN - Lynix
August 29, 2023
August 29, 2023