
Wir möchten nur bestimmten IPs Zugriff auf einen Update-Server gewähren und verwendendiese Nginx-Konfigurationbis jetzt:
allow 2a03:2267:4e6f:7264:f6f2:6dff:fe49:e4a2;
allow 2a03:2267:4e6f:7264:a2f3:c1ff:fe7a:4bc6;
...
deny all;
Es scheint jedoch, dass die Anzahl der Zulassungsregeln bei Nginx bei etwa 250 liegt.
Wie können wir dieses Limit erhöhen, damit wir hier eine größere Whitelist konfigurieren können? Oder gibt es einen besseren Weg, dieses Ziel zu erreichen?
Antwort1
Sie können auch ein verwenden, map
um den gleichen Effekt zu erzielen. Beispiel:
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; }
...
}
Sehendieses Dokumentfür Details unddiese Vorsichtbei der Verwendung von if
.
Antwort2
Da es sich hierbei um eine Whitelist handelt, die auf dem globalen Serverzugriff basiert, sind Sie möglicherweise mit der Verwendung von iptables besser bedient.
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
Stellen Sie sicher, dass Sie IPv4 auch blockieren, wenn es aktiviert ist.
iptables -A INPUT -m tcp -p tcp --dport 80 -j REJECT