自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

Nginxで特定IPアドレスのリクエストを拒否する

thumbnail

特定IPアドレスのリクエストを拒否したいのであれば、ロードバランサーやリバースプロキシなどのセキュリティ設定を書き換えれば済む話だが、環境によっては他のサービスなどに影響を及ぼす可能性もある。

そこで、Nginxの設定を書き換え、特定のサービスだけで特定のIPアドレスを使用したリクエストを拒否する方法をここに記す。

設定ファイルに追加する

Nginxの設定ファイル( /etc/nginx/nginx.conf )に下記を追加する。

deny 192.168.XXX.XXX;

/etc/nginx/site-available/任意のファイルに追加してもOK。

設定を追加したら、restartさせる。

sudo systemctl restart nginx

拒否されるとこうなる。

ただ、これだとNginxにリクエストが到達するので、サーバーサイドの処理は動かないものの、リクエストを受け取り、403のレスポンスを返す処理が実行される。そのためDDos攻撃に対してはこの拒否設定を行うのではなく、リバースプロキシやロードバランサなどの、なるべくクライアント側に近い装置のセキュリティ設定を書き換えることで対策をする。

また、デフォルトだと使用しているOSとNginxのバージョンが表示されているため、攻撃者にヒントを与えてしまう。これは対策が必要。

Nginxのログ設定を変更したい場合は下記を読む。

Nginxのログをチェックする、ログの出力設定を変更する

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