Belajar OpenVPN - Logging, Monitoring & Troubleshooting
Episode 8 of 23

Belajar OpenVPN - Logging, Monitoring & Troubleshooting

Episode ini membahas alat dan teknik untuk mengamati OpenVPN: direktif status, log, verb, dan mute untuk logging, management interface untuk inspeksi runtime, sampai tcpdump dan verb 6 untuk melacak kegagalan TLS handshake dan masalah routing.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

VPN kalian sudah berjalan dengan routing dari episode 6 dan kriptografi dari episode 7. Pertanyaan praktisnya sekarang: bagaimana memantau bahwa semuanya tetap sehat, dan apa yang harus dilakukan ketika ada yang salah?

Episode 8 ini menjawab keduanya. Bagian pertama membahas logging: apa yang direkam OpenVPN dan bagaimana mengendalikan volume log dengan verb dan mute. Bagian kedua membahas monitoring: management interface untuk inspeksi realtime dan file openvpn-status.log. Bagian ketiga membahas troubleshooting: kesalahan yang paling sering muncul dan cara membedahnya dengan tcpdump serta verb 6.

Kemampuan membaca log adalah pembeda antara admin yang panik dan admin yang tenang. Ketika client melaporkan tidak bisa connect, kalian tidak perlu menebak — log dan paket akan menunjukkan persis di mana alurnya berhenti.

Logging di OpenVPN

Direktif status dan log

OpenVPN bisa menulis status koneksi ke file terpisah secara periodik, sekaligus menulis log ke file:

Konfigurasi status dan log
status /var/log/openvpn-status.log
status-version 3
log /var/log/openvpn.log
verb 3
mute 20

status /var/log/openvpn-status.log menulis daftar client yang terhubung beserta alamat, waktu koneksi, dan traffic. status-version 3 memakai format terbaru yang lebih mudah di-parse. verb 3 mengatur level detail, dan mute 20 menekan pesan berulang yang sama setelah 20 kemunculan.

Level verbosity

Level verb menentukan seberapa banyak detail yang direkam:

  • verb 0 sampai 3: hanya kesalahan fatal, warning, dan ringkasan koneksi.
  • verb 4: menambahkan detail handshake TLS dan inisialisasi.
  • verb 5 ke atas: menampilkan negosiasi cipher dan detail setiap fase.
  • verb 6 sampai 9: verbose ekstrem dengan dump paket untuk debugging.

Untuk operasi normal, verb 3 sudah ideal. Naikkan hanya ketika sedang debugging, karena verbosity tinggi menghasilkan log besar dan membebani CPU.

Logging di level system

Ketika OpenVPN dijalankan sebagai service systemd, pastikan log mengalir ke journald:

Baca log service systemd
systemctl status openvpn-server@server
journalctl -u openvpn-server@server -f

journalctl -u openvpn-server@server -f menampilkan log service secara realtime. Jika ingin memutar kembali dari awal boot, tambahkan flag -b. Direktif log di konfigurasi bisa dihilangkan ketika sudah mengandalkan journald, untuk menghindari duplikasi.

Monitoring dengan Management Interface

Mengaktifkan management interface

Management interface membuka pintu untuk inspeksi dan kontrol runtime tanpa mematikan daemon. Aktifkan dengan direktif management:

Aktifkan management interface
management 127.0.0.1 7505
management-client-auth
management-log-cache 100

management 127.0.0.1 7505 mengikat interface ke loopback agar tidak bisa diakses dari jaringan luar. management-client-auth mengizinkan autorisasi client secara manual, dan management-log-cache 100 menyimpan 100 baris log terakhir untuk dibaca lewat interface.

Perintah berguna di management console

Hubungkan dengan telnet atau nc lalu ketik perintah:

Inspeksi status via management
telnet 127.0.0.1 7505
status
log 50
version

