.: Dee Personal Blog :.

Subtitle

Blog

Membuat Database Firewall pada CentOS

Posted by Root on August 31, 2013 at 9:15 PM


Pada tutorial sebelumnya penulis telah memaparkan mengenai restriksi port pada CentOS menggunakan Advanced Policy Firewall (APF), kali ini pun penulis akan membuat tutorial mengenai database firewall. Database yang disimpan pada server berisi informasi-informasi penting dan juga kadangkala berisi konfigurasi dari sebuah situs. Bayangkan jika sebuah server disusupi oleh peretas, kemudian peretas tersebut mendrop semua database, hmmm... pastinya akan kacau kan? Bayangkan juga jika database pada server milik pembaca didumping oleh peretas dan disebarkan ke media jejaring sosial online, wah pastinya semua informasi pada database tersebut akan terkuak dan dapat dimanfaatkan oleh oknum-oknum yang tidak bertanggung jawab. Bagaimana kah bentuk serangan terhadap sisi database? Jika para pembaca menggunakan SQL, seperti : MySQL, MSSQL ataupun PostgreSQL pasti sudah tidak asing lagi dengan serangan yang bernama SQL Injection. Nah untuk mengamankan database dari serangan SQL Injection, kita dapat memasang database firewall, salah satunya adalah GreenSQL. GreenSQL adalah sebuah solusi database firewall open source yang berperan sebagai sebuah reverse proxy dan mendukung basis data MySQL dan PostgreSQL.


Sebagai sebuah reverse proxy, maka setiap perintah SQL yang diberikan akan dikirimkan ke GreenSQL Server untuk dianalisa, jika hasil analisa menunjukan bahwa perintah yang dimasukkan tidak berbahaya maka akan diteruskan ke MySQL Server sebagai real database servernya. GreenSQL dipasang untuk menghubungkan antara aplikasi dengan database, dan berfungsi sebagai Intrusion Detection System, Intrusion Prevention System atau sebuah firewall. Kelebihan yang dipergunakan oleh GreenSQL adalah pemanfaatan dengan baik pengujian perintah SQL dengan metoda "risk scoring matrix". Risk scoring matrix itu sendiri merupakan sebuah teknik analisis perhitungan resiko untuk melakukan proses blocking terhadap perintah-perintah yang dikenal sebagai perintah SQL administrative seperti : drop, create, alter juga perintah-perintah SQL lain yang berpotensi membahayakan MySQL


Nah daripada penasaran, langsung saja masuk ke direktori /usr/local/src/ dan unduh source GreenSQL nya melalui perintah wget  http://sourceforge.net/code-snapshots/svn/g/gr/greensql/code/greensql-code-688-trunk.zip kemudian tunggu hingga proses download selesai, seperti pada gambar di bawah ini : 



Jika sudah selesai diunduh, kemudian lakukan extract file .zip menggunakan perintah unzip greensql-code-688-trunk.zip lalu tunggu hingga proses extract selesai, seperti pada gambar di bawah ini : 



Setelah berhasil diexctract, masuklah ke dalam direktori greensql-code-688-trunk/greensql-fw dengan menggunakan perintah cd greensql-code-688-trunk/greensql-fw. Nah untuk mengcompile source GreenSQL ini memerlukan beberapa paket, diantaranya : gcc-c++, flex, bison, rpm-build, libevent, mysql, pcre, postgresql-libs, libpcre, postgresql-devel, libevent-devel, mysql-devel. Untuk menginstall paket-paket tersebut gunakan-lah perintah yum install gcc-c++ flex bison rpm-build libevent mysql pcre postgresql-libs libpcre postgresql-devel libevent-devel mysql-devel, seperti pada gambar di bawah ini : 


Jika ada notifikasi y/n pilih saja y dan tunggu hingga proses instalasi paket selesai. Setelah itu lakukan proses compile ke file .rpm dengan menggunakan perintah ./build.sh. Kemudian proses compile ke .rpm akan otomatis berjalan, seperti pada gambar di bawah ini : 


