nginx:すべてのドメインの特定のURL(ファイル)へのアクセスを無効にする

nginx:すべてのドメインの特定のURL(ファイル)へのアクセスを無効にする

すべてのドメインで特定のPHPファイルへのアクセスをブロックしたいと思います。私は使用できることを知っています

location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
return 444;
}

たとえば、サーバーブロックにありますが、事前フィルタのようにすべてのドメインに設定したいと思います。

別の考えられる考えは、各ドメイン構成にインクルードを追加し、同じファイルを指してこのルールをロードすることです。しかし、nginxでは可能で、Apacheでも可能だと思います。

ベストアンサー1

簡単な方法はinclude実際に使用することです。これはNGINXに追加する必要はありません。

それ以外の場合は、よく知られている3つのモジュール(ngx_waf、Modsecurity、およびnaxsi)を持つWAFモジュールを見つけることもできます。それぞれの構成は異なりますが、インクルードを使用する代わりに、「1つの場所」でこれを行うことができると思います。

可能であれば、独自のNGINXモジュールを作成できます。しかし、少し過剰かもしれませんが...でも、次のアイデアがあります。

http {
    # applied to all websites
    bad_files xmlrpc.php .env;
    bad_files_status 444;
}

Cに精通している人なら、これらのモジュールを比較的簡単に完了できます。

道に従いincludeます。include特に、構成ツール(ansibleテンプレートベースのNGINX構成など)を使用している場合、各サーバーブロックの冗長性は問題になりません。

おすすめ記事