Perintah status menampilkan daftar client terhubung, log 50 menampilkan 50 baris log terakhir, dan version menunjukkan versi OpenVPN dan info library. Management interface inilah yang menjadi dasar berbagai exporter monitoring yang akan dibahas di episode 19.

Membaca openvpn-status.log

File status versi 3 memiliki dua blok utama: OpenVPN CLIENT LIST yang memuat client terhubung, dan ROUTING TABLE yang memuat subnet yang dirutekan per client. Blok kedua ini penting untuk memverifikasi bahwa iroute dari episode 6 benar-benar terdaftar.

Troubleshooting Umum

TLS Handshake Failure

Error paling klasik adalah kegagalan handshake karena sertifikat tidak cocok. Ciri di log:

Tanda kegagalan verifikasi
TLS Error: TLS key negotiation failed
TLS Error: cannot locate HMAC in incoming packet
TLS Error: local/remote TLS keys are out of sync

Penyebab utamanya tiga: sertifikat client tidak ditandatangani CA yang sama, waktu sistem server dan client tidak sinkron, atau tls-auth/tls-crypt key tidak cocok. Selalu cek tiga hal ini secara berurutan.

Route Issue dan Firewall Blocking

Jika handshake sukses tapi lalu lintas tidak mengalir, arahkan perhatian ke routing dan firewall. Di server, pastikan IP forwarding aktif dan aturan masquerade dari episode 6 ada. Di client, periksa tabel routing:

Cek tabel routing client
ip route show
ping -c 3 10.8.0.1

ip route show memverifikasi bahwa rute ke subnet VPN telah ditambahkan oleh push "route ...". Jika rute ada tapi ping gagal, masalahnya biasanya di firewall: periksa iptables -L FORWARD di server.

Membedah dengan tcpdump

Ketika semuanya terlihat benar tapi tetap gagal, turun ke level paket. tcpdump adalah alat paling jujur — ia menunjukkan apa yang sebenarnya terjadi di kabel:

Capture lalu lintas UDP 1194
tcpdump -i eth0 -n -vv port 1194

tcpdump -i eth0 -n -vv port 1194 menampilkan setiap paket UDP yang masuk ke port OpenVPN. Jika tidak ada paket sama sekali, berarti firewall jaringan memblokir port — masalah di luar OpenVPN. Jika ada paket tapi tidak ada jawaban handshake, masalahnya di dalam daemon.

Menggunakan verb 6 untuk Debugging Mendalam

verb 6 menampilkan dump paket TLS di log, yang memperlihatkan fase handshake berhenti di titik mana. Jalankan client di foreground dengan flag ini:

Client debugging dengan verb 6
openvpn --config client.ovpn --verb 6

Perhatikan di fase mana alur berhenti: SENT CONTROL [server]: 'P_CONTROL_V1' menandakan pesan terkirim, TLS handshake failed menunjukkan masalah kriptografi, dan AUTH_FAILED berarti kredensial atau sertifikat ditolak server.

Penutup

Inti yang harus dibawa pulang:

  • status, log, verb, dan mute mengendalikan pencatatan log OpenVPN.
  • Management interface memungkinkan inspeksi dan kontrol runtime tanpa restart.
  • openvpn-status.log menampilkan daftar client dan tabel routing aktif.
  • Kegagalan TLS handshake biasanya berasal dari CA, waktu, atau key yang tidak cocok.
  • tcpdump dan verb 6 membedah masalah sampai ke level paket.
  • Selalu periksa routing dan firewall sebelum mencurigai daemon OpenVPN.

Di episode 9 selanjutnya kita akan membahas client config distribution dan per-client policy — memakai client-config-dir untuk memberi konfigurasi berbeda per client, script client-connect dan client-disconnect untuk hook lifecycle, hingga alokasi IP statis dengan ifconfig-push dan iroute. Setelah episode ini, kalian bisa membuat kebijakan jaringan yang berbeda untuk setiap pengguna.

Belajar OpenVPN - Logging, Monitoring & Troubleshooting | Belajar OpenVPN