NginxでアクセスIP制限(ブラックリスト / ホワイトリスト)を行う方法
NginxでアクセスIP制限を試してみたい。また、特定のIPのみ許可するホワイトリスト形式と、特定のIPを拒否するブラックリスト方式のどちらも覚えておきたい。以下に対応方法をメモ。
対応方法
ホワイトリスト形式(特定のIPのみ許可)
拒否した対象に403を返す場合は以下。
location / {
allow xxx.xxx.xxx.1;
allow xxx.xxx.xxx.2;
deny all;
}
拒否した対象に444を返す場合は以下。
# ホワイトリストの作成(nginx.confのhttpブロック内に記述)
map $remote_addr $whitelist{
# 拒否は0を指定
default 0;
# 許可は1を指定
xxx.xxx.xxx.1 1;
xxx.xxx.xxx.2 1;
}
# 設定したいブロック内に記述
server {
location / {
# 拒否する場合は444を返す
if ($whitelist = 0) {
return 444;
}
}
}
ブラックリスト方式(特定のIPを拒否)
拒否した対象に403を返す場合は以下。
location / {
deny xxx.xxx.xxx.1;
deny xxx.xxx.xxx.2;
allow all;
}
拒否した対象に444を返す場合は以下。
# ブラックリストの作成(nginx.confのhttpブロック内に記述)
map $remote_addr $blacklist {
# 許可は0を指定
default 0;
# 拒否は1を指定
xxx.xxx.xxx.1 1;
xxx.xxx.xxx.2 1;
}
# 設定したいブロック内に記述
server {
location / {
# 拒否する場合は444を返す
if ($blacklist = 1) {
return 444;
}
}
}
関連記事
-
-
Nginxでリダイレクト(http->https)及びリライト設定
Nginxでhttpアクセス時にhttpsリダイレクトさせたい。それとは別に「h ...
-
-
ホスト側Nginx & Apacheコンテナ環境にてWeb公開用ディレクトリ構造について
Podmanコンテナ環境の各種ディレクトリを整理したい。docker-compo ...
-
-
Nginxでアクセス量の制御を行う方法(ngx_http_limit_req_module)
サイト内のあるファイルやページに対してアクセス拒否はできない(したくない)が、不 ...
-
-
コンテナ側のApacheのアクセスログにリバースプロキシのIPではなく本来のアクセスIPを出力する方法
ホスト側Nginxからリバースプロキシ経由でApacheコンテナに接続する環境に ...
-
-
Nginxで特定のディレクトリに対してBasic認証を設定
Nginxで特定のディレクトリに対してBasic認証を設定したい。Apacheだ ...