Difference between revisions of "ModSecurity: Instalasi ModSecurity dan ModEvasive"

From OnnoWiki
Jump to navigation Jump to search
(New page: How to install apache2 mod_security and mod_evasive on Ubuntu 12.04 LTS server Submitted by The Fan Club on Sun, 2012-04-29 23:33 Last Update : August 2013 This guide is based on various...)
 
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
How to install apache2 mod_security and mod_evasive on Ubuntu 12.04 LTS server
+
* Instalasi dan konfigurasi modul ModSecurity dan mod_evasive Apache2 di Ubuntu server.
Submitted by The Fan Club on Sun, 2012-04-29 23:33
+
* 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.
  
Last Update : August 2013
 
  
This guide is based on various community forum posts, and hours of frustration.
+
==Kebutuhan==
  
This guide is intended as a relatively easy step by step guide to:
+
* Instalasi Ubuntu LTS server, or yang terbaru di mesin anda.
 +
* Instalasi Apache2 webserver, di setup dan di konfigurasi:
  
    Install and configure Apache2 ModSecurity and mod_evasive modules on Ubuntu 12.04 LTS server.
+
sudo apt-get install apache2 php5 php5-xmlrpc php5-mysql php5-gd php5-cli \
    Things have become much easier than before installing both these two excellent security modules for Apache2 in Ubuntu 12.04 LTS, as both modules are available in the standard Ubuntu 12.04 repositories.
+
  php5-curl mysql-client mysql-server
    This is only a starting point for getting mod_security and mod_evasive working. Refer to both projects documentation for the various configuration option available and configure your security settings as required.
 
  
Requirements:
+
* Instalasi dependensi yang dibutuhkan untuk modsecurity
  
    Ubuntu 12.04 LTS server, or later installed on your machine.
+
sudo apt-get install libxml2 libxml2-dev libxml2-utils \
    Apache2 webserver setup and configured.
+
libaprutil1 libaprutil1-dev
  
1. Install ModSecurity on your server.
+
* Untuk mengguna 64bit, perlu menambahkan link berikut
  
    Install the dependencies. Open the Terminal Window and enter :
+
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
  
sudo apt-get install libxml2 libxml2-dev libxml2-utils
+
==Instalasi & Konfigurasi ModSecurity==
  
sudo apt-get install libaprutil1 libaprutil1-dev
+
Instalasi
  
    64bit users please note - Because of this bug you need to create a symbolic link to libxml2.so.2 or the installation will report the file missing and fail.
+
sudo apt-get install libapache2-mod-security2
  
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/libxml2.so.2
+
Konfigurasi rules / aturan di ModSecurity
  
    Now install ModSecurity
+
* Aktifkan aturan / rules default agar bisa beroperasi. Konfigurasi apa yang kita butuhkan.
 +
* Copy konfigurasi rekomended
  
sudo apt-get install libapache-mod-security
+
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
  
2. Configure ModSecurity rules.
+
* 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:
  
    Activate the recommended default rules to get things going. Configure as needed. For complete information refer to the ModSecurity Reference Manual - click here.
+
sudo vi /etc/modsecurity/modsecurity.conf
  
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
+
* Aktifkan aturan / rule dengan mengedit SecRuleEngine dari DetectionOnly menjadi On.
  
    The default folder for ModSecurity rules is /etc/modsecurity/ . All .conf files will be included and need to be configured as required.
+
SecRuleEngine On
    We need to activate all the base rules and make sure they also get loaded.
 
    You might want to edit the SecRequestBodyLimit option in the modsecurity.conf file.
 
    SecRequestBodyLimit limits the page request size and limits file uploads to 128 KB by default. Change this to the size of files you would accept uploaded to the server.
 
    This settings is very important as it limits the size of all files that can be uploaded to the server. For CMS sites using Drupal or Wordpress this setting is the source of much pain.
 
    Open the Terminal Window and enter :
 
  
sudo vi /etc/modsecurity/modsecurity.conf
+
* Edit opsi berikut untuk menaikan request limit ke 16Mbyte dan save file:
  
    First activate the rules by editing the SecRuleEngine option and set to On.
+
SecRequestBodyLimit 16384000
 +
SecRequestBodyInMemoryLimit 16384000
  
SecRuleEngine On
+
atau biarkan sesuai dengan default
  
    Edit the following to option to increase the request limit to 16 MB and save the file :
+
SecRequestBodyLimit 13107200
 +
SecRequestBodyNoFilesLimit 131072
  
SecRequestBodyLimit 16384000
+
==Download dan Install OWASP Core Rule Set yang terakhir==
SecRequestBodyInMemoryLimit 16384000
 
  
3. Download and install the latest OWASP Core Rule Set.
+
* Kita perlu men-download dan meng-instalasi OWASP ModSecurity Core Rule Set terbaru dari web https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
 +
* Kita perlu mengaktifkan file konfigurasi CRS default
  
    We need to download and install the latest OWASP ModSecurity Core Rule Set from the project website. Click here for more information.
+
modsecurity_crs_10_setup.conf.example
    We will also activate the default CRS config file modsecurity_crs_10_setup.conf.example
 
    If you prefer not to use the latest rules, replace master below with the a specific version you would like to use e.g :  v2.2.5 
 
    Open the Terminal Window and enter :
 
  
cd /tmp
+
* Buka terminal dan lakukan:
  
