Nginx lua modul Taobao je razvil NGINX modul tretje osebe, ki lahko vgradi jezik Lua v konfiguracijo NGINX, tako da uporaba LUA močno izboljša zmogljivosti NGINX. NGINX je znan po svoji visoki sočasnosti, LUA skripte so lahke, kombinacija obeh pa je popolna.
GitHub naslov: https://github.com/loveshell/ngx_lua_waf
###用途:
- Preprečite spletne napade, kot so SQL injection, lokalna vključitev, delni overflow, fuzzing testiranje, xss, SSRF itd
- Preprečite uhajanje datotek, kot je SVN/varnostno kopiranje
- Preprečite napade z orodji za testiranje stresa, kot je ApacheBench
- Blokirajte pogosta orodja za hekanje in skenerje
- Blokirajte nenavadne omrežne zahteve
- Blokirajte dovoljenje za izvajanje PHP mape za priponke slik
- Preprečite nalaganje spletne lupine
Sistemska različica, ukaz lsb_release -a
LSB različica: :core-4.1-amd64:core-4.1-noarch ID distributerja: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
LuaJIT različica
LuaJIT-2.0.5 je najnovejša stabilna različica
Nginx različica (namestitev ne bo uspela, več o tem kasneje)
Različica nginx 1.4.4
Najprej ustvarite namestitveni imenik /alidata/server/lj2 z naslednjim ukazom:
Namestite okolje Lua
--Preveri, ali je namestitev uspešna
--Ustvarjanje mehkih povezav
Prvotni vrstni red:
Ker imamo lua nameščeno pod /alidata/server/lj2, izvedemo naslednji ukaz,Ne izvajajte zgornjega ukaza, temveč naslednjega ukaza:
Če ne ustvarite simlinka, se lahko pojavi naslednja izjema: napaka pri nalaganju deljenih knjižnic: libluajit-5.1.so.2: ni mogoče odpreti datoteke deljenih objektov: Ni takšne datoteke ali mape
Prenesi ngx_devel_kit in razpakiraj
Domača stran projekta: https://github.com/simplresty/ngx_devel_kit
Prenesite ngx_lua in ga razpakirajte
Ponovni prevaj in nameščaj nginx
Najprej varnostno kopiraj prejšnjo ngxin datoteko
Nginx sem že namestil in ukaz nginx -V izvedel takole:
NGINX različica: NGinx/1.4.4 izdelan pri GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) Podpora TLS SNI omogočena Configure arguments: --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_ modul Dva kataloga modulov
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Prenesite in izvedite v imeniku nginx
--dodaj okoljsko spremenljivko, da pove nginx, kje najti luajita
Če ga ne dodate, bo nginx med prevajanjem poročal o naslednji napaki:
./configure: error: ngx_http_lua_module zahteva knjižnico Lua. Če je napaka prijavljena, prosimo, izvedite zgornja dva stavka!
Zbrati
Napaka: #error vsaj nginx 1.6.0 je potreben, a sem našel starejšo različico
Različica Nginx je prenizka, minimalna zahteva je 1.6.0, zato nadgradite različico Nginx,Pri nadgradnji nginx različice lahko dejansko namestite lua-nginx-modul in ngx_devel_kit modul v novo različico, kar tukaj ne bo podrobno opisano, samo zaženite naslednji ukaz z novo različico,
Prenesite ngx_lua_waf in ga razpakirajte
Spremenite konfiguracijsko datoteko nginx, da spremenite pot glede na dejansko situacijo
Dodaj ga v http razdelek nginx.conf
Ko je dodana,Ponovno sem zagnal nginx in dobil napako 500Nazadnje so ugotovili, da je razlog v tem, da je datoteko config.lua treba spremeniti na dveh mestih:
RulePath in logdir prilagodite glede na vašo situacijo!
Preizkus
https://www.itsvse.com/forum.php?id=../etc/passwd
|