Ip

使用 nginx 創建 IP 白名單的最佳方法

  • August 31, 2017

我們希望僅對某些 IP 授予對更新伺服器的訪問權限,並使用此 nginx 配置到目前為止:

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

但似乎 nginx 的允許規則限制在 250 左右。

我們怎樣才能增加這個限制,所以我們可以在這裡配置一個更大的白名單。或者有沒有更好的方法來實現這個目標?

您可以使用 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

由於這是一個基於全域伺服器訪問的白名單,因此使用 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

引用自:https://unix.stackexchange.com/questions/365946