Pages

Tuesday, April 19, 2011

[ mod_sec buat apache server ]

Pencegahan web defacekhususnya server apache bisa dicegah dengan menggunakan mod_sec, dengan cara sbb :

1. dapetin dulu source code mod_security
2. abis itu tar xzvf mod_security-x.x.x.tar.gz
3. masuk ke direktori mod_security-x.x.x/apache2 (gw pake apache 2.x)
4. untuk menambahkan modul mod_sec ke apache, jalankan perintah berikut :
apxs -cia mod_security.c (diasumsikan apxs sudah ada di /bin)
5. apachectl stop
6. apachectl start
mod_sec sudah terinstall sebagai modul apache….. gamppang kan? nah sekarang, kita tinggal menamabahkan konfigurasi mod_sec tersebut ke dalam file httpd.conf. caranya adalah sebagai berikut :



1. buka file httpd.conf
2. tambahkan baris berikut ini.
SecFilterEngine On
SecServerSignature “Microsoft-IIS/6.0″
ServerTokens Full
SecFilterCheckURLEncoding On
SecFilterCheckUnicodeEncoding Off
SecFilterForceByteRange 0 255
SecAuditEngine RelevantOnly
SecAuditLog /var/log/httpd/audit_log
SecFilterDebugLog /var/log/httpd/debug_log
SecFilterDebugLevel 1
SecFilterScanPOST On
SecFilterDefaultAction “deny,log,status:500″
SecFilter “ SecFilter forum/ SecFilter /bin/sh SecFilter /etc/passwd SecFIlter “\.\./” SecFilter “” SecFilter “<[[:space:]]*script” SecFilter “delete[[:space:]]+from” SecFilter “insert[[:space:]]+into” SecFilter “select[[:space:]]+from” SecFilter “\.(conf|cf|ini|htpasswd|htaccess|htgroup|inc|history|bash|history|exe|pwd|cnf|dll)” SecFilterSelective ARG_b2inc “!^$” SecFilterSelective ARG_authorised “!^$” SecFilterSelective COOKIE_authorised “!^$” SecFilterSelective OUTPUT “Volume Serial Number” SecFilterSelective OUTPUT “Command completed” SecFilterSelective OUTPUT “Bad command or filename” SecFilterSelective OUTPUT “file(s) copied” SecFilterSelective OUTPUT “.*uid\=\(”
Penjelasan baris-per-baris :
SecFilterEngine On = enable filtering engine. jika Off maka mod_sec tidak aktif
SecServerSignature “Microsoft-IIS/6.0″ = mengubah default server signature menjadi Microsoft-IIS/6.0, bukan apache-x.x. untuk membuktikannya, coba nmap server kmu
ServerTokens Full =
SecFilterCheckURLEncoding On = Special character harus di encode sebelum ditransimisikan di URL. dengan SecFilterCheckURLEncoding On, kita dapat mengecek apakah encoding tersebut valid.
SecFilterCheckUnicodeEncoding Off = mendisable validasi unicode/decode.
SecFilterForceByteRange 0 255 = memaksa request hanya terdiri dari byte tertentu ddari rentan waktu byte tertentu, disini didefinisikan byte yang diterima adalah dari 0 hingga 255.
SecAuditEngine RelevantOnly = meng-enable-kan mod_sec logging.RelevantOnly berarti hanya akan me-log request request yang relevant. relevan request adalah request request yang disebabkan karena adanya filter filter dari mod_sec
SecAuditLog /var/log/httpd/audit_log = kemana mod_sec akan dilog?
SecFilterDebugLog /var/log/httpd/debug_log = path untuk mod_sec debug.
SecFilterDebugLevel 1 = mode debug log (default value 0-9)
SecFilterScanPOST On = jika di On, maka modsec tidak hanya akan memeriksa GET variable, tetapi juga POST variable (bisa berasal dari inputan (form) di web).
SecFilterDefaultAction “deny,log,status:500″ = action default dari mod_sec. jika ada suatu filter yang terpenuhi, maka mod_sec akan melakukan action deny, kemudian mod_sec akan me-log request tersebut dan menampilkan status kode html 500 (error request). agar apache dapat menampilkan kode 500, kamu dapat mengubah file httpd.conf, trus cari yg ada tulisan 500, ubah aja sesuai dengan nama filenya
tiba saat yg paling mengasyikkan:
SecFilter “
SecFilter forum/ = mod_sec akan mencegah request masuk ke direktori forum/
SecFilter /bin/sh = mod_sec akan mencegah pengeksekusian perintah /bin/sh
SecFilter /etc/passwd = mod_sec akan mencegah pengaksesan /etc/passwd
SecFIlter “\.\./” = mencegah PATH transversal attack
SecFilter “” = jika ada suatu inputan yang diawali dengan karakter ”, maka akan di reject request tersebut.
SecFilter “<[[:space:]]*script” = hampir sama dengan yang diatas, jika ada karakter yang diawali dengan ‘<’ dan ada terdapat kata script, maka akan di reject request tsb
SecFilter “delete[[:space:]]+from” = mencegah sql Injection, yaitu dimana di dalam suatu url jika ada tulisan delete xxxxx from, maka request ditolak, atau di reject.
SecFilter “insert[[:space:]]+into” = sama dengan yg diatas……….
SecFilter “select[[:space:]]+from” = idem juga,
SecFilter “\.(conf|cf|ini|htpasswd|htaccess|htgroup|inc|history|bash|history|exe|pwd|cnf|dll)” = mencegah pengaksesan file yg berekstensi conf,cf,ini,htpasswd,htaccess,htgroup,inc,history,bash,history,exe,pwd,cnf,dll

smoga bisa membantu rekan2 semua ...

No comments: