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のバーチャルホスト設定とLet's Encryptの導入
NginxでVirtualHostの設定し、複数のドメインを同一サーバに割り当て ...
-
-
コンテナ側のApacheのアクセスログにリバースプロキシのIPではなく本来のアクセスIPを出力する方法
ホスト側Nginxからリバースプロキシ経由でApacheコンテナに接続する環境に ...
-
-
Nginxでリダイレクト(http->https)及びリライト設定
Nginxでhttpアクセス時にhttpsリダイレクトさせたい。それとは別に「h ...
-
-
AlmaLinux8系にNginxを導入しPodmanコンテナに接続する方法
AlmaLinux8でホスト側はApacheからPodmanコンテナ環境に接続し ...
-
-
CentOS7系にLEMP環境(Linux + Nginx + MySQL + PHP)を構築
先日KAGOYAのVPSからIndigoに移行した際にCentOS6から7へバー ...