Modsecurity merupakan Web Application Firewall (WAF) yang bekerja dengan Apache, IIS, Nginx. Modsecurity mendukung penggunaan rule engine untuk menerapkan tingkat keamanan yang sederhana hingga tingkat rumit. Modsecurity telah dilengkapi konfigurasi berupa Core Rules Set (CRS) yang memiliki rule keamanan seperti sql injection, cross site scripting, trojans, session hijacking dan lain sebagainya. Requirementnya, tentu anda harus sudah memiliki web server yang sudah berjalan.

Berikut cara instalasi dan setup modsecurity pada ubuntu :
1. Install Modsecurity

#> apt-get install libapache2-modsecurity

2. Gunakan file konfigurasi modsecurity cukup dengan mengganti nama file yang sudah disediakan :

#> mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

3. Reload apache

#> service apache2 reload

Silahkan cek di direktori log apache (/var/log/apache2/), maka seharusnya akan menampilkan file modsec_audit.log

Ok, untuk instalasi sudah selesai, selanjutnya melakukan konfigurasi implementasi modsecurity.

Konfigurasi ModSecurity

Secara default modsecurity tidak menjalankan rules satu pun, melainkan hanya menjalankan setting berupa DetectionOnly yang melakukan log request dan tidak melakukan blok pada apapun. Itu terdapat pada file :

/etc/modsecurity/modsecurity.conf

Jika anda ingin menerapkan rules lebih ketat dengan memungkinkan untuk melakukan blok, maka ubah setting :

SecRuleEngine DetectionOnly

Menjadi :

SecRuleEngine On

Satu lagi konfigurasi yang bisa diubah adalah SecResponseBodyAccess. Konfigurasi ini menentukan setiap respon yang didapatkan dibaca oleh Modsecurity. Hal ini sebenarnya hanya dibutuhkan ketika kita ingin mengetahui kebocoran informasi yang didapatkan. Namun jika tidak, maka memakan resource yang banyak dan file log yang besar. Oleh karena itu, baiknya untuk dimatikan saja.

SecResponseBodyAccess On

Menjadi :

SecResponseBodyAccess Off

Konfigurasi selanjutnya adalah menentukan batas data yang dapat diposting. Konfigurasi tersebut dilakukan pada :

SecRequestBodyLimit
SecRequestBodyNoFilesLimit

Pada SecRequestBodyLimit menentukan batas maksimal data yang dapat diposting. Jika lebih besar dari data yang ditentukan maka, akan menampilkan error :

Tulisan Lain   5 Web Pembanding Google vs Bing

413 Request Entity Too Large

jika web aplikasi anda tidak memiliki file yang diupload, tentu settingan ini bisa diubah menjadi kecil. Defaultnya memiliki setting seperti :

SecRequestBodyLimit 13107200

yang berarti 12.5 MB.

Sementara untuk SecRequestBodyNoFilesLimit merupakan settingkan batas minimum data diposting.Defaultnya memiliki setting seperti :

SecRequestBodyNoFilesLimit 131072

yang berarti 128 KB.

Setting Rules

Untuk memudahkan dan meningkatkan pengamanan sistem, kita akan menggunakan rules yang sudah tersedia yang disebut Core Rule Set (CRS)

root@alfach:~# ls -l /usr/share/modsecurity-crs/
total 40
drwxr-xr-x 2 root root  4096 Oct 20 09:45 activated_rules
drwxr-xr-x 2 root root  4096 Oct 20 09:45 base_rules
drwxr-xr-x 2 root root  4096 Oct 20 09:45 experimental_rules
drwxr-xr-x 2 root root  4096 Oct 20 09:45 lua
-rw-r--r-- 1 root root 13544 Jul  2  2012 modsecurity_crs_10_setup.conf
drwxr-xr-x 2 root root  4096 Oct 20 09:45 optional_rules
drwxr-xr-x 3 root root  4096 Oct 20 09:45 util

dokumentasinya terdapat di :

root@alfach:~# ls -l /usr/share/doc/modsecurity-crs/
total 40
-rw-r--r-- 1 root root   469 Jul  2  2012 changelog.Debian.gz
-rw-r--r-- 1 root root 12387 Jun 18  2012 changelog.gz
-rw-r--r-- 1 root root  1297 Jul  2  2012 copyright
drwxr-xr-x 3 root root  4096 Oct 20 09:45 examples
-rw-r--r-- 1 root root  1138 Mar 16  2012 README.Debian
-rw-r--r-- 1 root root  6495 Mar 16  2012 README.gz

Untuk menggunaka rules ini, kita harus membuat agar Apache “menyadar” keberadaan direktori ini dan meload nya. Untuk konfigurasinya dilakukan pada :

/etc/apache2/mods-enabled/mod-security.conf

Lalu edit pada baris antara berupa :

Include "/usr/share/modsecurity-crs/*.conf"
Include "/usr/share/modsecurity-crs/activated_rules/*.conf"

Setelah itu kita harus membuat symlink antara direktori activated_rules dengan file konfigurasi yang kita gunakan, misal :

cd /usr/share/modsecurity-crs/activated_rules/
ln -s /usr/share/modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf .

Selanjutnya kita cukup reload ulang apache

service apache2 reload

selesai

By alfach

Leave a Reply

Your email address will not be published. Required fields are marked *