GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur &Mengonfigurasi ModSecurity di Apache

Pendahuluan

ModSecurity adalah modul plug-in untuk Apache yang bekerja seperti firewall. Ini berfungsi melalui kumpulan aturan, yang memungkinkan Anda untuk menyesuaikan dan mengonfigurasi keamanan server Anda.

ModSecurity juga dapat memantau lalu lintas web secara real time dan membantu Anda mendeteksi dan merespons penyusupan. Dapat digunakan dengan Apache, Nginx, dan IIF dan kompatibel dengan Debian, Ubuntu, dan CentOS.

Tutorial ini menjelaskan cara menginstal dan mengkonfigurasi ModSecurity di server web Apache.

Prasyarat

  • Tumpukan LAMP (Linux, Apache, MySQL, PHP) diinstal dan dikonfigurasi
  • Akses ke akun pengguna dengan sudo atau akar hak istimewa
  • Manajer paket (APT atau YUM), disertakan secara default
  • Jendela baris perintah/terminal (Ctrl-Alt-T, Ctrl-Alt-F1)
  • Editor teks, seperti nano

Langkah 1:Perbarui Repositori Perangkat Lunak

Buka jendela terminal, dan masukkan berikut ini:

Di Debian / Ubuntu

sudo apt update -y

Di CentOS

sudo yum update -y

Langkah 2:Menginstal ModSecurity Di Apache

Instal ModSecurity di Debian

1. Di jendela terminal, masukkan berikut ini:

sudo apt install libapache2-modsecurity

Jika diminta, tekan y dan tekan Enter untuk memungkinkan proses selesai.

2. Mulai ulang layanan Apache:

sudo systemctl restart apache2

Tidak akan ada output jika Apache berhasil di-restart.

3. Periksa versi perangkat lunak (harus 2.8.0 atau lebih baru):

apt-cache show libapache2-modsecurity

Instal ModSecurity di Ubuntu 18.04

1. Di jendela terminal, masukkan:

sudo apt install libapache2-mod-security2

Jika diminta, tekan y dan tekan Enter untuk memungkinkan proses selesai.

2. Mulai ulang layanan Apache:

sudo systemctl restart apache2

Tidak akan ada output jika Apache berhasil di-restart.

3. Periksa versi perangkat lunak (harus 2.8.0 atau lebih baru):

apt-cache show libapache2-mod-security2

Instal ModSecurity di CentOS 7

1. Masukkan yang berikut ini ke jendela terminal:

sudo yum install mod_security

Jika diminta, tekan y dan tekan Enter untuk memungkinkan proses selesai.

2. Mulai ulang layanan Apache:

sudo systemctl restart httpd.service

3. Periksa versi perangkat lunak (harus 2.8.0 atau lebih baru):

yum info mod_security

Langkah:3 Konfigurasi ModSecurity

Setelah instalasi, ModSecurity diatur untuk mencatat peristiwa sesuai dengan aturan default. Anda harus mengedit file konfigurasi untuk menyesuaikan aturan guna mendeteksi dan memblokir lalu lintas.

File konfigurasi default adalah /etc/modsecurity/modsecurity.conf-recommended.

1. Salin dan ganti nama file:

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

2. Selanjutnya, ubah mode deteksi ModSecurity . Pertama, pindah ke /etc/modsecurity map:

sudo cd /etc/modsecurity

3. Buka file konfigurasi di editor teks (kami akan menggunakan nano):

sudo nano modsecurity.conf

Di dekat bagian atas, Anda akan melihat entri berlabel:

SecRuleEngine DetectionOnly

Ubah ini untuk membaca sebagai berikut:

SecRuleEngine On

4. Gunakan CTRL+X untuk keluar, lalu tekan y lalu Masuk untuk menyimpan perubahan.

5. Keluar dari folder /etc/modsecurity:

cd

6. Mulai ulang Apache:

Di Debian/Ubuntu

sudo systemctl restart apache2

Di CentOS

sudo systemctl restart httpd.service

Ini akan mengaktifkan ModSecurity menggunakan aturan default dasar. Di beberapa versi Linux, ini termasuk Set Aturan Inti OWASP. Namun, ini mungkin berbeda dari versi terbaru yang dikelola oleh pengembang.

Langkah 4:Unduh Aturan ModSecurity OWASP Terbaru

Core Rule Set (CRS) terbaru untuk ModSecurity dipertahankan di GitHub.

1. Instal G itu jika belum disertakan di sistem Anda.

Instal Git di Debian/Ubuntu:

sudo apt install git

Instal Git di CentOS:

sudo yum install git

2. Unduh salinan CRS:

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

Ini menempatkan salinan direktori sebagai subdirektori dari lokasi kerja Anda saat ini.

3. Buka direktori baru:

cd owasp-modsecurity-crs

4. Pindahkan file crs-setup:

sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf

5. Kemudian pindahkan direktori rules/:

sudo mv rules/ /etc/modsecurity

