Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 17464|Odpověď: 2

[Web] ngx_lua_waf je firewall webových aplikací založený na modulu lua-nginx-module (openresty).

[Kopírovat odkaz]
Zveřejněno 21.12.2016 16:51:51 | | | |

ngx_lua_waf

ngx_lua_waf je firewall založený na webových aplikacích založený na ngx_lua, který jsem vyvinul, když jsem se poprvé připojil k Fun Travel.

Kód je jednoduchý a původním záměrem vývoje je použít jednoduchost, vysoký výkon a lehkost.

Nyní je open source a splňuje licenci MIT. Obsahuje naše pravidla filtrování. Pokud máte nějaké návrhy nebo chcete něco udělat, klidně to se mnou vylepšte.

Použití:
            
      
Zabránit webovým útokům, jako je SQL injection, lokální inkluze, částečný přetečení, fuzzing testing, xss, SSRF atd
        Zabránit úniku souborů, jako je SVN/zálohování
        Zabránit útokům pomocí nástrojů pro zátěžové testování, jako je ApacheBench
        Blokujte běžné nástroje pro hackování a skenery
        Blokujte neobvyklé síťové požadavky
        Zablokujte PHP oprávnění k provádění adresáře pro přílohy obrázků
        Zabránit nahrávání webshellu


Doporučená instalace:

Doporučuje se používat lujit2.1 pro podporu Lua

ngx_lua pokud jde o verzi 0.9.2 nebo novější, doporučuje se změnit běžnou filtrační funkci na ngx.re.find, čímž se efektivita párování zvýší přibližně třikrát.


Pokyny k použití:

Předpokládá se, že instalační cesta nginx je: /usr/local/nginx/conf/

Stáhněte si ngx_lua_waf do adresáře conf, rozbalte ho a pojmenujte ho waf

Přidejte ho do http sekce nginx.conf

            

Nakonfigurujte adresář WAF pravidel v config.lua (obvykle v adresáři waf/conf/)

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

Pokud se absolutní cesta změní, je třeba ji podle toho upravit

Pak restartuj nginx


Podrobnosti profilu:

           
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
        --adresář úložiště pravidel
        Attacklog = "vypnuto"
        --Pro povolení zaznamenávání informací o útoku je potřeba nakonfigurovat logdir
        logdir = "/usr/local/nginx/logs/hack/"
        --log storage directory, který musí vytvořit sám uživatel a vyžaduje oprávnění k zápisu uživatele nginx
        UrlDeny="zapnuto"
        --zda zablokovat přístup k URL
        Přesměrování="zapnuto"
        --zda přesměrovat po zachycení
        CookieMatch = "zapnuto"
        --Zda blokovat útoky sušenkami
        postMatch = "zapnuto"
        --zda zablokovat útok po útoku
        whiteModule = "zapnuto"
        --zda zapnout whitelisting URL
        black_fileExt={"php","jsp"}
        --Vyplňte typ přípony souboru, který není povolen nahrát
        ipWhitelist={"127.0.0.1"}
        --IP whitelist, více IP adres je odděleno čárkami
        ipBlocklist={"1.0.0.1"}
        --IP blacklist, více IP adres je odděleno čárkami
        CCDeny="zapnuto"
        --Zda povolit zachycení útoků cc (vyžaduje zvýšení HTTP segmentu nginx.conf lua_shared_dict limit 10m; )
        CCrate = "100/60"
        --Nastavte frekvenci útoku CC za sekundy.
        --Ve výchozím nastavení může stejná IP adresa požádat o stejnou adresu pouze 100krát za minutu
        html=[[Prosím, odejdi~~]]
        --Varovný obsah, přizpůsobitelný v závorkách
        Poznámka: Nepoužívejte dvojité uvozovky, aby byly citlivé na velká a písmena

        
Zkontrolujte, zda platí pravidla

Po nasazení můžete zkusit následující příkaz:        
  
      

Poznámka: Ve výchozím nastavení se zařízení nefiltruje v whitelistu a konfiguraci config.lua si můžete upravit sami


Ztvárnění jsou následující


Aktualizace pravidel:

Vzhledem k problému cachování běžných uživatelů dynamická pravidla ovlivňují výkon, takže pro dynamickou správu nepoužívám například sdílené paměťové slovníky a redis.

Aktualizace pravidel lze umístit na jiné servery a pravidla lze pravidelně stahovat přes úlohu crontab, přičemž nginx reload začne fungovat. Aby byl zajištěn vysoký výkon NGX LUA WAF.

Zaznamenávejte pouze záznam filtrů, nezapínejte filtrování, stačí přidat komentář před kontrolou v kódu, pokud potřebujete filtrovat, naopak

Několik poznámek:

        Filtrační pravidla lze upravit podle vašich potřeb v rámci wafconf a každé pravidlo musí být zabaleno nebo rozděleno pomocí |
        
                Pravidla ARGs získávají parametr pro filtr
                URL jsou pravidla, která požadují pouze URL filtrované v GET               
                Post je filtrační pravidlo pouze u požadavků na příspěvky               
                Whitelist je whitelist a URL v něm odpovídají, takže není filtrován               
                user-agent je filtrační pravidlo pro user-agent
        

        Filtrování Get a příspěvků jsou ve výchozím nastavení povoleny, pokud potřebujete filtrování cookies povolit, upravte část waf.lua cancel - comment
        
        Formát názvu log souboru je následující: Web Host Name _sec.log






Předchozí:PowerShell nedokáže načíst soubory při přímém skriptování, protože je skript zakázán
Další:Cmd /c a cmd /k jsou podrobně vysvětleny
Zveřejněno 08.11.2017 15:23:22 |
Ano, naučil jsem se
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com