Cara menginstal modsecurity untuk nginx di debian/ubuntu

Cara menginstal modsecurity untuk nginx di debian/ubuntu

Keinginan setiap pengembang untuk menggunakan aplikasi web yang aman yang aman dari ancaman. Pada sebagian besar kesempatan, ini tidak mudah diucapkan daripada dilakukan. Frekuensi situs web yang diretas terus meningkat saat peretas terus mengeksploitasi semua vektor serangan yang mereka miliki.

Keamanan Webapp dapat menjadi tantangan besar terutama dengan prevalensi alat berbahaya seperti rootkit, pemindai, bot, dan malware lainnya. Meskipun dilanggar mungkin terlihat seperti kapan jika tidak jika, lebih bijaksana untuk menerapkan beberapa langkah keamanan yang layak untuk melindungi aplikasi web Anda.

[Anda mungkin juga suka: 5 alat untuk memindai server Linux untuk malware dan rootkit]

Salah satu alat yang dapat memberikan tingkat keamanan yang layak terhadap serangan disebut Modsecurity. Ini adalah sumber yang gratis dan terbuka Firewall Aplikasi Web (Waf) yang melindungi aplikasi web Anda dari sejumlah besar serangan Layer 7 seperti scripting lintas situs (XSS), SQL suntikan, pembajakan sesi, dan banyak lagi.

Dalam panduan ini, kami akan menunjukkan kepada Anda cara menginstal dan mengonfigurasi Modsecurity bekerja dengan Nginx tentang distribusi Linux yang berbasis di Debian seperti Ubuntu.

Langkah 1: Pasang dependensi

Untuk memulai instalasi, sejumlah dependensi perangkat lunak diperlukan agar instalasi berhasil. Tapi pertama -tama, perbarui daftar paket dan segarkan repositori sebagai berikut.

$ sudo pembaruan apt 

Selanjutnya, instal dependensi sebagai berikut.

$ sudo apt install membuat gcc build-esensial 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 

Langkah 2: Instal versi Nginx terbaru


Langkah selanjutnya adalah menginstal Nginx browser web. Untuk menginstal versi terbaru, kami akan menginstalnya dari
ondrej/nginx-mainline ppa w yang saat ini sedang dikelola oleh pengembang debian sejak tahun 2000.

Untuk menambahkan PPA ke lokal Anda Ubuntu Sistem menjalankan perintah:

$ sudo add-apap-repository PPA: ondrej/nginx-mainline -y 

Selanjutnya, perbarui daftar paket dan instal versi terbaru Nginx sebagai berikut

$ sudo apt update $ sudo apt instal nginx-core nginx-common nginx nginx-full 

Biasanya, hanya repositori default yang diaktifkan. Lebih bijaksana untuk mengaktifkan repositori kode sumber sehingga Anda dapat, nanti, mengunduh Nginx kode sumber di langkah berikutnya.

Untuk mencapai ini, ubah Nginx file repositori.

$ sudo vim/etc/apt/sumber.daftar.d/ondrej-ubuntu-nginx-mainline-*.daftar 

Temukan dan Batalkan Komentari Baris ini untuk mengaktifkan Repositori Kode Sumber:

# deb-src http: // ppa.landasan peluncuran.NET/ONDREJ/NGINX-MAINLINE/UBUNTU/MAIN FOCAL 

File sekarang harus muncul seperti yang ditunjukkan.

Aktifkan Ondřej PPA

Simpan perubahan dan keluar.

Kemudian perbarui indeks paket.

$ sudo pembaruan apt 

Langkah 3: Unduh Paket Sumber Nginx

Untuk mengkompilasi Modsecurity modul dinamis, kita perlu mengunduh Nginx Paket Kode Sumber. Untuk melakukan ini, kita akan, pertama, membuat Nginx direktori di /usr/local/src/ jalur untuk mengakomodasi file paket kode sumber nginx.

$ sudo mkdir -p/usr/local/src/nginx 

Selanjutnya, tetapkan izin direktori seperti yang ditunjukkan. Pastikan untuk mengganti nama pengguna dengan nama pengguna sudo Anda yang sebenarnya.

Username $ Sudo Chown: Nama pengguna -r/usr/local/src/ 

Setelah itu, navigasikan ke Nginx Direktori Sumber:

$ CD/usr/local/src/nginx 

Lanjutkan dan unduh Nginx Paket File Sumber:

$ sudo apt sumber nginx 
Unduh Sumber Nginx

Anda kemungkinan besar akan masuk ke kesalahan berikut:

W: Unduh dilakukan Unsandboxed sebagai root sebagai file 'nginx_1.19.5.Orig.ter.GZ 'tidak dapat diakses oleh pengguna' _apt '. - pkgacquire :: run (13: izin ditolak) 

Ini bukan apa -apa untuk membuat Anda bekerja. Jadi, abaikan saja kesalahannya.

Anda dapat mengintip file sumber menggunakan perintah LS.

$ ls -l 
Daftar file sumber nginx

