Cara menginstal modsecurity untuk nginx di debian/ubuntu
- 4394
- 158
- Ricardo Gottlieb
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 PPASimpan 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 nginxUnduh 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 -lDaftar file sumber nginx
Pastikan bahwa versi kode sumber bertepatan dengan versi Nginx terpasang.
$ nginx -vPeriksa 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 UpdateInstal 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 onAktifkan 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 -tUji 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 ModSecuritySimpan 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 modSimpan 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 terlarangSelain 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.
- « Cara menggunakan rsync untuk menyinkronkan file baru atau diubah/dimodifikasi di linux
- Nethogs - Pantau Penggunaan Lalu Lintas Jaringan Linux per proses »