Salah satu fitur yang dibutuhkan pada email server untuk meningkatkan keamanan adalah Two Factor Authentication (TFA). TFA merupakan keamanan level kedua setelah user berhasil memasukkan username dan password. User akan dihadapkan pada menu baru atau tambahan autentikasi agar dapat login pada Zimbra. Entah itu login pada webmail, email klien desktop ataupun mobile devices. Jika password atau kode unik TFA tidak dimasukkan, maka user tersebut tidak dapat masuk. Meskipun username dan password yang dimasukkan sudah sesuai.
Fitur TFA ini sudah ada dan tersedia pada Zimbra Network Edition. Pengguna Zimbra NE sudah dapat mengaktifkan TFA dan memanfaatkannya.
Tapi ada kabar baik bagi pengguna Zimbra OSE. Baru-baru ini organisasi Zeta Alliance membuat project Open Source Two Factor Authentication server yang dapat digunakan pada Zimbra OSE. TFA server ini berjalan pada Docker container yang diinstall pada server Zimbra yang sama (jika menggunakan single server).
Project ini menggunakan LDAP Proxy yang disediakan oleh PrivacyIDEA. Jadi, username dan password dibaca oleh PrivacyIDEA dari Zimbra LDAP. Dan TFA token dibaca dari database PrivacyIDEA. User login menggunakan TFA dengan memasukkan username, password dan token. Atau hanya memasukkan username dan password saja apabila belum mengaktifkan TFA (dari webmail).
Secara topologi, kira-kira seperti berikut :
- Pada bagian paling bawah merupakan mesin fisik atau virtual
- Pada bagian kedua operating system
- Pada bagian ketiga aplikasi Zimbra dan Docker
- Diatas Docker, terdapat container PrivacyIDEA yang merupakan server TFA
Alur komuniksi antara Zimbra dengan PrivacyIDEA kurang lebih seperti berikut :
- Zimbra dikonfigurasi External Authentication LDAP pada server PrivacyIDEA
- PrivacyIDEA melakukan query username dan password pada LDAP internal Zimbra
- Konfigurasi Fall Back To Local pada Zimbra dinonaktifkan
Jadi, semua user harus login menggunakan external authentication LDAP melalui PrivacyIDEA. PrivacyIDEA melakukan query pada internal LDAP Zimbra untuk mengecek apakah username dan password yang dimasukkan cocok. Kemudian memasukkan token TFA dari database PrivacyIDEA
Instalasi TFA Server
Jalankan perintah berikut dan tunggu hingga selesai
[code lang=’plain’]
wget https://raw.githubusercontent.com/Zimbra-Community/zimbra-foss-2fa/master/2fa-installer.sh -O /tmp/2fa-installer.sh
chmod +rx /tmp/2fa-installer.sh
/tmp/2fa-installer.sh
[/code]
Konfigurasi TFA pada User
- Pastikan pada mobile devices sudah terinstall aplikasi Google Authenticator. Klik link berikut : https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2 bagi pengguna Android.
- Login pada webmail. Pilih Preferences -> 2FA Account Security -> Click here to continue setup
- Masukkan nama konfigurasi TFA. Misalnya setup-tfa. Klik OK. Maka akan muncul QR Code yang harus discanning oleh aplikasi Google Authenticator
- Buka aplikasi Google Authenticator pada mobile devices kemudian scanning QR Code tersebut
- Logout dari webmail dan login kembali. Masukkan username, password dan generate token yang dihasilkan oleh aplikasi Google Authenticator
Berikut beberapa gallery konfigurasi TFA
Catatan : User yang bertindak sebagai admin (user yang dapat login pada Zimbra Admin) masih dapat login tanpa memasukkan token hasil dari generate Authenticator
Jangan lupa untuk mensupport project tersebut dengan melakukan donasi melalui link berikut : https://fundrazr.com/51S949?ref=ab_f6Tyre_ab_4LukOuBkyP04LukOuBkyP0. Informasi project yang lain dapat dilihat pada website https://zetalliance.org/
Silakan dicoba dan semoga bermanfaat 🙂
Cara uninstall-nya gimana kalau suatu waktu zimbra-nya harus di-upgrade dan tiba-tiba
2FA-nya tidak jalan lagi
Hi mas Ladodot,
Cukup disable/undeploy zimlet nya saja mas. Bisa dicek di Zimbra Admin | Configure | Zimlets. Klik kanan pada Zimlet TFA lalu pilih undeploy
Keren mas,
mas ini kalau misalkan Authenticationnya sudah pakai Active Directory berarti bisa saya tambahkan 2FA juga ya ? ga masalah ya mas ? dan itu tidak bisa di buat global settings ya ? harus satu-satu di preferences user ?
terimakasih mas..
Hi mas Egar,
Panduan ini kebetulan menggunakan LDAP Zimbra juga. Jika menggunakan AD, harus didefinisikan pada konfigurasi PrivacyIdea nya
I installed it in the Ubuntu 18.04 LTS and Zimbra 8.8.15. 2FA is working properly on webmail. However, it is not working on Mirosoft Outlook using app password. Could you please advise me in this regard?
Hi Afsher,
Maybe you can submit the issue here: https://github.com/Zimbra-Community/zimbra-foss-2fa
Hi,
Not good for using as this is limited: You are using privacyIDEA with more than 50 users.
Thanks,
Tuan Ngo
Hi,
Thank you for your advice.
Apakah 2FA juga bisa diterapkan pada admin page-nya, URL https://[mail.server.name]:7071
Thanks
Hi,
Bisa coba panduan yang ini: https://imanudin.net/2023/09/23/two-factor-authentication-for-zimbra-open-source-edition/