Модуль nginx lua Taobao розробив сторонній модуль nginx, який може інтегрувати мову Lua у конфігурацію NGINX, що значно підвищує можливості NGINX. NGINX відомий своєю високою паралельністю, скрипти Lua легкі, і їхнє поєднання ідеальне.
Адреса GitHub: https://github.com/loveshell/ngx_lua_waf
###用途:
- Запобігайте веб-атакам, таким як SQL-ін'єкція, локальне включення, часткове переповнення, тестування fuzzing, xss, SSRF тощо
- Запобігайте виточенню файлів, таких як SVN/резервне копіювання
- Запобігайте атакам за допомогою інструментів для стрес-тестування, таких як ApacheBench
- Блокуйте поширені інструменти хакерування сканування, сканери
- Блокування незвичних мережевих запитів
- Заблокуйте дозвіл на виконання PHP каталогу вкладень зображень
- Запобігання завантаженню через вебшелл
Версія системи, команда 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: error: 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
|