Skenario yang sering muncul di group sysadmin: kamu butuh setup OpenVPN server di MikroTik supaya client WFH bisa full tunnel — semua traffic-nya keluar via IP publik kantor, bukan ISP rumah. Atau kamu mahasiswa skripsi yang lagi membandingkan performa OpenVPN vs WireGuard untuk tugas akhir. Atau IT lapangan yang harus akses resource yang whitelist IP kantor dari mana saja. OpenVPN di MikroTik bisa, tapi step-nya panjang dan beberapa hal sering luput: cipher mismatch, certificate yang salah signed, NAT masquerade lupa di-add, atau push-route yang tidak nempel. Artikel ini panduan lengkap dari sisi server — empat lapisan yang harus benar, plus contoh config siap copy-paste.

OpenVPN Full Tunnel di MikroTik
Ilustrasi: OpenVPN Full Tunnel di MikroTik
Asumsi RouterOS: Tutorial ini ditulis untuk RouterOS 7.13+ di mana cipher modern (AES-256-CBC, AES-256-GCM) sudah didukung penuh. Untuk RouterOS 6.x, konfigurasi mirip tapi cipher pilihan terbatas — gunakan aes-256-cbc + sha256. Jangan pakai default blowfish-128 + sha1 — sudah dianggap weak.

Apa itu OpenVPN Full Tunnel?

OpenVPN adalah protokol VPN open-source yang sudah jadi standar industri sejak 2001. Berbasis TLS/SSL, support certificate authentication, banyak cipher pilihan, dan tersedia di hampir semua platform — termasuk MikroTik. Full tunnel artinya: semua traffic dari client (browsing, streaming, download, ping) di-route lewat tunnel ke server VPN, baru keluar ke internet dari sana. Beda dengan split tunnel yang cuma route subnet tertentu (misalnya cuma 10.10.0.0/24 jaringan internal kantor).

Aspek Split Tunnel Full Tunnel
Routing client Subnet kantor saja Semua traffic (0.0.0.0/0)
IP publik client IP ISP rumah IP publik kantor
Bandwidth server Rendah (cuma traffic kantor) Tinggi (semua traffic)
Privacy log Hanya akses kantor tercatat Semua browsing tercatat di gateway kantor
Use case Akses file server, RDP, internal app Whitelist IP, audit dari kantor, debug rute

OpenVPN vs WireGuard — Kapan Pilih Mana?

Kalau ini setup baru dari nol, banyak praktisi rekomendasi WireGuard — protokol baru, code base ringan (~4.000 baris vs OpenVPN ~100.000 baris), throughput lebih tinggi 30–50% di benchmark independen, setup di MikroTik cuma butuh dua perubahan. Tapi OpenVPN tetap relevan kalau: (1) kamu bermigrasi dari setup lama yang sudah pakai OpenVPN, (2) compliance kantor wajibkan certificate-based authentication audit-friendly, (3) butuh mode TCP untuk tembus firewall yang block UDP, atau (4) tugas skripsi yang membandingkan performa keduanya.

Kebutuhan & Topologi

Sebelum mulai konfigurasi, pastikan tiga hal di bawah sudah terpenuhi. Tanpa salah satunya, OpenVPN tidak akan bisa connect dari client.

Subnet OpenVPN yang akan dipakai: 192.168.77.0/24. Pilih subnet yang tidak overlap dengan LAN kantor maupun jaringan rumah client. Kalau LAN kantor pakai 192.168.1.0/24, subnet OpenVPN jangan sama — pasti konflik routing.

Persiapan: Generate Sertifikat di RouterOS

OpenVPN wajib pakai certificate untuk server (client cert opsional di MikroTik). Ada dua jalur generate cert: (A) di RouterOS langsung — paling sederhana, semua di satu tempat, atau (B) di mesin Linux dengan easy-rsa lalu import ke MikroTik — lebih fleksibel kalau kamu punya banyak server. Tutorial ini pakai jalur A (CLI RouterOS).

