Nginx lua modul Taobao vyvinul nginx modul tretej strany, ktorý dokáže vložiť jazyk Lua do konfigurácie NGINX, takže použitie LUA výrazne zvyšuje schopnosti NGINX. NGINX je známy vysokou súbežnosťou, LUA skripty sú ľahké a kombinácia oboch je dokonalá.
GitHub adresa: https://github.com/loveshell/ngx_lua_waf
###用途:
- Predchádzajte webovým útokom, ako sú SQL injection, lokálne začlenenie, čiastočné pretečenie, fuzzing testovanie, xss, SSRF a podobne
- Zabrániť úniku súborov, ako je SVN/záloha
- Prevencia útokov pomocou nástrojov na záťažové testovanie ako ApacheBench
- Blokujte bežné hackerské nástroje a skenery
- Blokujte nezvyčajné sieťové požiadavky
- Zablokujte PHP povolenie na vykonávanie adresára príloh obrázkov
- Zabránenie nahrávaniu webshellu
Verzia systému, príkaz lsb_release -a
LSB verzia: :core-4.1-amd64:core-4.1-noarch ID distribútora: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
Verzia LuaJIT
LuaJIT-2.0.5 je najnovšia stabilná verzia
Verzia nginx (inštalácia zlyhá, o tom neskôr)
Verzia nginx 1.4.4
Najprv vytvorte inštalačný adresár /alidata/server/lj2 pomocou nasledujúceho príkazu:
Nainštalujte prostredie Lua
--Skontrolujte, či je inštalácia úspešná
--Vytvárať softvérové odkazy
Pôvodné poradie:
Keďže máme lua nainštalovanú pod /alidata/server/lj2, vykonajte nasledujúci príkaz,Nevykonávajte vyššie uvedený príkaz, vykonajte nasledujúci príkaz:
Ak symlink nevytvoríte, môže nastať nasledujúca výnimka: chyba pri načítavaní zdieľaných knižníc: libluajit-5.1.so.2: nemožno otvoriť súbor zdieľaného objektu: Žiadny takýto súbor ani adresár
Stiahni ngx_devel_kit a rozbal ho
Domovská stránka projektu: https://github.com/simplresty/ngx_devel_kit
Stiahnite ngx_lua a rozbaľte ho
Rekompilácia a inštalácia nginx
Najskôr zálohujte predchádzajúci ngxin súbor
Nginx som už predtým inštaloval, pričom som vykonal príkaz nginx -V nasledovne:
NGINX verzia: NGINX/1.4.4 Vyrobená GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) Podpora TLS SNI zapnutá Konfigurovať argumenty: --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 katalógy modulov
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Stiahnuť a vykonať v adresári nginx
--pridať environmentálnu premennú, ktorá povie nginx, kde nájsť luajita
Ak ho nepridáte, nginx pri kompilácii nahlási nasledujúcu chybu:
./conkonfigur: error: ngx_http_lua_module vyžaduje knižnicu Lua. Ak je chyba nahlásená, prosím, vykonajte vyššie uvedené dve vety!
kompilovať
Chyba: #error aspoň nginx 1.6.0 je potrebný, ale našiel som staršiu verziu
Verzia nginx je príliš nízka, minimálna požiadavka je 1.6.0, preto aktualizujte verziu nginx,Pri aktualizácii nginx verzie môžete skutočne nainštalovať lua-nginx-modul a ngx_devel_kit modul do novej verzie, ktorá tu nebude podrobne rozpísaná, stačí spustiť nasledujúci príkaz s novou verziou,
Stiahnite ngx_lua_waf a rozbalte ho
Upravte konfiguračný súbor nginx tak, aby sa cesta zmenila podľa aktuálnej situácie
Pridajte ho do http sekcie nginx.conf
Po pridaní,Reštartoval som nginx a dostal som chybu 500Nakoniec sa zistilo, že dôvodom bolo upraviť súbor config.lua na dvoch miestach:
RulePath a logdir na úpravu podľa vašej situácie!
Test
https://www.itsvse.com/forum.php?id=../etc/passwd
|