zimbra di LDAP kena lockout. Efeknya? Semua proses yang bergantung pada autentikasi akun tersebut, termasuk zmbackupquery, langsung berhenti total. Artikel ini membahas langkah perbaikannya dari awal sampai akhir, mulai dari diagnosis, unlock akun, bersihkan atribut sisa lockout, sampai sinkronisasi password, biar semuanya bisa jalan normal lagi. Semua langkah di bawah ini sudah diuji langsung di environment Zimbra multi-server.
Langkah 1 – Diagnosis: Cek Status Akun Zimbra di LDAP
Sebelum buru-buru utak-atik, verifikasi dulu bahwa memang benar akun zimbra yang jadi biang keroknya. Jalankan perintah ini sebagai user zimbra:
ldapsearch -x -LLL \ -H `zmlocalconfig -s -m nokey ldap_master_url` \ -D cn=config \ -w `zmlocalconfig -s -m nokey ldap_root_password` \ -b "uid=zimbra,cn=admins,cn=zimbra" \ zimbraAccountStatus
Kalau outputnya seperti di bawah ini, berarti dugaan sudah terkonfirmasi – akunnya memang sedang terkunci:
dn: uid=zimbra,cn=admins,cn=zimbra zimbraAccountStatus: lockout
Langkah 2 – Aktifkan Kembali Akun via File LDIF
Cara paling stabil adalah menggunakan file LDIF lalu memanggil ldapmodify dengan flag -f. Jangan pakai heredoc langsung di terminal – bisa bermasalah di beberapa environment dan malah nambah pusing.
cat > /tmp/unlock_zimbra.ldif << 'EOF' dn: uid=zimbra,cn=admins,cn=zimbra changetype: modify replace: zimbraAccountStatus zimbraAccountStatus: active EOF ldapmodify -x \ -H `zmlocalconfig -s -m nokey ldap_master_url` \ -D cn=config \ -w `zmlocalconfig -s -m nokey ldap_root_password` \ -f /tmp/unlock_zimbra.ldif
Kalau lebih suka cara singkat, bisa juga lewat zmprov:
zmprov -l ma zimbra@$(zmhostname) zimbraAccountStatus active
Langkah 3 – Bersihkan Sisa Atribut Lockout
Akun sudah aktif, tapi pekerjaan belum selesai. Atribut lockout yang tertinggal di LDAP bisa memicu masalah yang sama di kemudian hari. Lebih baik dibersihkan sekalian.
3a. Reset zimbraPasswordLockoutLockedTime
cat > /tmp/clear_lockout.ldif << 'EOF' dn: uid=zimbra,cn=admins,cn=zimbra changetype: modify replace: zimbraPasswordLockoutLockedTime zimbraPasswordLockoutLockedTime: 0 EOF ldapmodify -x \ -H `zmlocalconfig -s -m nokey ldap_master_url` \ -D cn=config \ -w `zmlocalconfig -s -m nokey ldap_root_password` \ -f /tmp/clear_lockout.ldif
3b. Hapus zimbraPasswordLockoutFailureTime (kalau ada)
Cek dulu apakah atribut ini ada atau tidak:
ldapsearch -x -LLL \ -H `zmlocalconfig -s -m nokey ldap_master_url` \ -D cn=config \ -w `zmlocalconfig -s -m nokey ldap_root_password` \ -b "uid=zimbra,cn=admins,cn=zimbra" \ zimbraPasswordLockoutFailureTime
Kalau atribut tersebut muncul di output, hapus dengan perintah berikut. Kalau tidak muncul, langsung lanjut ke langkah berikutnya saja.
cat > /tmp/clear_failuretime.ldif << 'EOF' dn: uid=zimbra,cn=admins,cn=zimbra changetype: modify delete: zimbraPasswordLockoutFailureTime EOF ldapmodify -x \ -H `zmlocalconfig -s -m nokey ldap_master_url` \ -D cn=config \ -w `zmlocalconfig -s -m nokey ldap_root_password` \ -f /tmp/clear_failuretime.ldif
Langkah 4 – Sinkronisasi Password LDAP
Ini sering jadi langkah yang terlupakan. Akun bisa sudah berstatus active, tapi kalau password di LDAP tidak sinkron dengan yang ada di localconfig, error autentikasi – termasuk pada zmbackupquery – tetap akan muncul.
4a. Ambil password dari localconfig
zmlocalconfig -s | grep -i zimbra_ldap_password
4b. Sinkronkan password ke LDAP
Pastikan perintah ini dijalankan sebagai user zimbra, bukan root:
su - zimbra zmldappasswd "password_dari_output_atas"
Langkah 5 – Restart Service Zimbra
Single Server – restart semuanya sekaligus:
zmcontrol restart
Multi Server – urutan penting di sini. Restart LDAP node dulu, baru mailbox node:
ldap restart
zmcontrol restart
Langkah 6 – Verifikasi Akhir
Cek status akun sekaligus semua atribut lockout dalam satu perintah:
ldapsearch -x -LLL \ -H `zmlocalconfig -s -m nokey ldap_master_url` \ -D cn=config \ -w `zmlocalconfig -s -m nokey ldap_root_password` \ -b "uid=zimbra,cn=admins,cn=zimbra" \ zimbraAccountStatus zimbraPasswordLockoutLockedTime zimbraPasswordLockoutFailureTime
Lalu tes autentikasi manual untuk memastikan password juga sudah sinkron:
ldapwhoami -x \ -H `zmlocalconfig -s -m nokey ldap_master_url` \ -D uid=zimbra,cn=admins,cn=zimbra \ -w `zmlocalconfig -s -m nokey zimbra_ldap_password`
Kalau autentikasi berhasil, saatnya tes perintah yang tadi error:
zmbackupquery
Harusnya sekarang sudah kembali menampilkan daftar sesi backup seperti biasa, tanpa ada pesan error autentikasi sama sekali.
Kenapa Ini Bisa Terjadi?
Lockout pada akun zimbra biasanya bukan terjadi begitu saja tanpa sebab. Beberapa penyebab yang paling sering ditemui:
- Ada service atau script yang masih menggunakan password lama setelah password zimbra pernah diganti – ini yang paling sering jadi biang kerok.
- Proses internal Zimbra yang melakukan percobaan login berulang dan selalu gagal.
- Serangan brute force dari luar yang menghantam port LDAP.
Untuk melacak dari mana asalnya, cek log autentikasi berikut:
grep "authentication failed\|invalid password" /opt/zimbra/log/mailbox.log | tail -50
Dari sana biasanya sudah kelihatan IP atau proses mana yang terus-menerus mencoba login dengan credential yang salah. Kalau sudah ketemu pelakunya, pastikan konfigurasi service tersebut diperbarui agar menggunakan password yang benar supaya kejadian yang sama tidak terulang dan tidak perlu lagi bongkar-bongkar LDAP di tengah malam.



