使用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

您可以使用 amap来达到相同的效果。例如:

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,请确保也阻止它。

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

相关内容