nginx lua modulis Taobao sukūrė nginx trečiosios šalies modulį, kuris gali įterpti lua kalbą į nginx konfigūraciją, todėl lua naudojimas labai pagerina nginx galimybes. nginx yra žinomas dėl didelio sutapimo, lua scenarijai yra lengvi, o jų derinys yra tobulas.
"GitHub" adresas: https://github.com/loveshell/ngx_lua_waf
###用途:
- Užkirskite kelią žiniatinklio atakoms, tokioms kaip SQL injekcija, vietinis įtraukimas, dalinis perpildymas, fuzzing testavimas, xss, SSRF ir kt
- Užkirskite kelią failų nutekėjimui, pvz., SVN / atsarginei kopijai
- Užkirskite kelią atakoms naudojant testavimo nepalankiausiomis sąlygomis įrankius, tokius kaip "ApacheBench".
- Blokuoti įprastus nuskaitymo įsilaužimo įrankius, skaitytuvus
- Blokuoti neįprastas tinklo užklausas
- Užblokuokite vaizdo priedų katalogo PHP vykdymo leidimą
- Neleisti įkelti žiniatinklio apvalkalo
Sistemos versija, komandos lsb_release -a
LSB versija: :core-4.1-amd64:core-4.1-noarch Platintojo ID: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
LuaJIT versija
LuaJIT-2.0.5 yra naujausia stabili versija
nginx versija (nepavyks įdiegti, daugiau apie tai vėliau)
NGINX 1.4.4 versija
Pirmiausia sukurkite diegimo katalogą /alidata/server/lj2 naudodami šią komandą:
Įdiekite "Lua" aplinką
--Patikrinkite, ar diegimas sėkmingas
--Sukurkite minkštas nuorodas
Originalus užsakymas:
Kadangi lua įdiegta /alidata/server/lj2, vykdykite šią komandą,Nevykdykite aukščiau pateiktos komandos, vykdykite šią komandą:
Jei nesukursite simbolinio saito, gali įvykti ši išimtis: klaida įkeliant bendrai naudojamas bibliotekas: libluajit-5.1.so.2: negalima atidaryti bendrai naudojamo objekto failo: nėra tokio failo ar katalogo
Atsisiųskite ngx_devel_kit ir išpakuokite
Projekto tinklalapis: https://github.com/simplresty/ngx_devel_kit
Atsisiųskite ngx_lua ir išpakuokite
Iš naujo kompiliuokite ir įdiekite nginx
Pirmiausia sukurkite atsarginę ankstesnio ngxin failo kopiją
Anksčiau įdiegiau nginx, vykdydamas komandą nginx -V taip:
NGINX versija: NGINX/1.4.4 pastatė GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) TLS SNI palaikymas įjungtas Konfigūruokite argumentus: --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --with-http-cache --with-http_ssl_module --with-http_gzip_static_ Modulis Du modulių katalogai
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Atsisiųskite ir vykdykite nginx kataloge
--pridėti aplinkos kintamąjį, kad nurodytumėte nginx, kur rasti luajit
Jei jo nepridėsite, "nginx" kompiliuojant praneš apie šią klaidą:
./configure: klaida: ngx_http_lua_module reikalinga Lua biblioteka. Jei pranešama apie klaidą, vykdykite aukščiau pateiktus du sakinius!
Kompiliuoti
Klaida: #error reikalinga bent nginx 1.6.0, bet rasta senesnė versija
nginx versija yra per maža, minimalus reikalavimas yra 1.6.0, todėl atnaujinkite nginx versiją,Atnaujindami nginx versiją, iš tikrųjų galite įdiegti lua-nginx modulį ir ngx_devel_kit modulį į naują versiją, kuri čia nebus išsamiai aprašyta, tiesiog paleiskite šią komandą su nauja versija,
Atsisiųskite ngx_lua_waf ir išpakuokite
Pakeiskite nginx konfigūracijos failą, kad pakeistumėte kelią pagal faktinę situaciją
Pridėkite jį į nginx.conf http skyrių
Pridėjus,Iš naujo paleidau nginx ir gavau 500 klaidąGaliausiai buvo nustatyta, kad priežastis buvo ta, kad config.lua failas turėjo būti pakeistas dviejose vietose:
RulePath ir logdir keisti pagal savo situaciją!
Bandymo
https://www.itsvse.com/forum.php?id=../etc/passwd
|