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.
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.
- MikroTik dengan IP publik static — bisa router kantor sendiri (RB4011, CCR, hAP ax3, dll) atau VPS yang install RouterOS via CHR. IP publik dynamic juga bisa dengan DDNS, tapi kurang reliable untuk setup formal.
- RouterOS 7.13+ (recommended) — cipher modern AES-256-GCM dan support push-route penuh. RouterOS 6.x masih bisa, tapi cipher pilihan terbatas.
- Akses Winbox atau SSH ke MikroTik — untuk eksekusi command. Tutorial ini pakai CLI command (lebih reliable + reproducible dibanding click-through Winbox).
IP rumah (ISP retail)
Win/Mac/Linux
OpenVPN tunnel TCP/1194
Encrypted
103.10.x.x (publik)
OVPN Server
10.10.0.0/24
Internal
via IP kantor
Full tunnel
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).
# 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
# 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
key-usage harus include tls-server. Tanpa flag ini, OpenVPN client akan reject dengan error "VERIFY ERROR: certificate is not server-friendly".# 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
common-name berbeda (client2, client3, dll). Best practice: 1 cert per device, bukan 1 cert dipakai bersama.Export Certificate untuk Client
# 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
cert_export_client1.key berisi private key — JANGAN share via WhatsApp/email tanpa enkripsi tambahan.cert_export_ovpn-ca.crt— CA public cert (akan di-embed di .ovpn client config)cert_export_client1.crt— client public certcert_export_client1.key— client private key (jaga ketat!)
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.
# 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
# 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
# cekipsaya.com — user "user1" pakai service ovpn
/ppp secret
add name=user1 password=PasswordKuat123! \
service=ovpn profile=ovpn-profile
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.
# 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.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 |
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.
# 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
# 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"
192.168.77.x — yang tidak akan diterima oleh ISP atau server tujuan. Hasilnya: tunnel connect tapi internet putus total.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).
# 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>
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..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:
redirect-gateway di profile + def1).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.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.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
# cekipsaya.com — logging untuk debug OpenVPN
/system logging
add topics=ovpn,info,!debug action=memory
# Lihat log:
/log print where topics~"ovpn"
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
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.