ngx_lua_waf
ngx_lua_waf on ngx_lua-pohjainen web-sovelluspalomuuri, joka kehitettiin kun liityin Fun Traveliin.
Koodi on yksinkertaista, ja kehityksen alkuperäinen tarkoitus on käyttää yksinkertaisuutta, suorituskykyä ja kevyttä.
Se on nyt avoimen lähdekoodin ja noudattaa MIT-lisenssiä. Se sisältää suodatussääntömme. Jos sinulla on ehdotuksia tai haluat tehdä niin, voit vapaasti parantaa sitä kanssani.
Käyttötarkoitukset:
Estää verkkohyökkäykset kuten SQL-injektio, paikallinen sisällyttäminen, osittainen ylivuoto, fuzzing-testaus, xss, SSRF jne Estä tiedostovuoto, kuten SVN/varmuuskopiointi Estä hyökkäykset stressitestaustyökaluilta, kuten ApacheBenchiltä, Estä yleisiä skannaushakkerointityökaluja, skannereita Estä epätavalliset verkkopyynnöt Estä kuvaliitehakemiston PHP-suoritusoikeus Estä webshell-lataukset
Suositeltu asennus:
Suositellaan lujit2.1:n käyttöä lua-tuen saamiseksi
ngx_lua jos versio on 0.9.2 tai uudempi, suositellaan vaihtamaan tavallinen suodatinfunktio ngx.re.findiksi, jolloin sovitustehokkuus kasvaa noin kolminkertaiseksi.
Käyttöohjeet:
Nginx-asennuspolun oletetaan olevan: /usr/local/nginx/conf/
Lataa ngx_lua_waf conf-hakemistoon, avaa se ja nimeä se waf
Lisää se nginx.conf:n http-osioon
Määritä WAF-sääntöhakemisto config.lua:ssa (yleensä waf/conf/-hakemistossa)
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
Jos absoluuttinen polku muuttuu, sitä täytyy muokata sen mukaisesti
Sitten käynnistä nginx uudelleen
Profiilin tiedot:
RulePath = "/usr/local/nginx/conf/waf/wafconf/" --sääntötallennushakemisto attacklog = "pois päältä" --Hyökkäystietojen lokituksen mahdollistamiseksi sinun täytyy konfiguroida logdir logdir = "/usr/local/nginx/logs/hack/" --log storage directory, joka käyttäjän täytyy itse luoda ja vaatii nginx-käyttäjän kirjoitusluvan UrlDeny="on" --estääkö URL-käyttö Uudelleenohjaus="päällä" --ohjataanko ohjaukseen interception jälkeen CookieMatch = "päällä" --Estääkö evästehyökkäykset postMatch = "päällä" --estääkö hyökkäyksen jälkeinen hyökkäys whiteModule = "päällä" --pitäisikö URL-valkoisen listan ottaa käyttöön black_fileExt={"php","jsp"} --Täytä tiedostopäätetyyppi, jota ei saa ladata ipWhitelist={"127.0.0.1"} --IP whitelist, useat IP-osoitteet on erotettu pilkuilla ipBlocklist={"1.0.0.1"} --IP-mustalla listalla, useat IP-osoitteet on erotettu pilkuilla CCDeny="on" --Sallitaanko cc-hyökkäysten sieppaus (vaatii, että nginx.conf:n HTTP-segmenttiä pitää kasvattaa lua_shared_dict rajoitus 10 m; ) CCrate = "100/60" --Aseta CC-hyökkäysten taajuus sekunneissa. --Oletuksena sama IP-osoite voi pyytää samaa osoitetta vain 100 kertaa minuutissa html=[[Ole hyvä ja mene pois~~]] --Varoitussisältö, muokattavissa sulkeissa Huomautus: Älä käytä lainausmerkkejä kirjainkoon herkän merkinnän vuoksi
Tarkista, ovatko säännöt voimassa.
Käyttöönoton jälkeen voit kokeilla seuraavaa komentoa:
Huomautus: Oletuksena kone ei suodata valkoista listaa, ja voit säätää config.lua-asetusta itse
Renderöinnit ovat seuraavat:
Sääntöpäivitykset:
Ottaen huomioon säännöllisten välimuistiongelman, dynaamiset säännöt vaikuttavat suorituskykyyn, joten en käytä esimerkiksi jaettuja muistisanakirjoja ja redis-tiedostoja dynaamiseen hallintaan.
Sääntöpäivityksiä voi asentaa muille palvelimille, ja sääntöjä voi päivittää lataamalla niitä säännöllisesti crontab-tehtävän kautta, jolloin nginx-lataus astuu voimaan. Varmistaaksemme NGX LUA WAF:n korkean suorituskyvyn.
Tallenna vain suodatinloki, älä ota suodatusta päälle, lisää vain -- kommentti ennen kooditarkistusta, jos tarvitset suodatusta, päinvastoin
Muutamia huomioita:
Suodatussääntöjä voi säätää tarpeidesi mukaan wafconfissa, ja jokainen sääntö täytyy paketoida tai jakaa |
args-säännöt saavat parametrin suodattamaan URL-osoitteet ovat sääntöjä, jotka pyytävät vain GET:llä suodatettuja URL-linkkejä POST on suodatussääntö vain post-pyynnöissä Valkoinen lista on valkoinen lista, ja sen URL-osoitteet vastaavat niin, ettei sitä suodateta user-agent on suodatussääntö user-agentille
Haku- ja viestisuodatus on oletuksena päällä, jos sinun täytyy ottaa evästesuodatus käyttöön, muokkaa waf.lua:n peruutusosaa – kommentti
Lokitiedoston nimimuoto on seuraava: Web Host Name _sec.log
|