
мы хотим предоставить доступ к серверу обновлений только определенным 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, если он включен.
iptables -A INPUT -m tcp -p tcp --dport 80 -j REJECT