• Masim “Vavai” Sugianto

    Founder PT. Excellent Infotama Kreasindo– perusahaan email services provider (ESP) dan menjadi konsultan pada berbagai instansi pemerintah, korporasi besar, lembaga perbankan dan institusi pendidikan di Indonesia.

    Lebih detail tentang Vavai.




  • Publishing

  • Recent Posts

    • Pengalaman Saat Sakit : Keluarga, Sahabat dan Bagaimana Jika…
    • Refleksi Setelah Sakit
    • Legacy
    • Bitcoin, Ethereum, Dogecoin
    • Penjualan Langsung : Keliling dan Mangkal
  • Recent Comments

    • PT. Infra Solution International on Perkembangan Usaha Penjualan Pisang “Zeze Zahra” Setelah 1 Bulan
    • PT. Infra Solution International on Refleksi Setelah Sakit
    • PT. Infra Solution International on Pengalaman Saat Sakit : Keluarga, Sahabat dan Bagaimana Jika…
    • ict Administrator on Pengalaman Saat Sakit : Keluarga, Sahabat dan Bagaimana Jika…
    • sada dua on Pengalaman Saat Sakit : Keluarga, Sahabat dan Bagaimana Jika…
  • Archives

    • February 2021
    • January 2021
    • December 2020
    • August 2020
    • July 2020
    • April 2020
    • March 2020
    • August 2019
    • July 2019
    • June 2019
    • March 2019
    • February 2019
    • January 2019
    • November 2018
    • October 2018
    • August 2018
    • May 2018
    • April 2018
    • January 2018
    • December 2017
    • July 2017
    • December 2016
    • November 2016
    • April 2016
    • March 2016
    • November 2015
    • July 2015
    • April 2015
    • November 2014
    • October 2014
    • February 2014
    • January 2014
    • December 2013
    • November 2013
    • October 2013
    • September 2013
    • August 2013
    • June 2013
    • May 2013
    • March 2013
    • February 2013
    • January 2013
    • December 2012
    • November 2012
    • October 2012
    • September 2012
    • August 2012
    • July 2012
    • June 2012
    • May 2012
    • April 2012
    • March 2012
    • February 2012
    • January 2012
    • December 2011
    • November 2011
    • October 2011
    • September 2011
    • August 2011
    • July 2011
    • June 2011
    • May 2011
    • April 2011
    • March 2011
    • February 2011
    • January 2011
    • December 2010
    • November 2010
    • October 2010
    • September 2010
    • August 2010
    • July 2010
    • June 2010
    • May 2010
    • April 2010
    • March 2010
    • February 2010
    • January 2010
    • October 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • November 2007
    • October 2007
    • September 2007
    • August 2007
    • July 2007
    • June 2007
    • May 2007
    • April 2007
    • March 2007
  • Home
  • Bisnis & Marketing
  • Computer & IT Related
  • Lifestyle
  • Publishing
  • Free Stuff
  • About
  • Kontak

Tips Export-Import Data Account Zimbra Menjadi Data LDAP

October 1, 2012

Beberapa waktu yang lalu, team Excellent diminta oleh salah satu klien instansi pemerintah di daerah Bogor untuk melakukan setup Zimbra Mail Server dengan external account authentication menggunakan LDAP. Meski Zimbra sendiri sudah menggunakan LDAP, klien Excellent meminta dibuatkan LDAP tersendiri yang nantinya akan digunakan sebagai pusat account untuk keperluan single identity (SSO/Single Sign On/Single Login)

Konfigurasi LDAP Server menggunakan SUSE Linux Enterprise Server (SLES) tidak terlalu sulit karena bisa mengikuti wizard via YAST | Network Services | LDAP Server. Yang sulit adalah melakukan import data account Zimbra menjadi data LDIF yang bisa diimport ke LDAP server milik SLES.

Bagi rekan-rekan yang mengalami kendala yang sama, berikut adalah script modifikasi dari artikel Script untuk Export-Import Account Zimbra+Password . Script ini saya modifikasi agar memasukkan data home directory, GID, UID dan lain-lain yang diperlukan oleh POSIX Schema. Silakan dimodifikasi sesuai keperluan.

#!/bin/sh

#Hapus Layar
clear

echo -e "###################################################################################"
echo -e "# Zimbra export-ldap.sh ver 0.0.1                                                 #"
echo -e "# Skrip untuk export account Zimbra berikut profile dan password                  #"
echo -e "# Masim 'Vavai' Sugianto - vavai@vavai.com - https://www.vavai.com                 #"
echo -e "# PT. Excellent Infotama Kreasindo : http://www.excellent.co.id                   #"
echo -e "###################################################################################"

# /* Variable untuk bold */
ibold="\033[1m""\n===> "
ebold="\033[0m"

# /* Parameter */
echo ""
echo -n "Enter Domain Name (ex : vavai.com) : "
read NAMA_DOMAIN
echo -n "Enter path folder for exported account (ex : /home/vavai/) : "
read FOLDER

# /* Membuat file hasil export dan mengisi nama domain */
MOD_FILE="$FOLDER/zcs-acc-mod.ldif"
LDIF_FILE="$FOLDER/acc-add.ldif"

vUID=1004

rm -f $MOD_FILE
rm -f $LDIF_FILE

touch $MOD_FILE
touch $LDIF_FILE


# /* Check versi Zimbra yang digunakan */
VERSION=`su - zimbra -c 'zmcontrol -v'`;
ZCS_VER="/tmp/zcsver.txt"
# get Zimbra LDAP password
ZIMBRA_LDAP_PASSWORD=`su - zimbra -c "zmlocalconfig -s zimbra_ldap_password | cut -d ' ' -f3"`

