модуль 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 --with-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 и логдир для изменения в зависимости от вашей ситуации!
Тест
https://www.itsvse.com/forum.php?id=../etc/passwd
|