Howto : Setup Apache dengan Modsecurity di Ubuntu
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-modsecurity2. Gunakan file konfigurasi modsecurity cukup dengan mengganti nama file yang sudah disediakan :
#> mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf3. Reload apache
#> service apache2 reloadSilahkan 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.confJika anda ingin menerapkan rules lebih ketat dengan memungkinkan untuk melakukan blok, maka ubah setting :
SecRuleEngine DetectionOnlyMenjadi :
SecRuleEngine OnSatu 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 OnMenjadi :
SecResponseBodyAccess OffKonfigurasi selanjutnya adalah menentukan batas data yang dapat diposting. Konfigurasi tersebut dilakukan pada :
SecRequestBodyLimit
SecRequestBodyNoFilesLimitPada SecRequestBodyLimit menentukan batas maksimal data yang dapat diposting. Jika lebih besar dari data yang ditentukan maka, akan menampilkan error :
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 13107200yang berarti 12.5 MB.
Sementara untuk SecRequestBodyNoFilesLimit merupakan settingkan batas minimum data diposting.Defaultnya memiliki setting seperti :
SecRequestBodyNoFilesLimit 131072yang 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 utildokumentasinya 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.gzUntuk 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.confLalu edit pada baris antara
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 reloadselesai
Bacaan terkait
How to find out the mysql root password
One thing that tripped me up on a new install of MySQL and wondering why I couldn't get the default password to work and why even the reset methods where not working...
Ventoy : Membuat USB Bootable Lebih Mudah dan Beda
Biasanya ketika kita ingin membuat USB bootable maka USB/drive yang akan kita gunakan perlu di format dan image yang digunakan perlu di extract ke dalam USB/drive te...
4MLinux : Distro Linux Ringan dengan Konsep 4M
4MLinux merupakan salah satu dari sekian distro linux ringan menggunakan desktop JWM. Dikembangkan berasal dari polandia dan saat ini versi major rilis nya sudah men...
Komentar (0)
Belum ada komentar. Jadilah yang pertama.
Tulis komentar
Komentar akan dimoderasi sebelum tampil.