>운영 및 유지보수 >엔진스 >Nginx 역방향 프록시의 화이트리스트 기반 액세스 제어 구성

Nginx 역방향 프록시의 화이트리스트 기반 액세스 제어 구성

WBOY
WBOY원래의
2023-06-10 08:28:442182검색

Nginx는 안정성과 확장성의 장점을 갖춘 고성능 HTTP 서버이자 역방향 프록시 서버입니다. 악의적인 사용자와 악성 프로그램으로부터 웹 서버를 보호하기 위해 많은 기업과 조직에서는 액세스 제어 조치를 구현합니다. 이 기사에서는 Nginx의 화이트리스트를 통해 역방향 프록시 액세스를 제어하는 ​​방법을 소개합니다.

1. 역방향 프록시란 무엇입니까?

역방향 프록시는 웹 서버를 프록시 서버 그룹 뒤에 숨기는 웹 서버 구성 방법을 말합니다. 역방향 프록시 서버의 주소는 클라이언트에 표시됩니다. 역방향 프록시 서버는 클라이언트의 요청을 실제 웹 서버에 전달하고 웹 서버의 응답을 클라이언트에 반환하는 역할을 합니다. 역방향 프록시는 웹 서버의 처리량을 늘리고 공격을 방지할 수 있습니다.

2. 접근 제어가 필요한 이유는 무엇인가요?

웹 서버는 일반적으로 전 세계의 액세스에 직면하며 일부 요청은 악의적인 사용자나 악성 프로그램에서 올 수 있습니다. 이러한 악의적인 요청은 웹 서버 마비, 데이터 유출, 중요한 정보의 변조 및 도난과 같은 보안 문제로 이어질 수 있습니다. 이러한 문제를 방지하려면 일반적으로 특정 IP 주소, 도메인 이름 또는 사용자만 웹 서버에 액세스하는 것을 제한하는 액세스 제어 메커니즘을 구현해야 합니다.

3. Nginx는 화이트리스트를 기반으로 액세스 제어를 어떻게 구현하나요?

  1. 액세스가 허용되는 IP 주소를 정의하세요

nginx.conf 구성 파일에서 허용 지시어를 사용하여 액세스가 허용되는 IP 주소를 지정할 수 있습니다. 예:

http {
    #定义白名单
    geo $whitelist {
        default 0;
        10.0.0.0/8 1;
        192.168.0.0/16 1;
    }

    server {
        listen 80;
        server_name example.com;
        location / {
            #指定允许访问的IP地址
            allow $whitelist;
            #禁止其他IP地址的访问
            deny all;
            #...
        }
    }
}

위 구성에서 파일에서 geo 지시문을 사용하여 화이트리스트를 정의합니다. 그 중 $whitelist는 접근이 허용된 IP 주소를 나타내는 변수이다. 기본적으로 $whitelist 값은 0이며 이는 액세스가 허용되지 않음을 나타냅니다. 접근된 IP 주소가 10.0.0.0/8 또는 192.168.0.0/16 네트워크 세그먼트 내에 있는 경우 $whitelist 값은 1이고 접근이 허용됩니다. 해당 위치에서는 $whitelist 변수에 있는 IP 주소에 대한 접근을 허용하도록 지정하려면 허용 지시문을 사용하고, 다른 IP 주소에 대한 접근을 금지하려면 거부 지시문을 사용합니다.

  1. 액세스가 허용되는 도메인 이름을 정의하세요

nginx.conf 구성 파일에서 server_name 지시문을 사용하여 액세스가 허용되는 도메인 이름을 지정할 수 있습니다. 예:

http {
    #定义白名单
    server {
        listen       80;
        server_name  example.com;

        #允许访问的域名
        if ($host !~* ^(example.com)$ ) {
            return 403;
        }
        
        location / {
            #...
        }
    }
}

In the 위의 구성 파일에서 server_name 지시문을 사용하여 example.com 도메인 이름만 액세스가 허용되도록 지정합니다. 위치에서 요청한 도메인 이름이 example.com이 아닌 경우 403 오류가 직접 반환됩니다.

  1. 액세스가 허용된 사용자 정의

nginx 구성 파일에서 HTTP 기본 인증 또는 기타 인증 메커니즘을 사용하여 인증된 사용자만 웹 서버에 액세스하는 것을 제한할 수 있습니다. 예를 들어, HTTP 기본 인증을 사용하면 사용자 이름과 비밀번호를 암호화하여 Nginx가 요청을 인증하고 인증된 사용자만 Nginx 서버에 액세스할 수 있습니다. nginx.conf 구성 파일에서 auth_basic 및 auth_basic_user_file 지시어를 사용하여 HTTP 기본 인증을 구현할 수 있습니다. 예:

http {
    #定义白名单
    server {
        listen       80;
        server_name  example.com;

        #Nginx对请求进行认证
        auth_basic           "Restricted Area";
        auth_basic_user_file conf.d/.htpasswd;
        
        location / {
            #...
        }
    }
}

위 구성 파일에서 인증이 필요한 영역 정보를 설명하기 위해 서버에 auth_basic 지시어를 지정합니다. auth_basic_user_file 지시문을 사용하여 비밀번호 파일의 경로를 지정합니다. 인증된 사용자만 웹 서버에 접근할 수 있습니다.

4. 요약

역방향 프록시는 웹 서버의 처리량을 향상시키고 공격을 방지할 수 있습니다. 액세스 제어 메커니즘은 악의적인 사용자 및 악성 프로그램의 공격으로부터 웹 서버를 보호할 수 있습니다. Nginx에서는 화이트리스트 기반 액세스 제어를 사용하여 역방향 프록시 액세스를 제어하고 웹 서버의 보안을 보호할 수 있습니다. 필요에 따라 역방향 프록시의 보안을 향상시키기 위해 액세스가 허용되는 IP 주소, 도메인 이름 또는 사용자를 정의할 수 있습니다.

위 내용은 Nginx 역방향 프록시의 화이트리스트 기반 액세스 제어 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.