Friday, November 29, 2013

Karena Doi seorang Da'i

Wihartoyo     Friday, November 29, 2013    
‘’Honor saya terakhir Rp 125 ribu perbulan,’’ kata Ustadz Sumitro Mangkusasmito Lc, mengungkapkan gajinya saat menjadi da’i di Dili, Timor Timur, sejak 1981 hingga 1999.
Melalui referendum yang curang dan dibingkai kerusuhan, Provinsi ke-27 NKRI itu akhirnya lepas dan menjadi Republik Timor Leste. 
Situasi yang mencekam mengancam nyawa, membuat Sumitro sekeluarga hengkang ke kampung halaman istrinya di Makassar, Sulawesi Selatan, pada 1999. ‘’Saya tinggalkan asset saya berupa 13 rumah kontrakan yang pembangunannya dibiayai investor dari Makassar,’’ kenang da’i asal Bojonegoro, Jawa Timur, itu di sela mengisi Daurah Du’at Dewan Dakwah di Jeneponto, Sulsel, 24 November lalu.
Tahun 2006, Sumitro yang seangkatan dengan Ustadz Syuhada Bahri, untuk kali pertama mengunjungi Dili setelah hijrah darinya. Ia dipanggil untuk mengisi ceramah di sana.
‘’Saya sempat mampir ke bekas rumah saya. Rumah-rumah itu sudah dikuasai warga lokal, dan disewakan dengan harga ratusan ribu dolar Amerika pertahun,’’ ungkapnya. ‘’Tapi saya tidak berusaha mengambilnya lagi, daripada waktu dakwah saya habis untuk mengurusnya,’’ ia menambahkan sambil tersenyum.
Sumitro mengaku saat itu jelas merasa sedih. Namun, pengurus Dewan Dakwah Provinsi Sulsel itu yakin, biyadikal khayr. Ketentuan Allah SWT pasti yang terbaik untuknya.
Kita pun turut trenyuh, membandingkan kesejahteraan para da’i dengan Walang bin Kilon. Mengemis dalam 15 hari, Walang meraup Rp 25 juta. Uang sebanyak itu tersusun rapi dan tersimpan dalam gerobaknya yang menjadi ‘’dagangan iba’’ bersama rekannya, Sa'aran.
Keduanya ditangkap petugas Sudin Sosial Jaksel pada Selasa (26/11/2013) pukul 19.30 WIB di bawah Tugu Pancoran, Jaksel.
Walang mengaku, mengemis untuk modal tambahan naik haji. Dia sudah mendaftar haji di Subang. Di kampung asalnya, dia juga memiliki bisnis ternak kambing. Istri dan ketiga anaknya sehat wal afiat, berkecukupan untuk ukurannya. Anak-anaknya bersekolah secara wajar.
Sementara itu, mukafa’ah (honor) seorang da’i Dewan Dakwah di pedalaman Nusantara, paling tinggi sekitar Rp 500 ribu perbulan. Selebihnya, ‘’minta sendiri ke Allah SWT’’.
Ustadz Syuhada Bahri dalam berbagai kesempatan menuturkan, ia pernah merasa bersalah saat mengirim seorang da’i ke perbatasan NTT-Timor Leste. Karena kehabisan biaya hidup dan tinggal bersama jamaah yang tidak lebih kaya darinya, sang da’i mengganjal perutnya dengan pucuk dedaunan yang bisa dimakan. Ini berlangsung selama sepekan, hingga datang Ustadz Syuhada membesuknya.
Mengetahui keadaannya, Ustadz Syuhada meminta anak buahnya itu pindah ke daerah yang lebih dekat ke pusat kota, sehingga lebih mudah mendapatkan sumberdaya.
Namun, da’i itu keberatan. ‘’Tolong jangan jauhkan saya dari Allah ya Ustadz, karena dengan hidup begini saya justru semakin dekat dengan Allah,’’ katanya mengiba. Dan Ustadz Syuhada Bahri hanya merangkul sambil menyembunyikan tangisnya di punggung da’i tersebut.
KISAH SEMACAMNYA, SILAKAN SIMAK MAJALAH TAZAKKA LAZIS Dewan Dakwah
(Sumber: John Bon Bowie)

