Модул nginx lua Taobao разработи външен модул на nginx, който може да вгради езика Lua в конфигурацията на NGINX, така че използването на Lua значително увеличава възможностите на NGINX. NGINX е известен с високата си паралелност, Lua скриптите са леки, а комбинацията от двете е перфектна.
GitHub адрес: https://github.com/loveshell/ngx_lua_waf
###用途:
- Предотвратете уеб атаки като SQL инжекция, локално включване, частично препълване, fuzzing testing, xss, SSRF и др
- Предотвратете изтичане на файлове като SVN/архивиране
- Предотвратете атаки от инструменти за стрес тестване като ApacheBench
- Блокирайте често срещани инструменти за хакване на сканиране, скенери
- Блокиране на необичайни мрежови заявки
- Блокирайте разрешението за изпълнение на PHP в директорията с прикачени файлове на изображението
- Предотвратете качването в webshell
Системна версия, команда lsb_release -a
LSB версия: :core-4.1-amd64:core-4.1-noarch Идентификатор на дистрибутор: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
LuaJIT версия
LuaJIT-2.0.5 е най-новата стабилна версия
Версия на nginx (няма да успее да се инсталира, повече за това по-късно)
Версия NGINX 1.4.4
Първо, създайте инсталационната директория /alidata/server/lj2 със следната команда:
Инсталиране на Lua средата
--Проверете дали инсталацията е успешна
--Създайте меки връзки
Оригинален ред:
Тъй като имаме инсталиран lua под /alidata/server/lj2, изпълнете следната команда,Не изпълнявайте горната команда, изпълнете следващата команда:
Ако не създадете символична връзка, може да възникне следното изключение: грешка при зареждане на споделени библиотеки: libluajit-5.1.so.2: не може да се отвори споделен обектен файл: Няма такъв файл или директория
Изтеглете ngx_devel_kit и го разархивирайте
Начална страница на проекта: https://github.com/simplresty/ngx_devel_kit
Изтеглете ngx_lua и го разархивирайте
Рекомпилиране и инсталиране на nginx
Първо направи резервно копие на предишния ngxin файл
Инсталирал съм nginx преди, изпълнявайки командата nginx -V по следния начин:
Версия на nginx: nginx/1.4.4 построено от GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) Активирана поддръжка на TLS SNI конфигуриране на аргументи: --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_ модул Два каталога на модули
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Изтеглете и изпълни в директорията nginx
--добави променлива на средата, за да каже на nginx къде да намери luajit
Ако не го добавите, nginx ще докладва следната грешка при компилиране:
./configure: грешка: ngx_http_lua_module изисква библиотеката на Lua. Ако се докладва грешка, моля, изпълнете горните две изречения!
компилирам
Грешка: #error е необходим поне nginx 1.6.0, но намерих по-стара версия
Версията на nginx е твърде ниска, минималното изискване е 1.6.0, затова ъпгрейднете версията на nginx,При ъпгрейд на nginx версията можете всъщност да инсталирате lua-nginx-модула и ngx_devel_kit модула в новата версия, което няма да бъде подробно описано тук, просто изпълни следната команда с новата версия,
Изтеглете ngx_lua_waf и го разархивирайте
Модифицирайте конфигурационния файл на nginx, за да промените пътя според реалната ситуация
Добавете го в http секцията на nginx.conf
Веднъж добавен,Рестартирах nginx и получих грешка 500Накрая беше установено, че причината е, че config.lua файлът трябва да бъде модифициран на две места:
RulePath и logdir, които да модифицирате според вашата ситуация!
Тест
https://www.itsvse.com/forum.php?id=../etc/passwd
|