ngx_http_limit_req_moduleで一時的ではなく、永続的に拒否はできる?

2024年6月23日

ngx_http_limit_req_moduleは主に一時的なリクエスト制限に焦点を当てており、永続的なIPアドレスのブロックはサポートしていません。このモジュールは、制限をかけることでリクエストの上限を設定し、一時的に拒否することが目的です。

永続的なIPアドレスのブロックを実現するためには、Nginxに組み込まれているngx_http_access_modulengx_http_geo_moduleなどを使用するか、ファイアウォールやセキュリティグループなどの外部のツールや仕組みを利用する必要があります。

以下は、ngx_http_access_moduleを使用して特定のIPアドレスを永続的に拒否する例です。

nginx
http {
    server {
        listen 80;
        server_name example.com;

        deny 192.168.1.1;
        deny 10.0.0.1;

        # 許可されたIPアドレス以外の全てのアクセスを拒否
        allow all;

        # 他の設定...
    }
}

この例では、denyディレクティブで特定のIPアドレスを永続的に拒否しています。allow allは、上記で指定したIPアドレス以外のアクセスをすべて許可します。

ただし、これらのアプローチはNginx自体で行うものであり、リクエストがNginxに到達する前のレベルでのブロックを行うため、高度なセキュリティ要件に対処する場合は、ファイアウォールやセキュリティグループなどの外部のセキュリティツールを検討することも重要です。

未分類

Posted by ぼっち