Tuesday, November 26, 2013

Migrasi Mail Account Zimbra

Wihartoyo     Tuesday, November 26, 2013    
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......

Monday, November 25, 2013

Imapsync Tanpa Password User

Wihartoyo     Monday, November 25, 2013    
Imapsync adalah tools untuk melakukan sinkronisasi email berbasis IMAP antara dua server yang berbeda.  Untuk kepentingan migrasi e-mail Zimbra disamping menggunakan internal module zmmailbox untuk ekstrak mailbox dan import message ke mailbox, kita bisa juga menggunakan imapsync.  Namun, kekurangan dari menggunakan zmmailbox adalah bahwa e-mail yang kita import akan mempunyai tanggal "received date" yang seragam yaitu tanggal pada saat message kita import ke mail system kita. Tapi, bila kita menggunakan imapsync, dari sekian banyak contoh yang bertebaran di internet, kita selalu diberikan contoh yang selalu harus memberikan password user.  Meskipun itu dimasukkan kedalam satu file plain text.  Nah, kali ini saya akan mencoba mengurai penggunaan imapsync yang tanpa harus memberikan password user.  Namun, tetap, password admin harus kita punya, atau dengan kata lain kita melakukan sinkronisasi dengan menggunakan privilege admin.

Install Imapsync
Petama kali kita harus menginstall pre-requisite dari aplikasi imapsync

root@mail:~#apt-get install libdate-manip-perl libterm-readkey-perl \
libterm-readkey-perl libdigest-hmac-perl libdigest-hmac-perl \
libdate-manip-perl libmail-imapclient-perl makepasswd \
rcs perl-doc libmail-imapclient-perl make git-core git-doc git-svn git-gui gitk

Kemudian kita clone source imapsync dengan perintah:

root@mail:~#cd /opt
root@mail:/opt#git clone git://github.com/imapsync/imapsync.git

root@mail:/opt#cd imapsync/
root@mail:/opt/imapsync#make install

Sinkronisasi Email
Umumnya untuk melakukan singkronisasi e-mail menggunakan imapsync kita menggunakan perintah yang baku sebagai berikut


root@mail:~#imapsync --host1 [host-sumber] --ssl1(bila digunakan) --user1 [email@domain-sumber] --password1 [passworduser-sumber]\
--host2 [host-target] --ssl2(bila digunakan) --user2 [email@domain-target] --password2 [passworduser-target]

Perhtikan bahwa kita harus mensuplai password.  Permasalahan dengan hal ini adalah bahwa kita harus tahu seluruh username dan password untuk seluruh akun yang terdaftar pada mail system kita. Googling punya googling ternyata ada satu direction yang bisa kita gunakan untuk melakukan singkronisasi tanpa harus mengetahui password user.  Direction yang kita gunakan adalah "--authuser[x]" dimana authenticated user yang digunakan adalah admin user sehingga kita bisa baca dan tulis seluruh content milik seluruh akun yang terdaftar.  Ok kita coba..


Contohnya:

User: saya@domain.co.id host1: 10.11.12.13 host2: 14.15.16.17 ssl

root@mail:~#imapsync --host1 10.11.12.13 --ssl1 --authuser1 admin --user1 saya@domain.co.id \
--host2 14.15.16.17 --ssl2 --user2 saya@domain.co.id

Oppps.......! Tapi ternyata mail system meminta password admin secara interaktif.


