Lewati ke isi

Server & Infrastruktur

Menghubungkan Kantor Cabang dengan Tunnel WireGuard

Langkah membuat tunnel WireGuard site-to-site antara kantor pusat dan cabang: rencana subnet, konfigurasi Linux dan MikroTik, rute, dan firewall.

Terbit 6 menit baca

Jawaban singkat

Tentukan subnet yang tidak bentrok, pasang WireGuard di router atau gateway kedua kantor, masukkan subnet lawan di AllowedIPs, aktifkan IP forwarding dan rute, lalu buka port UDP di sisi yang punya IP publik. Bila kedua kantor di balik CGNAT, pakai VPS sebagai titik temu.

Daftar isi
  1. Contoh pembagian alamat
  2. Langkah menyambungkan dua kantor
  3. 1. Pastikan subnet tidak bentrok
  4. 2. Tentukan sisi yang bisa dihubungi
  5. 3. Buat pasangan kunci di masing-masing gateway
  6. 4. Tulis konfigurasi di kantor pusat
  7. 5. Tulis konfigurasi di kantor cabang
  8. 6. Aktifkan IP forwarding dan jalankan tunnel
  9. 7. Buka firewall dan atur rute di router utama
  10. Bagaimana memastikan tunnel bekerja?
  11. Bagaimana bila router kantor memakai MikroTik?
  12. Topologi mana yang cocok?
  13. Pertanyaan yang sering diajukan

Perlu karyawan cabang membuka aplikasi kasir, printer, atau server file di kantor pusat seolah berada di gedung yang sama? Tunnel WireGuard site-to-site bisa melakukannya: dua jaringan kantor disambungkan lewat internet dengan enkripsi, tanpa perlu setiap laptop memasang aplikasi VPN.

Berbeda dengan WireGuard untuk akses remote yang menghubungkan satu perangkat ke kantor, site-to-site menghubungkan jaringan ke jaringan. Router atau gateway di masing-masing kantor yang memegang tunnel, perangkat lain cukup memakai rute biasa.

Contoh pembagian alamat

Contoh di bawah memakai pembagian alamat ini:

  • Kantor pusat: LAN 192.168.10.0/24, gateway WireGuard bisa dijangkau dari internet di pusat.domainmu.com.
  • Kantor cabang: LAN 192.168.20.0/24, boleh berada di balik CGNAT.
  • Jaringan tunnel: 10.99.0.0/24, pusat 10.99.0.1, cabang 10.99.0.2.

Langkah menyambungkan dua kantor

1. Pastikan subnet tidak bentrok

Ini langkah yang paling sering dilewati. Bila kedua kantor sama-sama memakai 192.168.1.0/24 bawaan router, rute tidak akan pernah benar. Ubah salah satu LAN lebih dulu. Pilih rentang privat yang jarang dipakai, dan catat pembagiannya. Penjelasan rentang privat ada di apa itu IP privat, IP publik, dan NAT.

2. Tentukan sisi yang bisa dihubungi

WireGuard butuh setidaknya satu sisi yang bisa dijangkau dari internet di port UDP tertentu. Bila kantor pusat punya IP publik, pusat menjadi sisi penerima. Bila kedua kantor di balik CGNAT, sewa VPS kecil sebagai titik temu (hub): kedua kantor menyambung keluar ke VPS, dan VPS meneruskan lalu lintas di antara keduanya.

3. Buat pasangan kunci di masing-masing gateway

Di gateway Linux (Debian atau Ubuntu), pasang paket lalu buat kunci:

sudo apt install wireguard
umask 077
wg genkey | tee privatekey | wg pubkey > publickey

Kunci privat tidak pernah keluar dari mesinnya. Yang ditukar antar kantor hanya kunci publik.

4. Tulis konfigurasi di kantor pusat

Berkas /etc/wireguard/wg0.conf di gateway pusat:

[Interface]
Address = 10.99.0.1/24
ListenPort = 51820
PrivateKey = <kunci privat pusat>
MTU = 1420

[Peer]
# kantor cabang
PublicKey = <kunci publik cabang>
AllowedIPs = 10.99.0.2/32, 192.168.20.0/24

AllowedIPs berfungsi ganda: daftar alamat yang boleh datang dari peer ini, sekaligus tujuan yang dikirim lewat peer ini. Karena itu subnet LAN cabang wajib dimasukkan.

5. Tulis konfigurasi di kantor cabang

[Interface]
Address = 10.99.0.2/24
PrivateKey = <kunci privat cabang>
MTU = 1420

[Peer]
# kantor pusat
PublicKey = <kunci publik pusat>
Endpoint = pusat.domainmu.com:51820
AllowedIPs = 10.99.0.1/32, 192.168.10.0/24
PersistentKeepalive = 25

