Nginx lua modul Taobao vyvinul třetí stranový modul nginx, který dokáže vložit jazyk Lua do konfigurace NGINX, takže použití Lua výrazně zvyšuje možnosti NGINX. NGINX je známý vysokou souběžností, LUA skripty jsou lehké a kombinace obou je dokonalá.
GitHub adresa: https://github.com/loveshell/ngx_lua_waf
###用途:
- Zabránit webovým útokům, jako je SQL injection, lokální inkluze, částečný přetečení, fuzzing testing, xss, SSRF atd
- Zabránit úniku souborů, jako je SVN/zálohování
- Zabránit útokům pomocí nástrojů pro zátěžové testování, jako je ApacheBench
- Blokujte běžné nástroje pro hackování a skenery
- Blokujte neobvyklé síťové požadavky
- Zablokujte PHP oprávnění k provádění adresáře pro přílohy obrázků
- Zabránit nahrávání webshellu
Systémová verze, příkaz lsb_release -a
LSB verze: :core-4.1-amd64:core-4.1-noarch ID distributora: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
Verze LuaJIT
LuaJIT-2.0.5 je nejnovější stabilní verze
Verze nginx (instalace se nedaří, o tom později)
Verze nginx 1.4.4
Nejprve vytvořte instalační adresář /alidata/server/lj2 pomocí následujícího příkazu:
Nainstalujte prostředí Lua
--Zkontrolujte, zda je instalace úspěšná
--Vytvářet měkké odkazy
Původní pořadí:
Protože máme lua nainstalovanou pod /alidata/server/lj2, spusť následující příkaz,Nevykonejte výše uvedený příkaz, ale následující příkaz:
Pokud symlink nevytvoříte, může nastat následující výjimka: chyba při načítání sdílených knihoven: libluajit-5.1.so.2: nelze otevřít soubor sdíleného objektu: žádný takový soubor ani adresář
Stáhni ngx_devel_kit a rozbal
Domovská stránka projektu: https://github.com/simplresty/ngx_devel_kit
Stáhni ngx_lua a rozbal
Překompilujte a nainstalujte nginx
Nejprve zálohujte předchozí soubor ngxin
Nginx jsem už dříve instaloval a příkaz nginx -V jsem vykonával následovně:
Verze NGINX: NGinx/1.4.4 postaveno GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) Podpora TLS SNI zapnuta Konfigurovat 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 katalogy modulů
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Stáhněte a spustit v adresáři nginx
--přidat proměnnou prostředí, která řekne nginx, kde najít luajita
Pokud ji nepřidáte, nginx při kompilaci nahlásí následující chybu:
./configure: error: ngx_http_lua_module vyžaduje knihovnu Lua. Pokud je chyba nahlášena, prosím, vykonejte výše uvedené dvě věty!
kompilovat
Chyba: #error je vyžadován alespoň nginx 1.6.0, ale našel jsem starší verzi
Verze nginx je příliš nízká, minimální požadavek je 1.6.0, proto aktualizujte verzi nginx,Při aktualizaci verze nginx můžete skutečně nainstalovat modul lua-nginx a modul ngx_devel_kit do nové verze, která zde nebude podrobně popsána, stačí spustit následující příkaz s novou verzí,
Stáhni ngx_lua_waf a rozbal
Upravte konfigurační soubor nginx tak, aby se cesta změnila podle aktuální situace
Přidejte ho do http sekce nginx.conf
Jakmile je přidáno,Restartoval jsem nginx a dostal chybu 500Nakonec se zjistilo, že důvodem bylo to, že soubor config.lua měl být upraven na dvou místech:
RulePath a logdir upravte podle své situace!
Test
https://www.itsvse.com/forum.php?id=../etc/passwd
|