>  기사  >  운영 및 유지보수  >  Nginx 역방향 프록시는 봇 공격으로부터 보호합니다.

Nginx 역방향 프록시는 봇 공격으로부터 보호합니다.

王林
王林원래의
2023-06-10 19:48:081376검색

인터넷 기술이 발전하면서 웹 공격을 예방하는 것이 웹사이트 보안에 있어서 중요한 문제가 되었습니다. 자동화된 공격 도구로서 Bot은 웹 공격의 주요 형태 중 하나가 되었습니다. 특히, 역방향 프록시를 통해 서비스하는 Nginx는 효율성, 안정성, 유연성 및 사용자 정의 측면에서 널리 사용되었습니다. 이 문서에서는 Nginx 역방향 프록시에서 봇 공격에 대한 몇 가지 효과적인 예방 조치를 제공합니다.

1. 액세스 로그 켜기

Nginx는 각 요청의 HTTP 프로토콜, 소스 IP, 요청 시간, 응답 상태 코드 및 기타 정보를 기록할 수 있는 액세스 로그 기능을 제공합니다. 액세스 로그를 켜면 봇 공격을 더 쉽게 감지할 수 있습니다.

Nginx 구성 파일에 다음 내용을 추가합니다.

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    ……
}

2. 제한된 IP 추가

Nginx 구성 파일에 IP 제한 방법을 추가하면 특정 지역의 IP로부터의 공격을 효과적으로 방지할 수 있습니다. 예를 들어 다음을 추가하면 중국 본토의 공격을 방지할 수 있습니다.

http {
    deny   61.135.0.0/16;
    deny   118.25.0.0/16;
    ……
}

3. GeoIP 모듈 사용

Nginx의 GeoIP 모듈은 액세스 소스 IP를 지리적 위치와 일치시킬 수 있습니다. GeoIP 모듈과 GeoIP 라이브러리를 설치하고 GeoIP 변수를 사용하여 IP 원본 지역을 감지하기만 하면 됩니다. 예:

http {
    geoip_country /usr/share/GeoIP/GeoIP.dat;
    geoip_city    /usr/share/GeoIP/GeoIPCity.dat;

    server {
        location / {
            if ($geoip_country_code = CN) {
                return 403;
            }

            if ($geoip_city_name ~* "moscow") {
                return 403;
            }
        }
    }
}

4. HTTP 리퍼러 확인 추가

HTTP 리퍼러를 사용하여 요청 소스를 확인할 수 있습니다. Nginx 구성 파일에 다음 콘텐츠를 추가하기만 하면 됩니다.

http {
      server {
            if ($http_referer ~* (blacklist1|blacklist2|blacklist3)) {
                    return 403;
            }
      }
}

5. Nginx를 사용하여 CC 공격 방지

Nginx는 CC 공격을 방지하기 위한 몇 가지 기능을 제공합니다. Nginx 구성 파일에서 설정하기만 하면 됩니다:

http {
      limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

      server {
            location / {
                  limit_req zone=one burst=5;
                  ……
            }
      }
}

6. SSL 인증서 활성화

SSL 인증서를 활성화하면 HTTP 프로토콜 수준에서 데이터 도난 및 중간자 공격을 방지할 수 있습니다. 동시에 HSTS(HTTP Strict Transport Security) 메커니즘을 활성화하여 HTTP 요청이 강제로 HTTP 요청으로 변환되는 것을 방지함으로써 향후 모든 액세스가 HTTPS로 액세스되도록 할 수 있습니다.

http {
      server {
            listen 443 ssl;

            ssl_certificate /path/to/cert;
            ssl_certificate_key /path/to/key;

            add_header Strict-Transport-Security "max-age=315360000; includeSubDomains; preload;";
      }
}

요약

Nginx 리버스 프록시 서버의 보안은 전체 웹 애플리케이션 시스템의 보안에 직접적인 영향을 미칩니다. Bot 공격의 경우 액세스 로그 켜기, 제한된 IP 추가, GeoIP 모듈 사용, HTTP 참조자 확인 추가, Nginx를 사용하여 CC 공격 방지 및 SSL 인증서 활성화 등을 통해 Nginx 역방향 프록시 서버가 가짜 요청을 방지하고 악의적인 공격을 방지하고 웹 애플리케이션 시스템 보안을 보호합니다.

위 내용은 Nginx 역방향 프록시는 봇 공격으로부터 보호합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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