ModSecurity: Instalasi ModSecurity dan ModEvasive

From OnnoWiki
Jump to navigation Jump to search
  • Instalasi dan konfigurasi modul ModSecurity dan mod_evasive Apache2 di Ubuntu server.
  • Semua menjadi jauh lebih mudah daripada sebelumnya dalam menginstal kedua modul keamanan yang sangat baik ini untuk Apache2 di Ubuntu LTS, karena kedua modul tersedia dalam dalam repositori standar Ubuntu.
  • Ini hanya titik awal untuk mendapatkan mod_security dan mod_evasive agar bekerja. Silahkan mengacu pada dokumentasi kedua proyek untuk berbagai opsi konfigurasi yang tersedia dan mengkonfigurasi pengaturan keamanan anda sesuai kebutuhan.


Kebutuhan

  • Instalasi Ubuntu LTS server, or yang terbaru di mesin anda.
  • Instalasi Apache2 webserver, di setup dan di konfigurasi:
sudo apt-get install apache2 php5 php5-xmlrpc php5-mysql php5-gd php5-cli \
php5-curl mysql-client mysql-server
  • Instalasi dependensi yang dibutuhkan untuk modsecurity
sudo apt-get install libxml2 libxml2-dev libxml2-utils \
libaprutil1 libaprutil1-dev
  • Untuk mengguna 64bit, perlu menambahkan link berikut
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so /usr/lib/libxml2.so
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/libxml2.so.2
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1 /usr/lib/libxml2.so.2.9.1

Instalasi & Konfigurasi ModSecurity

Instalasi

sudo apt-get install libapache2-mod-security2

Konfigurasi rules / aturan di ModSecurity

  • Aktifkan aturan / rules default agar bisa beroperasi. Konfigurasi apa yang kita butuhkan.
  • Copy konfigurasi rekomended
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
  • Folder default rules ModSecurity adalah /etc/modsecurity/ . Semua file .conf yang perlu dikonfigurasi terdapat disitu.
  • Kita perlu mengaktifkan semua rule dasar dan meyakinkan bahwa ModSecurity dapat di load.
  • Kita perlu mengedit opsi SecRequestBodyLimit di file modsecurity.conf
  • SecRequestBodyLimit membatasi ukuran page yang di minta dan membatasi upload file menjadi default 128 KB. Ubah ini sesuai dengan kebutuhan / ijin yang kita berikan untuk meng-upload file ke server.
  • Konfigurasi ini sangat penting karena akan membatasi besarnya file yang dapat di upload ke server. Untuk situs CMS yang menggunakan Drupal atau Wordpress konfigurasi ini yang akan menjadi sumber pening di kepala.
  • Buka terminal dan edit:
sudo vi /etc/modsecurity/modsecurity.conf
  • Aktifkan aturan / rule dengan mengedit SecRuleEngine dari DetectionOnly menjadi On.
SecRuleEngine On
  • Edit opsi berikut untuk menaikan request limit ke 16Mbyte dan save file:
SecRequestBodyLimit 16384000
SecRequestBodyInMemoryLimit 16384000

atau biarkan sesuai dengan default

SecRequestBodyLimit 13107200
SecRequestBodyNoFilesLimit 131072

Download dan Install OWASP Core Rule Set yang terakhir

modsecurity_crs_10_setup.conf.example
  • Buka terminal dan lakukan:
cd /tmp
sudo wget -O SpiderLabs-owasp-modsecurity-crs.tar.gz https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
sudo tar -zxvf SpiderLabs-owasp-modsecurity-crs.tar.gz
sudo cp -R SpiderLabs-owasp-modsecurity-crs-*/* /etc/modsecurity/
sudo rm SpiderLabs-owasp-modsecurity-crs.tar.gz
sudo rm -R SpiderLabs-owasp-modsecurity-crs-*
sudo mv /etc/modsecurity/modsecurity_crs_10_setup.conf.example /etc/modsecurity/modsecurity_crs_10_setup.conf
  • Kita perlu membuat link simbolik untuk mengaktifkan semua base rule. Buka terminal dan lakukan:
cd /etc/modsecurity/base_rules
for f in * ; do sudo ln -s /etc/modsecurity/base_rules/$f /etc/modsecurity/activated_rules/$f ; done
cd /etc/modsecurity/optional_rules
for f in * ; do sudo ln -s /etc/modsecurity/optional_rules/$f /etc/modsecurity/activated_rules/$f ; done 
  • Tambahkan rule ke Apache2. Buka terminal dan lakukan:
sudo vi /etc/apache2/mods-avaolable/security2.conf 
sudo vi /etc/apache2/mods-enabled/security2.conf 

tambahkan di akhir ke dua file tersebut

Include "/etc/modsecurity/activated_rules/*.conf"
  • Cek apakah ModSecurity sudah enabled. Sebelum me-restart Apache2 cek apakah modules sudah diload dengan baik. Buka terminal dan lakukan:
sudo a2enmod headers
sudo a2enmod security2

Akan keluar

Considering dependency unique_id for security2:
Module unique_id already enabled
Module security2 already enabled

Restart Apache2 webserver

sudo /etc/init.d/apache2 restart

atau

service apache2 restart

Instalasi ModEvasive

Instalasi

sudo apt-get install libapache2-mod-evasive

Buat directory untuk log file dari mod_evasive.

sudo mkdir /var/log/mod_evasive
sudo chown www-data:www-data /var/log/mod_evasive/

Buat file mod-evasive.conf dan konfigurasi ModEvasive.

sudo vi /etc/apache2/mods-available/evasive.conf

Tambahkan kalimat berikut, dan ubah nilai email maupun nilai lainnnya yang perlu diubah:

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10

    DOSEmailNotify      username@domain.com
    # DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
    DOSLogDir           "/var/log/mod_evasive"
    DOSWhitelist   127.0.0.1
</IfModule>


  • Jika ada kesulitan e-mail yang tidak jalan, kita dapat mencoba membuat symlink berikut
sudo ln -s /etc/alternatives/mail /bin/mail/
  • Cek ModEvasive apakah sudah enable
sudo a2enmod evasive
  • Restart Apache2 webserver
sudo /etc/init.d/apache2 restart

atau

service apache2 restart

Referensi