Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 17464|Yanıt: 2

[Web] ngx_lua_waf, lua-nginx-modülü (openresty) tabanlı bir web uygulama güvenlik duvarıdır.

[Bağlantıyı kopyala]
Yayınlandı 21.12.2016 16:51:51 | | | |

ngx_lua_waf

ngx_lua_waf, Fun Travel'a ilk katıldığımda geliştirilen ngx_lua tabanlı bir web uygulama güvenlik duvarı.

Kod basit ve geliştirmenin asıl amacı sadelik, yüksek performans ve hafif bir özellik kullanmaktır.

Artık açık kaynaklıdır ve MIT lisansına uygundur. Filtreleme kurallarımızı içeriyor. Herhangi bir öneriniz varsa veya fa'yı yapmak isterseniz, lütfen benimle birlikte geliştirmekten çekinmeyin.

Kullanımlar:
            
      
SQL enjeksiyonu, yerel dahil etme, kısmi taşma, fuzzing testi, xss, SSRF gibi web saldırılarını önleyin
        SVN/yedekleme gibi dosya sızıntılarını önlemek
        ApacheBench gibi stres testi araçlarının saldırılarını önleyin
        Yaygın tarama hackleme araçları, tarayıcıları engelle
        Alışılmadık ağ taleplerini engelle
        Resim ek dizininin PHP yürütme iznini engelle
        Webshell yüklemelerini önleyin


Önerilen Kurulum:

Lua desteği için lujit2.1 kullanılması önerilir

ngx_lua 0.9.2 veya daha yeni bir versiyonsa, normal filtre fonksiyonunun ngx.re.find olarak değiştirilmesi önerilir ve eşleştirme verimliliği yaklaşık üç kat artırılır.


Kullanım talimatları:

nginx kurulum yolu şu şekilde varsayılır: /usr/local/nginx/conf/

ngx_lua_waf konferması dizinine indirin, fermuarını açın ve ona waf adını verin

nginx.conf'un http bölümüne ekle

            

config.lua'da (genellikle waf/conf/ dizininde) WAF kural dizinini yapılandırın.

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

Mutlak yol değişirse, buna göre değiştirilmelidir

Sonra nginx'i yeniden başlat


Profil Detayları:

           
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
        --rule depolama dizini
        attacklog = "kapalı"
        --Saldırı bilgi kaydını etkinleştirmek için logdir yapılandırmanız gerekir
        logdir = "/usr/local/nginx/logs/hack/"
        --log depolama dizini, kullanıcının kendisi tarafından oluşturulması gerekir ve nginx kullanıcısının yazma iznini gerektirir
        UrlDeny="on"
        --URL erişimini engelleyip engellemek
        Yönlendirme="açık"
        --müdahaleden sonra yönlendirilip yönlendirilmeyeceği
        CookieMatch = "açık"
        --Kurabiye saldırılarını engelleyip engellemek mi
        postMatch = "on"
        --saldırı sonrası bir engel olup olmadığı
        whiteModule = "açık"
        --URL beyaz listesini açıp açmamalı mıyız
        black_fileExt={"php","jsp"}
        --Yüklenmesine izin verilmeyen dosya eki türünü doldurun
        ipWhitelist={"127.0.0.1"}
        --IP beyaz liste, birden fazla IP virgülle ayrılır
        ipBlocklist={"1.0.0.1"}
        --IP kara liste, birden fazla IP virgülle ayrılır
        CCDeny="on"
        --CC saldırılarının engellenmesinin mümkün olup olmadığı (nginx.conf'un HTTP segmentinin 10m sınırı lua_shared_dict artırılması gerekir; )
        CCrate = "100/60"
        --CC saldırı frekansını saniyeler içinde ayarlayın.
        --Varsayılan olarak, aynı IP adresi aynı adresi dakikada sadece 100 kez talep edebilir
        html=[[Lütfen git~~]]
        --Uyarı içeriği, parantez içinde özelleştirilebilir
        Not: Çift tırnak işareti kullanarak büyük harf hassasiyeti için kullanmayın

        
Kuralların yürürlüğünü kontrol edin

Konuşlandırmadan sonra aşağıdaki komutu deneyebilirsiniz:        
  
      

Not: Varsayılan olarak, makine beyaz listede filtre yapmaz ve config.lua yapılandırmasını kendiniz ayarlayabilirsiniz


Çizimler aşağıdaki gibidir


Kural Güncellemeleri:

Düzenli bireylerin önbellek sorununu göz önünde bulundurursak, dinamik kurallar performansı etkiler, bu yüzden dinamik yönetim için paylaşılan bellek sözlükleri ve redis gibi şeyleri kullanmıyorum.

Kural güncellemeleri diğer sunuculara yerleştirilebilir ve kurallar düzenli olarak crontab görevi üzerinden indirilerek güncellenebilir, böylece nginx yeniden yükleme devreye girer. NGX LUA WAF'ın yüksek performansını sağlamak için.

Sadece filtre kaydını kaydet, filtrelemeyi açma, sadece kodun önüne bir -- yorum ekleyin, filtreleme gerekirse tam tersi

Bazı notlar:

        Filtreleme kuralları wafconf altında ihtiyaçlarınıza göre ayarlanabilir ve her kural |
        
                args kuralları parametreyi filtreye alır
                URL'ler, yalnızca GET ile filtrelenen URL'leri talep eden kurallardır               
                POST, sadece gönderi isteklerinde bir filtreleme kuralıdır               
                Beyaz liste bir beyaz listedir ve içindeki URL'ler eşleşiyor, böylece filtrelenmez               
                user-agent, user-agent için bir filtreleme kuralıdır
        

        Get ve post filtreleme varsayılan olarak etkin, eğer cookie filtrelemeyi etkinleştirmeniz gerekiyorsa, waf.lua iptal kısmını düzenleyin - yorum
        
        Log dosyası adı formatı şöyledir: Web Host Adı _sec.log






Önceki:PowerShell, doğrudan betik yazarken dosyaları yükleyemez çünkü betik yasaktır
Önümüzdeki:cmd /c ve cmd /k ayrıntılı şekilde açıklanmıştır
Yayınlandı 8.11.2017 15:23:22 |
Evet, öğrendim
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com