Tuesday, April 28, 2009

Database Firewall

Mungkin ada yang pernah pusing untuk menangkal user2 yang jahil yang coba membuat query jahat atau yg merusak atau semacam SQL Injection...

Salah satu solusi yang bisa coba adalah GREENSQL, greenSQL adalah sebuah open source Firewall Database untuk melindungi database dari serangan SQLInjection.

Kurang Lebih Arsistektur nya Seperti ini:






oke... langsung aja cara instalasinya

1. download greensql di http://www.greensql.net/download

download sesuai dengan distro masing2... untuk contoh yang di tulis ini gw pake ubuntu 8.10
untuk saat ini belum ada untuk windows.

ada dua hal perlu yg di download
  • GreenSQL Firewall = adalah firewall database-nya
  • Management Console = software webbase untuk untuk monitoring firewall (server side yg digunakan adalah PHP)

2. yg selanjutnya kita install GreenSQL Firewal, di console

dpkg -i greensql-fw_1.0.0_i386.deb


3. berikutnya lakukan konfigurasi GreenSQL, ketik perintah dibawah ini pada console

sudo /usr/sbin/greensql-create-db.sh

perintah di atas akan membuat sebuah database


4. untuk melakukan konfigurasi greensql diletakan di file /etc/greensql/greensql.conf

5. untuk melakukan setting dari pola2 query yang dilarang di letakan pada file /etc/greensql/mysql.conf

6. jalankan service greensql

sudo /etc/init.d/greensql start

7. kalau ada problem dari service greensql bisa diliat di var/log/greensql.log

8. test service greenSql nya...

mysql -h 127.0.0.1 -P 3305 -u root -p

coba perhatikan -P 3305 itu adalah port dari greenSQL yg akan di-forward ke mysql -P 3306 yg merupakan port standar mysql


9. jalankan Management Console, untuk monitoringnya, caranya copy dan ekstrak greensql-console-0.5.0.tar.gz di folder www apache webserver km..

demo nya bisa diliat disini http://demo.greensql.net/login.php


10. di browser ketikan contoh: http://127.0.0.1/green-0.5.0/login.php dan secara default username: admin password: pwd

11. sebagai contoh untuk koneksi menggunakan php seperti di bawah ini:

sebelumnya
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

menjadi
$link = mysql_connect('127.0.0.1:3305', 'mysql_user', 'mysql_password');


*nb: issue performance bisa diliat diliat di : http://www.greensql.net/publications/greensql-performance-test



-- selamat mencoba --

6 comments:

  1. Nais inpo gan...
    Tapi baidewey issue2 performance blum ada yah?

    ReplyDelete
  2. ade tom.... disini... issue....
    http://www.greensql.net/publications/greensql-performance-test

    srg trj level keamanan berbanding terbalik dgn kenyamanan... dan jg hrs ada cost yg harus di bayar bwt itu....

    tp gw liat sih... msh dlm batas wajar/masih ok....

    :)

    ReplyDelete
  3. jadi semua query.... sebelum masuk ke mysqlnya akan di filter dulu.... apakah aman atau tidak.... kalau aman maka
    greeSQL akan mem-forward ke mysql database

    perbedaannya ada dikoneksi nya aja...

    sebelumnya
    $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

    menjadi
    $link = mysql_connect('127.0.0.1:3305', 'mysql_user', 'mysql_password')


    coba perhatikan -P 3305 itu adalah port dari greenSQL yg akan di-forward ke mysql -P 3306 yg merupakan port standar mysql

    ReplyDelete
  4. mas, bagaimana kalau saya menggunakan webserver dan database server secara terpisah????? bukan localhost??? suendri@gmail.com

    ReplyDelete
  5. ngak masalah....
    instaal saja greensql nya di server yang sama dengan mysql nya

    ReplyDelete