Nginx:Install ModSecurity: Difference between revisions

No edit summary
Line 3: Line 3:
Konektor ModSecurity-nginx berbentuk modul Nginx yang menyediakan lapisan komunikasi antara Nginx dan ModSecurity.
Konektor ModSecurity-nginx berbentuk modul Nginx yang menyediakan lapisan komunikasi antara Nginx dan ModSecurity.


Instal semua dependensi yang diperlukan untuk proses build dan kompilasi dengan perintah berikut:
Instal semua dependensi yang diperlukan untuk proses build dan kompilasi dengan perintah berikut:<syntaxhighlight lang="shell">
 
sudo apt-get install bison build-essential ca-certificates curl dh-autoreconf doxygen flex gawk git iputils-ping libcurl4-gnutls-dev libexpat1-dev libgeoip-dev liblmdb-dev libpcre3-dev libpcre++-dev libssl-dev libtool libxml2 libxml2-dev libyajl-dev locales lua5.3-dev pkg-config wget zlib1g-dev zlibc libxslt-dev libgd-dev
sudo apt-get install bison build-essential ca-certificates curl dh-autoreconf doxygen flex gawk git iputils-ping libcurl4-gnutls-dev libexpat1-dev libgeoip-dev liblmdb-dev libpcre3-dev libpcre++-dev libssl-dev libtool libxml2 libxml2-dev libyajl-dev locales lua5.3-dev pkg-config wget zlib1g-dev zlibc libxslt-dev libgd-dev
</syntaxhighlight>
 


*Install GIT  
*Install GIT  
apt install git
<syntaxhighlight lang="shell">
 
apt install git
apt install gnutls-bin
</syntaxhighlight><syntaxhighlight lang="shell">
 
apt install gnutls-bin
</syntaxhighlight>
*Sebelum melakukan clone, pindah directory utama ke <code>/opt</code>
*Sebelum melakukan clone, pindah directory utama ke <code>/opt</code>
cd /opt
<syntaxhighlight lang="shell">
 
cd /opt
</syntaxhighlight>
*Clone ModSecurity dari repository Github
*Clone ModSecurity dari repository Github
sudo git clone <nowiki>https://github.com/SpiderLabs/ModSecurity</nowiki>
<syntaxhighlight lang="shell">
 
sudo git clone https://github.com/SpiderLabs/ModSecurity
</syntaxhighlight>
*Masuk ke directory ModSecurity
*Masuk ke directory ModSecurity
cd ModSecurity
<syntaxhighlight lang="shell">
 
cd ModSecurity
</syntaxhighlight>
*Jalankan perintah git berikut untuk menginisialisasi dan memperbarui submodul:
*Jalankan perintah git berikut untuk menginisialisasi dan memperbarui submodul:
sudo git submodule init
<syntaxhighlight lang="shell">
 
sudo git submodule init
sudo git submodule update
</syntaxhighlight><syntaxhighlight lang="shell">
 
sudo git submodule update
</syntaxhighlight>
*Jalankan script <code>build.sh</code>
*Jalankan script <code>build.sh</code>
sudo ./build.sh
<syntaxhighlight lang="shell">
 
sudo ./build.sh
</syntaxhighlight>
*Jalankan file <code>configure</code>, yang bertanggung jawab untuk mendapatkan semua dependensi untuk proses pembuatan:
*Jalankan file <code>configure</code>, yang bertanggung jawab untuk mendapatkan semua dependensi untuk proses pembuatan:
sudo ./configure
<syntaxhighlight lang="shell">
 
sudo ./configure
</syntaxhighlight>
*Jalankan perintah make untuk mem-''build'' ModSecurity (tunggu 10 s/d 15 menit)  
*Jalankan perintah make untuk mem-''build'' ModSecurity (tunggu 10 s/d 15 menit)  
sudo make
<syntaxhighlight lang="shell">
 
sudo make
</syntaxhighlight>
*Setelah proses build selesai, instal ModSecurity dengan menjalankan perintah berikut:
*Setelah proses build selesai, instal ModSecurity dengan menjalankan perintah berikut:
sudo make install
<syntaxhighlight lang="shell">
sudo make install
</syntaxhighlight>


==Download ModSecurity Connector==
==Download ModSecurity Connector==
*Pindah directory ke <code>/opt</code>
*Pindah directory ke <code>/opt</code>
cd /opt
<syntaxhighlight lang="shell">
 
cd /opt
</syntaxhighlight>
*Clone repository
*Clone repository
sudo git clone --depth 1 <nowiki>https://github.com/SpiderLabs/ModSecurity-nginx.git</nowiki>
<syntaxhighlight lang="shell">
sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
</syntaxhighlight>


