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

aを使うと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

関連情報