NEW : How to Use Mod Security in httpd

Sekarang ni tengah hot hackers nak serang portal gov.my atas sebab boikot SKMM blok laman web mengcetak rompakkan hasil seni filem-filem rakyat malaysia. Ini adalah versi updated 2.0 untuk kaedah pelaksanaannya.

Jika inginkan Nota lengkap terkini, dapatkan di URL berikut :
Nota Lengkap Garis Panduan Operasi CERT Pahang

[Lokasi Fail Server Windows]
  • C:/xampp/apache/conf – Folder menyimpan konfigurasi apache untuk xampp
  • C:/xampp/apache/conf/extra – Folder menyimpan konfigurasi module untuk xampp
  • C:/wamp/bin/apache2.2.x/conf – Folder menyimpan konfigurasi apache untuk wamp
  • C:/wamp/bin/apache2.2.x/conf/extra – Folder menyimpan konfigurasi module untuk wamp
[Lokasi Fail Server Linux]
➔ /etc/httpd – Folder menyimpan konfigurasi httpd
➔ /etc/httpd/conf - Folder menyimpan konfigurasi httpd
➔ /etc/httpd/conf.d - Folder menyimpan konfigurasi selain httpd
➔ /var/log/httpd - Folder menyimpan log httpd

[WINDOWS - XAMPP & WAMP]

Kaedah untuk configure mod security pada server Windows menggunakan apache versi 2 ke atas :

1) Muat turun versi terkini mod_security untuk Ms Windows di URL
http://www.apachelounge.com/download/mods/mod_security-2.6.0-win32.zip

2) Cipta folder ‘/modules/mod_security2’ pada Apache dan salin fail-fail ‘pcre.dll’, ‘libxml2.dll’ dan ‘mod_security2.so’ ke folder tersebut.

3) Muat turun fail dari website berikut ‘http://sourceforge.net/projects/mod-
security/files/modsecurity-crs/0-CURRENT/’ dan download fail terkini dan ekstrak
fail berkenaan ke folder ‘/conf/modsecurity’ pada Apache.

4) Memasang aplikasi ‘Visual C++ 2008 Redistributable Package’ dengan muat turun dari website berikut 'http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29'

5) Edit fail '/conf/modsecurity/base_rules/modsecurity_crs_20_protocol_violations.conf' dengan tambah '#' pada line 90 dan line 91.

KONFIGURASI MOD_SECURITY

6) Edit fail ‘httpd.conf’ bagi memasang modul Mod_Security pada Apache, taipkan di
bahagian bawah sekali file :

# Memasang Mod_Security
LoadModule security2_module modules/mod_security2/mod_security2.so
LoadModule unique_id_module modules/mod_unique_id.so
# This is the ModSecurity Core Rules Set.
# Basic configuration options
 SecRuleEngine On
 SecRequestBodyAccess On
 SecResponseBodyAccess Off
 SecDefaultAction log,auditlog,deny,status:403,phase:2,t:lowercase,t:replaceNulls,t:compressWhitespace
 SecAuditEngine RelevantOnly
 SecAuditLogType Serial
 SecAuditLog logs/mod_security2.log


# Handling of file uploads
 # SecUploadDir /opt/apache-frontend/tmp/
 SecUploadKeepFiles Off
 # Debug log
 SecDebugLog logs/modsec_debug.log
 SecDebugLogLevel 0
 # Maximum request body size we will
 # accept for buffering
 SecRequestBodyLimit 131072
 # Store up to 128 KB in memory
 SecRequestBodyInMemoryLimit 131072
 # Buffer response bodies of up to
 # 512 KB in length
 SecResponseBodyLimit 524288
 ## General rules
 SecRule ARGS "c:/" t:normalisePathWin 
 SecRule ARGS "\.\./" "t:normalisePathWin,id:99999,severity:4,msg:'Drive Access'" 
 SecRule ARGS "d:/" t:normalisePathWin
 # End config