STEP 1 — Generate CA (Certificate Authority)
# cekipsaya.com — generate CA template + sign jadi root CA
/certificate
add name=ca-template country=ID state=Jakarta locality=Jakarta \
    organization=KantorSaya unit=IT common-name=OVPN-CA \
    key-size=2048 days-valid=3650 \
    key-usage=crl-sign,key-cert-sign

sign ca-template ca-crl-host=127.0.0.1 name=ovpn-ca
Step `sign` butuh waktu 30–120 detik (tergantung CPU MikroTik). Tunggu sampai prompt kembali. CA ini self-signed, valid 10 tahun.
STEP 2 — Generate Server Certificate
# cekipsaya.com — generate server cert + sign dengan CA
/certificate
add name=server-template country=ID state=Jakarta locality=Jakarta \
    organization=KantorSaya unit=IT common-name=ovpn-server \
    key-size=2048 days-valid=1825 \
    key-usage=digital-signature,key-encipherment,tls-server

sign server-template ca=ovpn-ca name=ovpn-server
Penting: key-usage harus include tls-server. Tanpa flag ini, OpenVPN client akan reject dengan error "VERIFY ERROR: certificate is not server-friendly".
STEP 3 — Generate Client Certificate (per-user)
# cekipsaya.com — generate client cert (ulang per user)
/certificate
add name=client1-template country=ID state=Jakarta locality=Jakarta \
    organization=KantorSaya unit=IT common-name=client1 \
    key-size=2048 days-valid=730 \
    key-usage=tls-client

sign client1-template ca=ovpn-ca name=client1
Untuk multi-user, ulangi step ini dengan common-name berbeda (client2, client3, dll). Best practice: 1 cert per device, bukan 1 cert dipakai bersama.

Export Certificate untuk Client

STEP 4 — Export CA + Client Cert ke File
# cekipsaya.com — export CA cert (PEM format, public)
/certificate
export-certificate ovpn-ca export-passphrase=""

# Export client cert + private key (dengan passphrase!)
export-certificate client1 export-passphrase=PassphraseRahasiaAnda
File akan muncul di Files. Download via Winbox → Files → drag ke Desktop, atau via SCP. Penting: file cert_export_client1.key berisi private key — JANGAN share via WhatsApp/email tanpa enkripsi tambahan.

Konfigurasi IP Pool & PPP Profile

OpenVPN di MikroTik butuh IP pool — range IP yang akan di-assign ke client saat connect. Plus PPP profile yang define routing behavior (push route, DNS, kompresi). Tanpa kedua ini, server akan jalan tapi client tidak dapat IP.

STEP 5 — IP Pool untuk Client OpenVPN
# cekipsaya.com — pool 192.168.77.2 sampai .254 (250 IP)
/ip pool
add name=ovpn-pool ranges=192.168.77.2-192.168.77.254
Range mulai dari .2 karena .1 nanti jadi gateway server. 250 IP cukup untuk kantor ukuran kecil-menengah — kalau perlu lebih besar, naikkan ke /23 atau /22.
STEP 6 — PPP Profile dengan Push-Route Full Tunnel
# cekipsaya.com — profile yang push default route ke client
/ppp profile
add name=ovpn-profile \
    local-address=192.168.77.1 \
    remote-address=ovpn-pool \
    use-encryption=required \
    only-one=default \
    dns-server=1.1.1.1,8.8.8.8 \
    change-tcp-mss=yes
local-address=192.168.77.1 jadi gateway untuk client. DNS push ke Cloudflare + Google supaya tidak DNS leak. change-tcp-mss=yes mencegah masalah MSS clamping di tunnel.

Buat User (PPP Secret) untuk Client

STEP 7 — Tambah User OpenVPN
# cekipsaya.com — user "user1" pakai service ovpn
/ppp secret
add name=user1 password=PasswordKuat123! \
    service=ovpn profile=ovpn-profile
Username max 27 karakter di RouterOS <7.18, sampai 1000 char di 7.18+. Password disarankan minimal 12 char dengan mix huruf/angka/symbol. Untuk multi-user, ulangi step ini per orang.

Aktifkan OVPN Server di MikroTik

Sekarang core-nya: aktifkan OVPN server dengan certificate, cipher, dan auth yang match dengan client config. Salah satu mismatch = handshake gagal.

