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

相關內容