跳到主要內容
節省工具箱Jason Tools
經驗分享

Zimbra 管理者無法登入的處理

Jason Cheng 發布
Zimbra 管理者無法登入的處理
本文目錄
  1. 確認是不是管理者帳號
  2. 看帳號狀態
  3. 重設密碼
  4. 接外部認證時:允許退回本機密碼
  5. 兩步驟驗證(商用版)
  6. 其他要檢查的地方
  7. 檢查順序整理
  8. 結論
  9. 參考資料

Zimbra 管理介面(7071)突然登不進去,是很令人緊張的狀況:密碼忘了、帳號被鎖、接 AD 認證後 AD 剛好掛了……管理介面進不去,就沒辦法從網頁處理任何事。

好在只要能用 SSH 登入 Zimbra 主機,所有問題都可以用 zmprov 從命令列解決。這篇整理我處理管理者無法登入時的檢查順序。

以下指令都以 zimbra 身分執行:

su - zimbra

確認是不是管理者帳號

# 列出所有管理者帳號
zmprov gaaa

# 確認某個帳號是不是管理者
zmprov ga admin@example.com zimbraIsAdminAccount

zimbraIsAdminAccount 要是 TRUE 才能登入管理介面。有時候是記錯帳號,或是委派管理者(delegated admin)的權限被調整過。

看帳號狀態

zmprov ga admin@example.com zimbraAccountStatus
狀態意義
active正常
lockout密碼錯誤次數過多被暫時鎖定,鎖定時間過了才能登入,郵件照常收
locked被鎖定,無法登入,郵件照常收
maintenance維護中,無法登入也不收信
closed已關閉

不是 active 的話,改回來:

zmprov ma admin@example.com zimbraAccountStatus active

為什麼會被 lockout

COS 有開啟密碼鎖定原則時(zimbraPasswordLockoutEnabled),連續輸入錯誤超過次數(預設 10 次)就會被暫時鎖定,預設鎖 1 小時:

zmprov gc default zimbraPasswordLockoutEnabled zimbraPasswordLockoutMaxFailures zimbraPasswordLockoutDuration

如果管理者帳號一直被鎖,很可能是某個地方還在用舊密碼嘗試登入,例如備份軟體、監控程式、手機上設定的帳號。光是解鎖沒有用,要找到來源。登入失敗的紀錄在 /opt/zimbra/log/audit.log,可以看到來源 IP:

grep "admin@example.com" /opt/zimbra/log/audit.log | grep -i "fail" | tail -20

重設密碼

zmprov sp admin@example.com 'new-strong-password'

sp 是 setPassword 的縮寫。密碼有特殊字元的話要用單引號包起來。

注意:指令裡的密碼會留在 Shell 的歷史紀錄中,設定完記得清除,或登入管理介面後再改一次密碼。

如果帳號被設定成「下次登入必須變更密碼」,也會影響登入流程,可以檢查:

zmprov ga admin@example.com zimbraPasswordMustChange

接外部認證時:允許退回本機密碼

網域接了 AD 或 LDAP 認證之後,管理者帳號一樣是用外部認證。這時只要 AD 連不上、或管理者帳號在 AD 上的密碼對不起來,管理介面就進不去了,而且用 zmprov sp 改的是 Zimbra 本機的密碼,根本用不到。

zimbraAuthFallbackToLocal 這個網域屬性的作用是:外部認證失敗時,改用 Zimbra 本機的密碼驗證。

# 查看網域的認證方式與 fallback 設定
zmprov gd example.com zimbraAuthMech zimbraAuthFallbackToLocal

# 啟用
zmprov md example.com zimbraAuthFallbackToLocal TRUE

啟用之後,用 zmprov sp 設定的本機密碼就可以登入了。

注意:啟用 fallback 代表外部認證失敗時,所有使用者都會嘗試用本機密碼驗證。一般使用者在 Zimbra 本機通常沒有設定密碼,影響不大;但如果有人在本機設過密碼,AD 上停用的帳號仍可能用本機密碼登入。緊急處理完之後,請評估是否要關回去。

另一個做法是把管理者帳號放在另一個不接外部認證的網域(例如 Zimbra 安裝時建立的系統網域),這樣外部認證出問題時,管理者仍然可以登入處理。

兩步驟驗證(商用版)

Zimbra 商用版有開啟兩步驟驗證時,手機遺失或驗證器重設,也會讓管理者登不進去。可以暫時關閉該帳號的兩步驟驗證:

zmprov ga admin@example.com zimbraTwoFactorAuthEnabled
zmprov ma admin@example.com zimbraTwoFactorAuthEnabled FALSE

登入後記得重新設定兩步驟驗證。

其他要檢查的地方

  • 連線位置:管理介面預設是 https://mail.example.com:7071;有啟用 Proxy 的管理介面時是 9071。確認連的是正確的通訊埠
  • 服務狀態:zmcontrol status,確認 mailbox 服務有在執行
  • 瀏覽器快取:登入一直跳回登入頁時,清除該網站的 Cookie 或用無痕視窗試試

檢查順序整理

  1. zmprov gaaa、zimbraIsAdminAccount:確認是管理者帳號
  2. zimbraAccountStatus:被鎖就改回 active,並查 audit.log 找出一直嘗試登入的來源
  3. zmprov sp:重設密碼
  4. 網域接外部認證:zimbraAuthFallbackToLocal TRUE
  5. 商用版兩步驟驗證:暫時關閉
  6. 服務狀態、通訊埠、瀏覽器

結論

管理介面登不進去時不用慌,只要 SSH 還進得去,zmprov 都能處理。我自己的建議是:一定要保留一個不依賴外部認證的管理者帳號,並且把密碼妥善保存,接 AD 的環境尤其重要。

參考資料

Jason Cheng

Jason Cheng

企業開源技術顧問,專注架構規劃與實務導入

關於作者 →

延伸閱讀