Tutorial Integration LDAP Dengan OpenVPN
Pengertian
OpenVPN LDAP Authentication adalah metode pengamanan akses
Konsep
Konsep utamanya adalah Centralized Authentication. OpenVPN bertindak sebagai client yang nanya ke OpenLDAP ("Woi, ini si Raihan beneran user kita bukan?").
Struktur di LDAP menggunakan hierarki ou=marketing), mereka nggak bakal bisa login VPN kalau kita set targetnya cuma di ou=vpn.
Cara Kerja
User Connection: User buka aplikasi OpenVPN dan masukin username & password.
Plugin Trigger: Server OpenVPN nerima request, lalu manggil plugin
openvpn-auth-ldap.LDAP Bind: Plugin bakal melakukan binding (login) ke server LDAP pake akun admin/readonly.
Search Filter: Plugin nyari data user berdasarkan
uiddanobjectClassdi OU yang udah kita tentuin.Validation: Kalau user ketemu dan password-nya cocok, LDAP bilang "OK", dan OpenVPN bakal ngasih akses
ke user tersebut.Tunneling
Tujuan
Kenapa kita capek-capek integrasiin ini?
Efficiency: Lu nggak perlu bikin file
.ovpnbeda-beda buat tiap orang. Cukup satu file template, login-nya pake akun masing-masing.Security: Kalau ada karyawan resign, lu cukup hapus atau disable akunnya di LDAP, otomatis akses VPN-nya putus. Nggak perlu cabut sertifikat (Revocation) satu-satu.
Scalability: Cocok buat organisasi besar yang usernya ratusan.
Analogi
Bayangin OpenVPN itu adalah Pintu Masuk Kantor. Dulu, setiap karyawan harus bawa Kunci Fisik (Sertifikat Client) buat masuk. Repot kalau kuncinya ilang atau karyawannya berhenti.
Sekarang, kita pasang Mesin Absen Fingerprint (LDAP) di pintu itu. Jadi, siapa pun yang mau masuk tinggal tempelin jempol atau masukin PIN. Datanya dicek ke Buku Induk Karyawan (Database LDAP) di ruang HRD. Kalau nama lu ada di daftar "Boleh Masuk", pintu kebuka.
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
| Manajemen Terpusat: Satu akun buat semua layanan (SSO). | Single Point of Failure: Kalau server LDAP mati, nggak ada yang bisa login VPN. |
Tanpa Sertifikat Client: Ngurangin beban admin buat distribusi file .crt. | Kompleksitas: Konfigurasi awal filter LDAP agak tricky (masalah objectClass). |
| Audit Log: Gampang mantau siapa login jam berapa lewat log LDAP. | Security: Password dikirim lewat network (wajib pake |
Tutorial & Problem Solving Lengkap
Berikut langkah eksekusi di lapangan berdasarkan hasil brainstorm lu.
1. Install Plugin di Server OpenVPN
# Update repo dan install plugin ldap untuk openvpn
sudo apt update && sudo apt install openvpn-auth-ldap -y
2. Konfigurasi Plugin LDAP (/etc/openvpn/auth/ldap.conf)
Copy file example openvpn auth dari /usr/share/doc/openvpn-auth-ldap/examples/auth-ldap.conf, lalu sesuaikan dengan parameter dibawah ya.
<LDAP>
URL ldap://auth.itnsa.id
BindDN cn=admin,dc=itnsa,dc=id
Password P@ssw0rd # Password admin LDAP lu
Timeout 15
</LDAP>
<Authorization>
BaseDN ou=vpn,dc=itnsa,dc=id
# Filter ini WAJIB ada objectClass agar pencarian presisi
SearchFilter (&(uid=%u)(objectClass=inetOrgPerson))
RequireGroup false
</Authorization>
3. Konfigurasi Server OpenVPN (/etc/openvpn/server.conf)
Tambahin baris ini di bagian paling bawah file config server lu.
# Panggil plugin ldap (cek path .so nya sesuai distro lu), kalo lupa pake find aja
plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf
# Gunakan UID LDAP sebagai Common Name sertifikat
username-as-common-name
# Biar murni pake username/pass (opsional tergantung soal)
verify-client-cert none#untuk kedua parameter di atas klo emang lupa bisa kita cek di openvpn --help | less, nah nanti tinggal
inget inget aja deh4. Konfigurasi Client (client.ovpn)
Tambahin baris ini di file .ovpn yang lu bagiin ke user.
# Perintah agar client nanyain username & password
auth-user-pass
5. Troubleshooting (Problem Solving)
Kalau muncul error, jangan panik. Lakuin ini:
Cek Filter: Test manual pake
ldapsearch.ldapsearch -x -b "ou=vpn,dc=itnsa,dc=id" "(&(uid=raihan)(objectClass=inetOrgPerson))"Monitor Log: Pantau log pas lu coba login.
tail -f /var/log/syslog | grep vpnDebug Mode: Naikin verbosity di
server.confjadiverb 5buat liat detail komunikasi plugin.
Kesimpulan
Integrasi OpenVPN dan OpenLDAP adalah standar wajib buat infrastruktur level Enterprise. Poin penting yang lu dapet dari kasus ini adalah ketelitian dalam menulis Search Filter. Sebagai Senior, pesan gua: selalu tes filter lu pake ldapsearch sebelum lu masukin ke config VPN biar nggak nebak-nebak buah manggis pas ada error.
Glosarium Engineer
OpenVPN: Aplikasi server-client untuk membuat koneksi jaringan pribadi (VPN) yang aman.
OpenLDAP: Implementasi open-source dari protokol LDAP untuk layanan direktori.
Organizational Unit (OU): Kontainer di dalam LDAP yang digunakan untuk mengelompokkan objek.
Base DN: Titik awal di dalam pohon direktori tempat pencarian dimulai.
BindDN: Akun yang digunakan oleh aplikasi untuk melakukan autentikasi ke server LDAP.
Search Filter: Kriteria pencarian yang digunakan untuk menemukan objek spesifik di LDAP.
inetOrgPerson:
standar di LDAP yang merepresentasikan identitas orang dalam organisasi.Object Class Tunneling: Proses membungkus paket data di dalam protokol lain untuk pengiriman yang aman.

Comments
Post a Comment