nginx lua modülü Taobao, LUA dilini nginx konfigürasyonuna gömülebilen üçüncü taraf modülünü geliştirdi; böylece lua kullanımı nginx'in yeteneğini büyük ölçüde artırır. nginx yüksek eşzamanlılığıyla bilinir, lua betikleri hafiftir ve ikisinin birleşimi mükemmeldir.
GitHub adresi: https://github.com/loveshell/ngx_lua_waf
###用途:
- SQL enjeksiyonu, yerel dahil etme, kısmi taşma, fuzzing testi, xss, SSRF gibi web saldırılarını önleyin
- SVN/yedekleme gibi dosya sızıntılarını önlemek
- ApacheBench gibi stres testi araçlarının saldırılarını önleyin
- Yaygın tarama hackleme araçları, tarayıcıları engelle
- Alışılmadık ağ taleplerini engelle
- Resim ek dizininin PHP yürütme iznini engelle
- Webshell yüklemelerini önleyin
Sistem sürümü, komut lsb_release -a
LSB Sürümü: :core-4.1-amd64:core-4.1-noarch Dağıtıcı Kimliği: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
LuaJIT versiyonu
LuaJIT-2.0.5 ise en son kararlı sürümdür
nginx versiyonu (kurulumda başarısız olacak, sonra daha fazla bahsederim)
nginx 1.4.4 sürüm
İlk olarak, aşağıdaki komutla /alidata/server/lj2 kurulum dizinini oluşturun:
Lua ortamını kur
--Kurulumun başarılı olup olmadığını kontrol et
--Soft links oluşturun
Orijinal sıralama:
/alidata/server/lj2 altında lua yüklüldüğü için, aşağıdaki komutu çalıştırın,Yukarıdaki komutu çalıştırmayın, aşağıdaki komutu yürütün:
Bir simmetrik bağlantı oluşturmazsanız, aşağıdaki istisna meydana gelebilir: paylaşılan kütüphaneleri yüklerken hata: libluajit-5.1.so.2: paylaşılan nesne dosyası açılamıyor: Böyle bir dosya veya dizin yok
ngx_devel_kit indir ve fermuarını aç
Proje Ana Sayfası: https://github.com/simplresty/ngx_devel_kit
ngx_lua indir ve fermuarını aç
nginx'i yeniden derleyin ve kurayın
Önce önceki ngxin dosyasını yedekleyin
Daha önce nginx yükledim, nginx -V komutunu şu şekilde çalıştırdım:
nginx sürümü: nginx/1.4.4 gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) tarafından inşa edildi TLS SNI desteği etkinleştirilmiş Argümanları yapılandırmak: --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_ Modül İki modül kataloğu
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
nginx dizininde indir ve çalıştır
--Nginx'e Luajit'i nerede bulacağını söylemek için ortam değişkeni ekle
Eklemezseniz, nginx derlerken aşağıdaki hatayı bildirecektir:
./configure: error: ngx_http_lua_module Lua kütüphanesini gerektirir. Bir hata bildirilirse, lütfen yukarıdaki iki cümleyi çalıştırın!
derlemek
Hata: #error en azından nginx 1.6.0 gerekiyor ama eski bir sürüm buldum
nginx sürümü çok düşük, minimum gereksinim 1.6.0, bu yüzden nginx sürümünü yükselt,nginx sürümünü yükseltirken aslında lua-nginx-modülünü ve ngx_devel_kit modülünü yeni sürüme takabilirsiniz, bu burada detaylandırılmayacak, sadece yeni sürümle aşağıdaki komutu çalıştırın,
ngx_lua_waf indir ve fermuarını aç
nginx yapılandırma dosyasını gerçek duruma göre yolu değiştirerek değiştirin
nginx.conf'un http bölümüne ekle
Bir kez eklendiğinde,nginx'i yeniden başlattım ve 500 hatası aldımSon olarak, configuration.lua dosyasının iki yerde değiştirilmesi sebebi olduğu tespit edildi:
RulePath ve logdir ile kendi durumuna göre değiştirebilirsin!
Test
https://www.itsvse.com/forum.php?id=../etc/passwd
|