Moduł lua nginx Taobao opracował moduł firm trzecich nginx, który może osadzić język Lua w konfiguracji NGINX, dzięki czemu użycie LUA znacznie zwiększa możliwości nginx. NGINX jest znany z wysokiej współbieżności, skrypty LUA są lekkie, a połączenie obu jest idealne.
Adres GitHub: https://github.com/loveshell/ngx_lua_waf
###用途:
- Zapobiegaj atakom webowym takim jak wtrysk SQL, lokalne włączenie, częściowe przepełnienie, testy fuzzing, xss, SSRF itd
- Zapobieganie wycieku plików, takich jak SVN/kopia zapasowa
- Zapobiegaj atakom przez narzędzia do testów obciążeniowych, takie jak ApacheBench
- Blokuj popularne narzędzia do skanowania i skanery
- Blokuj nietypowe żądania sieciowe
- Zablokuj uprawnienia do wykonywania PHP w katalogu załącznika obrazów
- Zapobieganie przesyłaniu webshellu
Wersja systemowa, polecenie lsb_release -a
Wersja LSB: :core-4.1-amd64:core-4.1-noarch ID dystrybutora: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
Wersja LuaJIT
LuaJIT-2.0.5 to najnowsza stabilna wersja
Wersja nginx (nie uda się zainstalować, o tym później)
Wersja nginx 1.4.4
Najpierw utworz katalog instalacyjny /alidata/server/lj2 za pomocą następującego polecenia:
Zainstaluj środowisko Lua
--Sprawdź, czy instalacja się powiodła
--Tworzenie miękkich linków
Oryginalna kolejność:
Ponieważ mamy zainstalowane lua w /alidata/server/lj2, wykonaj następujące polecenie,Nie wykonuj powyższego polecenia, lecz następującą komendę:
Jeśli nie utworzysz symlinku, może wystąpić następujący wyjątek: błąd podczas ładowania współdzielonych bibliotek: libluajit-5.1.so.2: nie można otworzyć pliku obiektu współdzielonego: Brak takiego pliku ani katalogu
Pobierz ngx_devel_kit i rozpakuj
Strona główna projektu: https://github.com/simplresty/ngx_devel_kit
Pobierz ngx_lua i rozpakuj
Przekompiluj i zainstaluj nginx
Najpierw zrób kopię zapasową poprzedniego pliku ngxin
Instalowałem już wcześniej nginx, wykonując polecenie nginx -V w następujący sposób:
Wersja NGINX: NGinx/1.4.4 Zbudowany przez GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) Wsparcie TLS SNI włączone konfiguruj argumenty: --user=www --group=www --prefiks=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_ moduł Dwa katalogi modułów
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Pobierz i wykonaj w katalogu nginx
--Dodaj zmienną środowiskową, aby powiedzieć nginx, gdzie znaleźć Luajita
Jeśli go nie dodasz, nginx zgłosi następujący błąd podczas kompilacji:
./configure: error: ngx_http_lua_module wymaga biblioteki Lua. Jeśli zostanie zgłoszony błąd, wykonaj powyższe dwa zdania!
kompilować
Błąd: #error wymagana jest przynajmniej nginx 1.6.0, ale znaleziono starszą wersję
Wersja nginx jest zbyt niska, minimalne wymagania to 1.6.0, więc zaktualizuj wersję nginx,Podczas aktualizacji wersji nginx możesz faktycznie zainstalować moduł lua-nginx i ngx_devel_kit w nowej wersji, której tutaj nie będzie szczegółowo opisano, po prostu wykonaj następujące polecenie w nowej wersji,
Pobierz ngx_lua_waf i rozpakuj
Zmodyfikuj plik konfiguracyjny nginx, aby zmienić ścieżkę zgodnie z aktualną sytuacją
Dodaj go do sekcji http na nginx.conf
Po dodaniu,Restartowałem nginx i pojawił się błąd 500Ostatecznie okazało się, że powodem było to, iż plik config.lua miał zostać zmodyfikowany w dwóch miejscach:
RulePath i logdir do modyfikacji według własnej sytuacji!
Test
https://www.itsvse.com/forum.php?id=../etc/passwd
|