비율 제한이 잘못 구성된 봇

비율 제한이 잘못 구성된 봇

주기적으로 스크랩되는 로드 밸런서 뒤에 Nginx/PHP-FPM이 있습니다. 많은 스크레이퍼가 우리 애플리케이션의 404 페이지를 조용히 쳤습니다.

Nginx에 방법이 있나요?속도 제한 모듈아니면 분당 100개 이상의 요청에서 404 오류가 발생한 후 x-forward-for를 기반으로 모든 트래픽을 차단하는 다른 모듈이 있습니까?

내가 찾은 문서제한 요구 모듈페이지 반환 상태가 아닌 리소스를 기반으로 하는 것 같습니다.

트래픽이 충분하여 각 노드가 누가 집단적으로 차단할지에 대해 통신할 필요가 없을 만큼 충분한 404 트래픽을 보고 있습니다.

답변1

Limit_req_zone 모듈을 사용하면 nginx에서 이 작업을 확실히 수행할 수 있습니다.

nginx.conf에서 영역을 설정합니다.

limit_req_zone $binary_remote_addr zone=one:1000m   rate=100r/m;

X_Forwarded_Fortoo 대신에 사용할 수도 있습니다 binary_remote_addr.

사이트 구성 위치 블록에서 영역을 참조하세요.

limit_req zone=one burst=10 nodelay;

문서: http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

답변2

Fail2ban을 사용하고 nginx와 함께 다음 감옥을 사용하여 잘못 구성된 봇의 속도를 제한할 수 있습니다.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 이것을 맨 아래에 추가하십시오

[nginx-req-limit]

enabled = true
filter = nginx-req-limit
action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
logpath = /var/log/nginx/*error.log
findtime = 600
bantime = 7200
maxretry = 10

참고자료:https://rtcamp.com/tutorials/nginx/fail2ban

관련 정보