touch $ZCS_VER
echo $VERSION > $ZCS_VER

echo -e $ibold"Retrieve Zimbra User.............................."$ebold

grep "Release 5." $ZCS_VER
if [ $? = 0 ]; then
USERS=`su - zimbra -c 'zmprov gaa'`;
LDAP_MASTER_URL=`su - zimbra -c "zmlocalconfig -s ldap_master_url | cut -d ' ' -f3"`
fi

grep "Release 7." $ZCS_VER
if [ $? = 0 ]; then
USERS=`su - zimbra -c 'zmprov -l gaa'`;
LDAP_MASTER_URL="ldapi:///"
fi

echo -e $ibold"Processing account, please wait.............................."$ebold
# /* Proses insert account kedalam file hasil export */
for ACCOUNT in $USERS; do
NAME=`echo $ACCOUNT`;
DOMAIN=`echo $ACCOUNT | awk -F@ '{print $2}'`;
ACCOUNT=`echo $ACCOUNT | awk -F@ '{print $1}'`;
ACC=`echo $ACCOUNT | cut -d '.' -f1`

if [ $NAMA_DOMAIN == $DOMAIN ] ;
then
OBJECT="(&(objectClass=zimbraAccount)(mail=$NAME))"
dn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep dn:`


displayName=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep displayName: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`


givenName=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep givenName: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`

userPassword=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep userPassword: | cut -d ':' -f3 | sed 's/^ *//g' | sed 's/ *$//g'`

cn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep cn: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`

initials=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep initials: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`

sn=`/opt/zimbra/bin/ldapsearch -H $LDAP_MASTER_URL -w $ZIMBRA_LDAP_PASSWORD -D uid=zimbra,cn=admins,cn=zimbra -x $OBJECT | grep sn: | cut -d ':' -f2 | sed 's/^ *//g' | sed 's/ *$//g'`


if [ "$giveName" == "" ]; then
        echo "
dn: uid=$ACCOUNT,ou=people,dc=excellent,dc=co,dc=id
cn: $displayName
sn: $sn
uid: $ACCOUNT
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
gidNumber: 100
uidNumber: $vUID
homeDirectory: /home/$ACCOUNT
loginShell: /bin/bash
" >> $LDIF_FILE

echo "$dn
changetype: modify
replace: userPassword
userPassword:: $userPassword
" >> $MOD_FILE

else

                echo "
dn: uid=$ACCOUNT,ou=people,dc=excellent,dc=co,dc=id
cn: $displayName
givenName: $givenName
sn: $sn
uid: $ACCOUNT
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
gidNumber: 100
uidNumber: $vUID
homeDirectory: /home/$ACCOUNT
loginShell: /bin/bash
" >> $LDIF_FILE

echo "$dn
changetype: modify
replace: userPassword
userPassword:: $userPassword
" >> $MOD_FILE

fi

                echo "Adding account $NAME"
fi
let vUID=vUID+1
done
echo -e $ibold"All account has been exported sucessfully into $MOD_FILE and $LDIF_FILE..."$ebold

Script diatas akan menghasilkan 2 buah file. File pertama adalah acc-add.ldif dan zcs-acc-mod.ldif. File yang pertama digunakan untuk input data LDAP dengan perintah sebagai berikut :

ldapadd -Wx -D "cn=Administrator,dc=excellent,dc=co,dc=id" -H ldap://localhost -f acc-add.ldif

Sedangkan file kedua digunakan untuk modify password agar sesuai dengan password yang ada di Zimbra, dijalankan dengan perintah :

ldapmodify -f zcs-acc-mod.ldif -x -H ldapi:/// -D "cn=Administrator,dc=excellent,dc=co,dc=id"  -w PasswordLDAPServer
LDAPLinuxResourceScriptZimbra
Share

Resource  / Tips, Tricks & Tutorial

Masim Vavai Sugianto
Masim Vavai Sugianto, Tinggal di Bekasi, Bekerja sebagai wirausahawan/Konsultan IT. Penganjur penggunaan sistem Linux dan aplikasi Open Source. Hobby Membaca, Hiking dan Avonturir. Mengembangkan PT. Excellent Infotama Kreasindo sebagai lembaga training dan IT consulting.

You might also like

Webinar Zimbra : Mindset untuk Team IT
July 29, 2020
Eskalasi Masalah Email : mailbox unavailable invalid DNS MX or A/AAAA resource record
July 14, 2020
Two Factor Authentication (2FA/TFA) untuk Meningkatkan Keamanan Akses Email
April 24, 2020
  • Artikel



  • Blogroll

    • DNS Propagation Checker
    • Instagram Photo/Video Downloader
    • PT. Excellent Infotama Kreasindo
  • Publishing

  • Recent Posts

    • Pengalaman Saat Sakit : Keluarga, Sahabat dan Bagaimana Jika…
    • Refleksi Setelah Sakit
    • Legacy
    • Bitcoin, Ethereum, Dogecoin
    • Penjualan Langsung : Keliling dan Mangkal
    • Perkembangan Usaha Penjualan Pisang “Zeze Zahra” Setelah 1 Bulan
    • Bekerja Keras dan Responsif
    • Bank Syariah Indonesia
    • Meningkatkan Nilai Tambah & Daya Tarik
    • Kios Aneka Pisang “Zeze Zahra II”