Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 17464|Ответ: 2

[Веб] ngx_lua_waf — это веб-файрвол на базе lua-nginx-module (openresty).

[Скопировать ссылку]
Опубликовано 21.12.2016 16:51:51 | | | |

ngx_lua_waf

ngx_lua_waf — это веб-файрвол на базе ngx_lua, разработанный, когда я впервые присоединился к Fun Travel.

Код прост, а изначальная цель разработки — использовать простоту, высокую производительность и лёгкость.

В настоящее время он имеет открытый исходный код и соответствует лицензии MIT. В нём содержатся наши правила фильтрации. Если у вас есть предложения или вы хотите пообщаться, пожалуйста, не стесняйтесь улучшить это вместе со мной.

Применение:
            
      
Предотвращайте веб-атаки, такие как SQL-инъекция, локальное включение, частичный переполнение, тестирование fuzzing, xss, SSRF и т.д
        Предотвращайте утечку файлов, таких как SVN/резервное копирование
        Предотвращайте атаки с помощью инструментов стресс-тестирования, таких как ApacheBench
        Блокируйте распространённые инструменты взлома сканеров и сканеров
        Блокировать необычные сетевые запросы
        Заблокировать разрешение на выполнение PHP в каталоге вложений изображений
        Предотвращение загрузок в веб-шелл


Рекомендуемая установка:

Рекомендуется использовать lujit2.1 для поддержки Lua.

ngx_lua, если это версия 0.9.2 или выше, рекомендуется заменить обычную функцию фильтра на ngx.re.find, и эффективность сопоставления увеличится примерно в три раза.


Инструкции по использованию:

Путь установки nginx предполагается: /usr/local/nginx/conf/

Скачайте ngx_lua_waf в каталог conf, распаковали его и назвали waf

Добавьте его в раздел http на nginx.conf

            

Настройте каталог правил WAF в config.lua (обычно в каталоге waf/conf/)

        RulePath = "/usr/local/nginx/conf/waf/wafconf/"

Если абсолютный путь меняется, его необходимо соответствующим образом изменить

Затем перезапустить nginx


Детали профиля:

           
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
        --каталог хранения правил
        attacklog = «выключено»
        --Чтобы включить логирование информации о атаках, нужно настроить logdir
        logdir = "/usr/local/nginx/logs/hack/"
        --каталог хранения журналов, который должен быть создан самим пользователем и требует разрешения на запись пользователя nginx
        urlDeny="on"
        --блокировать доступ к URL
        Перенаправление="включено"
        --перенаправлять после перехвата
        CookieMatch = «включено»
        --Стоит ли блокировать атаки с печеньем
        postMatch = «on»
        --стоит ли блокировать пост-атаку
        whiteModule = «включено»
        --включить ли белый список URL
        black_fileExt={"php","jsp"}
        --Заполните тип суффикса файла, который нельзя загружать
        ipWhitelist={"127.0.0.1"}
        --IP белый список, несколько IP разделены запятыми
        ipBlocklist={"1.0.0.1"}
        --IP чёрный список, несколько IP-адресов разделены запятыми
        CCDeny="включено"
        --Включать ли перехват CC-атак (требуется, чтобы сегмент HTTP nginx.conf был увеличен lua_shared_dict ограничение на 10 м; )
        CCrate = «100/60»
        --Задайте частоту атаки CC за секунды.
        --По умолчанию один и тот же IP-адрес может запрашивать один и тот же адрес только 100 раз в минуту
        html=[[Пожалуйста, уйди~~]]
        --Предупреждающее содержание, настраиваемое в скобках
        Примечание: не используйте двойные кавычки для чувствительности к регистру

        
Проверьте, действуют ли правила

После развертывания вы можете попробовать следующую команду:        
  
      

Примечание: по умолчанию машина не фильтрует в белом списке, и вы можете самостоятельно настроить конфигурацию config.lua


Визуализации следующие


Обновления правил:

Учитывая проблему кэширования постоянных пользователей, динамические правила влияют на производительность, поэтому я не использую такие вещи, как словари общей памяти и redis для динамического управления.

Обновления правил можно размещать на других серверах, а правила — регулярно скачивать через задачу crontab, после чего вступит в силу перезагрузка nginx. Обеспечить высокую производительность NGX LUA WAF.

Записывайте только журнал фильтров, не включайте фильтрацию, просто добавляйте комментарий перед чеком в коде, если нужно фильтровать, наоборот

Некоторые заметки:

        Правила фильтрации можно подстраивать под ваши нужды в wafconf, и каждое правило должно быть упаковано или разделено |
        
                Правила ARGS получают параметры для фильтрации
                URL — это правила, которые запрашивают только те URL, отфильтрованные в GET               
                Post — это правило фильтрации только в запросах постов               
                Белый список — это белый список, и URL-адреса в нём совпадают, чтобы он не фильтровался.               
                user-agent — это правило фильтрации для user-agent
        

        Фильтрация Get и Post по умолчанию включены, если нужно включить фильтрацию cookie, отредактируйте waf.lua отмену — комментарий
        
        Формат имени файла журнала следующий: Имя веб-хоста _sec.log






Предыдущий:Powershell не загружает файлы при написании скриптов напрямую, потому что скрипт запрещён
Следующий:cmd /c и cmd /k подробно объяснены
Опубликовано 08.11.2017 15:23:22 |
Да, я узнал
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com