Belajar OpenVPN - Advanced Authentication: LDAP, RADIUS & MFA
Episode 10 of 23

Belajar OpenVPN - Advanced Authentication: LDAP, RADIUS & MFA

Episode ini membawa autentikasi username/password dari episode 5 ke level enterprise: integrasi LDAP dan RADIUS, plugin auth-pam dan auth-radius, hingga Multi-Factor Authentication dengan OTP dan TOTP sebagai lapisan keamanan kedua.

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

Pendahuluan

Episode 5 menutup lapisan autentikasi dengan auth-user-pass dan verifikasi via PAM. Episode 9 memberi kalian kebijakan per client. Sekarang pertanyaannya: bagaimana jika jumlah pengguna ratusan dan kredensialnya dikelola di direktori perusahaan?

Episode 10 ini membahas advanced authentication. Kalian akan belajar menghubungkan OpenVPN ke LDAP untuk mengambil kredensial dari direktori pengguna, ke RADIUS untuk autentikasi terpusat, dan menambahkan MFA dengan OTP serta TOTP sebagai lapisan kedua. Ini adalah fitur yang memisahkan lab pribadi dari deployment perusahaan sungguhan.

Mengapa ini penting? Karena password saja tidak lagi memadai. Kebocoran password terjadi setiap hari, dan MFA adalah lapisan yang mencegah akun yang diretas tetap menjadi ancaman. Ditambah dengan integrasi direktori, pengelolaan pengguna menjadi terpusat dan mudah diaudit.

Integrasi LDAP

Konsep PAM dan LDAP

Cara paling sederhana untuk memverifikasi kredensial terhadap LDAP adalah lewat PAM. Modul pam_ldap membuat login melalui SSH dan OpenVPN sama-sama memakai basis data yang sama:

Aktifkan plugin auth-pam
plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn

Plugin openvpn-auth-pam meneruskan username dan password dari auth-user-pass ke service PAM bernama openvpn. Service PAM ini bisa dipetakan ke LDAP, Kerberos, atau basis data lokal — terserah konfigurasi /etc/pam.d/openvpn.

Plugin Khusus LDAP

Untuk kontrol yang lebih rinci, beberapa distribusi menyediakan plugin LDAP tersendiri:

Plugin LDAP dedicated
plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf

File ldap.conf berisi alamat server LDAP, base DN untuk pencarian, dan filter pengguna. Plugin ini memberi kontrol penuh atas atribut mana yang dipakai sebagai dasar verifikasi.

Verifikasi Script untuk Kebijakan Lanjutan

Ketika kebijakan tidak bisa diekspresikan lewat plugin, tulis script verifikasi. Mode via-file dan via-env dari episode 5 kembali dipakai:

Verifikasi dengan script
auth-user-pass-verify /etc/openvpn/check-ldap.sh via-env
script-security 2

Script bisa mengecek keanggotaan grup, masa berlaku akun, atau meneruskan request ke tool internal. Fleksibilitas inilah yang membuat OpenVPN bisa masuk ke alur autentikasi organisasi mana pun.

Integrasi RADIUS

Plugin auth-radius

RADIUS adalah standar industri untuk autentikasi terpusat, dipakai oleh Wi-Fi enterprise hingga ISP. Plugin openvpn-auth-radius menghubungkan OpenVPN ke server RADIUS:

Plugin auth-radius
plugin /usr/lib/openvpn/openvpn-radius.so /etc/openvpn/radius/radius.cnf

File radius.cnf berisi alamat server, secret yang disepakati, dan port. Ketika client mengirim username dan password, OpenVPN meneruskan Access-Request ke server RADIUS dan menunggu Access-Accept.

Keunggulan RADIUS

Satu keunggulan RADIUS dibanding PAM murni adalah dynamic authorization — kebijakan bisa dicabut secara terpusat tanpa menyentuh server VPN. Ada juga atribut RADIUS yang bisa dipetakan ke direktif OpenVPN, misalnya untuk menerapkan rute atau bandwidth tertentu per pengguna.

auth-gen-token untuk Radius yang Lambat

Server RADIUS sering berada di lokasi yang jauh sehingga setiap request terasa lambat. Episode 5 memperkenalkan auth-gen-token, dan kombinasinya dengan RADIUS sangat cocok:

Kurangi request berulang ke RADIUS
auth-gen-token 7200

auth-gen-token 7200 membuat server mengeluarkan token sesi 2 jam setelah verifikasi RADIUS pertama berhasil. Reconnect selama masa token tidak perlu menghubungi RADIUS lagi — pengalaman pengguna lebih mulus.

Multi-Factor Authentication

Menambahkan Lapisan OTP

MFA menambahkan faktor kedua di luar password. Pendekatan yang umum: verifikasi password dulu dengan PAM atau RADIUS, lalu jalankan verifikasi kedua untuk kode TOTP. OpenVPN mendukung ini lewat script auth-user-pass-verify yang mengecek keduanya:

Verifikasi dua faktor
auth-user-pass-verify /etc/openvpn/check-mfa.sh via-env
script-security 2

Script check-mfa.sh membaca password dan kode TOTP yang digabung dalam satu field username atau password, memverifikasi keduanya, lalu mengembalikan exit code sesuai hasilnya.

TOTP dengan FreeOTP atau Authenticator

Kode TOTP dihasilkan dari secret berbasis waktu. Secret diberikan ke pengguna saat onboarding, lalu dikonfigurasi di aplikasi authenticator seperti Google Authenticator, FreeOTP, atau Aegis. Server menghitung kode yang sama berdasarkan waktu untuk membandingkan.

Generate secret TOTP untuk user
oathtool --totp --base32 --generate 10 user-secret

oathtool --totp --base32 --generate 10 user-secret menghasilkan kode TOTP saat ini untuk secret tertentu — berguna untuk pengujian dan verifikasi cepat bahwa konfigurasi MFA benar.

Memilih Kombinasi yang Tepat

  • Lab pribadi: sertifikat sudah memadai, MFA opsional.
  • Perusahaan kecil: LDAP untuk pengguna, MFA untuk akses remote.
  • Perusahaan besar: RADIUS terpusat plus MFA wajib untuk semua remote worker.

Penutup

Inti yang harus dibawa pulang:

  • auth-pam menghubungkan OpenVPN ke PAM, yang bisa dipetakan ke LDAP.
  • Plugin LDAP dedicated memberi kontrol atribut yang lebih rinci.
  • RADIUS memberi autentikasi terpusat dan dynamic authorization.
  • auth-gen-token mengurangi request berulang ke server autentikasi.
  • MFA menambahkan faktor kedua berupa kode OTP atau TOTP.
  • Kombinasi LDAP atau RADIUS dengan MFA adalah standar deployment enterprise.

Di episode 11 selanjutnya kita akan membahas connection broker dan scalability — membatasi jumlah client dengan --max-clients, mengendalikan laju koneksi dengan --connect-freq dan rate limiting, menjalankan banyak instance OpenVPN, sampai load balancing dengan learn-address dan round-robin DNS. Setelah episode ini, server kalian siap melayani ratusan pengguna.

Belajar OpenVPN - Advanced Authentication: LDAP, RADIUS & MFA | Belajar OpenVPN