A. Pendahuluan
Menurut informasi dari Zimbra Mail sendiri bahwa Zimbra OSE (Open Source Edition) versi 8.8.15 sudah EOL pada tanggal 31 Desember 2023. Sehingga perbaikan keamanan dan bug sudah tidak disupport lagi. Anda bisa melihat life cyle Zimbra Mail disini. Apabila Anda masih menggunakan versi 8.8.15 opsinya bisa upgrade Zimbra Mail ke versi 9 atau 10 untuk menghindari adanya vulnerability, namun kedua versi tersebut membutuhkan lisensi. Atau Anda juga bisa menggunakan opsi yang kedua yakni migrasi dari Zimbra Mail ke Carbonio CE (Community Edition).
Nah apalagi Carbonio CE sudah rilis versi terbarunya yaitu versi 23.12.0 per tanggal 27 Desember 2023 dengan UI yang ciamik. Bagi Anda yang belum install versi tersebut bisa melihat postingan sebelumnya disini. Migrasi Zimbra Mail ke Carbonio CE kali ini menggunakan tool yang sudah disediakan oleh Carbonio sehingga prosesnya akan lebih cepat dan sederhana. Selain itu keuntungannya menggunakan metode ini adalah kalender dan kontak juga termasuk. Adapun gambaran flow proses migrasinya nanti akan seperti berikut ini :
- Extract user data (akun email) Zimbra dan transfer ke server Carbonio CE
- Kemudian melakukan import data user (akun email) di server Carbonio CE
- Export data email (mailbox) dari Zimbra ke server Carbonio CE dan import mailbox
- Verifikasi dan pointing record MX, TXT, PTR ke server Carbonio CE
B. Proses Migrasi
- Periksa status service pada Zimbra Mail terlebih dahulu dengan perintah :
zmcontrol status
Note : Pastikan sudah berada pada user zimbra
, jika belum silakan switch user terlebih dahulu :
sudo su - zimbra
Untuk memeriksa versi Zimbra Mail bisa dengan perintah :
zimbra@mail:~$ zmcontrol -v
-
Lalu silakan buat direktori
/opt/backups/zmigrate
dan set owner dengan userzimbra
. Tujuan dibuatnya folder tersebut adalah untuk tempat menyimpan file hasil export akun email beserta password dan mailbox nya.root@mail:~# mkdir -p /opt/backups/zmigrate root@mail:~# chown -R zimbra:zimbra /opt/backups/zmigrate root@mail:~# cd /opt/backups/zmigrate
-
Export semua akun pada Zimbra Mail dengan perintah :
zimbra@mail:/opt/backups/zmigrate$ zmprov -l gad > domains.txt zimbra@mail:/opt/backups/zmigrate$ zmprov -l gaa > emails.txt zimbra@mail:/opt/backups/zmigrate$ ls domains.txt emails.txt
-
Export semua data user termasuk nama dan passwordnya, sebelumnya buat direktorinya terlebih dahulu untuk data user dan password :
zimbra@mail:/opt/backups/zmigrate$ mkdir userpass zimbra@mail:/opt/backups/zmigrate$ for i in `cat emails.txt`; do zmprov -l ga $i userPassword | grep userPassword: | awk '{ print $2}' > userpass/$i.shadow; done
zimbra@mail:/opt/backups/zmigrate$ mkdir userdata zimbra@mail:/opt/backups/zmigrate$ for i in `cat emails.txt`; do zmprov ga $i | grep -i Name: > userdata/$i.txt ; done
Untuk melihat hasilnya bisa ketikkan perintah :
zimbra@mail:/opt/backups/zmigrate$ ls -llR userdata/ userpass/
Nah sekarang Anda bisa melihat jumlah data email per akun guna melakukan verifikasi ketika selesai proses migrasinya.
zimbra@mail:/opt/backups/zmigrate$ for j in $( zmprov -l gaa | egrep -v "^(spam|ham)"); do total=0; echo -n "Total for $j = "; for i in $( zmmailbox -z -m "$j" gaf | awk '{print $4}' | egrep -o "[0-9]+" ); do total=$((total + i )); done; echo "$total"; done
- Langkah berikutnya silakan transfer data user yang sudah diexport sebelumnya dari server Zimbra ke server Carbonio CE. Namun sebelumnya silakan login ke server Carbonio CE terlebih dahulu dan pastikan semua service berjalan dengan normal. Nah untuk memeriksa service Carbonio CE bisa menggunakan perintah yang sama :
zextras@mail:~$ zmcontrol status
Note : Pastikan sudah berada pada user zextras
, jika belum silakan switch user terlebih dahulu :
sudo su - zextras
Untuk memeriksa versi Carbonio CE bisa dengan perintah :
zextras@mail:~$ zmcontrol -v
-
Kemudian, buatlah folder dan user yang sama seperti sebelumnya :
root@mail:~# mkdir -p /opt/backups/zmigrate root@mail:~# chown -R zextras:zextras /opt/backups/zmigrate root@mail:~# cd /opt/backups/zmigrate
-
Untuk melakukan transfer data, Anda bisa menggunakan rsync, sftp, scp, dll. Disini sebagai contoh saya menggunakan tool
rsync
. Silakan login ke server Zimbra Mail kembali dan jalankan perintah :root@mail:/opt/backups/zmigrate# rsync -avp /opt/backups/zmigrate/* [email protected]:/opt/backups/zmigrate/* [email protected]'s password: sending incremental file list ... ... truncated
Keterangan :
- 192.168.10.12 : Adalah IP dari Carbonio CE
- root : Adalah user root yang melakukan transfer data atau Anda bisa menggunakan user biasa dengan privileges sudo.
Note : Untuk melakukan
rsync
, pastikan Anda bisa remote SSH antara server Zimbra Mail dengan Carbonio CE baik menggunakan password ataupun pub key.
Tunggu proses transfer datanya selesai, cepat lambatnya bergantung dengan jumlah besaran data dan bandwidth server Anda (jika menggunakan IP Public).
- Selanjutnya Anda bisa melakukan import data user yang sudah berhasil ditransfer pada server Carbonio CE.
zextras@mail:/opt/backups/zmigrate$ carbonio prov -l gad zextras@mail:/opt/backups/zmigrate$ for i in `cat /opt/backups/zmigrate/domains.txt `; do carbonio prov cd $i zimbraAuthMech zimbra ;echo $i ;done zextras@mail:/opt/backups/zmigrate$ carbonio prov -l gad
Note :
- Perintah
carbonio prov -l gad
untuk melihat daftar domain yang berada pada akun Carbonio CE - Pastikan ownership folder zmigrate beserta isinya yaitu
zextras:zextras
. Jika masih belum sesuai bisa menjalankan perintahchown zextras:zextras /opt/backups/zmigrate -R
lalu silakan import.
- Perintah
Silakan buat file dengan nama restore.sh
dan isikan script dibawah ini :
vim restore.sh
. Script ini berfungsi untuk melakukan restore semua akun email dengan passwordnya yang sudah ditransfer sebelumnya.
[Create a script and modify the execution permission, ownership etc]
#!/bin/bash
#Script for creating the email accounts createacct.sh
USERPASS="/opt/backups/zmigrate/userpass"
USERDATA="/opt/backups/zmigrate/userdata"
USERS="/opt/backups/zmigrate/emails.txt"
for i in `cat $USERS`
do
givenName=$(grep givenName: $USERDATA/$i.txt | cut -d ":" -f2)
displayName=$(grep displayName: $USERDATA/$i.txt | cut -d ":" -f2)
shadowpass=$(cat $USERPASS/$i.shadow)
tmpPass="CHANGEme"
carbonio prov ca $i CHANGEme cn "$givenName" displayName "$displayName" givenName "$givenName"
carbonio prov ma $i userPassword "$shadowpass"
done
Simpan file tersebut dan keluar dengan menekan Esc
lalu wq!
Lalu berikan privilege execution dan execute filenya :
chmod +x restore.sh
./restore.sh
Tunggu proses restorenya selesai. Jika sudah selesai, silakan lihat melalui GUI daftar akun emailnya. Caranya dengan masuk ke menu Domains > Pilih nama domain nya dan klik tab Accounts :
- Setelah proses export dan import data user (akun email) selesai. Sekarang tahapannya yakni melakukan export data mailbox Zimbra Mail, namun sebelumnya silakan buat folder MBOX terlebih dahulu pada server Zimbra Mail :
root@mail:/opt/backups/zmigrate# mkdir MBOX root@mail:/opt/backups/zmigrate# chown -R zimbra:zimbra MBOX root@mail:/opt/backups/zmigrate# su - zimbra zimbra@mail:/opt/backups/zmigrate/MBOX$ for email in `cat /opt/backups/zmigrate/emails.txt`; do zmmailbox -z -m $email -t 0 getRestURL '/?fmt=tgz' > $email.tgz ; echo $email ; done
Catatan Penting :
- Sebelum melakukan export/import mailbox silakan set socket timeout (
zmlocalconfig -e socket_so_timeout=3000000
)
Untuk melihat daftar isi filenya bisa dengan perintah :
zimbra@mail:/opt/backups/zmigrate/MBOX$ ls -ll
-
Lalu silakan transfer file tersebut seperti sebelumnya dari server Zimbra Mail ke server Carbonio CE :
root@mail:/opt/backups/zmigrate/MBOX# rsync -avp /opt/backups/zmigrate/MBOX/ [email protected]:/opt/backups/zmigrate/MBOX [email protected]'s password: sending incremental file list created directory /opt/backups/zmigrate/MBOX ./ ... ... truncated
Keterangan :
- 192.168.10.12 : Adalah IP dari Carbonio CE
- root : Adalah user root yang melakukan transfer data atau Anda bisa menggunakan user biasa dengan privileges sudo.
-
Setelah filenya berhasil ditransfer, silakan import file mailbox tersebut pada server Carbonio CE :
Catatan Penting :
- Sebelum melakukan export/import mailbox silakan set socket timeout (
zmlocalconfig -e socket_so_timeout=3000000
) - Jika Anda memiliki batasan attachment, silakan naikkan value selama proses migrasi
- Set Public Service Host Name dan Public Service Protocol untuk menghindari error seperti dibawah ini :
ERROR: zclient.IO_ERROR (Connection refused) (cause: java.net.ConnectException Connection refused)
Caranya bisa ke Admin Panel Carbonio CE, pilih nama domainnya dan set secure (https).
Setelah itu, masuk ke server Carbonio CE dan import dengan perintah seperti berikut ini :
root@mail:/opt/backups/zmigrate/MBOX# chown zextras:zextras *
zextras@mail:/opt/backups/zmigrate/MBOX$ for i in `cat /opt/backups/zmigrate/emails.txt`; do zmmailbox -z -m $i -t 0 postRestURL "/?fmt=tgz&resolve=skip" /opt/backups/zmigrate/MBOX/$i.tgz ; echo "$i -- finished "; done
Tunggu prosesnya selesai dan bergantung pada besaran data mailbox yang digunakan.
C. Verifikasi
Setelah Anda melakukan export dan import data user/akun beserta password dan mailbox nya. Anda bisa melakukan verifikasi terlebih dahulu sebelum pointing domain ke IP server Carbonio CE, apakah jumlah email pada setiap akun sudah sama atau belum. Untuk melakukan verifikasi jumlah email setiap akun bisa menjalankan perintah sebagai berikut :
zextras@mail:/opt/backups/zmigrate/MBOX$ for j in $( carbonio prov -l gaa | egrep -v "^(spam|ham)"); do total=0; echo -n "Total for $j = "; for i in $( zmmailbox -z -m "$j" gaf | awk '{print $4}' | egrep -o "[0-9]+" ); do total=$((total + i )); done; echo "$total"; done
Selain itu, Anda juga bisa melihat email pada folder Inbox, Sent, Junk/Spam pada akun email. Selain itu Anda juga melihat kontak, kalendar. Contoh berikut adalah isi pesan pada folder Inbox :
Setelah hasil verifikasi email beserta mailboxnya sudah valid, Anda bisa melakukan pointing record A, MX, TXT dan PTR ke IP server Carbonio CE. Kenapa butuh record TXT dan PTR juga ? Hal ini disebabkan menjaga reputasi email Anda atau istilahnya adalah Deliverability Email, selengkapnya Anda bisa melihat postingan saya disini. Pointing record ini disarankan diluar jam operasional ya, karena akan membutuhkan waktu propagasi domain. Adapun cepat lambatnya proses propagasi bergantung pada resolver DNS yang digunakan.
D. Kesimpulan
Itulah cara bagaimana melakukan migrasi Zimbra Mail ke Carbonio CE menggunakan Script. Keuntungannya selain email berhasil dimigrasikan, kalendar dan kontak juga termasuk. Proses migrasinya juga cukup sederhana dengan konsep export dan import data user (akun email) beserta password dan mailbox nya.
Pastikan sebelum melakukan import, ownership filenya sudah sesuai.
Gimana ? Cukup mudah bukan ? Jika Anda kesulitan melakukan migrasi Zimbra Mail ke Carbonio CE, tenang saja Anda bisa menghubungi Kenalinux ID melalui kontak disini.
Referensi : Carbonio CE
Selamat mencoba dan semoga bermanfaat!