ngx_lua_waf
ngx_lua_waf on ngx_lua-põhine veebirakenduse tulemüür, mis töötati välja siis, kui liitusin Fun Traveliga.
Kood on lihtne ning arenduse algne eesmärk on kasutada lihtsust, kõrget jõudlust ja kerget kaalu.
See on nüüd avatud lähtekoodiga ja vastab MIT litsentsile. See sisaldab meie filtreerimisreegleid. Kui sul on soovitusi või tahad fa-d teha, siis palun paranda seda minuga koos.
Kasutusalad:
Ära hoida veebirünnakuid nagu SQL süstimine, lokaalne kaasamine, osaline ületäitmine, fuzzing testimine, xss, SSRF jne Väldi faililekkeid, nagu SVN/varundus Ära hoida rünnakuid stressitestimise tööriistadelt nagu ApacheBench Blokeeri levinud skaneerivad häkkimistööriistad, skannerid Blokeeri ebatavalised võrgupäringud Blokeeri pildimanuse kataloogi PHP täitmisõigus Takista webshelli üleslaadimisi
Soovitatav paigaldus:
Lua toe jaoks soovitatakse kasutada lujit2.1
ngx_lua kui tegemist on versiooniga 0.9.2 või uuem, soovitatakse muuta tavaline filtri funktsioon ngx.re.find väärtuseks ning vastavuse efektiivsus suureneb umbes kolm korda.
Kasutusjuhised:
Eeldatakse, et nginx paigaldustee on: /usr/local/nginx/conf/
Laadi ngx_lua_waf alla konverentsi kataloogi, avada see ja nimeta see WAF-iks
Lisa see nginx.conf http sektsiooni
Seadista WAF reeglite kataloog config.lua-s (tavaliselt waf/conf/ kataloogis)
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
Kui absoluutne tee muutub, tuleb seda vastavalt muuta
Seejärel taaskäivita nginx
Profiili andmed:
RulePath = "/usr/local/nginx/conf/waf/wafconf/" --reeglite salvestuskataloog attacklog = "väljas" --Rünnakuinfo logimise lubamiseks tuleb seadistada logdir logdir = "/usr/local/nginx/logs/hack/" --log storage kataloog, mille kasutaja peab ise looma ja mis nõuab nginx kasutaja kirjutamisõigust UrlDeny="on" --kas blokeerida URL-i ligipääs Suunamine="on" --kas suunata ümber pärast pealtkuulamist CookieMatch = "sees" --Kas blokeerida küpsiste rünnakuid postMatch = "sees" --kas blokeerida postrünnak whiteModule = "sees" --kas lülitada sisse URL-i valge listi black_fileExt={"php","jsp"} --Täida faili sufiksi tüüp, mida ei tohi üles laadida ipWhitelist={"127.0.0.1"} --IP valge nimekiri, mitu IP-aadressi on eraldatud komadega ipBlocklist={"1.0.0.1"} --IP mustas nimekirjas, mitu IP-aadressi on eraldatud komadega CCDeny="on" --Kas lubada cc-rünnakute pealtkuulamist (nõuab nginx.conf HTTP segmendi suurendamist lua_shared_dict piirata 10 m; ) CCrate = "100/60" --Sea CC rünnakusagedus sekunditega. --Vaikimisi saab sama IP-aadress sama aadressi küsida ainult 100 korda minutis html=[[Palun mine ära~~]] --Hoiatussisu, kohandatav sulgudes Märkus: Ära kasuta topeltjutumärke, et olla täpitundlik
Kontrolli, kas reeglid kehtivad
Pärast paigaldamist võid proovida järgmist käsku:
Märkus: vaikimisi ei filtreeri masin valges nimekirjas ja config.lua konfiguratsiooni saad ise muuta
Renderdused on järgmised:
Reeglite uuendused:
Arvestades tavaliste vahemällu salvestamise probleemi, mõjutavad dünaamilised reeglid jõudlust, seega ma ei kasuta dünaamilise halduse jaoks jagatud mälu sõnastikke ega rediseid.
Reeglite uuendusi saab paigutada teistesse serveritesse ning reegleid saab regulaarselt alla laadida crontab ülesande kaudu, ning nginx taaslaadimine hakkab kehtima. Et tagada NGX LUA WAF kõrge jõudlus.
Salvesta ainult filtri logi, ära lülita filtreerimist sisse, lihtsalt lisa -- kommentaar enne koodi kontrolli, kui vajad filtreerimist, vastupidi
Mõned märkused:
Filtreerimisreegleid saab wafconf'i all vastavalt vajadustele kohandada ning iga reegel tuleb pakkida või jagada |
args-reeglid saavad parameetri filtreerimiseks URL-id on reeglid, mis taotlevad ainult GET-is filtreeritud URL-e POST on filtreerimisreegel ainult postituste päringutes Valgenimekiri on valgenimekiri ning selle URL-id sobivad nii, et seda ei filtreerita user-agent on filtereerimisreegel kasutaja-agendi jaoks
Get ja Post'i filtreerimine on vaikimisi lubatud, kui vajad küpsiste filtreerimist, muuda waf.lua tühistamise osa - kommentaar
Logifaili nime formaat on järgmine: Veebihosti nimi _sec.log
|