Nah jika berhasil maka tidak muncul notifikasi error seperti pada gambar di atas :) Perhatikan pada gambar di atas terdapat notifikasi Wrote: /usr/src/redhat/RPMS/x86_64/greensql-fw-1.3.0-1.x86_64.rpm, nah File .rpm telah berhasil dibuat dan ditaruh pada path tersebut. Langsung saja eksekusi perintah rpm -ihv /usr/src/redhat/RPMS/x86_64/greensql-fw-1.3.0-1.x86_64.rpm dan tunggu hingga selesai.  Jika tidak ada error, maka akan memunculkan notifikasi bahwa GreenSQL telah diinstall di /etc/init.d/greensql-fw dan /etc/rc.d/init.d/greensql-fw, selain itu akan terdapat beberapa file di :
/usr/sbin/greensql-config 
/usr/sbin/greensql-create-db 
/usr/sbin/greensql-fw


Masih di dalam direktori /usr/local/src/greensql-code-688-trunk/greensql-fw sekarang masuklah ke dalam direktori scripts dengan menggunakan perintah cd scripts. Setelah masuk ke dalam direktori scripts, eksekusi perintah berikut : ./setup_user.sh atau bisa juga menggunakan perintah /usr/src/redhat/BUILD/greensql-fw-1.3.0/scripts/setup_user.sh. Jika berhasil maka akan muncul notifikasi : Done. Jika gagal, ketikkanlah perintah ini : groupadd greensql kemudian ketik lagi perintah ini useradd -M -g greensql -s /dev/null greensql.


Masih di dalam direktori /usr/local/src/greensql-code-688-trunk/greensql-fw/scripts, kita akan melakukan konfigurasi GreenSQL dengan mengeksekusi perintah ./greensql-create-db.sh atau bisa juga dengan perintah /usr/bin/greensql-create-db.sh atau dengan menggunakan perintah /usr/src/redhat/BUILD/greensql-fw-1.3.0/scripts/greensql-create-db.sh, silahkan saja dipilih satu dari 3 metode tersebut. Jika berhasil dieksekusi, perintah tersebut akan memunculkan notifikasi : 
mysql binary file located: /usr/bin/mysql 
mysqladmin binary file located: /usr/bin/mysqladmin 
postgresql binary file located: /usr/bin/psql 


Kemudian akan disuruh memasukkan konfigurasi database server, nah masukanlah dengan benar, jangan sampai salah. 
MySQL server address [127.0.0.1] : isikan dengan 127.0.0.1 
MySQL port number [3306] : isikan dengan 3306 
MySQL admin user [root] : isikan dengan root 
MySQL admin password [] : isikan dengan password root si mysql 
GreenSQL config db name [greendb] : isikan dengan greendb 
GreenSQL DB user name [green] : isikan dengan green 
GreenSQL DB user password [pwd] : isikan dengan password terserah anda
Jika ada notifikasi : Would you like to set up  the database and tables automatically [y/n] : isikan dengan y 


Jika tidak ada error, maka hasilnya akan seperti pada gambar di bawah ini :



Masih di dalam direktori /usr/local/src/greensql-code-688-trunk/greensql-fw/scripts, eksekusilah perintah ./setup_conf.sh atau bisa juga dengan perintah /usr/src/redhat/BUILD/greensql-fw-1.3.0/scripts/setup_conf.sh, silahkan saja dipilih satu dari 2 metode tersebut dan tunggu hingga prosesnya selesai. Masih di dalam direktori /usr/local/src/greensql-code-688-trunk/greensql-fw/scripts, eksekusilah perintah ./setup_log.sh atau bisa juga dengan perintah /usr/src/redhat/BUILD/greensql-fw-1.3.0/scripts/setup_log.sh, silahkan saja dipilih satu dari 2 metode tersebut dan tunggu hingga prosesnya selesai.


