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.

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


Instalasi Subversion

Setelah pindah ke rumah baru, tugas pertama adalah instalasi Subversion lengkap dengan akses melalui http.

Subversion adalah aplikasi version control system. Cara instalasi detail dan tutorial penggunaan sedang saya susun dalam sebuah tutorial terpisah. Sementara ini, berikut cara cepat instalasi Subversion dan aktivasi akses melalui WebDAV.

Untuk mengaktifkan akses WebDAV, dibutuhkan webserver Apache 2. Apache 2 digunakan (bukan Apache 1) karena telah menyediakan dukungan terhadap WebDAV. WebDAV sendiri adalah tambahan pada protokol HTTP yang memungkinkan aplikasi client memodifikasi file di server. Tanpa WebDAV, aplikasi client (misalnya Internet Explorer atau Mozilla Firefox) hanya bisa membaca data dari webserver dan tidak bisa menyimpan data.

Berikut adalah langkah-langkahnya :

  1. Install Subversion, Apache2 dan WebDAV module :

    # apt-get install subversion apache2 libapache2-svn

  2. Khusus Linux, kita harus membuat wrapper script untuk :
    • svn
    • svnadmin
    • svnlook
    • svnserve

    Gunanya agar folder repository dibuat dengan permission yang benar, yaitu 664. Artinya, user/pembuat repository bisa baca-tulis(rw=6), groupnya bisa baca-tulis, dan orang lain bisa baca(r=4).

    Caranya adalah dengan mengganti script yang asli dengan wrappernya. Pertama, ganti dulu nama script yang asli sebagai berikut :

         # mv svn svn-original
         # mv svnadmin svnadmin-original
         # mv svnlook svnlook-original
         # mv svnserve svnserve-original        
    

    Kemudian buat file text baru untuk wrappernya, jangan lupa untuk membuat file tersebut executable.

         # touch svn svnadmin svnlook svnserve
         # chmod 755 svn svnadmin svnlook svnserve        
    

    Berikut adalah contoh wrapper script untuk svn. File svnadmin, svnlook, dan lainnya mirip, cuma berbeda di baris keempat saja.

    #!/bin/sh

    umask 002 /usr/bin/svn-original “$@”

  3. Buat repository, misalnya di folder /home/endy/svnrepo :

         $ svnadmin create --fs-type fsfs /home/endy/svnrepo
    
  4. Buat group untuk mengakses repository, misalnya group svnusers

         # groupadd repousers
    
  5. Ubah kepemilikan repository menjadi milik group

         $ chgrp -R repousers /home/endy/svnrepo
    
  6. Masukkan semua user yang akan mengakses repository ke dalam group repousers. Sekarang repository siap diakses secara ssh.

         $ svn list svn+ssh://localhost/home/endy/svnrepo
    
  7. Edit Apache 2 agar berjalan dengan group repousers. Instruksi dibawah berlaku untuk Debian. Untuk distro lain silahkan lihat manualnya masing-masing. Pengguna Windows tidak perlu pusing-pusing tentang group, di OS anda fitur ini diabaikan :P

         mc -e /etc/apache2/apache2.conf
    

    ganti baris

         Group www-data
    

    menjadi

         Group repousers
    
  8. Buat username dan password untuk mengakses repository melalui web. Debian menggunakan script htpasswd2. Distro Anda mungkin berbeda.

         # htpasswd2 -mc /etc/apache2/svnusers endy
    

    Lihat manual htpasswd untuk lebih jelasnya.

  9. Edit konfigurasi dav_svn. Intinya adalah, kita harus menambahkan Virtual Directory di Apache. Teknik konfigurasi yang ‘benar’ berbeda di masing-masing distro. Untuk cara paling mudah, tulis saja langsung di bagian paling bawah file httpd.conf. Di Debian, cara paling ‘bersih’ adalah membuat file konfigurasi sendiri di folder /etc/apache2/mods-available.

    Berikut adalah konfigurasi dav_svn. Pastikan file ini diload oleh Apache.

         <Location /svn>
         DAV svn
         SVNPath /home/endy/svnrepo
         AuthType Basic
         AuthName "Subversion Web Authentication"
         AuthUserFile /etc/apache2/svnusers
         AuthzSVNAccessFile /etc/apache2/dav_svn.authz
         Require valid-user
         </Location>
    
  10. Mengaktifkan koneksi https

    • Buat sertifikat, menghasilkan file svn.cert.pem dan svn.key.pem

    • Aktifkan mod_ssl pada Apache. Caranya berbeda sesuai distro. Di debian adalah dengan cara dengan cara membuat symlink mod_ssl.conf dan mod_ssl.load ke folder /etc/apache2/mods-enabled

    • Edit konfigurasi default website (/etc/apache2/sites-available/default).

      SSLEngine on SSLCertificateFile /etc/apache2/ssl/svn.cert.pem SSLCertificateKeyFile /etc/apache2/ssl/svn.key.pem SetEnvIf User-Agent “.MSIE.” nokeepalive ssl-unclean-shutdown

    • Buka koneksi di port 443 dengan cara mengedit konfigurasi Apache dan menambahkan baris berikut :

    Listen 443

    • Restart apache

    Seharusnya sekarang repository kita sudah bisa :

    • diakses melalui ssh
    • diakses melalui https dengan memasukkan username dan password yang benar

Selamat mencoba.

Referensi :