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

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가 활성화된 경우 IPv4도 차단해야 합니다.

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

관련 정보