この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 17464|答える: 2

[ウェブ] ngx_lua_wafはlua-nginx-module(openresty)に基づくウェブアプリケーションファイアウォールです。

[リンクをコピー]
掲載地 2016/12/21 16:51:51 | | | |

ngx_lua_waf

ngx_lua_wafは、私がFun Travelに入社したときに開発したngx_luaベースのウェブアプリケーションファイアウォールです。

コードはシンプルで、開発の当初の意図はシンプルさ、高性能、軽量さを追求することです。

現在はオープンソース化されており、MITライセンスに準拠しています。 私たちのフィルタリングルールが入っています。 もし何か提案やFAしたいことがあれば、ぜひ一緒に改善してください。

用途:
            
      
SQLインジェクション、ローカルインクルージョン、部分オーバーフロー、ファジングテスト、xss、SSRFなどのウェブ攻撃を防ぎます
        SVN/バックアップなどのファイル漏洩を防ぐ
        ApacheBenchのようなストレステストツールによる攻撃を防ぐ
        一般的なスキャンハッキングツールやスキャナーをブロックしてください
        異常なネットワークリクエストをブロックする
        画像添付ディレクトリのPHP実行権限をブロックしてください
        ウェブシェルのアップロードを防止する


推奨設置方法:

Luaサポートにはlujit2.1の使用が推奨されています

ngx_luaバージョン0.9.2以降の場合は、通常のフィルター関数をngx.re.findに変更することが推奨されており、マッチング効率は約3倍に向上します。


使用方法:

nginxのインストール経路は /usr/local/nginx/conf/ と仮定されます。

con ディレクトリにngx_lua_wafをダウンロードし、解凍してwafと名付けてください

nginx.confのhttpセクションに追加してください

            

config.lua(通常はwaf/conf/ディレクトリ)でWAFルールディレクトリを設定してください。

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

絶対経路が変われば、それに応じて修正する必要があります

その後、nginxを再起動しました


プロフィール詳細:

           
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
        --ルールストレージディレクトリ
        アタックログ = 「オフ」
        --攻撃情報記録を有効にするにはlogdirを設定する必要があります
        logdir = "/usr/local/nginx/logs/hack/"
        --log storage directoryはユーザー自身が作成し、nginxユーザーの書き込み権限を必要とします
        UrlDeny=「オン」
        --URLアクセスをブロックするかどうか
        リダイレクト="オン"
        --インターセプト後にリダイレクトするかどうか
        クッキーマッチ=「オン」
        ――クッキー攻撃をブロックするかどうか
        postMatch = 「オン」
        --ポストアタックを防ぐかどうか
        whiteModule = 「オン」
        --URLホワイトリストを有効にするかどうか
        black_fileExt={"php","jsp"}
        --アップロードできないファイル接尾辞タイプを入力してください
        ipWhitelist={"127.0.0.1"}
        --IPホワイトリスト、複数のIPはカンマで区切られています
        ipBlocklist={"1.0.0.1"}
        --IPブラックリスト、複数のIPはカンマで区切られています
        CCDeny="on"
        --cc攻撃の傍受を有効にするかどうか(nginx.confのHTTPセグメントを10m制限lua_shared_dict増やす必要がある; )
        CCrate = "100/60"
        --CC攻撃周波数を秒単位で設定しろ。
        --デフォルトでは、同じIPアドレスは1分間に100回まで同じアドレスを要求できます
        html=[[どいてくれ~~]]
        --警告内容、括弧内でカスタマイズ可能
        注意:大文字を区別するために二重引用符は使わないでください

        
ルールが有効かどうか確認してください

展開後、以下のコマンドを試してみてください:        
  
      

注意:デフォルトではマシンはホワイトリストでフィルタリングを行わず、config.luaの設定は自分で調整できます


レンダリングは以下の通りです


ルール更新:

レギュラーのキャッシュ問題を考慮すると、動的ルールはパフォーマンスに影響を与えるため、動的管理には共有メモリ辞書やRedisのようなものは使いません。

ルールの更新は他のサーバーに設置でき、crontabタスクを通じて定期的にダウンロードすることで更新でき、nginxのリロードが有効になります。 NGX LUA WAFの高性能を確保するために。

フィルターログだけを記録し、フィルターをオンにせず、コードの前にチェックのコメントを付けて、フィルターが必要なら、その逆も同様です

いくつかの注意点:

        フィルタリングルールはwafconfで必要に応じて調整でき、各ルールは|でラップまたは分割する必要があります。
        
                ARGSルールはパラメータをフィルターに割り当てます
                URLはGETでフィルタリングされたURLのみを要求するルールです               
                投稿は投稿リクエストでのみフィルタリングルールです               
                ホワイトリストはホワイトリストであり、その中のURLはフィルタリングされていないため一致しています               
                ユーザーエージェントはユーザーエージェントのフィルタリングルールです
        

        取得と投稿のフィルタリングはデフォルトで有効になっています。クッキーフィルタリングを有効にする必要がある場合は、waf.luaのキャンセル部分を編集してください - コメント
        
        ログファイル名の形式は以下の通りです:Web Host Name _sec.log






先の:PowerShellはスクリプトが禁止されているため、直接スクリプトを書く際にファイルを読み込みません
次に:CMD /C と CMD /K が詳細に説明されています
掲載地 2017/11/08 15:23:22 |
はい、学びました
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com