WireGuard untuk Akses Remote Kantor yang Aman
Panduan memasang server WireGuard di VPS, membuat konfigurasi per staf, membatasi akses ke layanan internal, dan mencabut kunci saat staf keluar.
Jawaban singkat
Pasang WireGuard di VPS, buat satu pasang kunci dan satu alamat IP tunnel untuk setiap staf, batasi layanan internal agar hanya menerima koneksi dari jaringan tunnel, lalu cabut peer staf yang keluar dengan menghapus kunci publiknya dari server.
Daftar isi
Panel admin, database, dan dashboard internal sering dibuka langsung ke internet dengan alasan "biar bisa dibuka dari rumah". Akibatnya, setiap port itu bisa dicoba siapa saja. Alternatif yang ringan untuk tim kecil adalah menaruh layanan tersebut di balik server WireGuard, dengan satu kunci untuk setiap orang.
Dengan cara ini, layanan internal hanya mendengarkan di jaringan tunnel. Dari internet, yang terlihat hanya satu port UDP, dan WireGuard tidak membalas paket yang tidak membawa kunci peer yang dikenal.
Kenapa memilih WireGuard?
WireGuard adalah protokol VPN dengan kode yang ringkas dan konfigurasi yang sedikit. Identitas setiap perangkat berupa pasangan kunci publik dan privat, mirip SSH key. Tidak ada nama pengguna atau password yang bisa ditebak. Kalau kamu sedang menimbang protokol lain, perbandingannya ada di WireGuard vs L2TP vs SSTP.
Rancangan yang dipakai di panduan ini:
- VPS dengan Ubuntu atau Debian sebagai server WireGuard, sekaligus tempat layanan internal (misalnya dashboard di port 3000).
- Subnet tunnel
10.8.0.0/24. Server memakai10.8.0.1, staf mendapat10.8.0.2,10.8.0.3, dan seterusnya. - Port WireGuard
51820/udp. Angka ini lazim di contoh dokumentasi, boleh kamu ganti. - Split tunnel: hanya lalu lintas ke subnet tunnel yang lewat VPN, internet staf tetap lewat jalur biasa.
Sebelum mulai, pastikan VPS sudah diamankan dasar-dasarnya (update, SSH key, firewall). Panduannya ada di cara mengamankan VPS baru.
Memasang server WireGuard
Instal paketnya, lalu buat kunci server. Folder /etc/wireguard hanya bisa ditulis root, jadi perintah pembuatan kunci dijalankan di shell root.
sudo apt update && sudo apt install wireguard
sudo -i
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
Buat file /etc/wireguard/wg0.conf:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <isi dari server.key>
Buka port di firewall dan jalankan layanannya:
sudo ufw allow 51820/udp
sudo systemctl enable --now wg-quick@wg0
sudo wg show
Perintah wg show menampilkan interface wg0 dan kunci publik server. Belum ada peer, itu normal.
Bagaimana membuat konfigurasi untuk setiap staf?
Aturannya satu: satu orang, satu perangkat, satu pasang kunci. Jangan bagikan satu file konfigurasi untuk beberapa orang, karena kamu tidak akan bisa mencabut akses satu orang tanpa mengganggu yang lain.
Buat kunci untuk staf pertama:
wg genkey | tee staf01-laptop.key | wg pubkey > staf01-laptop.pub
Tambahkan peer ke wg0.conf di server:
# staf01-laptop, admin gudang
[Peer]
PublicKey = <isi dari staf01-laptop.pub>
AllowedIPs = 10.8.0.2/32
Lalu buat file konfigurasi untuk perangkat staf:
[Interface]
PrivateKey = <isi dari staf01-laptop.key>
Address = 10.8.0.2/32
[Peer]
PublicKey = <isi dari server.pub>
Endpoint = ip-publik-vps:51820
AllowedIPs = 10.8.0.0/24
PersistentKeepalive = 25
AllowedIPs = 10.8.0.0/24 di sisi staf berarti hanya lalu lintas ke jaringan tunnel yang dikirim lewat VPN. Muat ulang server dengan sudo systemctl restart wg-quick@wg0 (perintah ini memutus sebentar semua peer yang sedang terhubung), lalu impor file tadi ke aplikasi WireGuard di laptop atau HP. Untuk HP, file konfigurasi bisa diubah menjadi kode QR dengan alat seperti qrencode.
Kirim file konfigurasi lewat jalur yang aman, bukan grup chat. File itu berisi kunci privat, jadi siapa pun yang memegangnya bisa masuk sebagai staf tersebut. Setelah diimpor, hapus salinan kunci privat staf dari server.
Membatasi akses ke layanan internal
WireGuard hanya membuat jalannya. Yang menentukan aman tidaknya adalah layanan apa yang bisa dijangkau lewat jalan itu.
Langkah paling efektif adalah membuat layanan internal hanya mendengarkan di alamat tunnel. Misalnya dashboard diatur untuk bind ke 10.8.0.1:3000, bukan 0.0.0.0:3000. Dengan begitu, layanan itu tidak bisa dibuka dari internet sama sekali, bahkan kalau aturan firewall keliru.
Lapisan kedua adalah firewall per interface:
sudo ufw allow in on wg0 to any port 3000 proto tcp
sudo ufw allow in on wg0 to any port 22 proto tcp
Kalau hanya sebagian staf boleh membuka layanan tertentu, buat aturan berdasarkan alamat tunnel mereka, misalnya hanya 10.8.0.2 yang boleh ke port database. Inilah alasan setiap staf diberi alamat tetap.
Apa yang harus dilakukan saat staf keluar?
Pencabutan akses di WireGuard sederhana karena identitas melekat pada kunci publik. Hapus peer secara langsung dari interface yang sedang berjalan:
sudo wg set wg0 peer <kunci-publik-staf01-laptop> remove
Lalu hapus juga blok [Peer] miliknya dari wg0.conf, supaya tidak muncul lagi saat layanan dimuat ulang. Catat tanggal pencabutan di dokumentasi akses.
Kebiasaan kecil yang memudahkan:
- Beri komentar nama dan perangkat di atas setiap blok
[Peer]. - Simpan daftar peer di satu tempat: nama, perangkat, alamat tunnel, tanggal dibuat.
- Tinjau daftar ini setiap bulan. Perintah
sudo wg showmenampilkan waktu latest handshake setiap peer, jadi peer yang lama tidak terhubung mudah dikenali. - Kalau laptop staf hilang, perlakukan sama seperti staf keluar: cabut kuncinya, buat kunci baru untuk perangkat penggantinya.
Kapan WireGuard sendiri mulai merepotkan?
Untuk tim beberapa orang, mengelola file konfigurasi manual masih nyaman. Ketika jumlah staf dan perangkat bertambah, pekerjaan membagikan kunci, mencatat alamat, dan meninjau peer mulai terasa. Di titik itu, alat manajemen di atas WireGuard atau pendekatan akses per aplikasi bisa dipertimbangkan. Bedanya dibahas di VPN vs Zero Trust Network Access.
Pertanyaan yang sering diajukan
Apakah WireGuard bisa dipakai di HP?
Bisa. Aplikasi WireGuard resmi tersedia untuk Android dan iOS, dan konfigurasi bisa diimpor dari file atau kode QR.
Apakah satu kunci boleh dipakai di laptop dan HP sekaligus?
Sebaiknya tidak. Buat kunci dan alamat tunnel terpisah untuk setiap perangkat agar pencabutan bisa dilakukan per perangkat.
Kenapa staf tidak bisa terhubung padahal konfigurasi benar?
Periksa apakah port UDP WireGuard terbuka di firewall VPS dan di firewall penyedia cloud, lalu cek waktu handshake dengan perintah wg show.


