Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 17464|Odpowiedź: 2

[Web] ngx_lua_waf to zapora sieciowa oparta na lua-nginx-module (openresty).

[Skopiuj link]
Opublikowano 21.12.2016 16:51:51 | | | |

ngx_lua_waf

ngx_lua_waf to zapora aplikacji sieciowych oparta na ngx_lua, opracowana, gdy dołączyłem do Fun Travel.

Kod jest prosty, a pierwotnym celem rozwoju jest zastosowanie prostoty, wysokiej wydajności i lekkiej wagi.

Obecnie jest open source i spełnia wymagania licencji MIT. Zawiera nasze zasady filtrowania. Jeśli macie jakieś sugestie lub chcecie się z tym zdobyć, śmiało poprawcie to razem ze mną.

Zastosowania:
            
      
Zapobiegaj atakom webowym takim jak wtrysk SQL, lokalne włączenie, częściowe przepełnienie, testy fuzzing, xss, SSRF itd
        Zapobieganie wycieku plików, takich jak SVN/kopia zapasowa
        Zapobiegaj atakom przez narzędzia do testów obciążeniowych, takie jak ApacheBench
        Blokuj popularne narzędzia do skanowania i skanery
        Blokuj nietypowe żądania sieciowe
        Zablokuj uprawnienia do wykonywania PHP w katalogu załącznika obrazów
        Zapobieganie przesyłaniu webshellu


Zalecana instalacja:

Zaleca się używanie lujit2.1 do wsparcia dla Lua

ngx_lua jeśli jest to wersja 0.9.2 lub nowsza, zaleca się zmianę regularnej funkcji filtra na ngx.re.find, a efektywność dopasowania wzrośnie około trzykrotnie.


Instrukcje użycia:

Zakłada się, że ścieżka instalacji nginx to: /usr/local/nginx/conf/

Pobierz ngx_lua_waf do katalogu conf, rozpakuj go i nazwij WAF

Dodaj go do sekcji http na nginx.conf

            

Konfiguruj katalog reguł WAF w config.lua (zwykle w katalogu waf/conf/)

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

Jeśli ścieżka absolutna się zmieni, trzeba ją odpowiednio zmodyfikować

Następnie zrestartuj nginx


Szczegóły profilu:

           
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
        --katalog przechowywania reguł
        Attacklog = "wyłączone"
        --Aby umożliwić rejestrowanie informacji o ataku, musisz skonfigurować logdir
        logdir = "/usr/local/nginx/logs/hack/"
        --katalog przechowywania logów, który musi być utworzony przez samego użytkownika i wymaga uprawnień do zapisu użytkownika nginx
        UrlDeny="on"
        --czy zablokować dostęp do adresu URL
        Przekierowanie="włączone"
        --czy przekierować po przechwyceniu
        CookieMatch = "włączony"
        --Czy blokować ataki ciasteczek
        postMatch = "włączony"
        --czy zablokować atak po postprodukcji
        whiteModule = "on"
        --czy włączyć whitelist URL
        black_fileExt={"php","jsp"}
        --Wypełnij typ przyrostka pliku, który nie może być przesyłany
        ipWhitelist={"127.0.0.1"}
        --biała lista IP, wiele IP jest oddzielonych przecinkami
        ipBlocklist={"1.0.0.1"}
        --lista IP, wiele IP jest rozdzielonych przecinkami
        CCDeny="włączone"
        --Czy umożliwić przechwytywanie ataków cc (wymaga zwiększenia segmentu HTTP nginx.conf lua_shared_dict ograniczenia 10m; )
        CCrate = "100/60"
        --Ustaw częstotliwość ataku CC na sekundy.
        --Domyślnie ten sam adres IP może żądać tego samego adresu tylko 100 razy na minutę
        html=[[Proszę, odejdź~~]]
        --Ostrzeżenia o treści, które można dostosować w nawiasie
        Uwaga: Nie używaj podwójnych cudzysłowów, aby były rozróżniane na wielka literę

        
Sprawdź, czy zasady obowiązują

Po wdrożeniu możesz spróbować wykonać następującą komendę:        
  
      

Uwaga: Domyślnie komputer nie filtruje na białej liście, a konfigurację config.lua można samodzielnie dostosować


Przedstawienia przedstawiają się następująco


Aktualizacje zasad:

Biorąc pod uwagę problem buforowania regularnych rzeczy, dynamiczne reguły wpływają na wydajność, więc nie używam takich rzeczy jak słowniki pamięci współdzielonej czy redis do zarządzania dynamiczną.

Aktualizacje reguł można umieszczać na innych serwerach, a zasady można regularnie pobierać za pomocą zadania crontab, a wchodzi w życie przeładowanie nginx. Aby zapewnić wysoką wydajność NGX LUA WAF.

Zapisuj tylko log filtrów, nie włączaj filtrowania, po prostu dodaj -- komentarz przed checkiem w kodzie, jeśli musisz filtrować, odwrotnie

Kilka uwag:

        Zasady filtrowania można dostosować do potrzeb w ramach wafconf, a każdą regułę trzeba opakować lub podzielić z |
        
                Reguły ARGs pobierają parametr do filtrowania
                URL-e to reguły, które żądają tylko adresów filtrowanych w GET               
                post jest regułą filtrowania tylko w postowych żądaniach               
                Biała lista jest białą listą, a adresy URL w niej pasują tak, że nie jest filtrowana               
                user-agent to reguła filtrująca dla user-agent
        

        Filtrowanie Get i post jest domyślnie włączone, jeśli musisz włączyć filtrowanie ciasteczek, edytuj część waf.lua cancel - comment
        
        Format nazwy pliku loga jest następujący: Nazwa hosta sieciowego _sec.log






Poprzedni:PowerShell nie ładuje plików podczas bezpośredniego skryptowania, ponieważ skrypt jest zabroniony
Następny:Szczegółowo wyjaśniono cmd /c i cmd /k
Opublikowano 08.11.2017 15:23:22 |
Tak, nauczyłem się
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com