[Tips Zimbra] 6 Langkah Mengatasi zmbackupquery Error “Authentication Failed”

Posted on 11 views
Pagi-pagi sudah disambut error begini pas jalanin zmbackupquery – authentication failed for [zimbra] pada salah satu client di Excellent yang padahal sebelumnya tidak ada yang diubah. Setelah sedikit investigasi, ternyata penyebabnya simpel: akun internal 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.

Gravatar Image
Seorang warga negara Indonesia biasa. Pengguna MAC dan develop server Ubuntu & CentOS. Contact : admin [at] nugi.biz

Leave a Reply

Your email address will not be published. Required fields are marked *