Thursday, September 26, 2013

Memproteksi Apache dengan mod_security

Tags

1. Menggunakan Komputer Linux versi apa saja, di sini bisa digunakan BackTrack 5 R3. mod_security merupakan Web Application Firewall. Yang memproteksi Web server dari SQL injection dan banyak serangan lainnya..

Menjalankan Apache
2. Pada # prompt, masukkan perintah berikut diakhiri dengan Enter key:
/etc/init.d/apache2 restart
netstat -an | grep tcp
Akan terlihat local address 0.0.0.0:80 dalam State LISTEN, seperi berikut:

Menginstal mod_security
3. Ping ubuntu.com dan pastikan mendapat replies. Jika tidak ada, perbaiki dulu jaringan
sebelum melanjutkan proses berikutnya.
Pada jendela Terminal, jal;ankan perintah berikut:
apt-get install libapache-mod-security

Membuat File Konfigurasi modsecurity
4. Pada jendela Terminal, jalankan perintah berikut:
nano /etc/apache2/conf.d/modsecurity2.conf
Pada editor nano, masukkan tiga baris berikut:
<ifmodule mod_security2.c>
Include modsecurity-rules/*.conf
</ifmodule>
Simpan file Ctrl+X, Y, Enter.
Konfigurasi ini memungkinkan modsecurity untuk menggunakan semua rules untuk mecari
direktori modsecurity-rules.

Penambahan Rules
5. Modsecurity tidak akan berjalan tanpa rules, yang menggambarkan perintah untuk memblock.
Kita menggunakan basic rule set yang menghentikan serangan.
Pada jendela Terminal, jalankan perintah berikut:
cd /tmp
wget http://downloads.sourceforge.net/project/modsecurity/
modsecurity-apache/2.5.12/modsecurityapache_
2.5.12.tar.gz
tar -xzf modsecurity-apache_2.5.12.tar.gz
cd modsecurity-apache_2.5.12
mkdir /etc/apache2/modsecurity-rules
cp rules/*.conf /etc/apache2/modsecurity-rules/
cp rules/base_rules/* /etc/apache2/modsecurity-rules/

Merestart Apache
6. Pada jendela Terminal, jalankan perintah berikut:
/etc/init.d/apache2 restart

Testing modsecurity
7. Untuk menguji modsecurity, kita gunakan curl untuk mengirim HTTP requests ke Apache
server. Salah satu modsecurity default rules adalah mereject requests untuk User Agent
"Nessus"—Rule ini dimaksudkan untuk menangkal informasi ke penyerang yang
menggunakan scanners otomatis.
Pada jendela Terminal, jalankan perintah berikut:
curl -i http://localhost/
Requests untuk halaman Web default, yang akan loading secara normal, dengan status
HTTP/1.1 200 OK, seperti terlihat di bawah ini.


8. Pada jendela Terminal, jalankan perintah berikut:
curl -i http://localhost/ -A Nessus
Akan terlihat respon 403 Forbidden, seperti terlihat di bawah ini. Modsecurity telah memblok
request, karena User Agent mengidentifikasinya sebagai Nessus scan.


9. Pastikan terlihat pesan 403 Forbidden, seperti terlihat di gambar atas.
Memeriksa Rules
10. Untuk memeriksa rules modsecurity yang digunakan, pada jendela Terminal, jalankan perintah
berikut:
cd /etc/apache2/modsecurity-rules
 ls
Catatan perintah kedua LS huruf kecil, bukan 1s.
Akan terlihat beberapa rules, memblocking XSS, SQL Injection, dan banyak serangan lain,
seperti terlihat di bawah ini:

11. Pada jendela Terminal, jalankan perintah berikut:
cat modsecurity_35_scanners.data
File tersebut berisi daftar scanners yang bisa diblok. Nessus terdapat di dalamnya, seperti
berikut:

Memeriksa Akses Log
12. Untuk melihat log, pada jendela Terminal, jalankan perintah berikut:
cd /var/log/apache2
tail access.log
Akan terlihat entry yang berakhiran dengan "Nessus", seperti terlihat di bawah ini:


Konfigurasi Logging Lebih Detail
13. Pada jendela Terminal, jalankan perintah berikut:
mkdir /etc/apache2/logs
nano /etc/apache2/conf.d/modsecurity2.conf
Pada nano, tambahkan dua baris berikut sebelum baris </ifmodule>:
SecAuditEngine On
SecAuditLog logs/audit_log
File terlihat seperti gambar berikut:


Restart Apache
14. Pada # prompt, masukkan perintah berikut diakhiri dengan Enter key:
/etc/init.d/apache2 restart

Testing modsecurity
15. Pada jendela Terminal, jalankan perintah:
curl -i http://localhost/ -A Nessus
Akan terlihat respon 403 Forbidden, seperti sebelumnya.

Memeriksa Audit Log
16. Pada jendela Terminal, jalankan perintah berikut:
cd /etc/apache2/logs
tail audit_log
Akan terlihat baris berikut: "Message: matched phrase "nessus" at REQUEST

HEADERS" seperti terlihat di bawah ini:



SELESAI.. ^_^


Artikel Terkait


EmoticonEmoticon