Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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 testing, xss, SSRF и др
        Предотвратете изтичане на файлове като SVN/архивиране
        Предотвратете атаки от инструменти за стрес тестване като ApacheBench
        Блокирайте често срещани инструменти за хакване на сканиране, скенери
        Блокиране на необичайни мрежови заявки
        Блокирайте разрешението за изпълнение на PHP в директорията с прикачени файлове на изображението
        Предотвратете качването в webshell


Препоръчителна инсталация:

Препоръчва се да се използва lujit2.1 за Lua поддръжка

ngx_lua ако е версия 0.9.2 или по-нова, се препоръчва да се смени обичайната функция за филтър на ngx.re.find, като ефективността на съвпадение ще се увеличи около три пъти.


Указания за употреба:

Предполага се, че пътят за инсталация на nginx е: /usr/local/nginx/conf/

Изтегли ngx_lua_waf от директорията на конференцията, разархивирай я и я наименувам 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/"
        --log storage directory, която трябва да бъде създадена лично от потребителя и изисква разрешение за запис от потребителя на nginx
        UrlDeny="включено"
        --дали да блокирам достъпа до URL адреси
        Redirect="on"
        --дали да пренасоча след прихващане
        CookieMatch = "включен"
        --Дали да блокирам атаки с бисквитки
        postMatch = "on"
        --дали да блокирам атака след
        whiteModule = "включен"
        --дали да включа бял списък на URL адреси
        black_fileExt={"php","jsp"}
        --Попълни тип суфикс на файл, който не е позволено да се качва
        ipWhitelist={"127.0.0.1"}
        --IP whitelist, множество IP адреси са разделени със запетаи
        ipBlocklist={"1.0.0.1"}
        --IP черен списък, множество IP адреси са разделени със запетаи
        CCDeny="on"
        --Дали да се активира прихващането на cc атаки (изисква HTTP сегментът на nginx.conf да бъде увеличен lua_shared_dict ограничение от 10m; )
        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 филтрирането са активирани по подразбиране, ако трябва да активирате филтрирането чрез бисквитки, редактирайте waf.lua отмени - коментар
        
        Форматът на името на лог файла е следният: Име на уеб хост _sec.log






Предишен:Powershell не зарежда файлове при директно скриптиране, защото скриптът е забранен
Следващ:cmd /c и cmd /k са обяснени подробно
Публикувано в 8.11.2017 г. 15:23:22 ч. |
Да, научих
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com