Include modsecurity.d/*.conf
Include modsecurity.d/base_rules/*.conf
Include modsecurity.d/optional_rules/*.conf
Include modsecurity.d/slr_rules/*.conf

MENGAKTIFKAN MOD_SECURITY

7) Restart Apache untuk mengaktifkan Mod_Security

8) Semak juga website anda agar berfungsi seeloknye. Cuba hack website tu dan lihat pada error log. Sekiranya mod security blok maka selamatlah website anda.

LINUX (CentOS, RHEL, Fedora)

Kaedah untuk configure mod security pada server Linux menggunakan apache versi 2 ke atas :

1) Login ke dalam server menggunakan SSH

2) Install mod security menggunakan kaedah berikut :
# yum install mod_security

3) Masuk ke folder httpd :
# cd /etc/httpd/

4) Cipta folder modsecurity.d (jika tiada lagi) :
# mkdir modsecurity.d

5) Muat turun fail dari website berikut ‘http://sourceforge.net/projects/mod-
security/files/modsecurity-crs/0-CURRENT/’ dengan mengugnakan kaedah berikut :
# wget http://sourceforge.net/projects/mod-security/files/modsecurity-crs/0-CURRENT/modsecurity-crs_2.2.0.tar.gz/download

* Cuba cari fail yang terkini di website tersebut

6) Ekstrak folder tersebut ke folder '/etc/httpd/modsecurity.d' :
# tar -C /etc/httpd/modsecurity.d -zxvf modsecurity-crs_2.2.0.tar.gz

KONFIGURASI MOD_SECURITY

7) Masuk ke folder /etc/httpd/conf.d :
# cd /etc/httpd/conf.d

8) Cipta fail 'mod_security.conf' (jika tiada) di dalam '/etc/httpd/conf.d/' :
# nano mod_security.conf

9) Sila gunakan contoh fail seperti berikut : Mod_Security.conf

MENGAKTIFKAN MOD_SECURITY

10)Edit dengan tambah '#' pada line 90 dan line 91.

11)Restart Apache untuk mengaktifkan Mod_Security
# /etc/init.d/httpd restart

12)Memastikan mod_security berfungsi
# tail -f /var/log/httpd/error_log

Sampel output :
[Sat May 09 23:18:31 2009] [notice] caught SIGTERM, shutting down
[Sat May 09 23:18:33 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sat May 09 23:18:34 2009] [notice] ModSecurity for Apache/2.5.9 (http://www.modsecurity.org/) configured.
[Sat May 09 23:18:34 2009] [notice] Original server signature: Apache/2.2.3 (CentOS)
[Sat May 09 23:18:34 2009] [notice] Digest: generating secret for digest authentication ...
[Sat May 09 23:18:34 2009] [notice] Digest: done
[Sat May 09 23:18:35 2009] [notice] Apache/2.2.0 (Fedora) configured -- resuming normal operations
13)Semak juga website anda agar berfungsi sebaiknya. Cuba hack website tu dan lihat pada error log seperti langkah 11. Sekiranya mod security blok maka selamatlah website anda.

AUTO UPDATE MOD SECURITY (OPTIONAL)

14)AUTO UPDATE mod_security rules dari OWASP [untuk LINUX Server sahaja, untuk windows kena cari perl installer untuk run perl file].

  A. Dapatkan senarai repository
  # ./rules-updater.pl -rhttp://www.modsecurity.org/autoupdate/repository/ -l

  B. Dapatkan versi terkini "modsecurity-crs" :
  # ./rules-updater.pl -rhttp://www.modsecurity.org/autoupdate/repository/ -prules -Smodsecurity-crs
  Fetching: modsecurity-crs/modsecurity-crs_2.1.0.zip ...
  # ls -R rules
  modsecurity-crs
  rules/modsecurity-crs:
  modsecurity-crs_2.1.0.zip    modsecurity-crs_2.1.0.zip.sig


TUNING RULES MOD SECURITY

15)Tambah line berikut dalam file '/etc/httpd/conf.d/mod_security.conf' :
(Tujuannya adalah untuk membenarkan mod security berfungsi dan log sebarang aktiviti merbahaya dikenalpasti daripada rules yang dibina tanpa halangan. Ini bagi tujuan mengenalpasti sebarang rules yang mengganggu operasi Web Server tersebut)

SecFilterDefaultAction log,pass 

SEMOGA BERJAYA!!!

~ Be a Creator Not a User ~

Ulasan