root@mail:~#imapsync --host1 10.11.12.13 --ssl1 --authuser1 admin --user1 saya@domain.co.id \
--host2 14.15.16.17 --ssl2 --user2 saya@domain.co.id
Temp directory is /tmp
PID file is /tmp/imapsync.pid
Modules version list:
Mail::IMAPClient 3.30
IO::Socket 1.32
IO::Socket::IP ?
IO::Socket::INET 1.31
IO::Socket::SSL 1.53
Net::SSLeay 1.42
Digest::MD5 2.51
Digest::HMAC_MD5 1.01
Digest::HMAC_SHA1 1.03
Term::ReadKey 2.30
Authen::NTLM ?
File::Spec 3.33
Time::HiRes 1.972101
URI::Escape 3.31
Data::Uniqid ?

Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Info: will try to use PLAIN authentication on host1
Info: will try to use PLAIN authentication on host2
Info: imap connexions timeout is 120 seconds
Host1: IMAP server [10.11.12.13] port [993] user [saya@domain.co.id]
Host2: IMAP server [14.15.16.17] port [993] user [saya@domain.co.id]
What's the password for admin@10.11.12.13?
What's the password for admin@14.15.16.17?
Host2: * OK IMAP4 ready
Host2: 14.15.16.17 says it has CAPABILITY for AUTHENTICATE PLAIN
Host2: success login on [14.15.16.17] with user [hartoyo_opr@collega.co.id] auth [PLAIN]
Host1: state Authenticated
Host2: state Authenticated
Host1 capability: IMAP4rev1 ACL BINARY CATENATE CHILDREN CONDSTORE ENABLE ESEARCH ESORT I18NLEVEL=1 ID IDLE LIST-EXTENDED LIST-STATUS LITERAL+ LOGIN-REFERRALS MULTIAPPEND NAMESPACE QRESYNC QUOTA RIGHTS=ektx SASL-IR SEARCHRES SORT THREAD=ORDEREDSUBJECT UIDPLUS UNSELECT WITHIN XLIST
Host2 capability: IMAP4rev1 ACL BINARY CATENATE CHILDREN CONDSTORE ENABLE ESEARCH ID IDLE LIST-EXTENDED LITERAL+ LOGIN-REFERRALS MULTIAPPEND NAMESPACE QRESYNC QUOTA RIGHTS=ektx SASL-IR SEARCHRES UIDPLUS UNSELECT WITHIN
Host1 separator and prefix: [/][]
Host2 separator and prefix: [/][]

< < dan seterusnya dipotong


Hmmm..... gak masalah harus masukin password admin tapi kok ya harus key-in sih? Tapi, coba kita perhatikan, bahwa password admin untuk satu akun diminta 2 kali.  Satu kali untuk sumber dan satu kali untuk target. Bagaimana kalau kedua password kita rekam dalam satu plain text, sebut aja namanya adminpass.txt dan kita sertakan dalam command line kita sebagai standar input sehingga perintahnya akan menjadi begini.
Content adminpass.txt
root@mail:~#cat adminpass.txt
passadminchar
passadminchar
Eksekusi perintah....
root@mail:~#imapsync --host1 10.11.12.13 --ssl1 --authuser1 admin --user1 saya@domain.co.id \
--host2 14.15.16.17 --ssl2 --user2 saya@domain.co.id <./adminpass.txt
Ok tinggal ditest, dan bila berhasil maka tinggal digabung dengan tools internal zimbra untuk mensingkronisasi seluruh akun.


(Langkah-langkah di atas telah dicobakan untuk installasi zimbra community edition versi 5 dan 8 baik sebagai target maupun sebgai sumber. Zimbra 5 terinstall pada OpenSuSE 10 32bit, sementara Zimbra 8 terintall pada Ubuntu 12.04 64bit)

Friday, November 22, 2013

Check Password Mysql Pada Zimbra

Wihartoyo     Friday, November 22, 2013    
Suatu saat saya terpaksa harus melakukan dump dan restore database mysql di dalam instalasi zimbra saya.  Permasalahanya adalah, "Apa password root mysql saya?"
Hm....
Hal yang paling saya ingat adalah bahwa zimbra banyak menyimpan konfigurasi pada local config nya, zmlocalconfig.
Saya coba jalankan 'zmlocalconfig | grep password' yang saya dapat cuma begini.