Pastikan bahwa versi kode sumber bertepatan dengan versi Nginx terpasang.

$ nginx -v 
Periksa versi Nginx

Langkah 4: Instal perpustakaan libmodsecurity3

LibModesecurity adalah Modsecurity perpustakaan yang menangani Http Penyaringan untuk aplikasi Anda. Ada dua cara untuk memasangnya. Anda dapat menggunakan APT Package Manager seperti yang ditunjukkan

$ sudo apt install libmodsecurity3 

Pendekatan lainnya adalah menginstalnya dari sumber yang lebih disukai karena memberi Anda versi terbaru. Untuk memulai pemasangan LibModSecurity dari sumbernya, klon repositori git seperti yang ditunjukkan:

$ git clone ---depth 1 -b v3/master --single -branch https: // github.com/spiderlabs/modsecurity/usr/local/src/modsecurity/ 

Menavigasi ke direktori yang dikloning:

$ CD/usr/local/src/modsecurity/ 

Buat titik untuk menginstal submodules

$ Sudo Git Submodule Init $ Sudo Git Submodule Update 
Instal libmodsecurity3 di ubuntu

Setelah itu, bangun lingkungan menggunakan perintah di bawah ini.

$ sudo ./membangun.sh $ sudo ./Mengkonfigurasi 

Sekali lagi, abaikan kesalahan yang ditampilkan di bawah ini.

Fatal: Tidak ada nama yang ditemukan, tidak dapat menggambarkan apapun. 

Kemudian kompilasi kode sumber dan instal utilitas lain menggunakan perintah buat berikut. Ini membutuhkan waktu sekitar 25 menit, dan beberapa kesabaran diperlukan.

$ sudo membuat -j4 

Setelah selesai, instal perpustakaan.

$ sudo membuat instal 

Langkah 5: Unduh dan Kompilasi Modsecurity V3 Nginx Connector

Langkah selanjutnya adalah mengunduh dan mengkompilasi ModSecurity nginx penyambung. Konektor, seperti namanya, menautkan LibModSecurity Perpustakaan ke Nginx Webserver. Untuk mengunduh konektor modsecurity, kloning dari repositori github sebagai berikut.

$ git clone --depth 1 https: // github.com/spiderlabs/modsecurity-nginx.git/usr/local/src/modsecurity-nginx/ 

Menavigasi ke direktori yang dikloning.

$ CD/usr/local/src/nginx/nginx-1.21.3/ 

Lanjutkan dan pasang dependensi build

$ sudo apt build-dep nginx $ sudo apt install uuid-dev 

Selanjutnya, kompilasi Konektor Nginx Modsecurity modul dengan --dengan compat bendera. Itu --dengan compat Opsi Membuat Modsecurity Modul Konektor Nginx kompatibel dengan pustaka Nginx saat ini.

$ sudo ./configure --with-compat --add-dynamic-module =/usr/local/src/modsecurity-nginx 

Setelah selesai, bangun modul konektor NGINX MODSECURTY menggunakan perintah Make the Make.

$ sudo membuat modul 

Modul disimpan sebagai OBJS/NGX_HTTP_MODSECURTY_MODULE.Jadi. Anda perlu menyalin modul ini ke /usr/share/nginx/modul/ direktori sebagai berikut.

$ sudo cp objs/ngx_http_modsecurity_module.Jadi/usr/share/nginx/modul/ 

Langkah 6: Muat Modul Konektor Nginx Modsecurity

Untuk memuat Nginx modul konektor, pertama, akses file konfigurasi Nginx utama.

$ sudo vim/etc/nginx/nginx.conf 

Tambahkan baris berikut tepat di bawah beberapa baris pertama

Modul Load_Module/NGX_HTTP_MODSECURICITY_MODULE.Jadi; 

Selain itu, tambahkan baris berikut di http ... bagian. Ini memungkinkan modsecurity untuk semua host virtual nginx.

modsecurity on; modsecurity_rules_file/etc/nginx/modsec/main.conf; 
Aktifkan mod_security untuk vhosts nginx

Simpan perubahan dan keluar dari file.

Selanjutnya, buat /etc/nginx/modsec/ direktori yang akan menyimpan Modsecurity konfigurasi.

$ sudo mkdir/etc/nginx/modsec/ 

Selanjutnya, salin file konfigurasi modsecurity sebagai berikut.

$ sudo cp/usr/local/src/modsecurity/modsecurity.conf-direcomended/etc/nginx/modsec/modsecurity.conf 

Kemudian buka file konfigurasi.

$ sudo vim/etc/nginx/modsec/modsecurity.conf 

Temukan garis yang dimulai dengan Secruleengine pengarahan.

Deteksi Secruleengine hanya 

Baris ini menginstruksikan Modsecurity untuk hanya mencatat transaksi http tetapi tidak mengambil tindakan dalam menghadapi serangan aplikasi web. Anda perlu mengubah ini sehingga modsecurity tidak hanya akan mendeteksi tetapi juga memblokir serangan web.

