ModSecurity adalah Firewall Aplikasi Web sumber terbuka gratis yang didukung oleh berbagai server web seperti Apache, IIS, dan Nginx. Ini digunakan sebagai lapisan keamanan eksternal untuk melindungi server web.
Dalam tutorial ini, Anda akan belajar cara menginstal firewall ModSecurity dengan Nginx yang sudah diinstal sebelumnya. Kami telah menggunakan server Ubuntu 20.04 untuk mendemonstrasikan prosesnya.
Prasyarat
Server Ubuntu 20.04 LTS
Nginx diinstal di server Ubuntu
Panduan Pemasangan
Jika Anda belum menginstal Nginx di server Anda, ikuti panduan ini untuk memenuhi persyaratan instalasi Modsecurity:
https://linuxways.net/ubuntu/how-to-install-nginx-on-ubuntu-20-04-lts-using-source-code/
Sekarang setelah Anda menginstal Nginx, mari kita mulai menginstal ModSecurity.
Langkah 1:Instal libmodsecurity3
Pertama-tama, instal git pada mesin Anda sehingga Anda dapat mengkloning repositori git ModSecurity. Kita dapat melakukannya dengan menjalankan perintah ini:
sudo apt install git -y
Sekarang setelah git terinstal, klon repositori dengan menjalankan perintah ini:
git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/
Langkah 2:Buka direktori Modsecurity
Sekarang setelah Anda mengkloning repositori git modsecurity, buka direktori modsecurity dengan mengikuti jalur di bawah ini:
cd /usr/local/src/ModSecurity/
Langkah 3:Instal dependensi libmodsecurity3
Sekarang kita berada di dalam direktori Modsecurity, kita akan menginstal dependensi libmodsecurity3 pada langkah ini. Jalankan perintah ini:
sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y
Langkah 4:Instal modul Git
Sekarang, instal submodul git dengan bantuan perintah ini:
git submodule init
Selanjutnya, kami akan memperbarui submodul:
git submodule update
Langkah 5:Bangun lingkungan modsecurity
Saatnya untuk membangun lingkungan modsecurity. Untuk melakukannya, jalankan perintah berikut:
./build.sh
Sekarang konfigurasikan menggunakan perintah ini:
./configure
Setelah ini, Anda akan mendapatkan kesalahan ini:
Tidak apa-apa untuk mengabaikan ini dan melanjutkan.
Langkah 6:Kompilasi kode sumber modsecurity
Sekarang kita akan mengkompilasi lingkungan untuk libmodsecurity3 dengan perintah ini:
make
Jika Anda ingin meningkatkan kecepatan kompilasi, Anda dapat menentukan -j
make -j 4
Selanjutnya kita akan menjalankan perintah install:
sudo make install
Penginstalan dilakukan di /usr/local/modsecurity/ .
Step 7: Install modsecurity-nginx connector
Pada langkah ini, kita akan menginstal konektor Modsecurity-nginx. Ini adalah titik koneksi dan komunikasi antara Nginx dan ModSecurity.
Pertama-tama, kita perlu mengkloning repositori konektor. Lakukan dengan menjalankan perintah ini:
sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
/usr/local/src/ModSecurity-nginx/
Langkah 8:Instal dependensi modsecurity-nginx
Pertama, buka direktori sumber Nginx seperti ini:
cd /usr/local/src/nginx/nginx-1.21.1
Pastikan untuk mengganti versi Nginx di perintah dengan versi Nginx Anda saat ini jika tidak, Anda akan mendapatkan kesalahan.
Untuk menginstal dependensi yang diperlukan, jalankan perintah ini:
sudo apt build-dep nginx && sudo apt install uuid-dev -y
Selanjutnya, kita akan mengkompilasi modul konektor Modsecurity-nginx dengan flag –with-compat dengan menjalankan perintah ini:
sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx
Sekarang jalankan perintah ini untuk membuat modul dinamis:
sudo make modules
Sekarang, salin modul dinamis yang baru saja Anda buat di objs/ngx_http_modsecurity_module.so ke /usr/share/nginx/modules dengan bantuan perintah ini:
sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/
Langkah 9:Aktifkan Modsecurity di file konfigurasi Nginx
Untuk mengaktifkan Modsecurity di Nginx, Anda harus terlebih dahulu menentukan load-module dan path ke modul modsecurity Anda di konfigurasi.
Buka file konfigurasi Nginx dengan editor nano seperti ini:
sudo nano /etc/nginx/nginx.conf
Dalam file, tambahkan baris ini di atas:
load_module modules/ngx_http_modsecurity_module.so;
Di bawah bagian {} HTTP, tambahkan baris kode berikut:
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;
Langkah 10:Konfigurasikan direktori dan file untuk modsecurity
Buat direktori dengan nama modsec. Jalur direktori disebutkan dalam perintah:
sudo mkdir /etc/nginx/modsec/
Anda akan memerlukan direktori ini di masa mendatang untuk menyimpan file dan aturan konfigurasi.
Sekarang, salin contoh file konfigurasi Modsecurity dari direktori git kloning dengan perintah ini:
sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
Sekarang buka file konfigurasi modsecurity:
sudo nano /etc/nginx/modsec/modsecurity.conf
Temukan direktif SecRuleEngine di file pada baris 7 dan ubah ke DetectionOnly seperti ini:
secruleEngine DetectionOnly
Untuk mengaktifkan Modsecurity, cari ubah arahan berikut menjadi On seperti ini:
secRuleEngine on
Sekarang cari arahan berikut pada baris 224:
secAuditLogParts ABIJDEFHZ
Ubah ke:
secAuditLogParts ABCDEFHJKZ
Sekarang buat file modsec-config.conf. Di sini Anda akan menambahkan modsecurity.conf dan aturan lain untuk modsecurity:
sudo nano /etc/nginx/modsec/modsec-config.conf
Di dalam file yang baru saja Anda buat, tambahkan baris ini:
Include /etc/nginx/modsec/modsecurity.conf
Simpan file dan keluar.
Langkah 11:Salin file unicode.mapping
Terakhir, salin file unicode.mapping Modsecurity seperti ini:
sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/
Langkah 12:Periksa konfigurasi Nginx
Sebelum memulai ulang Nginx, periksa apakah konfigurasinya baik-baik saja dengan menjalankan perintah ini:
sudo nginx -t
Jika Anda mendapatkan output berikut, Anda siap melakukannya:
Langkah 13:Muat Ulang Nginx
Sekarang restart Nginx dengan perintah ini:
sudo systemctl restart nginx
Dalam panduan ini, kami melihat bagaimana kami dapat menginstal Modsecurity di server ubuntu yang sudah memiliki Nginx yang sudah diinstal sebelumnya. Kami juga melihat cara mengonfigurasi ModSecurity dan Nginx untuk menghubungkannya dengan bantuan beberapa perintah yang mudah diikuti.