nginxでIPホワイトリストを作成する最良の方法

nginxでIPホワイトリストを作成する最良の方法

アップデートサーバーへのアクセスを特定のIPにのみ許可し、このnginxの設定これまでのところ:

allow 2a03:2267:4e6f:7264:f6f2:6dff:fe49:e4a2;
allow 2a03:2267:4e6f:7264:a2f3:c1ff:fe7a:4bc6;
...
deny all;

しかし、nginx では許可ルールが約 250 に制限されているようです。

この制限を増やして、より大きなホワイトリストをここで構成するにはどうすればよいですか。または、この目標を達成するためのより良い方法はありますか?

答え1

同じ効果を得るには、 を使うこともできますmap。例:

map $remote_addr $deny {
    default 1;
    2a03:2267:4e6f:7264:f6f2:6dff:fe49:e4a2 0;
    2a03:2267:4e6f:7264:a2f3:c1ff:fe7a:4bc6 0;
}
server {
    ...
    if ($deny) { return 403; }
    ...
}

見るこのドキュメント詳細についてはこの注意の使用においてif

答え2

これはグローバル サーバー アクセスに基づくホワイトリストなので、iptables を使用する方が適切である可能性があります。

ip6tables -A INPUT -m tcp -p tcp -s 2a03:2267:4e6f:7264:f6f2:6dff:fe49:e4a2 --dport 80 -j ACCEPT
ip6tables -A INPUT -m tcp -p tcp -s 2a03:2267:4e6f:7264:a2f3:c1ff:fe7a:4bc6 --dport 80 -j ACCEPT
ip6tables -A INPUT -m tcp -p tcp --dport 80 -j REJECT

IPv4 が有効になっている場合は、必ず IPv4 もブロックしてください。

iptables -A INPUT -m tcp -p tcp --dport 80 -j REJECT

関連情報