Skip to main content

Migrasi Mail Account Zimbra

Untuk melakukan migrasi mail Zimbra, kesulitan pertama adalah memindahkan user ke server baru tanpa harus merubah password.  Masalahnya adalah kita tidak bisa langsung mengekstrak password dari sistem Zimbra.  Artinya untuk menampilkan userPassword dengan getAccount (ga) tidak akan kita dapatkan password yang bisa kita simpan untuk kita install di server baru.


zimbra@mail:~#zmprov ga sidoel@domain.co.id userPassword
# name sidoel@domain.co.id
userPassword:  VALUE-BLOCKED


Zimba, secara default, menggunakan internal LDAP untuk menjalan fungsi authentication.  Dan oleh karena itu, Zimbra menyediakan alternatif untuk berinteraksi dengan LDAP saat menggunakan zmprov dengan option 'l' yang disebutkan dalam 'help' nya sebagai 'provision via LDAP instead of SOAP'.
Baiklah, kita coba untuk menggunakan option '-l' untuk menggunakan LDAP.

zimbra@mail:~#zmprov -l ga sidoel@domain.co.id userPassword
# name sidoel@domain.co.id
userPassword:  {SSHA}QASTbMtzKr4fmlIytyOr28p4wBSieYmo

Sippp!
Sekarang bagaimana untuk mendapatkan seluruh account dan password?
zmaccts adalah internal tools dari zimbra yang digunakan untuk menampiklan seluruh account yang terdaftar di mail system zimbra baik yang aktif maupun tidak dalam urutan ke samping account,status,created, dan last logon. Karena informasi yang ditampilkan bercampur dengan informasi lain, kita bisa grep untuk yang hanya mengandung '@'.  Sementara karena account ditampilkan pada urutan pertama kita bisa menggunakan 'awk' untuk hanyak mencetak kolom pertama saja dengan awk '{print $1}'.  Perintah lengkapnya:

zimbra@mail:~#zmaccts

account                                    status          created                   last logon
--------------------------------------     ------------    ---------------------     --------------------------
tolo@domain.co.id                          active          11/01/13 14:00            11/20/13 18:00
tole@domain.co.id                          active          11/01/13 14:21            11/18/13  07:01
tono@domain.co.id                          closed          12/01/13 12:02            11/15/13  08:19
toni@domain.co.id                          active          12/01/13 12:15            never
dst....
zimbra@mail:~#zmaccts | grep @ | awk '{print $1}'
tolo@domain.co.id
tole@domain.co.id
tono@domain.co.id
toni@domain.co.id

dst....
Sipp lagi....
Nah, sekarang, untuk memigrasi account, cara yang paling mudah adalah membentuk batch file pembentukan account berdasar informasi dari server lama untuk kemudian dijalankan di server baru.
Pembentukan account masih menggunakan zmprov.  Oleh, karena kita menghendaki bahwa semua account mempunyai password yang sama maka setelah kita mengekstrak password dengan menggunakan LDAP, maka dalam menginstall account ke server baru juga harus menggunakan LDAP. 

zimbra@mail:~#zmprov -l ca sidoel@domain.co.id {SSHA}QASTbMtzKr4fmlIytyOr28p4wBSieYmo

Perintah di atas bisa dilengkapi dengan option-option tambahan

zimbra@mail:~#zmprov -l ca sidoel@domain.co.id {SSHA}QASTbMtzKr4fmlIytyOr28p4wBSieYmo displayName "Si Doel Gelo"
Option-option tambahan bisa didapat dari server lama dengan menggunakan zmprov dengan syntax yang sama dengan ketika kita mengekstrak password.
Misal, untuk mengetahui displayName
zimbra@mail:~#zmprov ga tolo@collega.co.id displayName
# name tolo@collega.co.id
displayName: Kacang Tolo