zimbra@mail:~$ zmlocalconfig | grep password
antispam_mysql_password = *
antispam_mysql_root_password = *
ldap_amavis_password = *
ldap_bes_searcher_password = *
ldap_nginx_password = *
ldap_postfix_password = *
ldap_replication_password = *
ldap_root_password = *
mailboxd_keystore_base_password = *
mailboxd_keystore_password = *
mailboxd_truststore_password = *
mysql_root_password = *
zimbra_ldap_password = *
zimbra_mysql_password = *
zimbra_vami_password = *
Bah semuanya make *, gimana mau lihat passwordnya? Jadi...
zimbra@mail:~$zmlocalconfig --help
usage: zmlocalconfig [options] [args]
where [options] are:
 -c,--config   File in which configuration is stored.
 -d,--default        Show default values for keys listed in [args].
 -e,--edit           Edit configuration file, changing keys and values
                     specified. [args] is in key=value form.
 -f,--force          Allow editing of keys whose change is known to be
                     potentially dangerous.
 -h,--help           Show this usage information.
 -i,--info           Show documentation for keys listed in [args].
 -l,--reload         Send a SOAP request to the server to reload its local
                     config.
 -m,--format   Show values in one of these formats: plain (default),
                     xml, shell, export, nokey.
 -n,--changed        Show values for only those keys listed in [args] that
                     have been changed from their defaults.
 -p,--path           Show which configuration file will be used.
 -q,--quiet          Suppress logging.
 -r,--random         Used with the edit option, sets specified key to
                     random password string
 -s,--show           Force display of password strings.
 -u,--unset          Remove a configuration key.  If this is a key with
                     compiled in defaults, set its value to the empty
                     string.
 -x,--expand         Expand values.

Ooke.... jadi harus make '-s'

zimbra@mail:~$ zmlocalconfig -s | grep password
antispam_mysql_password = 
antispam_mysql_root_password = 
ldap_amavis_password = PEN7FhlJU
ldap_bes_searcher_password = zmbes-searcher
ldap_nginx_password = PEN7FhlJU
ldap_postfix_password = PEN7FhlJU
ldap_replication_password = PEN7FhlJU
ldap_root_password = PEN7FhlJU
mailboxd_keystore_base_password = zimbra
mailboxd_keystore_password = purOcHvuKE
mailboxd_truststore_password = changeit
mysql_root_password = o74m98m8XmUhhyTjdsYgb_hr0mdfaIa
zimbra_ldap_password = nganuneanu@2013
zimbra_mysql_password = iwE2VarliGl0XjSpkdaf91HKNb1JkXWlh
zimbra_vami_password = vmware

Nah monggo silakeun dipake....

Wednesday, November 20, 2013

Ketupluk Oh Ketupluk

Wihartoyo     Wednesday, November 20, 2013    
Ketupluk, kepinding tanah, atau yang punya nama keren Scotinophara Coarctata sekarang lagi musim banget di kampung saya di tlatah Cilacap, tepatnya di desa Kalikudi.  Ada yang bilang, karena sekarang musim panen dan sawah mulai di traktor, makanya itu ketupluk pada keluar terbang.
Sawah Abis Ditraktor
Yang lumayan bikin rese, itu ketupluk yang bersifat fototaksis positif yang berarti selalu terbang mendekati cahaya akan menjadi object yang sangat mengganggu ketika kita melakukan aktifitas malam hari. Disamping bahwa ketupluk yang berterbangan itu mengganggu aktifitas kita, secara tiba-tiba kita pun akan mendapatkan 'sensasi' rasa gatal, dan bau yang sanga menyengat.  'Sensasi' karena saya gak yakin, apa itu gatal beneran atau bukan.  Karena, toh, saudara-saudara di sana tidak berasa gatal.  Disamping itu, makanan yang menjadi teman kita pun menjadi tidak lagi menantang untuk kita santap.
Sisa ketupluk setelah disapuin

