Nginx:Install ModSecurity: Difference between revisions
No edit summary |
No edit summary |
||
| (15 intermediate revisions by the same user not shown) | |||
| 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 | |||
</syntaxhighlight>di Debian 11<ref>[https://www.tecmint.com/install-modsecurity-nginx-debian-ubuntu/ tecmint.com] - How to Install ModSecurity for Nginx on Debian/Ubuntu</ref><syntaxhighlight lang="bash"> | |||
sudo apt install make gcc build-essential autoconf automake libtool libfuzzy-dev ssdeep gettext pkg-config libcurl4-openssl-dev liblua5.3-dev libpcre3 libpcre3-dev libxml2 libxml2-dev libyajl-dev doxygen libcurl4 libgeoip-dev libssl-dev zlib1g-dev libxslt-dev liblmdb-dev libpcre++-dev libgd-dev | |||
</syntaxhighlight> | |||
*Install GIT | *Install GIT | ||
<syntaxhighlight lang="shell"> | |||
apt install git | |||
</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> | ||
<syntaxhighlight lang="shell"> | |||
cd /opt | |||
</syntaxhighlight> | |||
*Clone ModSecurity dari repository Github | *Clone ModSecurity dari repository Github | ||
<syntaxhighlight lang="shell"> | |||
sudo git clone https://github.com/SpiderLabs/ModSecurity | |||
</syntaxhighlight> | |||
*Masuk ke directory ModSecurity | *Masuk ke directory 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: | ||
<syntaxhighlight lang="shell"> | |||
sudo git submodule init | |||
</syntaxhighlight><syntaxhighlight lang="shell"> | |||
sudo git submodule update | |||
</syntaxhighlight> | |||
*Jalankan script <code>build.sh</code> | *Jalankan script <code>build.sh</code> | ||
<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: | ||
<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) | ||
<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: | ||
<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> | ||
<syntaxhighlight lang="shell"> | |||
cd /opt | |||
</syntaxhighlight> | |||
*Clone repository | *Clone repository | ||
<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]] | ||
<syntaxhighlight lang="shell"> | |||
nginx -v | |||
</syntaxhighlight> | |||
*'''Output''' | *'''Output''' | ||
<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> | ||
<syntaxhighlight lang="shell"> | |||
cd /opt | |||
</syntaxhighlight><syntaxhighlight lang="shell"> | |||
sudo wget http://nginx.org/download/nginx-1.18.0.tar.gz | |||
</syntaxhighlight> | |||
*Extract the tarball: | *Extract the tarball: | ||
<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> | ||
<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: | ||
<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 74: | Line 93: | ||
*Untuk mengkompilasi modul Modsecurity, salin semua argumen berikut argumen konfigurasikan: dari output Anda dari perintah di atas dan tempel di tempat di perintah berikut: | *Untuk mengkompilasi modul Modsecurity, salin semua argumen berikut argumen konfigurasikan: dari output Anda dari perintah di atas dan tempel di tempat di perintah berikut: | ||
sudo ./configure --add-dynamic-module=../ModSecurity-nginx | sudo ./configure --add-dynamic-module=../ModSecurity-nginx <span style="color:#ff0000">paste disini mulai dari berwarna merah</span> | ||
atau<syntaxhighlight lang="shell"> | |||
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx | |||
</syntaxhighlight> | |||
*Build modul dengan perintah berikut: | *Build modul dengan perintah berikut: | ||
<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: | ||
<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: | ||
<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> | ||
<syntaxhighlight lang="shell"> | |||
vim /etc/nginx/nginx.conf | |||
</syntaxhighlight> | |||
*Tambahkan code berikut | *Tambahkan code berikut | ||
<syntaxhighlight lang="nginx"> | |||
load_module /etc/nginx/modules/ngx_http_modsecurity_module.so; | |||
</syntaxhighlight> | |||
*'''Sample''' | *'''Sample''' | ||
<syntaxhighlight lang="nginx" line="1"> | |||
user www-data; | |||
worker_processes auto; pid /run/nginx.pid; | |||
include /etc/nginx/modules-enabled/*.conf; | |||
load_module /etc/nginx/modules/ngx_http_modsecurity_module.so; | |||
</syntaxhighlight> | |||
==Setting Up OWASP-CRS== | ==Setting Up OWASP-CRS== | ||
| Line 102: | Line 135: | ||
*Pertama, hapus kumpulan aturan saat ini bawaan sebelumnya dengan ModSecurity, menggunakan perintah berikut: | *Pertama, hapus kumpulan aturan saat ini bawaan sebelumnya dengan ModSecurity, menggunakan perintah berikut: | ||
<syntaxhighlight lang="shell"> | |||
sudo rm -rf /usr/share/modsecurity-crs | |||
</syntaxhighlight> | |||
*Clone repository ke directory <code>/usr/local/modsecurity-crs</code> | *Clone repository ke directory <code>/usr/local/modsecurity-crs</code> | ||
<syntaxhighlight lang="shell"> | |||
sudo git clone https://github.com/coreruleset/coreruleset /usr/local/modsecurity-crs | |||
</syntaxhighlight> | |||
*Rename the <code>crs-setup.conf.example</code> ke <code>crs-setup.conf</code>: | *Rename the <code>crs-setup.conf.example</code> ke <code>crs-setup.conf</code>: | ||
<syntaxhighlight lang="shell"> | |||
sudo mv /usr/local/modsecurity-crs/crs-setup.conf.example /usr/local/modsecurity-crs/crs-setup.conf | |||
</syntaxhighlight> | |||
*Ganti nama file aturan pengecualian permintaan default: | *Ganti nama file aturan pengecualian permintaan default: | ||
<syntaxhighlight lang="shell"> | |||
sudo mv /usr/local/modsecurity-crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example /usr/local/modsecurity-crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf | |||
</syntaxhighlight> | |||
Sekarang harus menyiapkan OWASP-CRS dan siap digunakan dalam konfigurasi [[Nginx]]. | Sekarang harus menyiapkan OWASP-CRS dan siap digunakan dalam konfigurasi [[Nginx]]. | ||
| Line 117: | Line 161: | ||
==Konfigurasi ModSecurity== | ==Konfigurasi ModSecurity== | ||
*Mulailah dengan membuat direktori ModSecurity di direktori <code>/etc/nginx/</code>: | *Mulailah dengan membuat direktori ModSecurity di direktori <code>/etc/nginx/</code>: | ||
<syntaxhighlight lang="shell"> | |||
sudo mkdir -p /etc/nginx/modsec | |||
</syntaxhighlight> | |||
*Salin file pemetaan unicode dan file konfigurasi ModSecurity dari repository GitHub ModSecurity cloning kalian: | *Salin file pemetaan unicode dan file konfigurasi ModSecurity dari repository GitHub ModSecurity cloning kalian: | ||
<syntaxhighlight lang="shell"> | |||
sudo cp /opt/ModSecurity/unicode.mapping /etc/nginx/modsec | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="shell"> | |||
sudo cp /opt/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf | |||
</syntaxhighlight> | |||
*Hapus ekstensi <code>.recommended</code> dari nama file konfigurasi ModSecurity dengan perintah berikut: | *Hapus ekstensi <code>.recommended</code> dari nama file konfigurasi ModSecurity dengan perintah berikut: | ||
<syntaxhighlight lang="shell"> | |||
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf | |||
</syntaxhighlight> | |||
*Dengan editor teks seperti vim atau nano, buka <code>/etc/modsecurity/modsecurity.conf</code> dan ubah nilai untuk <code>SecRuleEngine</code> menjadi <code>On</code>: | *Dengan editor teks seperti vim atau nano, buka <code>/etc/modsecurity/modsecurity.conf</code> dan ubah nilai untuk <code>SecRuleEngine</code> menjadi <code>On</code>: | ||
<syntaxhighlight lang="shell" line="1"> | |||
# -- Rule engine initialization ---------------------------------------------- | |||
# Enable ModSecurity, attaching it to every transaction. Use detection | |||
# only to start with, because that minimises the chances of post-installation | |||
# disruption. | |||
# | |||
SecRuleEngine On | |||
</syntaxhighlight> | |||
*Buat file konfigurasi baru bernama <code>main.conf</code> di direktori <code>/etc/nginx/modsec</code>: | *Buat file konfigurasi baru bernama <code>main.conf</code> di direktori <code>/etc/nginx/modsec</code>: | ||
<syntaxhighlight lang="shell"> | |||
vim /etc/nginx/modsec/main.conf | |||
</syntaxhighlight> | |||
*Copy code berikut | *Copy code berikut | ||
<syntaxhighlight lang="shell" line="1"> | |||
Include /etc/nginx/modsec/modsecurity.conf | |||
Include /usr/local/modsecurity-crs/crs-setup.conf | |||
Include /usr/local/modsecurity-crs/rules/*.conf | |||
</syntaxhighlight> | |||
==Konfigurasi pada Nginx== | ==Konfigurasi pada Nginx== | ||
*Buka konfigurasi Nginx kalian biasanya pada directory /etc/nginx/sites-enabled, dengan menambahkan | *Buka konfigurasi Nginx kalian biasanya pada directory /etc/nginx/sites-enabled, dengan menambahkan | ||
<syntaxhighlight lang="shell"> | |||
vim /etc/nginx/sites-enabled/default.conf | |||
</syntaxhighlight> | |||
atau | atau | ||
<syntaxhighlight lang="shell"> | |||
vim /etc/nginx/conf.d/default.conf | |||
</syntaxhighlight> | |||
*Lalu tambahkan code berikut | *Lalu tambahkan code berikut | ||
<syntaxhighlight lang="nginx" line="1"> | |||
modsecurity on; | |||
modsecurity_rules_file /etc/nginx/modsec/main.conf; | |||
</syntaxhighlight> | |||
{{Note|Jika mengikuti tutorial dari awal, konfigurasi default.conf berada di dorectory /etc/nginx/conf.d}} | {{Note|Jika mengikuti tutorial dari awal, konfigurasi default.conf berada di dorectory /etc/nginx/conf.d}} | ||
| Line 158: | Line 232: | ||
*'''Sample''' | *'''Sample''' | ||
<syntaxhighlight lang="nginx" line="1"> | |||
server { | |||
listen 80; | |||
listen [::]:80; | |||
server_name _; | |||
root /usr/share/nginx/html/; | |||
index index.php index.html index.htm index.nginx-debian.html; | |||
modsecurity on; | |||
modsecurity_rules_file /etc/nginx/modsec/main.conf; | |||
</syntaxhighlight> | |||
==Source== | ==Source== | ||
<references /> | |||
*[https://www.linode.com/docs/guides/securing-nginx-with-modsecurity/ linode.com] | *[https://www.linode.com/docs/guides/securing-nginx-with-modsecurity/ linode.com] | ||
*[https://www.nginx.com/blog/compiling-and-installing-modsecurity-for-open-source-nginx/ nginx.com] | |||
*[https://github.com/SpiderLabs/ModSecurity-nginx/issues/117 github.com] | |||
[[Category:Security]] | [[Category:Security]] | ||
[[Category:Server]] | [[Category:Server]] | ||
[[Category:Nginx]] | |||
[[Category:ModSecurity]] | |||
Latest revision as of 05:15, 26 March 2023
Meskipun ModSecurity tidak secara resmi didukung sebagai modul untuk Nginx, ada solusi yang melibatkan konektor ModSecurity-nginx. Konektor ModSecurity-nginx adalah titik koneksi antara Nginx dan libmodsecurity (ModSecurity v3). Dengan kata lain, konektor ModSecurity-nginx menyediakan saluran komunikasi antara Nginx dan libmodsecurity.
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:
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
di Debian 11<ref>tecmint.com - How to Install ModSecurity for Nginx on Debian/Ubuntu</ref>
sudo apt install make gcc build-essential autoconf automake libtool libfuzzy-dev ssdeep gettext pkg-config libcurl4-openssl-dev liblua5.3-dev libpcre3 libpcre3-dev libxml2 libxml2-dev libyajl-dev doxygen libcurl4 libgeoip-dev libssl-dev zlib1g-dev libxslt-dev liblmdb-dev libpcre++-dev libgd-dev
- Install GIT
apt install git
apt install gnutls-bin
- Sebelum melakukan clone, pindah directory utama ke
/opt
cd /opt
- Clone ModSecurity dari repository Github
sudo git clone https://github.com/SpiderLabs/ModSecurity
- Masuk ke directory ModSecurity
cd ModSecurity
- Jalankan perintah git berikut untuk menginisialisasi dan memperbarui submodul:
sudo git submodule init
sudo git submodule update
- Jalankan script
build.sh
sudo ./build.sh
- Jalankan file
configure, yang bertanggung jawab untuk mendapatkan semua dependensi untuk proses pembuatan:
sudo ./configure
- Jalankan perintah make untuk mem-build ModSecurity (tunggu 10 s/d 15 menit)
sudo make
- Setelah proses build selesai, instal ModSecurity dengan menjalankan perintah berikut:
sudo make install
Download ModSecurity Connector
- Pindah directory ke
/opt
cd /opt
- Clone repository
sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
Build ModSecurity module untuk Nginx
- Periksa versi Nginx
nginx -v
- Output
nginx version: nginx/1.18.0 (Ubuntu)
- Download versi Nginx yang berjalan pada system ke directory
/opt
cd /opt
sudo wget http://nginx.org/download/nginx-1.18.0.tar.gz
- Extract the tarball:
sudo tar -xvzf nginx-1.18.0.tar.gz
- Ganti directory ke
/nginx-1.18.0
cd nginx-1.18.0
- Tampilkan argumen konfigurasi yang digunakan untuk versi Nginx Anda:
nginx -V
- Output Sample
nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 1.1.1f 31 Mar 2020
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-KTLRnK/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_flv_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_secure_link_module --with-http_sub_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-headers-more-filter --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-auth-pam --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-cache-purge --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-dav-ext --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-ndk --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-echo --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-fancyindex --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/nchan --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-lua --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/rtmp --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-uploadprogress --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-upstream-fair --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-subs-filter --add-dynamic-module=/build/nginx-KTLRnK/nginx-1.18.0/debian/modules/http-geoip2
- Untuk mengkompilasi modul Modsecurity, salin semua argumen berikut argumen konfigurasikan: dari output Anda dari perintah di atas dan tempel di tempat di perintah berikut:
sudo ./configure --add-dynamic-module=../ModSecurity-nginx paste disini mulai dari berwarna merah
atau
./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
- Build modul dengan perintah berikut:
sudo make modules
- Buat direktori untuk modul Modsecurity di folder konfigurasi Nginx sistem Anda:
sudo mkdir /etc/nginx/modules
- Salin modul Modsecurity yang di compile ke dalam folder konfigurasi Nginx Anda:
sudo cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules
Memuat Modul ModSecurity di Nginx
- Buka konfigurasi Nginx pada directory
/etc/nginx/nginx.conf
vim /etc/nginx/nginx.conf
- Tambahkan code berikut
load_module /etc/nginx/modules/ngx_http_modsecurity_module.so;
- Sample
user www-data;
worker_processes auto; pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
load_module /etc/nginx/modules/ngx_http_modsecurity_module.so;
Setting Up OWASP-CRS
OWASP ModSecurity Core Rule Set (CRS) adalah seperangkat aturan deteksi serangan umum untuk digunakan dengan ModSecurity atau firewall aplikasi web yang kompatibel. CRS bertujuan untuk melindungi aplikasi web dari berbagai serangan, termasuk Sepuluh Teratas OWASP, dengan peringatan palsu yang minimal. CRS memberikan perlindungan terhadap banyak kategori serangan umum, termasuk SQL Injection, Cross Site Scripting, dan Local File Inclusion.
- Pertama, hapus kumpulan aturan saat ini bawaan sebelumnya dengan ModSecurity, menggunakan perintah berikut:
sudo rm -rf /usr/share/modsecurity-crs
- Clone repository ke directory
/usr/local/modsecurity-crs
sudo git clone https://github.com/coreruleset/coreruleset /usr/local/modsecurity-crs
- Rename the
crs-setup.conf.examplekecrs-setup.conf:
sudo mv /usr/local/modsecurity-crs/crs-setup.conf.example /usr/local/modsecurity-crs/crs-setup.conf
- Ganti nama file aturan pengecualian permintaan default:
sudo mv /usr/local/modsecurity-crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example /usr/local/modsecurity-crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
Sekarang harus menyiapkan OWASP-CRS dan siap digunakan dalam konfigurasi Nginx.
Konfigurasi ModSecurity
- Mulailah dengan membuat direktori ModSecurity di direktori
/etc/nginx/:
sudo mkdir -p /etc/nginx/modsec
- Salin file pemetaan unicode dan file konfigurasi ModSecurity dari repository GitHub ModSecurity cloning kalian:
sudo cp /opt/ModSecurity/unicode.mapping /etc/nginx/modsec
sudo cp /opt/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
- Hapus ekstensi
.recommendeddari nama file konfigurasi ModSecurity dengan perintah berikut:
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
- Dengan editor teks seperti vim atau nano, buka
/etc/modsecurity/modsecurity.confdan ubah nilai untukSecRuleEnginemenjadiOn:
# -- Rule engine initialization ----------------------------------------------
# Enable ModSecurity, attaching it to every transaction. Use detection
# only to start with, because that minimises the chances of post-installation
# disruption.
#
SecRuleEngine On
- Buat file konfigurasi baru bernama
main.confdi direktori/etc/nginx/modsec:
vim /etc/nginx/modsec/main.conf
- Copy code berikut
Include /etc/nginx/modsec/modsecurity.conf
Include /usr/local/modsecurity-crs/crs-setup.conf
Include /usr/local/modsecurity-crs/rules/*.conf
Konfigurasi pada Nginx
- Buka konfigurasi Nginx kalian biasanya pada directory /etc/nginx/sites-enabled, dengan menambahkan
vim /etc/nginx/sites-enabled/default.conf
atau
vim /etc/nginx/conf.d/default.conf
- Lalu tambahkan code berikut
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
| Note: | Jika mengikuti tutorial dari awal, konfigurasi default.conf berada di dorectory /etc/nginx/conf.d |
- Sample
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html/;
index index.php index.html index.htm index.nginx-debian.html;
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
Source
<references />