Ubah garis ke baris di bawah ini

Secruleengine on 
Aktifkan aturan MOD_SECURUTY

Simpan perubahan dan keluar dari file.

Selanjutnya, buat /etc/nginx/modsec/main.conf mengajukan.

$ sudo vim/etc/nginx/modsec/main.conf 

Tambahkan baris ini untuk merujuk /etc/nginx/modsec/modsecurity.conf file konfigurasi.

Termasuk/etc/nginx/modsec/modsecurity.conf 

Simpan perubahan dan keluar dari file.

Selain itu, salin file pemetaan unicode.

$ sudo cp/usr/local/src/modsecurity/unicode.Pemetaan/etc/nginx/modsec/ 

Kemudian uji konfigurasi nginx.

$ sudo nginx -t 
Uji konfigurasi nginx

Tes harus berhasil. Jika tidak, kembali dan periksa apakah semua perubahan yang dilakukan sudah benar.

Lalu akhirnya, restart nginx untuk menerapkan semua perubahan yang dibuat.

$ sudo systemctl restart nginx 

Dan memverifikasi bahwa nginx berjalan seperti yang diharapkan.

$ sudo systemctl status nginx 

Langkah 7: Unduh Set Corerule OWASP

Untuk Modsecurity Untuk melindungi aplikasi web Anda, Anda perlu menentukan aturan yang akan mendeteksi aktivitas yang mencurigakan dan memblokirnya. Untuk memulai, lebih baik menginstal set aturan yang ada yang akan membantu Anda mempelajari tali.

Itu Set aturan inti owasp (CRS) adalah set aturan yang gratis, open-source, dan yang dipelihara komunitas yang memberikan aturan untuk menangkal vektor serangan umum seperti injeksi SQL, scripting lintas-situs (XSS).

Unduh aturan aturan inti OWASP dari github seperti yang ditunjukkan menggunakan perintah wget.

$ wget https: // github.com/coreruleset/coreruleset/arsip/v3.3.0.ter.GZ 

Ekstrak file terkompresi.

$ tar xvf v3.3.0.ter.GZ 

Memastikan untuk memindahkan direktori yang tidak terkompresi ke /etc/nginx/modsec/ jalur.

$ sudo mv coreruleset-3.3.0//etc/nginx/modsec/ 

Lalu ganti nama CRS-SETUP.conf.contoh file ke CRS-SETUP.conf.

$ sudo mv/etc/nginx/modsec/coreruleset-3.3.0/CRS-SETUP.conf.Contoh/etc/nginx/modsec/coreruleset-3.3.0/CRS-SETUP.conf 

Sekali lagi, kembali ke Modsecurity file konfigurasi.

$ sudo vim/etc/nginx/modsec/main.conf 

Dan menambahkan baris berikut.

Termasuk/etc/nginx/modsec/coreruleset-3.3.0/CRS-SETUP.conf include/etc/nginx/modsec/coreruleset-3.3.0/aturan/*.conf 

File sekarang harus memiliki 3 baris:

Konfigurasikan aturan ModSecurity

Simpan file dan, sekali lagi, restart nginx.

$ sudo systemctl restart nginx 

Langkah 8: Menguji Modsecurity

Akhirnya, kami akan melakukan tes Modsecurity dan mengkonfirmasi itu dapat mendeteksi dan memblokir lalu lintas HTTP yang mencurigakan.

Kami akan mengedit file konfigurasi modsecurity dan membuat aturan pemblokiran yang akan memblokir akses ke URL tertentu saat diakses oleh browser web.

$ sudo vim/etc/nginx/modsec/modsecurity.conf 

Tambahkan baris ini tepat di bawah Secruleengine on pengarahan

Secrule Args: testParam "@Contains test" "ID: 254, DENY, Status: 403, MSG: 'Tes berhasil'" 

Anda dapat mengatur 'pengenal' Dan 'MSG' Tag untuk nilai pilihan Anda.

Uji aturan keamanan mod

Simpan perubahan dan restart nginx.

$ sudo systemctl restart nginx 

Sekarang luncurkan browser Anda dan kunjungi URL di bawah ini dengan ?testParam = tes akhiran

http: // server-ip/?testParam = tes 

Anda harus mendapatkan 403 'terlarang' kesalahan. Ini menunjukkan bahwa Anda mencoba mengakses sumber daya terlarang di server web.

Nginx 403 kesalahan terlarang

Selain itu, Anda dapat memeriksa log kesalahan nginx untuk mengonfirmasi bahwa klien diblokir

$ cat/var/log/nginx/error.log | grep "tes berhasil" 
Periksa blok Nginx Modsecurity

[Anda mungkin juga suka: cara mengatur modsecurity dengan Apache di debian/ubuntu]

Itu adalah ikhtisar tentang bagaimana Anda dapat mengatur Modsecurity dengan Nginx pada Debian Dan Ubuntu. Kami berharap ini bermanfaat.