Belum selesai, sekarang kita copy-kan file interface web GreenSQL. Karena pada server milik penulis document rootnya berada di /home/kloxo/httpd/default maka penulis masuk ke direktori tersebut dengan perintah cd /home/kloxo/httpd/default/ dan setelah itu eksekusi perintah ln -s /usr/share/greensql-fw/ greensql. Maka nanti di dalam direktori /home/kloxo/httpd/default/ akan terdapat direktori greensql. Nah masuk ke direktori greensql tersebut dengan perintah cd greensql, lalu ketikkan perintah berikut chmod 0777 templates_c.


Jika server milik pembaca document rootnya berada di /var/www/html maka pembaca masuk ke direktori tersebut dengan perintah cd /var/www/html/ dan setelah itu eksekusi perintah ln -s /usr/share/greensql-fw/ greensql. Maka nanti di dalam direktori /var/www/html/ akan terdapat direktori greensql. Nah masuk ke direktori greensql tersebut dengan perintah cd greensql, lalu ketikkan perintah berikut chmod 0777 templates_c.


Jika server milik pembaca document rootnya berada di /home/nama_user/public_html/ maka pembaca masuk ke direktori tersebut dengan perintah cd /home/nama_user/public_html/ dan setelah itu eksekusi perintah ln -s /usr/share/greensql-fw/ greensql. Maka nanti di dalam direktori /home/nama_user/public_html/ akan terdapat direktori greensql. Nah masuk ke direktori greensql tersebut dengan perintah cd greensql, lalu ketikkan perintah berikut chmod 0777 templates_c.


Sekarang saatnya jalankan daemon GreenSQL dengan menggunakan perintah /etc/init.d/greensql-fw start dan /etc/init.d/greensql start. Jika daemon sudah menunjukkan [OK], maka kita tes dengan perintah netstat -tap | grep greensql, jika berhasil maka akan muncul seperti pada gambar di bawah :



Selain itu untuk memastikan jika GreenSQL sudah berjalan dengan baik, silahkan tes dengan perintah mysql -h 127.0.0.1 -P 3305 -u root -p dan jika disuruh memasukan password maka masukanlah dengan password root si mysqlnya. Jika berhasil maka akan seperti pada gambar di atas. Karena sebelumnya kita sudah menaruh file web milik GreenSQL, saatnya kita panggil di web http://domain_anda.com/greensql. Nah jika para pembaca tidak salah menaruh file web milik GreenSQL ke path document root yang benar, maka akan muncul deh seperti pada gambar di bawah ini : 



Jika disuruh memasukan username dan password, masukan username dengan admin dan passwordnya pwd (bisa diganti kapanpun). Saat pertama kali masuk ke interface web GreenSQL pasti akan kosong, tidak seperti pada gambar di atas. Gambar di atas adalah GreenSQL yang sudah dikonfigurasikan ke situs yang ada di server milik penulis. Nah jika para pembaca di servernya sudah terinstall joomla, drupal atau wordpress, silahkan ganti file php konfigurasi CMS yang dipakai.



Pada contoh di atas, penulis merubah file konfigurasi milik CMS Invision Power Board, penulis menambahkan port 3305 ke bagian host 127.0.0.1, dan dengan begitu jika ada yang melakukan aksi SQL Injection pada CMS Invision Power Board pada situs milik penulis, maka akan terblock dan tercatat di GreenSQL :) Sekian, selamat mencoba. 


Tips : Jika daemon GreenSQL gagal distart, coba-lah untuk melakukan konfigurasi ulang dengan perintah : /usr/sbin/greensql-config dan /usr/sbin/greensql-create-db

Categories: Tutorials, Tips & Tricks

Post a Comment

Oops!

Oops, you forgot something.

Oops!

The words you entered did not match the given text. Please try again.

Already a member? Sign In

0 Comments