Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

Menggunakan Version Control untuk Dokumen

Aplikasi version control yang bagus dapat mengelola binary file (misalnya jpg, doc, pdf, dsb) dengan baik, seperti halnya mengelola source code yang berformat text. Salah satu diantaranya adalah Subversion.

Dalam konteks project software, feature ini dapat dimanfaatkan untuk menyimpan dokumen lain selain source code, misalnya kontrak kerja sama, dokumen analisa, dsb.

Bahkan untuk kasus ekstrim, Subversion juga dapat digunakan untuk mengelola dokumen pribadi kita, seperti yang dilakukan oleh Oom Joey Hess. Sebelumnya dia menggunakan CVS. Tetapi akhirnya dia beralih ke Subversion.


Autobackup to Gmail

Wordpress memang hebat, ada plugin untuk membackup isi blog (isi tabel MySQL) secara periodik ke email. Email yang kita gunakan bisa ditentukan di konfigurasi. Gunakan Gmail untuk kapasitas yang besar.

Sekarang kita bisa memikirkan tulisan dan tidak perlu mengkhawatirkan backup.


Screen Recording

Jaman sekarang orang bikin tutorial udah gak PDF lagi. Ketinggalan jaman oom. Sekarang musimnya tutorial pake movie, baik AVI, MPG, atau SWF. Jangan sampe kalah gaya sama situs porno.

Di windows ada aplikasi gratis untuk merekam screen, namanya AviScreen. Tapi masalahnya, saya sudah selamat tinggal sama sistem operasi yang ada jendelanya. Bukan apa-apa, namanya ada jendela, pasti debu dan serangga masuk membawa virus. Jadi, AviScreen tidak bisa digunakan.

Untungnya di Linux, pilihan lebih banyak. Ada vnc2swf atau vncrec. vnc2swf outputnya Flash Movie, sedangkan vncrec punya format sendiri yang cuma dia sendiri yang bisa baca.

Update (6 Juni 2006): Ternyata ada lagi aplikasi yang namanya Wink. Tersedia untuk Windows maupun Linux.

Ada beberapa artikel yang membahas tentang cara penggunaan dan perbandingan aplikasi ini. Newsforge dan Linux.com membahas secara lengkap tentang cara penggunaanya.

Berbeda dengan sistem operasi Jendela yang cuma bisa punya satu desktop, di linux desktop bisa sebanyak-banyaknya. Ini bisa menyenangkan (bagi yang sudah tahu), dan bisa juga membingungkan (bagi yang belum tahu). Jadi, kalo AviScreen kita cukup tekan tombol Record, kalau di linux ada beberapa langkah sebelum tekan tombol record, yaitu:

  1. Jalankan VNC server. VNC server adalah aplikasi yang bertugas untuk mempublish desktop kita. Pada saat dijalankan, dia akan menjalankan desktop baru yang berbeda dengan screen yang kita hadapi sekarang.

  2. Jalankan vnc2swf. Setelah itu, kita bisa jalankan vnc2swf untuk connect ke VNC server yang telah kita publish pada langkah pertama.

  3. Mulai merekam. Setelah terhubung dengan VNC server, kita bisa langsung mulai merekam.

Jebakan VNC server : VNC server akan menjalankan desktop baru. Jadi, yang akan direkam adalah desktop baru tersebut, bukan desktop yang sekarang kita gunakan. Jadi kita harus menampilkan dulu desktop baru tersebut, baru mulai merekam. Untuk menampilkan desktop baru tersebut, kita bisa gunakan Remote Desktop Connection yang ada di KDE.

Kalau kita mau merekam desktop yang sedang kita gunakan saat ini, kita harus mempublish desktop dengan aplikasi lain yang namanya x11vnc. Jika dijalankan, aplikasi ini akan mempublish aktivitas desktop kita ke vnc server.

Demikian cara merekam aktivitas desktop. Selamat mencoba.


Keanehan konfigurasi OpenLDAP

Satu hal yang sangat mengganggu dalam OpenLDAP adalah, secara default dia mengijinkan anonymous login. Dan parahnya lagi, user yang login secara anonymous dapat melihat daftar username yang terdaftar. Walaupun aksesnya cuma readonly, tapi tetap saja ini adalah potensi bahaya.

Saya coba mendisable account anonymous dengan cara menambahkan baris ini : disallow bind_anon ke dalam /etc/ldap/slapd.conf.

Berhasil, sekarang orang tidak bisa otentikasi secara anonymous. Tapi muncul masalah berikutnya. Subversion WebDAV juga ternyata tidak bisa login. Setelah ditrace ke lognya apache, dia bilang tidak bisa menggunakan mekanisme simple_bind untuk otentikasi. Berikut pesan errornya :

[LDAP: ldap_simple_bind_s() failed][Inappropriate authentication]

Sepertinya, dengan mendisable anonymous, metode otentikasi simple juga di-disable. Sampai saat tulisan ini diposting, saya belum menemukan cara untuk mematikan anonymous tapi tidak mematikan simple_bind.

Akhirnya, workaroundnya adalah, mengaktifkan anonymous, tapi melucuti semua ijin aksesnya. Ini dilakukan dengan cara mengubah konfigurasi akses (/etc/ldap/slapd.conf) dari