Jika Anda menemukan kesalahan saat mencoba memindahkan direktori ini, masukkan:

sudo mkdir /etc/modsecurity/rules
cd rules 
sudo cp *.* /etc/modsecurity/rules

6. Selanjutnya, periksa security2.conf Anda file untuk memverifikasi itu disetel untuk memuat aturan ModSecurity:

sudo nano /etc/apache2/mods-enabled/security2.conf

Pastikan Anda menyertakan baris berikut dan tidak berkomentar:

IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf

Jika tidak ada, tambahkan. Jangan menduplikasinya, atau Anda berisiko menonaktifkan layanan Apache Anda.

7. Mulai ulang layanan Apache:

Di Debian/Ubuntu

sudo systemctl restart apache2

Di CentOS

sudo systemctl restart httpd.service

Langkah 5:Uji Konfigurasi Apache

1. Buka file konfigurasi Apache default:

sudo nano /etc/apache2/sites-available/000-default.conf

2. Temukan </VirtualHost> tag di bagian bawah dan tambahkan baris berikut:

SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403,msg:'phoenixNAP test rule was triggered'"

Anda dapat mengubah msg untuk apa pun yang Anda inginkan.

Simpan dan keluar dari file (CTRL+X> y> Masuk ).

3. Mulai ulang layanan Apache:

Di Debian/Ubuntu

sudo systemctl restart apache2

Di CentOS

sudo systemctl restart httpd.service

4. Kemudian, masukkan perintah berikut:

curl localhost/index.html?testparam=test

Sistem merespons dengan mencoba menampilkan halaman web default. Alih-alih konten, ini menghasilkan kode kesalahan dan pesan di dalam tag:

5. Anda dapat mengonfirmasi bahwa ModSecurity berfungsi dengan mencari kode 403 di log kesalahan Apache dengan perintah:

sudo tail -f /var/log/apache2/error.log

Salah satu entri di bagian bawah adalah kode kesalahan ModSecurity:

Uji ModSecurity dan OWASP CRS Dengan Bash Script

Metode lain yang dapat Anda gunakan untuk menguji ModSecurity adalah dengan menggunakan B abu naskah.

1. Masukkan perintah berikut di terminal:

curl localhost/index.html?exec=/bin/bash

Outputnya menunjukkan pesan kesalahan yang sama seperti yang terakhir kali.

2. Lihat file error.log Apache lagi dan Anda akan menemukan bahwa aturan tersebut berlaku:

sudo tail -f /var/log/apache2/error.log

Outputnya menampilkan pesan kesalahan ModSecurity terkait OWASP.

Langkah 6:Buat Aturan ModSecurity

Di bawah ini adalah contoh pengujian bagaimana Anda dapat menggunakan ModSecurity untuk memblokir kata kunci tertentu pada formulir PHP.

1. Buat file PHP di dalam direktori html dengan perintah:

sudo nano /var/www//html/test.php

2. Masukkan kode berikut ke dalam file:

<html>
<body>
<?php
if(isset($_POST['data']))
echo $_POST['data'];
else
{
?>
<form method="post" action="">
Enter text here:<textarea name="data"></textarea>
<input type="submit"/>
</form>
<?php
}
?>
</body>
</html>

Simpan file dan keluar.

3. Selanjutnya, buat file aturan kustom ModSecurity baru:

sudo nano /etc/modsecurity/modsecurity_custom_rules.conf

Tambahkan baris berikut:

SecRule REQUEST_FILENAME "test.php" "id:'400001',chain,deny,log,msg:'Spam detected'"
SecRule REQUEST_METHOD "POST" chain
SecRule REQUEST_BODY "@rx (?i:(enlarge|Nigerian|gold))"

Tentu saja, ubah kata kunci di baris terakhir menjadi apa pun yang Anda inginkan.

Simpan file dan keluar.

4. Muat ulang layanan Apache:

Di Debian/Ubuntu

sudo systemctl restart apache2

Di CentOS

sudo systemctl restart httpd.service

5. Luncurkan formulir di browser web

localhost/test.php

6. Ketik salah satu kata kunci dari aturan ke dalam formulir. Dalam contoh ini:perbesar, Nigeria, atau emas .

Anda akan menerima pesan kesalahan 403 Forbidden.

Anda juga dapat memeriksa /var/log/apache2/error.log file untuk memverifikasi tindakan ModSecurity.


Ubuntu
  1. Cara Mengaktifkan &Mengatur File .htaccess di Apache

  2. Cara Menginstal Apache di CentOS 8

  3. Cara mengatur vHost di Apache

  1. Cara Menginstal Apache di Ubuntu 18.04

  2. Cara Mengatur Host Virtual Apache di Ubuntu 18.04

  3. Cara menginstal Apache di Ubuntu 20.04

  1. Konfigurasikan Apache VirtualHost di Fedora

  2. Cara Menginstal dan Mengonfigurasi Nextcloud dengan Apache di Ubuntu 18.04

  3. Cara Menginstal Apache di CentOS 7