Karena sifatnya yang gemar cahaya, lampu-lampu penerang jalan ditempat-tempat yang tidak jauh dari sawah juga menjadi tempat favorit mereka.  Bahkan saking favoritnya, mereka jadi lupa pulang.  Alhasil, pagi harinya daerah pada radius 1.5 meter di sekitar tiang lampu harus dibersihkan.  Membersihkannya pun tidak cukup menggunakan sapu.  Harus disekop dulu, baru disapu.  Bisa dibayangkan, bagaimana banyaknya ketupluk yang berpesta di sana?
Pagi hari di salah satu sudut tempat pesta para ketupluk pada malam harinya.
(Maaf gak ngambil yang lebih dari ini, gak kuat baunya)
Apa Itu Ketupluk Sebenarnya?
Saking terkesannya kepada binatang satu ini, saya berusaha mencari informasi tentang binatang ini. Sebagaimana disebut di atas, ketupluk mempunyai nama latin Scortinophara Coarctata.  Namun ada yang menyebutkan bahwa di jawa kebanyakan adalah dari species Scotinophara Vermiculata atau Scotinophara Cinerea.  Nah karena ada tiga kemungkinan penyerang aktif yang saya temui, maka saya lebih suka menyebutnya Scotinophara spp. Binatang hama yang berwarna hitam dan kadang kecoklatan ini hidup di pangkal batang padi.  Ada yang bilang, binatang hama ini menyerang pada pada saat fase vegetatif maupun generatif.  Jika serangan terjadi pada fase vegetatif maka, akan mengakibatkan berkurangnya jumlah anakan padi.  Sementara serangan pada fase generatif akan mengakibatkan tanaman padi menjadi pendek dengan bulir padi yang kosong.
Scotinophara Coarctata
(Sumber: 
http://www.padil.gov.au/maf-border/Pest/Main/141078)
Ketupluk menyerang padi dengan menghisap cairan pangkal batang tanaman padi. Dan pada saat tidak tanam, mereka bertahan hidup pada bongkahan tanah yang berumput. Cara yang paling murah untuk mengurangi populasi hama ini adalah dengan melakukan tanam serempak, menggenangi sawah dengan air, dan menjebak kepinding dewasa menggunakan lampu petromak di atas genangan air.
(Dari berbagai sumber dan pengalaman sendiri)

Wednesday, November 13, 2013

Login SSH Lama (Ubuntu 13)

Wihartoyo     Wednesday, November 13, 2013    
Mas, kenapa sih kalo kita login make SSH linux suka lama?
O, itu... Itu sih karena ada konfigurasi di sshd_config yang kurang kamu perhatiin.
La ya udah saya perhatiin to Mas.  Masa gak diperhatiin.  La wong bikin keki gini.  Langkah pertama, pastinya ya cari penyakitnya.
Kamu pasti make Ubuntu, ya?
Iya, kok tahu?
La yo mesti tahu.  Itu emang kelakukannya Ubuntu. Ada konfigurasi default yang gak tampil di sshd_config.  Coba kamu jalanin ini:
root@compisaya:~#grep UseDNS /etc/ssh/sshd_config
ada nongol gak?
Gak ada, Mas!
Na..., ya itu. Tapi kadang-kadang ada juga hasilnya. Biasanya begini:
root@compisaya:~#grep UseDNS /etc/ssh/sshd_config
#UseDNS yes


Nah kalo dilihat dari kelakuannya, sepertinya kalo yang gak ada yang nongol sudah dianggap default yes. Dan yang nongol dengan nilai yes, meskipun di-comment, tetep ada dianggep yes.

Jadi, gimana penyelesaiannya?

Gini, coba kamu jalankan di server yang bandel untuk yang gak ada yang nongol:
root@compisaya:~#echo "UseDNS no" >> /etc/ssh/sshd_config
root@compisaya:~#service ssh restart
terus kamu login ulang.

Sementara, untuk yang ada yang nongolnya kita rubah nilainya.  Jalankan ini.
root@compisaya:~#sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config'
root@compisaya:~#service ssh restart


Ok, Mas, saya coba dulu.....

Recommended