>  기사  >  운영 및 유지보수  >  악의적인 접근과 크롤러 공격을 방지하기 위한 Nginx 접근 제한 구성

악의적인 접근과 크롤러 공격을 방지하기 위한 Nginx 접근 제한 구성

PHPz
PHPz원래의
2023-07-04 10:25:122560검색

악의적인 접근과 크롤러 공격을 방지하기 위한 Nginx 접근 제한 구성

소개:
오늘날 인터넷 시대에 악의적인 접근과 크롤러 공격은 큰 보안 위협이 되었습니다. 고성능 웹 서버 및 역방향 프록시 서버인 Nginx는 이러한 공격으로부터 웹사이트를 보호하기 위해 일부 구성을 통해 액세스를 제한할 수 있습니다. 이 문서에서는 코드 예제와 함께 일반적으로 사용되는 Nginx 액세스 제한 구성을 소개합니다.

1. IP 블랙리스트 및 화이트리스트 제한

  1. IP 블랙리스트 제한
    특정 IP 주소에 대한 액세스를 제한하려면 Nginx와 함께 제공되는 ngx_http_access_module 모듈을 사용할 수 있습니다.
http {
    # 创建一个blacklist.conf文件来存储黑名单的IP地址
    include blacklist.conf;
    server {
        location / {
            # 在这里设置黑名单的访问规则
            deny 192.168.1.100;
            deny 192.168.1.0/24;
            deny 10.0.0.0/8;
            # 其他配置...
        }
    }
}

위 구성은 간단하고 명확합니다. 위치 블록에서 직접 거부를 사용하여 지정된 IP 주소 또는 IP 주소 범위에 대한 액세스를 거부할 수 있습니다.

  1. IP 화이트리스트 제한
    IP 블랙리스트와 달리 특정 IP 주소에 대해서만 접근을 허용하고 다른 IP 주소에 대한 접근을 거부하고 싶다면 허용 명령어를 사용하면 됩니다.
http {
    # 创建一个whitelist.conf文件来存储白名单的IP地址
    include whitelist.conf;
    server {
        location / {
            # 在这里设置白名单的访问规则
            allow 192.168.1.100;
            allow 192.168.1.0/24;
            allow 10.0.0.0/8;
            # 最后拒绝所有其他访问
            deny all;
            # 其他配置...
        }
    }
}

위 구성에서 지정된 IP 주소 또는 IP 주소 범위에 대한 접근을 허용하려면 허용 명령을 사용하고, 다른 모든 IP 주소에 대한 접근을 거부하려면 all 거부를 사용합니다.

2. User-Agent 제한
일부 크롤러 공격은 가짜 User-Agent를 사용하여 액세스하므로 User-Agent를 제한하여 이러한 공격을 방지할 수 있습니다.

http {
    server {
        location / {
            # 在这里设置拒绝某些特定User-Agent的访问
            if ($http_user_agent ~* (curl|wget) ) {
                return 403;
            }
            # 其他配置...
        }
    }
}

위 구성에서 if 명령과 정규식을 사용하여 특정 User-Agent를 일치시킨 다음 return 명령을 사용하여 403 Forbidden을 반환합니다.
이렇게 하면 컬이나 wget과 같은 도구를 사용하여 웹사이트에 액세스하려는 요청이 거부됩니다.

3. 빈도 제한
DDoS 공격 및 무차별 대입 크래킹을 방지하기 위해 액세스 빈도 제한을 설정할 수 있습니다.

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
    server {
        location / {
            # 在这里设置访问频率限制
            limit_req zone=one burst=10 nodelay;
            # 其他配置...
        }
    }
}

위 구성에서 IP 주소를 저장할 메모리 영역을 생성하기 위해limit_req_zone 명령을 사용합니다. 이름은 1, 크기는 10m, 액세스 빈도는 2r/s로 설정됩니다. 그런 다음 위치 블록에서 Limit_req 명령을 사용하여 빈도를 제한합니다. 버스트 매개변수는 액세스가 초과될 때 버퍼 크기를 나타내고 nodelay는 요청이 즉시 처리되어야 함을 나타냅니다.

요약:
위의 IP 블랙 및 화이트 목록 제한, 사용자 에이전트 제한 및 빈도 제한 구성 예를 통해 악의적인 액세스 및 크롤러 공격을 효과적으로 방지할 수 있습니다. 물론 실제 필요에 따라 특정 구성을 조정할 수도 있습니다. 마지막으로, 위 내용이 Nginx 액세스 제한 구성에 도움이 되기를 바랍니다.

위 내용은 악의적인 접근과 크롤러 공격을 방지하기 위한 Nginx 접근 제한 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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