PersistentKeepalive = 25 mengirim paket kecil setiap 25 detik agar sambungan NAT di sisi cabang tidak kedaluwarsa. Tanpa ini, kantor pusat tidak bisa memulai koneksi ke cabang yang berada di balik CGNAT setelah tunnel lama diam. Nilai MTU 1420 adalah bawaan wg-quick; alasan dan cara menyesuaikannya ada di apa itu MTU dan kenapa tunnel putus-putus.

6. Aktifkan IP forwarding dan jalankan tunnel

Di kedua gateway:

echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
sudo systemctl enable --now wg-quick@wg0

wg-quick otomatis menambahkan rute untuk setiap alamat di AllowedIPs, jadi gateway pusat langsung tahu bahwa 192.168.20.0/24 lewat wg0.

7. Buka firewall dan atur rute di router utama

Di sisi pusat, izinkan UDP 51820 masuk. Bila ada router lain di depan gateway, teruskan port itu ke gateway. Izinkan juga lalu lintas forward antara antarmuka LAN dan wg0 di firewall gateway.

Bila gateway WireGuard bukan router utama LAN (misalnya server Linux di samping router), tambahkan rute statis di router utama: 192.168.20.0/24 lewat IP gateway WireGuard pusat, dan sebaliknya di cabang. Tanpa rute ini, paket balasan dari perangkat LAN akan dikirim ke internet, bukan ke tunnel.

Bagaimana memastikan tunnel bekerja?

Jalankan sudo wg show di kedua sisi. Baris latest handshake yang baru menandakan tunnel tersambung. Lalu dari komputer di cabang, ping IP printer atau server di pusat. Bila ping lolos tapi aplikasi macet saat membuka data besar, cek kembali MTU.

Bagaimana bila router kantor memakai MikroTik?

RouterOS v7 punya WireGuard bawaan. Konfigurasi setara di router pusat:

/interface wireguard add name=wg-cabang listen-port=51820 mtu=1420
/ip address add address=10.99.0.1/24 interface=wg-cabang
/interface wireguard peers add interface=wg-cabang public-key="<kunci publik cabang>" allowed-address=10.99.0.2/32,192.168.20.0/24
/ip route add dst-address=192.168.20.0/24 gateway=wg-cabang

Kunci publik router muncul di /interface wireguard print. Di router cabang, isi juga endpoint-address, endpoint-port=51820, dan persistent-keepalive=25s pada peer. Berbeda dengan wg-quick, RouterOS tidak menambahkan rute dari allowed-address, jadi rute ke subnet lawan harus dibuat manual seperti di atas. Jangan lupa aturan firewall input untuk UDP 51820 dan aturan forward antar subnet. Bila router masih RouterOS v6 yang belum mendukung WireGuard, pertimbangkan protokol lain, perbandingannya ada di WireGuard vs L2TP vs SSTP.

Topologi mana yang cocok?

Kondisi kantorTopologiCatatan
Pusat punya IP publik, cabang tidakPusat sebagai penerimaPaling sederhana, cabang pakai keepalive
Kedua kantor punya IP publikLangsung, salah satu jadi penerimaBisa saling memulai koneksi
Kedua kantor di balik CGNATVPS sebagai hubLalu lintas lewat VPS, aktifkan forwarding di VPS
Banyak cabangHub di pusat atau VPSTambah satu blok [Peer] per cabang

Pertanyaan yang sering diajukan

Apakah semua internet cabang ikut lewat kantor pusat?

Tidak, selama AllowedIPs hanya berisi subnet kantor pusat. Browsing dan aplikasi cloud tetap keluar lewat internet cabang sendiri. Bila diisi 0.0.0.0/0, semua lalu lintas akan lewat pusat.

Apakah cabang bisa saling terhubung lewat hub?

Bisa. Di setiap cabang, masukkan subnet cabang lain ke AllowedIPs peer hub, lalu pastikan hub mengizinkan forward antar peer dan punya rute ke semua subnet.

Bagaimana bila IP publik kantor pusat berubah-ubah?

Pakai nama domain dengan DNS dinamis sebagai Endpoint. WireGuard membaca nama itu saat tunnel dinyalakan, jadi setelah IP berubah tunnel di cabang perlu dimulai ulang atau dipantau dengan skrip.

Apakah WireGuard cukup aman untuk data bisnis?

WireGuard memakai kriptografi modern dan hanya menerima paket dari kunci yang dikenal. Keamanannya bergantung pada kerahasiaan kunci privat dan pembatasan firewall, jadi simpan kunci dengan izin ketat dan buka hanya akses yang dibutuhkan antar kantor.

Checklist sebelum dipakai karyawan:

  • Subnet kedua kantor tidak bentrok.
  • wg show menunjukkan handshake terbaru di kedua sisi.
  • Rute statis di router utama sudah benar.
  • Firewall hanya membuka layanan yang dibutuhkan antar kantor.
  • MTU sudah diuji dengan transfer berkas besar.

Sumber & referensi

Baca juga