Episode ini membahas remote access VPN: laptop dan perangkat seluler yang terhubung ke kantor lewat satu server WireGuard. Kalian mempelajari perbedaan split tunnel dan full tunnel, pengelolaan kunci per client, serta alat manajemen terpusat seperti wg-dashboard, Firezone, dan Netmaker.

Skenario paling umum di dunia nyata: karyawan yang bekerja dari rumah perlu mengakses server internal kantor. Di sinilah client-to-site atau remote access VPN berperan. Satu server WireGuard di kantor melayani banyak client, dan setiap client hanya punya satu peer di sisi server.
Episode 10 membahas cara menyusun skema ini: konfigurasi server, perbedaan split tunnel dan full tunnel dari sudut pandang client, pengelolaan kunci per client, dan alat bantu manajemen terpusat ketika jumlah client bertambah banyak.
Server WireGuard di kantor memiliki satu interface wg0 dengan banyak [Peer] — satu per client. Setiap client mendapat alamat tunnel unik di subnet yang sama, dan server bertindak sebagai gerbang menuju jaringan kantor.
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <kunci privat server>
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <kunci publik laptop>
AllowedIPs = 10.0.0.2/32
[Peer]
PublicKey = <kunci publik hp>
AllowedIPs = 10.0.0.3/32Setiap [Peer] memakai AllowedIPs /32 milik client-nya. Ini bukan sekadar kenyamanan: dengan cara ini, mencabut akses sebuah client cukup menghapus peer tersebut dari server.
Client cukup mengenal server sebagai satu-satunya peer. Untuk split tunnel menuju jaringan kantor:
[Interface]
Address = 10.0.0.2/24
PrivateKey = <kunci privat client>
[Peer]
PublicKey = <kunci publik server>
AllowedIPs = 10.0.0.0/24, 192.168.10.0/24
Endpoint = 203.0.113.5:51820
PersistentKeepalive = 25PersistentKeepalive = 25 wajib di client karena hampir selalu berada di belakang NAT — seperti yang kita pelajari di episode 7.
Split tunnel mengirim hanya trafik menuju subnet kantor lewat tunnel. Keuntungannya: browsing tetap lewat internet lokal yang cepat, bandwidth kantor tidak dibebani, dan video conference tidak menurun kualitasnya. Cocok untuk pekerjaan harian yang hanya butuh akses server internal.
Full tunnel dengan AllowedIPs = 0.0.0.0/0 mengirim seluruh trafik client lewat server kantor. Ini wajib ketika kebijakan keamanan mengharuskan semua trafik melewati proxy atau filtering kantor, atau ketika client berada di jaringan yang tidak tepercaya. Biayanya: bandwidth kantor menjadi jalan tunggal dan latensi seluruh trafik meningkat.
Setiap client harus punya pasangan kunci sendiri. Jangan pernah berbagi kunci privat antar client, karena mencabut akses satu client akan ikut mencabut yang lain:
wg genkey | tee client-privatekey | wg pubkey > client-publickey
chmod 600 client-privatekeyKunci privat disimpan di sisi client dengan chmod 600; kunci publik didaftarkan sebagai [Peer] di server.
Tambah client baru cukup dengan satu perintah di server:
sudo wg set wg0 peer <PUBLIK_CLIENT_BARU> allowed-ips 10.0.0.4/32Cabut akses dengan menghapus peer:
sudo wg set wg0 peer <PUBLIK_CLIENT_LAMA> removeMengelola peer secara manual di file konfigurasi menjadi tidak praktis setelah puluhan client. Ada beberapa alat open-source yang menyediakan antarmuka dan API:
Ketiganya memanfaatkan WireGuard sebagai mesin tunnel dan menyediakan lapisan manajemen di atasnya. Untuk skala kecil, wg set dan file konfigurasi masih lebih dari cukup.
Episode 10 menyelesaikan skema remote access: satu server WireGuard melayani banyak client, masing-masing dengan kunci dan alamat unik, memilih split tunnel atau full tunnel sesuai kebutuhan, dan menggunakan alat manajemen terpusat saat skala membesar.
Inti yang harus dibawa pulang:
AllowedIPs /32 sendiri di sisi server.PersistentKeepalive = 25 wajib untuk client di belakang NAT.Di episode 11 selanjutnya kita membahas multi-peer dan hub topology — membangun hub-and-spoke dengan server sebagai pusat routing antar client, membandingkannya dengan full mesh, dan menghitung biaya scaling dari setiap pendekatan.