STEP 8 — Enable OpenVPN Server
# cekipsaya.com — server OVPN port 1194 TCP
/interface ovpn-server server
set enabled=yes \
    port=1194 \
    mode=ip \
    netmask=24 \
    mac-address=FE:11:22:33:44:55 \
    default-profile=ovpn-profile \
    certificate=ovpn-server \
    require-client-certificate=yes \
    auth=sha256 \
    cipher=aes256 \
    redirect-gateway=def1
cipher=aes256 mapping ke AES-256-CBC. require-client-certificate=yes = client wajib pakai cert (lebih aman dari username/password saja). redirect-gateway=def1 = full tunnel mode.
RouterOS 7.17+ multi-server support: Versi terbaru RouterOS support multiple OVPN server instance — gunakan add + nama instance kalau butuh lebih dari satu server (misal: server lab + server production di router yang sama). Tutorial ini pakai set karena single-server adalah pattern paling umum di kantor.
Parameter Nilai Catatan
port 1194 Default OpenVPN. Ganti kalau bentrok dengan service lain
mode ip TUN mode (layer 3). Ada juga "ethernet" (TAP, layer 2)
cipher aes256 AES-256-CBC (short form RouterOS). Untuk GCM mode RouterOS 7.13+, ganti ke aes256-gcm — lebih cepat ~10-15%
auth sha256 Jangan pakai sha1 (deprecated)
certificate ovpn-server Nama cert server yang sudah di-sign
require-client-certificate yes ✅ Lebih aman. Client harus install cert juga
Catatan TCP vs UDP: RouterOS sampai versi 7.x lama hanya support OpenVPN TCP. Mulai 7.7 (2022), UDP support ditambahkan tapi masih flag experimental di sebagian versi. TCP lebih reliable dan mudah lewat firewall, tapi UDP lebih cepat untuk streaming. Tutorial ini pakai TCP (default + paling stable).

Firewall Rules untuk OpenVPN

Tiga firewall rule yang wajib ditambahkan: (1) accept incoming OpenVPN port 1194, (2) accept traffic dari subnet OpenVPN ke LAN kantor (kalau perlu akses internal), dan (3) NAT masquerade — yang paling sering luput dan bikin internet putus saat connect.

STEP 9 — Firewall: Accept OpenVPN Port
# cekipsaya.com — buka port 1194 TCP di firewall input
/ip firewall filter
add chain=input action=accept protocol=tcp dst-port=1194 \
    in-interface-list=WAN comment="Allow OpenVPN"

# Tempatkan rule di atas drop default — cek urutan:
print
Rule ini harus di atas drop default (kalau ada). Kalau urutan salah, paket akan ke-drop sebelum sempat di-accept.
STEP 10 — NAT Masquerade (CRITICAL!)
# cekipsaya.com — masquerade traffic OpenVPN client ke WAN
/ip firewall nat
add chain=srcnat action=masquerade \
    src-address=192.168.77.0/24 \
    out-interface-list=WAN \
    comment="Masquerade OpenVPN to WAN"
INI YANG SERING LUPA. Tanpa rule ini, traffic client OpenVPN akan keluar ke internet dengan source IP 192.168.77.x — yang tidak akan diterima oleh ISP atau server tujuan. Hasilnya: tunnel connect tapi internet putus total.
Tip troubleshooting: Kalau setelah connect internet client putus, 95% kasus = NAT masquerade lupa di-add atau salah out-interface. Cek dengan /ip firewall nat print — pastikan ada rule masquerade dengan src-address=192.168.77.0/24.

Generate File .ovpn untuk Client

File .ovpn adalah config tunggal yang berisi: alamat server, parameter cipher/auth, dan certificate (bisa embed inline atau referensi external). Format ini di-import ke OpenVPN client di Windows/Mac/Linux/Android. Buat manual via text editor, lalu kirim ke client (lewat channel aman).

TEMPLATE — client.ovpn (edit IP publik kantor + paste cert)
# cekipsaya.com — OpenVPN client config
client
dev tun
proto tcp
remote 103.10.x.x 1194
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
auth-user-pass
verb 3