access to *
        by * read

menjadi

access to *
        by anonymous none
        by * read

Dengan demikian, sekarang anonymous bisa login, tapi tidak bisa lihat apa-apa.

**Update 17 Oktober 2005 : ** Ternyata selain anonymous tidak bisa lihat apa-apa, WebDAV juga gak bisa lihat apa-apa. Sepertinya, kalau dia mau otentikasi username, dia akan login anonymous dulu untuk melihat daftar user yang terdaftar. Dengan mematikan anonymous, para user Subversion jadi tidak bisa login dengan pesan error : username not found. Jadi, sementara account anonymous terpaksa dibiarkan seperti defaultnya OpenLDAP.

**Update 18 Oktober 2005 : ** Setelah google kesana kemari, akhirnya saya menemukan orang yang mengalami masalah yang sama. Tentu saja masalah ditemukan bersama dengan solusinya. Sekarang kita bisa mendisable account anonymous, dan apache tetap bisa mengotentikasi user Subversion dengan tenang. Tidak perlu lagi workaround untuk melucuti akses anonymous.


Otentikasi Apache menggunakan LDAP

Pada tulisan sebelumya, saya telah menceritakan cara instalasi dan konfigurasi Subversion. Juga telah diceritakan cara mengaktifkan mode akses HTTP melalui Apache 2 + WebDAV.

Setelah sistem berjalan, ternyata ada kekurangnyamanan dalam mengelola repository. Seperti kita ketahui, yang menggunakan repository adalah para programmer dan tim ofisialnya, semuanya terlibat dalam suatu project. Project datang dan pergi, demikian juga username bertambah dan berkurang.

Cara manajemen username melalui htpasswd tidak scalable. Tambah user harus lapor, ganti password harus dibantu, hapus user juga sama, semua tidak bisa diotomasi. Setidaknya saya belum tau cara mengelola file htpasswd yang lebih efisien. Keinginan saya adalah, untuk menambah dan menghapus username dilakukan administrator, tapi untuk urusan ganti password silahkan ganti sendiri melalui web.

Setelah google ke sana kemari, metode yang umum digunakan orang adalah otentikasi melalui LDAP server. Dan ternyata, memindahkan otentikasi dari file htpasswd ke LDAP tidak sulit, cukup ganti konfigurasi dav_svn.conf dalam folder /etc/apache2/mods-available ini :

AuthUserFile /etc/apache2/htpasswd

menjadi ini :

AuthBasicProvider ldap
AuthLDAPURL ldap://localhost/dc=artivisi,dc=com?uid?sub?
AuthLDAPBindDN uid=apache,dc=artivisi,dc=com
AuthLDAPBindPassword "passwd-user-apache-dalam-ldap"

Perhatian !!! Konfigurasi ini berjalan di Ubuntu 7.04 dengan Apache 2.2. Bila Anda menggunakan distro lain atau Apache 2.0, konfigurasi ini mungkin harus dimodifikasi agar bisa berjalan dengan baik.

Kita membutuhkan modul mod\_authnz\_ldap agar Apache bisa melakukan otentikasi ke LDAP.

Lebih lanjut tentang otentikasi LDAP ini bisa dilihat di manualnya Apache.

Untuk mengaktifkan modul ini, cukup gunakan perintah berikut:

a2enmod authnz\_ldap

Nah, di sisi Apache tidak sulit. Instalasi LDAP di Debian juga sama mudahnya, cukup :

# apt-get install slapd

untuk menginstal OpenLDAP, dan

# apt-get install phpldapadmin

untuk menginstal PHPLDAPAdmin. Ya benar … LDAP Admin, bukan phpmyadmin.

Ternyata merek phpXXadmin ini telah sangat kuat. Mungkin kalau Hermawan Kartajaya pernah menggunakan MySQL, PostgreSQL, dan OpenLDAP, dia juga akan membahas mengenai kekuatan merek phpXXadmin ini. Sejauh ini saya telah menggunakan phpmyadmin dan phppgadmin. Dan sekarang ada phpldapadmin. Luar biasa.

Instalasi OpenLDAP mudah sekali, kita hanya ditanya nama domain yang akan disimpan, saya jawab artivisi.com. Kemudian ditanya password untuk administrator dan metode enkripsinya. OpenLDAP menyediakan clear, crypt, dan md5. Setelah itu … selesai.

Instalasi phpldapadmin sedikit bermasalah. Masalah utama adalah permission. Entah kenapa, debian menginstalnya dengan permission yang tidak sesuai. Ini menyebabkan beberapa halaman tidak bisa diakses karena web server tidak diijinkan untuk membacanya. Untuk mudahnya, saya melakukan :

# chown -R www-data.www-data /etc/phpldapadmin
# chown -R www-data.www-data /usr/share/phpldapadmin

Ok, selesailah sudah. Sekarang untuk menambah user dapat dilakukan melalui web. Konfigurasi default OpenLDAP juga sangat bagus. Hanya admin yang dapat memanipulasi data. User biasa (uid) hanya bisa mengganti atributnya sendiri (termasuk password).

Jadi berikutnya, kalau ada user baru, tinggal tambahkan melalui web dengan password standar. Kemudian suruh user tersebut login dan ganti password. Beres …

Referensi :
Google

Scratchbox