ngx_lua_waf
ngx_lua_waf yra ngx_lua pagrindu sukurta žiniatinklio programų ugniasienė, sukurta, kai pirmą kartą prisijungiau prie "Fun Travel".
Kodas yra paprastas, o pradinis kūrimo tikslas yra naudoti paprastumą, aukštą našumą ir lengvumą.
Dabar jis yra atviro kodo ir atitinka MIT licenciją. Jame pateikiamos mūsų filtravimo taisyklės. Jei turite kokių nors pasiūlymų ar norite fa, nedvejodami patobulinkite jį su manimi.
Naudojimas:
Užkirskite kelią žiniatinklio atakoms, tokioms kaip SQL injekcija, vietinis įtraukimas, dalinis perpildymas, fuzzing testavimas, xss, SSRF ir kt Užkirskite kelią failų nutekėjimui, pvz., SVN / atsarginei kopijai Užkirskite kelią atakoms naudojant testavimo nepalankiausiomis sąlygomis įrankius, tokius kaip "ApacheBench". Blokuoti įprastus nuskaitymo įsilaužimo įrankius, skaitytuvus Blokuoti neįprastas tinklo užklausas Užblokuokite vaizdo priedų katalogo PHP vykdymo leidimą Neleisti įkelti žiniatinklio apvalkalo
Rekomenduojamas montavimas:
Lua palaikymui rekomenduojama naudoti lujit2.1
ngx_lua jei tai yra 0.9.2 ar naujesnė versija, rekomenduojama pakeisti įprastą filtro funkciją į ngx.re.find, o atitikimo efektyvumas padidės maždaug tris kartus.
Naudojimo instrukcijos:
Manoma, kad nginx diegimo kelias yra: /usr/local/nginx/conf/
Atsisiųskite ngx_lua_waf į conf katalogą ir išpakuokite jį ir pavadinkite jį waf
Pridėkite jį į nginx.conf http skyrių
Sukonfigūruokite WAF taisyklių katalogą config.lua (paprastai waf/conf/ kataloge)
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
Jei absoliutus kelias pasikeičia, jį reikia atitinkamai modifikuoti
Tada iš naujo paleiskite nginx
Profilio informacija:
RulePath = "/usr/local/nginx/conf/waf/wafconf/" --rule saugyklos katalogas attacklog = "išjungta" --Norėdami įjungti atakos informacijos registravimą, turite sukonfigūruoti logdir logdir = "/usr/local/nginx/logs/hack/" --log saugyklos katalogas, kurį turi sukurti pats vartotojas ir kuriam reikalingas nginx vartotojo rašymo leidimas UrlDeny="įjungta" --ar blokuoti URL prieigą Redirect="on" --ar peradresuoti po perėmimo CookieMatch = "įjungta" --Ar blokuoti slapukų atakas postMatch = "įjungta" --Ar blokuoti po atakos whiteModule = "įjungta" --ar įjungti URL baltąjį sąrašą black_fileExt={"php","jsp"} --Užpildykite failo priesagos tipą, kurio neleidžiama įkelti ipWhitelist={"127.0.0.1"} --IP baltasis sąrašas, keli IP yra atskirti kableliais ipBlocklist={"1.0.0.1"} --IP juodasis sąrašas, keli IP atskirti kableliais CCDeny="įjungta" --Ar įjungti cc atakų perėmimą (reikalaujama, kad nginx.conf HTTP segmentas būtų padidintas lua_shared_dict 10 m ribos; ) CCrate = "100/60" - Nustatykite CC atakos dažnį sekundėmis. --Pagal numatytuosius nustatymus tas pats IP adresas gali prašyti to paties adreso tik 100 kartų per minutę html=[[Prašome išeiti~~]] --Įspėjamasis turinys, pritaikomas skliausteliuose Pastaba: Nenaudokite dvigubų kabučių, kad būtų skiriamos didžiosios ir mažosios raidės
Patikrinkite, ar taisyklės galioja
Po diegimo galite išbandyti šią komandą:
Pastaba: Pagal numatytuosius nustatymus įrenginys nefiltruoja baltajame sąraše, o config.lua konfigūraciją galite koreguoti patys
Atvaizdai yra tokie:
Taisyklių atnaujinimai:
Atsižvelgiant į talpyklos problemą reguliariai, dinaminės taisyklės turi įtakos našumui, todėl aš nenaudoju tokių dalykų kaip bendros atminties žodynai ir redis dinaminiam valdymui.
Taisyklių naujinimus galima patalpinti kituose serveriuose, o taisykles galima atnaujinti reguliariai atsisiunčiant jas naudojant crontab užduotį, o nginx perkrovimas įsigalios. Siekiant užtikrinti aukštą NGX LUA WAF.
Įrašykite tik filtro žurnalą, neįjunkite filtravimo, tiesiog pridėkite komentarą prieš kodą, jei reikia filtruoti, atvirkščiai
Keletas pastabų:
Filtravimo taisykles galima koreguoti pagal jūsų poreikius wafconf, o kiekvieną taisyklę reikia apvynioti arba padalinti su |
argumentų taisyklės gauti parametrą filtrui URL yra taisyklės, kurios prašo tik URL, filtruojamų GET Skelbti yra filtravimo taisyklė tik skelbimo užklausose Baltasis sąrašas yra baltasis sąrašas, o jame esantys URL sutampa, kad jis nebūtų filtruojamas vartotojo agentas yra vartotojo agento filtravimo taisyklė
Gauti ir įrašo filtravimas įjungtas pagal numatytuosius nustatymus, jei reikia įjungti slapukų filtravimą, redaguokite waf.lua atšaukti dalį - komentaras
Žurnalo failo vardo formatas yra toks: Žiniatinklio pagrindinio kompiuterio vardas _sec.log
|