<ca>
-----BEGIN CERTIFICATE-----
[paste isi cert_export_ovpn-ca.crt di sini]
-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----
[paste isi cert_export_client1.crt di sini]
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
[paste isi cert_export_client1.key di sini]
-----END PRIVATE KEY-----
</key>
Ganti 103.10.x.x dengan IP publik kantor kamu. Save sebagai client1.ovpn. File ini yang akan di-import ke OpenVPN client di sisi user.
Privacy: File .ovpn berisi private key client — perlakukan seperti password. JANGAN kirim via WhatsApp tanpa password protection, JANGAN simpan di Drive bersama, JANGAN commit ke Git. Kalau leaked, bisa dipakai siapa saja untuk akses jaringan kantor sampai cert di-revoke.

Verifikasi Koneksi (Cek IP via cekipsaya.com)

Setelah client connect ke OpenVPN, ada tiga test cepat untuk pastikan full tunnel jalan:

TEST 1
Cek IP Publik Client — Buka cekipsaya.com/cek-ip-saya — IP yang muncul harus IP publik kantor (103.10.x.x), bukan IP rumah. Kalau masih IP rumah = full tunnel tidak aktif (cek redirect-gateway di profile + def1).
TEST 2
Cek Route Tabel — Di Windows: route print. Di Mac/Linux: netstat -rn. Cari default route — harus mengarah ke 192.168.77.1 (gateway OpenVPN server). Kalau masih ke gateway ISP rumah = full tunnel belum jalan.
TEST 3
Ping & Traceroute — Jalankan ping 8.8.8.8 + traceroute 8.8.8.8 (atau Traceroute online). Hop pertama harus 192.168.77.1, lalu 10.10.x.x (LAN kantor), lalu IP publik kantor, baru ke internet. Kalau hop pertama langsung ISP rumah = tunnel tidak aktif.
Indikator sukses: Cek IP via cekipsaya.com/cek-ip-saya menunjukkan IP publik kantor + ASN provider kantor (bukan ASN ISP rumah). Kalau ya, full tunnel sudah jalan dan kamu siap pakai untuk akses VPN-restricted services, audit dari perspektif kantor, atau benchmark skripsi.

Troubleshooting Umum

Gejala Kemungkinan Penyebab Cara Fix
Connect tapi internet putus NAT masquerade tidak ada / salah out-interface Cek /ip firewall nat print, pastikan masquerade ada untuk subnet OpenVPN ke WAN
VERIFY ERROR: certificate is not server-friendly Server cert tidak punya tls-server di key-usage Re-generate server cert dengan key-usage=...,tls-server
Cipher mismatch / TLS handshake failed Cipher di server ≠ cipher di .ovpn client Sync: server cipher=aes256 = client cipher AES-256-CBC
Connect timeout Port 1194 di-block firewall ISP atau MikroTik Test telnet 103.10.x.x 1194 dari client. Cek firewall MikroTik input chain.
IP client masih IP rumah redirect-gateway tidak aktif Tambah redirect-gateway=def1 di OVPN server config + push redirect-gateway def1 di .ovpn
DNS leak (browsing pakai DNS ISP) DNS push tidak nempel di client Tambah dns-server=... di PPP profile, di Windows juga block-outside-dns di .ovpn

Lihat Log untuk Debug

Aktifkan Logging Detail OpenVPN
# cekipsaya.com — logging untuk debug OpenVPN
/system logging
add topics=ovpn,info,!debug action=memory

# Lihat log:
/log print where topics~"ovpn"
Log akan show handshake step-by-step. Cari error pattern: "TLS Error", "VERIFY ERROR", "AUTH_FAILED" — masing-masing punya fix berbeda (lihat tabel di atas).

Kapan Kembali ke Split Tunnel?

Full tunnel boros bandwidth server dan bisa expose privacy (semua browsing tercatat di gateway kantor). Pakai full tunnel cuma saat: (1) butuh akses whitelist IP, (2) audit jaringan dari perspektif kantor, (3) test/benchmark skripsi, atau (4) terhubung ke WiFi publik yang tidak aman. Untuk kerja sehari-hari, split tunnel lebih efisien.

