ngx_lua_waf
ngx_lua_waf adalah firewall aplikasi web berbasis ngx_lua yang dikembangkan ketika saya pertama kali bergabung dengan Fun Travel.
Kodenya sederhana, dan tujuan awal pengembangannya adalah menggunakan kesederhanaan, kinerja tinggi, dan ringan.
Sekarang bersumber terbuka dan sesuai dengan lisensi MIT. Ini berisi aturan pemfilteran kami. Jika Anda memiliki saran atau ingin memperbaikinya, jangan ragu untuk memperbaikinya dengan saya.
Menggunakan:
Mencegah serangan web seperti injeksi SQL, inklusi lokal, luapan parsial, pengujian fuzzing, xss, SSRF, dll Mencegah kebocoran file seperti SVN/cadangan Cegah serangan dari alat pengujian stres seperti ApacheBench Blokir alat peretasan pemindaian umum, pemindai Memblokir permintaan jaringan yang tidak biasa Blokir izin eksekusi PHP dari direktori lampiran gambar Mencegah unggahan webshell
Instalasi yang Direkomendasikan:
Disarankan untuk menggunakan lujit2.1 untuk dukungan lua
ngx_lua jika itu adalah versi 0.9.2 atau yang lebih baru, disarankan untuk mengubah fungsi filter reguler ke ngx.re.find, dan efisiensi pencocokan akan meningkat sekitar tiga kali lipat.
Petunjuk penggunaan:
Jalur instalasi nginx diasumsikan menjadi: /usr/local/nginx/conf/
Unduh ngx_lua_waf ke direktori conf dan unzip dan beri nama waf
Tambahkan di bagian http nginx.conf
Konfigurasikan direktori aturan WAF di config.lua (biasanya di direktori waf/conf/)
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
Jika jalur absolut berubah, itu perlu dimodifikasi sesuai
Kemudian mulai ulang nginx
Detail Profil:
RulePath = "/usr/local/nginx/conf/waf/wafconf/" --aturan Direktori penyimpanan attacklog = "mati" --Untuk mengaktifkan pencatatan informasi serangan, Anda perlu mengonfigurasi logdir logdir = "/usr/local/nginx/logs/hack/" --log storage, yang perlu dibuat oleh pengguna sendiri, dan memerlukan izin tulis dari pengguna nginx urlTolak = "aktif" --apakah akan memblokir akses URL Pengalihan = "aktif" --apakah akan mengalihkan setelah intersepsi CookieMatch = "aktif" --Apakah akan memblokir serangan cookie postMatch = "aktif" --apakah akan memblokir serangan pasca whiteModule = "aktif" --apakah akan mengaktifkan daftar putih URL black_fileExt={"php","jsp"} --Isi jenis akhiran file yang tidak boleh diunggah ipWhitelist={"127.0.0.1"} --Daftar putih IP, beberapa IP dipisahkan oleh koma ipBlocklist={"1.0.0.1"} --Daftar hitam IP, beberapa IP dipisahkan oleh koma CCDeny="aktif" --Apakah akan mengaktifkan intersepsi serangan cc (mengharuskan segmen HTTP nginx.conf ditingkatkan lua_shared_dict batas 10m; ) CCrate = "100/60" --Atur frekuensi serangan CC dalam hitungan detik. --Secara default, alamat IP yang sama hanya dapat meminta alamat yang sama 100 kali per menit html=[[Silakan pergi~~]] --Konten peringatan, dapat disesuaikan dalam tanda kurung Catatan: Jangan gunakan tanda kutip ganda agar peka huruf besar/kecil
Periksa apakah aturan tersebut berlaku
Setelah penerapan, Anda dapat mencoba perintah berikut:
Catatan: Secara default, mesin tidak memfilter dalam daftar putih, dan Anda dapat menyesuaikan konfigurasi config.lua sendiri
Terjemahannya adalah sebagai berikut:
Pembaruan Aturan:
Mempertimbangkan masalah caching reguler, aturan dinamis memengaruhi kinerja, jadi saya tidak menggunakan hal-hal seperti kamus memori bersama dan redis untuk manajemen dinamis.
Pembaruan aturan dapat ditempatkan di server lain, dan aturan dapat diperbarui dengan mengunduhnya secara teratur melalui tugas crontab, dan muat ulang nginx akan diterapkan. Untuk memastikan kinerja tinggi NGX LUA WAF.
Hanya catat log filter, jangan aktifkan pemfilteran, cukup tambahkan -- komentar di depan periksa kode, jika Anda perlu memfilter, sebaliknya
Beberapa catatan:
Aturan penyaringan dapat disesuaikan dengan kebutuhan Anda di bawah wafconf, dan setiap aturan perlu dibungkus atau dipisahkan dengan |
Aturan args mendapatkan parameter untuk memfilter URL adalah aturan yang hanya meminta URL yang difilter di GET posting adalah aturan pemfilteran hanya dalam permintaan posting Daftar putih adalah daftar yang diizinkan, dan URL di dalamnya cocok sehingga tidak difilter user-agent adalah aturan pemfilteran untuk user-agent
Pemfilteran Dapatkan dan posting diaktifkan secara default, jika Anda perlu mengaktifkan pemfilteran cookie, edit bagian pembatalan waf.lua - komentar
Format nama file log adalah sebagai berikut: Nama Host Web _sec.log
|