ngx_lua_waf
ngx_lua_waf je požarni zid za spletne aplikacije, ki temelji na ngx_lua, razvit, ko sem se prvič pridružil Fun Travel.
Koda je preprosta, prvotni namen razvoja pa je uporaba preprostosti, visoke zmogljivosti in lahkotnosti.
Zdaj je odprtokodni in skladen z licenco MIT. Vsebuje naša pravila filtriranja. Če imate kakršnekoli predloge ali želite pomagati, jo lahko izboljšate skupaj z mano.
Uporaba:
Preprečite spletne napade, kot so SQL injection, lokalna vključitev, delni overflow, fuzzing testiranje, xss, SSRF itd Preprečite uhajanje datotek, kot je SVN/varnostno kopiranje Preprečite napade z orodji za testiranje stresa, kot je ApacheBench Blokirajte pogosta orodja za hekanje in skenerje Blokirajte nenavadne omrežne zahteve Blokirajte dovoljenje za izvajanje PHP mape za priponke slik Preprečite nalaganje spletne lupine
Priporočena namestitev:
Priporočljivo je uporabljati lujit2.1 za podporo Lua
ngx_lua če gre za različico 0.9.2 ali novejšo, je priporočljivo spremeniti funkcijo običajnega filtra na ngx.re.find, s čimer se učinkovitost ujemanja poveča približno trikrat.
Navodila za uporabo:
Predpostavlja se, da je pot namestitve nginx: /usr/local/nginx/conf/
Prenesi ngx_lua_waf v mapo conf, jo razpakiraj in poimenuj WAF
Dodaj ga v http razdelek nginx.conf
Konfigurirajte mapo pravil WAF v config.lua (običajno v mapi waf/conf/)
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
Če se absolutna pot spremeni, jo je treba ustrezno prilagoditi
Nato ponovno zaženi nginx
Podrobnosti profila:
RulePath = "/usr/local/nginx/conf/waf/wafconf/" --imenik za shranjevanje pravil Attacklog = "izklopljeno" --Za omogočanje beleženja informacij o napadu morate konfigurirati logdir logdir = "/usr/local/nginx/logs/hack/" --dnevnik shranjevalne mape, ki jo mora ustvariti sam uporabnik in zahteva dovoljenje za pisanje uporabnika nginx UrlDeny="on" --ali blokirati dostop do URL-jev Preusmeritev="vklopljeno" --ali preusmeriti po prestrezanju CookieMatch = "vklopljeno" --Ali blokirati napade s piškoti postMatch = "vklopljeno" --ali blokirati napad po objavi whiteModule = "vklopljeno" --ali naj vklopimo dovoljeno listo URL-jev black_fileExt={"php","jsp"} --Vnesite pripono datoteke, ki je ni dovoljeno naložiti ipWhitelist={"127.0.0.1"} --IP seznam dovoljenih naslovov, več IP-jev je ločenih z vejicami ipBlocklist={"1.0.0.1"} --IP črna lista, več IP-jev je ločenih z vejicami CCDeny="vklopljeno" --Ali omogočiti prestrezanje cc napadov (zahteva, da se HTTP segment nginx.conf poveča lua_shared_dict omeji 10m; ) CCrate = "100/60" --Nastavi CC napadno frekvenco v sekundah. --Privzeto lahko isti IP naslov zahteva isti naslov le 100-krat na minuto html=[[Prosim, pojdi stran~~]] --Opozorilna vsebina, prilagodljiva v oklepajih Opomba: Ne uporabljajte dvojnih narekovajev, da bi bili občutljivi na velike in velike črke
Preveri, ali pravila veljajo
Po razporeditvi lahko poskusite naslednji ukaz:
Opomba: Privzeto naprava ne filtrira v beli listi, konfiguracijo config.lua pa lahko prilagodite sami
Upodobitve so naslednje:
Posodobitve pravil:
Glede na problem predpomnjenja običajnih datotek dinamična pravila vplivajo na zmogljivost, zato ne uporabljam stvari, kot so slovarji skupnega pomnilnika in redis, za dinamično upravljanje.
Posodobitve pravil je mogoče namestiti na druge strežnike, pravila pa je mogoče posodabljati z rednim prenosom preko naloge crontab, pri čemer se začne izvajati ponovni nalaganje nginx. Da bi zagotovili visoko zmogljivost NGX LUA WAF.
Snemaj samo filter log, ne vklapljaj filtriranja, samo dodaj -- komentar pred preverjanjem v kodi, če moraš filtrirati, obratno
Nekaj opomb:
Pravila filtriranja lahko prilagodite glede na vaše potrebe pod wafconf, vsako pravilo pa je treba zaviti ali razdeliti z |
ARG pravila pridobijo parameter to filter URL-ji so pravila, ki zahtevajo le URL-je, filtrirane v GET Post je pravilo filtriranja samo pri zahtevah za objave Bela lista je bela lista, URL-ji v njej pa se ujemajo, zato ni filtrirana user-agent je filtriralno pravilo za user-agent
Filtriranje Get in objav sta privzeto omogočena, če moraš omogočiti filtriranje piškotkov, uredi del waf.lua cancel - comment
Format imena dnevnika je naslednji: Ime spletnega gostitelja _sec.log
|