kusanagi waf onを実行してもnaxsiモジュールが有効化されない

TOP Forums 使い方全般(Fixing KUSANAGI) kusanagi waf onを実行してもnaxsiモジュールが有効化されない

kusanagi waf onを実行してもnaxsiモジュールが有効化されない

Viewing 2 reply threads
  • Author
    Posts
    • #1679
      kenfm0411
      Participant

        お世話になっております。WAF(naxsi)の有効化について、うまくいかない点があり、ご教示いただけますでしょうか。

        ■環境
        KUSANAGI 9.10.1-1.el9
        ConoHa VPS / CentOS Stream 9
        nginx131 単独構成

        ■症状
        kusanagi waf on を実行すると「waf completed.」と表示され、kusanagi waf statusも「waf is on.」を返します。しかし、実際にはnaxsiが機能していないようです。

        具体的には、nginx.confのnaxsiモジュールのload_module行が、コメントアウトされたままです。

        #load_module /opt/kusanagi/nginx131/lib64/modules/ngx_http_naxsi_module.so;

        kusanagi waf off → kusanagi waf on と繰り返しても、この行の # が外れません。また、waf on 実行時に、ドキュメントにある「初回の関連パッケージのインストール」は発生しませんでした(nginx の設定テストと再起動のみ)。

        そのため、攻撃を想定したテストリクエスト(SQLインジェクション風のクエリ)を送っても、ssl_error.logにnaxsiの検知記録(NAXSI_FMT)が出ず、naxsiが適用されていない状態です。

        なお、ユーザー名.wp.incには include naxsi.d/wordpress/*.conf; が既に存在しており、naxsiルールを読む仕込み自体はあるようです。

        ■お伺いしたいこと

        kusanagi waf onでnaxsiモジュール(load_module)を正しく有効化するには、何を確認・実行すればよいでしょうか。関連パッケージのインストールが必要な場合、その手順もご教示いただけますと幸いです。

      • #1680
        hideishi
        Participant

          kenfm0411さん

          kusanagiのnginxはnaxsiを静的モジュールとしてコンパイル済です。
          nginx.confの load_module はコメントアウトする必要はありません。
          また /opt/kusanagi/nginx131/lib64/modules/ngx_http_naxsi_module.so も存在しません。
          歴史的経緯から、まぎらわしい設定コメントが残っていてすみません。
          なお、ドキュメントにある「初回の関連パッケージのインストール」はhttpdの場合に発生します。
          nginxは上記の通り同梱なので発生しません。

          /etc/opt/kusanagi/nginx/conf.d/kusanagi_naxsi_core.conf にコメントがなく
          /etc/opt/kusanagi/nginx/conf.d/プロファイル.wp.incinclude naxsi.d/... にコメントがなければ
          有効化されています。

          naxsiはWordPressやPHPを通る処理にのみ設定しているので、URLやリクエストの内容によっては通らないことが考えられます。
          URLがPHPファイルのパスであるか確認いただけますか。
          WordPressの場合 / などのURLへのアクセスを別のURLにリダイレクトし、その際にクエリストリングが欠落することがあります。

          curl -i -L 不正なクエリのURL のようにHTTPヘッダを表示しつつ、リダイレクトを追うようにすると確認しやすいです。

          または DocumentRoot 直下に <?php のみの hoge.php を作って hoge.php にテストクエリを付加してみてください。

          • This reply was modified 16 hours, 39 minutes ago by hideishi.
        • #1682
          kenfm0411
          Participant

            hideishiさん

            ご丁寧な回答、ありがとうございます。おかげさまで解決いたしました。

            naxsiが静的モジュールとしてコンパイル済みであることを理解しておらず、load_module がコメントアウトされているのを見て「無効」と誤解しておりました。紛らわしいコメントの件、とんでもないです。了解いたしました。

            有効化の条件(kusanagi_naxsi_core.confおよびプロファイル.wp.incのinclude naxsi.d/... にコメントが無いこと)も確認でき、両方とも満たしておりました。

            検知されなかった原因も、ご指摘の通りでした。
            トップページへのテストクエリが、リダイレクトの際に欠落していたためでした。

            教えていただいた通り、DocumentRoot直下に <?phpのみのテスト用ファイルを作成し、そこにテストクエリを付けてアクセスしたところ、ssl_error.logにnaxsiの検知記録が出ることを確認できました。

            当方のテスト方法とコメントの読み違いが原因でした。お手を煩わせてしまい申し訳ありませんでした。
            丁寧にご教示いただき、大変助かりました。ありがとうございました。

        Viewing 2 reply threads
        • You must be logged in to reply to this topic.

        Next article

        フォーラムについて