Sekali lagi, sipppp!!!
Setelah kita bisa mengambil beberapa informasi yang kita butuhkan untuk pembentukan account di server baru, kita bisa susun script pembentukan batch statement dengan kontent sebagai berikut.
#!/bin/bash
#Berikut adalah script yang digunakan untuk menysusun batch statement yang akan
#dijalankan di server baru
#bisa script ini dijalankan maka kita akan mendapatkan file existingAcc.sh yang bisa kita jalankan di server
#baru untuk membentuk account-account yang sama.
if [ -f existingAcc.sh ]; then
rm -f existingAcc.sh;
fi
touch existingAcc.sh;
echo "echo Installasi existing Account" > existingAcc.sh;
for i in `zmaccts | grep "@" | grep "active" | awk '{print $1}'`;do
 zmprov -l ga $i userPassword displayName zimbraAccountStatus > /tmp/zimbraAccount.txt;
    shLine1="";
    shLine2="";
    shLine3="";
    while read attr;do
      case $attr in
         userPassword*) export shLine1=`echo $attr | sed 's/userPassword: //'`;;
         displayName*) export shLine2=`echo $attr | sed 's/displayName: //'`;;
         zimbraAccountStatus*) export shLine3=`echo $attr | sed 's/zimbraAccountStatus: //'`;;
         *);;
     esac
    done < /tmp/zimbraAccount.txt
    echo "Extracting account $i and write into batch file";
    echo "zmprov -l ca $i $shLine1 displayName $shLine2 zimbraAccountStatus $shLine3" >>existingAcc.sh;
done
chmod +x existingAcc.sh;
Selamat mencoba......

Popular posts from this blog

Awal Perjalanan

Jalan di dusun Pedhudutan pagi ini masih sangat sepi. Meskipun adzan Shubuh telah berkumandang, dan jama’ah Shubuh telah kembali dari langgar, namun aktifitas penduduk masih belum terlihat bergeliat. Hanya beberapa penduduk yang terlihat telah mendahului pergi ke pasar menjemput pagi. Menjemput rezeki pagi ini. Wadasputih, lintasan pegunungan yang melingkupi dusun Pohkumbang, masih nampak hitam di ujung timur seakan mencanda mentari agar tetap dalam peraduannya meski semburat tangan sinarnya telah menggapai awan yang masih malas-malasan di atas sana. Padepokan Gagak Wulung, pagi ini, terasa sangat sepi. Tidak seperti hari-hari sebelumnya. Tidak ada suara cantrik mengalunkan pesan-pesan ilahi, maupun yang gladen, olah kanuragan. Bahkan dapur-dapur padepokan yang biasanya diisi oleh para simbok, istri-istri cantrik senior maupun para cantrik perempuan, pagi ini sepi. Hanya ada sedikit sisa asap pedhangan bekas menanak nasi tadi, sebelum subuhan. Semua cantrik berkumpul di depan pendo...

Analisis Interaktif Kerentanan PHP

Dasbor Analisis Kerentanan PHP 2025 Analisis Interaktif Kerentanan PHP CVE-2025-1735 (pgsql) & CVE-2025-6491 (SOAP) CVE-2025-1735 CVE-2025-6491 Ringkasan CVE-2025-1735: Ekstensi `pgsql` Kerentanan ini berasal dari penanganan kesalahan yang tidak memadai dalam ekstensi PostgreSQL PHP, yang berpotensi menyebabkan Injeksi SQL dan Penolakan Layanan (DoS). Bagian ini memvisualisasikan data kunci untuk memahami risikonya. Detail Kerentanan ...

Niken Landjar Sekar Kenongo

Model: Naziyah Mahmood Credit: ada-arts13 "Ndhuk, lihat, perhatikan, pikirkan dan berundinglah dengan hati dan akal sehatmu. Semua ajar yang pernah Bopo berikan sudah cukup untukmu mengambil keputusan yang terbaik!" Niken Landjar Sekar Kenongo, putri kesayangan Ki Ageng Gagak Pergola dengan takzim mendengar petuah boponya. Dara cantik berkerudung hitam yang duduk berhadapan dengan Ki Ageng berujar, "Inggih Bopo! Saya akan selalu mengingat sedoyo pawiyatan kang sampun dipun wedhar déning Bopo. Benjang, enjang-enjang, dalem badhe miwiti lampah, perjalanan yang sangat jauh Bopo. Padepokan Nyi Ajar Nismara  sungguh teramat jauh, berat hati dalem untuk memulai perjalanan ini. Berat hati dalem meninggalkan bopo meski para cantrik di padhepokan ini akan selalu bersama bopo. Nyuwun pangestunipun bopo agar yang akan saya mulai besok akan bisa saya jalani dengan selamat!" Ki Ageng Gagak Pergola menarik nafas panjang. Ingatannya kembali ke masa lalu ketika anak pe...