==Build ModSecurity module untuk Nginx==
==Build ModSecurity module untuk Nginx==
*Periksa versi [[Nginx]]
*Periksa versi [[Nginx]]
nginx -v
<syntaxhighlight lang="shell">
 
nginx -v
</syntaxhighlight>
*'''Output'''
*'''Output'''
nginx version: nginx/1.18.0 (Ubuntu)
<syntaxhighlight lang="shell">
 
nginx version: nginx/1.18.0 (Ubuntu)
</syntaxhighlight>
*Download versi [[Nginx]] yang berjalan pada system ke directory <code>/opt</code>
*Download versi [[Nginx]] yang berjalan pada system ke directory <code>/opt</code>
cd /opt
<syntaxhighlight lang="shell">
 
cd /opt
sudo wget <nowiki>http://nginx.org/download/nginx-1.18.0.tar.gz</nowiki>
</syntaxhighlight><syntaxhighlight lang="shell">
 
sudo wget http://nginx.org/download/nginx-1.18.0.tar.gz
</syntaxhighlight>
*Extract the tarball:
*Extract the tarball:
sudo tar -xvzf nginx-1.18.0.tar.gz
<syntaxhighlight lang="shell">
 
sudo tar -xvzf nginx-1.18.0.tar.gz
</syntaxhighlight>
*Ganti directory ke <code>/nginx-1.18.0</code>
*Ganti directory ke <code>/nginx-1.18.0</code>
  cd nginx-1.18.0
<syntaxhighlight lang="shell">
 
cd nginx-1.18.0
</syntaxhighlight>
*Tampilkan argumen konfigurasi yang digunakan untuk versi Nginx Anda:
*Tampilkan argumen konfigurasi yang digunakan untuk versi Nginx Anda:
nginx -V
<syntaxhighlight lang="shell">
 
nginx -V
</syntaxhighlight>
*'''Output Sample'''
*'''Output Sample'''
  nginx version: nginx/1.18.0 (Ubuntu)
  nginx version: nginx/1.18.0 (Ubuntu)
Line 76: Line 94:
  sudo ./configure --add-dynamic-module=../ModSecurity-nginx <span style="color:#ff0000">paste disini mulai dari berwarna merah</span>
  sudo ./configure --add-dynamic-module=../ModSecurity-nginx <span style="color:#ff0000">paste disini mulai dari berwarna merah</span>


atau
atau<syntaxhighlight lang="shell">
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
 
</syntaxhighlight>
*Build modul dengan perintah berikut:
*Build modul dengan perintah berikut:
sudo make modules
<syntaxhighlight lang="shell">
 
sudo make modules
</syntaxhighlight>
*Buat direktori untuk modul Modsecurity di folder konfigurasi Nginx sistem Anda:
*Buat direktori untuk modul Modsecurity di folder konfigurasi Nginx sistem Anda:
sudo mkdir /etc/nginx/modules
<syntaxhighlight lang="shell">
 
sudo mkdir /etc/nginx/modules
</syntaxhighlight>
*Salin modul Modsecurity yang di compile ke dalam folder konfigurasi Nginx Anda:
*Salin modul Modsecurity yang di compile ke dalam folder konfigurasi Nginx Anda:
sudo cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules
<syntaxhighlight lang="shell">
sudo cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules
</syntaxhighlight>


==Memuat Modul ModSecurity di Nginx==
==Memuat Modul ModSecurity di Nginx==
*Buka konfigurasi [[Nginx]] pada directory <code>/etc/nginx/nginx.conf</code>  
*Buka konfigurasi [[Nginx]] pada directory <code>/etc/nginx/nginx.conf</code>  
vim /etc/nginx/nginx.conf
<syntaxhighlight lang="shell">
vim /etc/nginx/nginx.conf
</syntaxhighlight>
*Tambahkan code berikut
*Tambahkan code berikut
load_module /etc/nginx/modules/ngx_http_modsecurity_module.so;
<syntaxhighlight lang="nginx">
 
load_module /etc/nginx/modules/ngx_http_modsecurity_module.so;
</syntaxhighlight>
*'''Sample'''                           
*'''Sample'''                           
user www-data;
<syntaxhighlight lang="nginx">
worker_processes auto;
user www-data;
pid /run/nginx.pid;
worker_processes auto; pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
include /etc/nginx/modules-enabled/*.conf;
<span style="color:#ff0000">load_module /etc/nginx/modules/ngx_http_modsecurity_module.so;</span>
load_module /etc/nginx/modules/ngx_http_modsecurity_module.so;
</syntaxhighlight>


==Setting Up OWASP-CRS==
==Setting Up OWASP-CRS==