sudo wget -O SpiderLabs-owasp-modsecurity-crs.tar.gz https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
+
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
  
sudo tar -zxvf SpiderLabs-owasp-modsecurity-crs.tar.gz
+
* Kita perlu membuat link simbolik untuk mengaktifkan semua base rule. Buka terminal dan lakukan:
  
sudo cp -R SpiderLabs-owasp-modsecurity-crs-*/* /etc/modsecurity/
+
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
  
sudo rm SpiderLabs-owasp-modsecurity-crs.tar.gz
+
* Tambahkan rule ke Apache2. Buka terminal dan lakukan:
  
sudo rm -R SpiderLabs-owasp-modsecurity-crs-*
+
sudo vi /etc/apache2/mods-avaolable/security2.conf
 +
sudo vi /etc/apache2/mods-enabled/security2.conf
  
sudo mv /etc/modsecurity/modsecurity_crs_10_setup.conf.example /etc/modsecurity/modsecurity_crs_10_setup.conf
+
tambahkan di akhir ke dua file tersebut
  
    Now we create symbolic links to all activated base rules. Open a terminal window and enter :
+
Include "/etc/modsecurity/activated_rules/*.conf"
  
cd /etc/modsecurity/base_rules
+
* Cek apakah ModSecurity sudah enabled. Sebelum me-restart Apache2 cek apakah modules sudah diload dengan baik. Buka terminal dan lakukan:
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
 
  
    Now add these rules to Apache2. Open a terminal window and enter:
+
sudo a2enmod headers
 +
sudo a2enmod security2
  
sudo vi /etc/apache2/mods-available/mod-security.conf
+
Akan keluar
  
    Add the following to towards the end of the file with other includes and save the file :
+
  Considering dependency unique_id for security2:
 +
Module unique_id already enabled
 +
Module security2 already enabled
  
Include "/etc/modsecurity/activated_rules/*.conf"
+
Restart Apache2 webserver
  
4. Check if ModSecurity is enabled and restart Apache.
+
sudo /etc/init.d/apache2 restart
  
    Before restarting Apache2 check if the modules has been loaded.
+
atau
    Open the Terminal Window and enter :
 
  
sudo a2enmod headers
+
service apache2 restart
sudo a2enmod mod-security
 
  
    Then restart the Apache2 webserver :
+
==Instalasi ModEvasive==
  
sudo /etc/init.d apache2 restart
+
Instalasi
  
    OR
+
sudo apt-get install libapache2-mod-evasive
  
service apache2 restart
+
Buat directory untuk log file dari mod_evasive.
  
5. Install ModEvasive.
+
sudo mkdir /var/log/mod_evasive
 +
sudo chown www-data:www-data /var/log/mod_evasive/
  
    Open the Terminal Window and enter :
+
Buat file mod-evasive.conf dan konfigurasi ModEvasive.
  
sudo apt-get install libapache2-mod-evasive
+
sudo vi /etc/apache2/mods-available/evasive.conf
  
6. Create log file directory for mod_evasive.
+
Tambahkan kalimat berikut, dan ubah nilai email maupun nilai lainnnya yang perlu diubah:
  
     Open the Terminal Window and enter :
+
<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>
  
sudo mkdir /var/log/mod_evasive
 
  
    Change the log folder permissions :
+
* Jika ada kesulitan e-mail yang tidak jalan, kita dapat mencoba membuat symlink berikut
  
sudo chown www-data:www-data /var/log/mod_evasive/
+
sudo ln -s /etc/alternatives/mail /bin/mail/
  
7. Create mod-evasive.conf file and configure ModEvasive.
+
* Cek ModEvasive apakah sudah enable
  
    Open the Terminal Window and enter :
+
  sudo a2enmod evasive
 
 
sudo vi /etc/apache2/mods-available/mod-evasive.conf
 
 
 
    and add the following, changing the email value, and other options below as required :
 
 
 
<ifmodule mod_evasive20.c>
 
  DOSHashTableSize 3097
 
  DOSPageCount  2
 
  DOSSiteCount  50
 
  DOSPageInterval 1
 
  DOSSiteInterval  1
 
  DOSBlockingPeriod  10
 
  DOSLogDir  /var/log/mod_evasive
 
  DOSEmailNotify EMAIL@DOMAIN.com
 
  DOSWhitelist  127.0.0.1
 
</ifmodule>
 
 
 
8. Fix mod-evasive email bug
 
 
 
    Because of this bug mod-evasive does not send emails on Ubuntu 12.04.
 
    A temporary workaround is to create symlink to the mail program.
 
    Open the Terminal Window and enter :
 
 
 
sudo ln -s /etc/alternatives/mail /bin/mail/
 
 
 
9. Check if ModEvasive is enabled and restart Apache.
 
 
 
    Before restarting Apache2 check if the module has been loaded.
 
    Open the Terminal Window and enter :
 
 
 
sudo a2enmod mod-evasive
 
 
 
    Then restart the Apache2 webserver :
 
 
 
sudo /etc/init.d/apache2 restart
 
 
 
    OR
 
 
 
service apache2 restart
 
  
 +
* Restart Apache2 webserver
  
 +
sudo /etc/init.d/apache2 restart
  
 +
atau
  
 +
service apache2 restart
  
 
==Referensi==
 
==Referensi==
  
 
* https://www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server
 
* https://www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server

Latest revision as of 14:14, 30 March 2015

  • 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