Untuk switch ke split tunnel di OpenVPN, edit .ovpn client: hapus redirect-gateway def1, tambah route 10.10.0.0 255.255.255.0 (subnet LAN kantor). Atau di sisi server, ganti redirect-gateway=def1 jadi redirect-gateway=disabled dan push route subnet kantor saja via PPP profile.

FAQ — Pertanyaan yang Sering Ditanyakan

OpenVPN: protokol matang sejak 2001, basis TLS, certificate-based, support TCP/UDP, banyak cipher pilihan, code base ~100.000 baris. WireGuard: protokol modern (2018), kernel-level, key-exchange Noise protocol, hanya UDP, code base ~4.000 baris, throughput 30-50% lebih tinggi di benchmark independen. Setup di MikroTik: WireGuard butuh ~5 command, OpenVPN butuh ~15+ command (cert generation + pool + profile + secret + server + firewall + NAT). Detail: <a href="/artikel/wireguard-full-tunnel-mikrotik/">WireGuard di MikroTik</a>.
Default: 1194 (TCP atau UDP). Bisa diganti via parameter <code>port</code> di OVPN server config. Ganti port sering dipakai untuk: (1) bypass ISP yang block port 1194, (2) jalankan di port 443 (TCP) supaya kelihatan seperti HTTPS dan tembus firewall ketat. Tapi kalau ganti port, pastikan firewall input MikroTik juga di-update.
Secara teknis bisa dipakai bareng (1 cert untuk semua user), tapi <strong>tidak disarankan</strong>. Best practice: 1 cert per device. Alasannya: (1) audit trail jelas — log show siapa connect, (2) revoke cert per user kalau orang resign tanpa harus distribute cert baru ke semua, (3) compliance security audit umumnya wajibkan ini.
RouterOS 6.x: hanya TCP. RouterOS 7.7+: TCP atau UDP. <strong>TCP</strong> = lebih reliable, mudah lewat firewall, sedikit lebih lambat karena overhead retransmit. <strong>UDP</strong> = lebih cepat (~10-20%), cocok untuk streaming/gaming, tapi bisa di-block firewall ketat. Untuk kantor: TCP lebih aman karena tembus banyak firewall. Untuk performance-critical: UDP.
Hindari <code>blowfish-128</code> (default lama, weak), hindari <code>des</code>/<code>3des</code> (deprecated). Aman: <code>AES-256-CBC</code> (kompatibel semua versi), <code>AES-256-GCM</code> (lebih cepat, butuh OpenVPN 2.4+ di client + RouterOS 7.13+). Auth: hindari <code>sha1</code> (sudah lemah), pakai <code>sha256</code> minimum. Sync setting di server dan client — mismatch = handshake gagal.
Di MikroTik: <code>/certificate revoke client1</code> — ini menambahkan cert ke CRL (Certificate Revocation List). Lalu publish CRL ke server lewat <code>ca-crl-host</code> di CA cert (sudah di-set di STEP 1). Setelah revoke, client lama yang pakai cert itu akan reject saat reconnect. Best practice: revoke cert + ganti password PPP secret + monitor log untuk attempt connect.

Kesimpulan

OpenVPN di MikroTik bukan plug-and-play seperti WireGuard — ada empat lapisan yang harus benar berurutan: certificate (CA + server cert), IP pool + PPP profile untuk address client, OVPN server dengan cipher dan auth yang match dengan client, dan NAT masquerade di firewall supaya traffic client benar-benar keluar via IP publik kantor. Salah satu kelewat, hasilnya selalu sama: tunnel kelihatan connect tapi internet putus, atau IP publik client masih IP rumah. Setelah server siap, lanjut ke sisi client: Windows, Mac, atau Linux. Kalau kamu butuh tunnel yang lebih ringan dan modern, pertimbangkan juga WireGuard di MikroTik — setup-nya 5× lebih singkat.

COBA SEKARANG
Buka Network Dashboard — Test Jaringan Kantor
→ Buka Network Dashboard — Test Jaringan Kantor
// ARTIKEL INI MEMBANTU?

Share ke teman yang butuh info ini: