Skenarionya umum: ada aplikasi internal — sistem informasi, dashboard, ERP, atau aplikasi HR — yang jalan di kantor pusat (Kantor B) dan tidak boleh diekspos ke internet. Tapi beberapa PC di kantor cabang / mitra (Kantor A) perlu mengaksesnya. Solusi yang benar: IPsec site-to-site — tunnel terenkripsi antar-router yang menyambung kedua jaringan seolah satu LAN, tanpa membuka aplikasi ke publik. Artikel ini memakai MikroTik di kedua sisi (RouterOS v7, IKEv2), lengkap dengan config, verifikasi, dan jebakan yang paling sering bikin gagal.
Apa Itu IPsec Site-to-Site & Kapan Dipakai
IPsec site-to-site menghubungkan dua jaringan lewat tunnel terenkripsi di level router — beda dengan VPN remote access (L2TP/WireGuard client) yang menyambungkan satu perangkat. Dengan site-to-site, PC di Kantor A cukup ping/akses IP internal Kantor B seperti biasa; routernya yang mengurus enkripsi di belakang layar. Pengguna tak perlu instal apa pun.
Topologi & Parameter IPsec
Contoh topologi dua kantor. Kantor A punya PC yang perlu akses; Kantor B punya aplikasi internal:
Arahkan kursor (atau sentuh) tiap perangkat untuk penjelasan singkat. Garis hijau putus-putus = tunnel IPsec terenkripsi; aplikasi internal Kantor B tak pernah terekspos ke internet.
Gratis untuk keperluan pendidikan — Lisensi CC-BY-SA 4.0. Cantumkan cekipsaya.com sebagai sumber.
| Kantor A (cabang) | Kantor B (pusat) | |
|---|---|---|
| IP publik router | 203.0.113.1 |
198.51.100.1 |
| LAN internal | 10.10.10.0/24 |
10.20.20.0/24 |
| Yang diakses | PC: 10.10.10.21 |
Aplikasi: 10.20.20.40 |
| Peran | Inisiator | Responder |
Parameter kriptografi harus identik di kedua sisi. Ini set yang aman dan didukung luas (setara yang dipakai integrasi enterprise):
| Fase | Enkripsi | Integrity | DH / PFS | Lifetime |
|---|---|---|---|---|
| Phase 1 (IKEv2) | AES-256 | SHA-256 | Group 14 (modp2048) | 24 jam |
| Phase 2 (ESP) | AES-256-CBC | SHA-256 | PFS Group 14 | 8 jam |
Config MikroTik Sisi Kantor A (Inisiator)
RouterOS v7. Buat profile (Phase 1) dan proposal (Phase 2), lalu peer, identity (PSK), dan policy yang menentukan trafik mana yang masuk tunnel:
# ══════════════════════════════════════════
# cekipsaya.com — network intelligence tools
# gratis untuk Indonesia: cek IP, DNS, ping,
# traceroute, security headers & more.
# ══════════════════════════════════════════
# --- Phase 1 (IKE) ---
/ip ipsec profile
add name=ike2-prof hash-algorithm=sha256 enc-algorithm=aes-256 \
dh-group=modp2048 lifetime=1d
# --- Phase 2 (ESP) ---
/ip ipsec proposal
add name=ike2-prop auth-algorithms=sha256 enc-algorithms=aes-256-cbc \
pfs-group=modp2048 lifetime=8h
# --- Peer: IP publik router Kantor B ---
/ip ipsec peer
add name=peer-kantor-b address=198.51.100.1/32 \
exchange-mode=ike2 profile=ike2-prof
# --- Identity: Pre-Shared Key (JANGAN pakai contoh ini) ---
/ip ipsec identity
add peer=peer-kantor-b auth-method=pre-shared-key \
secret="<PSK-RAHASIA-MIN-24-KARAKTER-ACAK>"
# --- Policy: LAN A -> LAN B (encryption domain) ---
/ip ipsec policy
add peer=peer-kantor-b tunnel=yes \
src-address=10.10.10.0/24 dst-address=10.20.20.0/24 \
proposal=ike2-prop action=encrypt
# --- Bypass NAT untuk trafik tunnel (WAJIB, taruh paling atas) ---
/ip firewall nat
add chain=srcnat action=accept place-before=0 \
src-address=10.10.10.0/24 dst-address=10.20.20.0/24 \
comment="Bypass NAT IPsec ke Kantor B"
# --- Izinkan forward dua arah ---
/ip firewall filter
add chain=forward action=accept \
src-address=10.10.10.0/24 dst-address=10.20.20.0/24 \
comment="IPsec: A -> B"
add chain=forward action=accept \
src-address=10.20.20.0/24 dst-address=10.10.10.0/24 \
comment="IPsec: B -> A"
Config MikroTik Sisi Kantor B (Responder)
Sisi Kantor B persis cermin dari Kantor A: parameter sama, tapi src-address dan dst-address ditukar, dan peer mengarah ke IP publik Kantor A. PSK harus sama persis.
# ══════════════════════════════════════════
# cekipsaya.com — network intelligence tools
# ══════════════════════════════════════════
/ip ipsec profile
add name=ike2-prof hash-algorithm=sha256 enc-algorithm=aes-256 \
dh-group=modp2048 lifetime=1d
/ip ipsec proposal
add name=ike2-prop auth-algorithms=sha256 enc-algorithms=aes-256-cbc \
pfs-group=modp2048 lifetime=8h
# --- Peer mengarah ke IP publik Kantor A ---
/ip ipsec peer
add name=peer-kantor-a address=203.0.113.1/32 \
exchange-mode=ike2 profile=ike2-prof
/ip ipsec identity
add peer=peer-kantor-a auth-method=pre-shared-key \
secret="<PSK-RAHASIA-SAMA-PERSIS-DENGAN-A>"
# --- Policy: src/dst DITUKAR dari sisi A ---
/ip ipsec policy
add peer=peer-kantor-a tunnel=yes \
src-address=10.20.20.0/24 dst-address=10.10.10.0/24 \
proposal=ike2-prop action=encrypt
# --- Bypass NAT + forward (arah ditukar) ---
/ip firewall nat
add chain=srcnat action=accept place-before=0 \
src-address=10.20.20.0/24 dst-address=10.10.10.0/24 \
comment="Bypass NAT IPsec ke Kantor A"
Membatasi ke PC / Aplikasi Tertentu (Lebih Aman)
Contoh di atas menyambung seluruh subnet. Untuk keamanan lebih ketat — mis. hanya 2 PC tertentu boleh akses 1 aplikasi tertentu — persempit policy ke host spesifik (/32) di kedua sisi. Ini pola yang dipakai saat pihak tujuan hanya mengizinkan daftar host tertentu (whitelist):
# Sisi Kantor A — hanya 2 PC boleh akses 1 aplikasi:
/ip ipsec policy
add peer=peer-kantor-b tunnel=yes proposal=ike2-prop action=encrypt \
src-address=10.10.10.21/32 dst-address=10.20.20.40/32
add peer=peer-kantor-b tunnel=yes proposal=ike2-prop action=encrypt \
src-address=10.10.10.22/32 dst-address=10.20.20.40/32
# Sisi Kantor B — mirror terbalik (src/dst ditukar):
# src-address=10.20.20.40/32 dst-address=10.10.10.21/32 ... dst-address=10.10.10.22/32
/32 berarti tiap policy harus mirror persis di kedua sisi. Menambah 1 PC = update kedua router. Lebih aman, tapi lebih banyak koordinasi — trade-off yang wajar untuk aplikasi sensitif.Verifikasi Tunnel Lapis demi Lapis
Jangan langsung tes aplikasi. Verifikasi berlapis supaya tahu persis di mana masalahnya kalau gagal:
/ip ipsec active-peers print — status harus established. Kalau kosong: cek IP publik peer, PSK, dan parameter Phase 1./ip ipsec installed-sa print — harus ada SA mature dan angka bytes naik saat ada trafik. Kalau "no phase 2": proposal/policy tak cocok.ping 10.20.20.40. Wajib dari PC yang masuk encryption domain — bukan dari router (router punya src-address beda). Balasan = jaringan tembus.Test-NetConnection 10.20.20.40 -Port 443 (PowerShell). Kalau ping jalan tapi ini gagal — lompat ke bagian troubleshooting di bawah.Perintah bantu di MikroTik untuk melihat trafik nyata melintasi tunnel:
/ip ipsec active-peers print ;# Phase 1: established?
/ip ipsec installed-sa print ;# Phase 2: mature? bytes naik?
/ip ipsec policy print stats ;# counter ph2-state, in/out bytes
/tool torch src-address=10.10.10.0/24 dst-address=10.20.20.0/24 ;# lihat paket real-time
Troubleshooting: "No Phase 2" & "Ping Jalan tapi Aplikasi Tak Kebuka"
Dua kegagalan paling sering — dan keduanya bukan soal "IPsec-nya rusak":
Penyebab #1: proposal Phase 2 tak cocok (enc/hash/PFS beda antar sisi). Penyebab #2: policy src/dst tak mirror terbalik — subnet di sisi A harus jadi dst di sisi B, dan sebaliknya. Cocokkan sampai identik.
Hampir selalu NAT belum di-bypass. Trafik ke subnet tujuan ter-masquerade sebelum sempat masuk policy IPsec. Pastikan rule accept bypass NAT ada di atas masquerade.
Ini bukan masalah tunnel — jaringan sudah tembus (ping bukti). Cek 3 hal di sisi tujuan: (1) firewall di Kantor B belum meng-allow port aplikasi dari subnet Kantor A, (2) aplikasi belum listening di port yang kamu kira, atau (3) port aplikasi bukan yang kamu tebak. Uji Test-NetConnection ke port 80 / 8080 / 8443 untuk menemukan yang benar.
Lifetime Phase 2 habis lalu re-key. Normal. Kalau sering putus lama: pastikan PFS group sama dan tak ada perangkat di tengah yang memblok UDP 500/4500 (NAT-T).
Studi Kasus: Kalau Sisi Seberang Bukan MikroTik (Palo Alto / FortiGate)
Dalam praktik, sisi lawan sering memakai firewall enterprise seperti Palo Alto atau FortiGate — dan di sinilah banyak integrasi tersendat. MikroTik memakai model policy-based (policy = encryption domain), sedangkan Palo Alto lazimnya route-based dengan Proxy-ID. Keduanya bisa nyambung, asal Proxy-ID di sisi enterprise mirror persis dengan src-address/dst-address policy MikroTik.
Poin interoperabilitas yang menyelamatkan berjam-jam debugging: kalau kamu pakai policy /32 (host spesifik) di MikroTik, maka tiap pasangan harus punya Proxy-ID sendiri di sisi Palo Alto/FortiGate. Ketidakcocokan Proxy-ID = "no phase 2" walau Phase 1 sudah established. Selebihnya (IKEv2, AES-256, SHA-256, DH14) sama persis — parameter itu netral-vendor.
FAQ — Pertanyaan yang Sering Ditanyakan
Kesimpulan
IPsec site-to-site MikroTik itu bukan sihir: cocokkan Phase 1 & Phase 2 di kedua sisi, mirror src-address/dst-address secara terbalik, dan JANGAN lupa bypass NAT untuk trafik tunnel. Kalau tunnel established tapi aplikasi belum kebuka, hampir selalu itu soal firewall/port di sisi tujuan — bukan tunnelnya. Verifikasi tiap lapis dengan ping lalu cek port, dan kamu punya jalur antar-kantor yang aman tanpa mengekspos aplikasi internal ke internet.