특정 UserAgent에 대해 초당 연결 수를 제한하기 위해 UFW를 사용할 수 있습니까?

특정 UserAgent에 대해 초당 연결 수를 제한하기 위해 UFW를 사용할 수 있습니까?

GoogleBot이 내 서버를 심각하게 공격하고 있습니다. 웹마스터 도구에서 CrawlRate를 설정했는데도 여전히 내 서버의 로드가 증가하고 나머지 Apache의 일반 네트워크 트래픽 속도가 느려지고 있습니다.

사용자 에이전트 문자열을 기반으로 UFW를 사용하여 초당 연결 수를 제한/제한할 수 있습니까?

그렇지 않은 경우 GoogleBot의 IP 범위에 대해 어떻게 이 작업을 수행할 수 있나요?

답변1

ufw를 사용하여 이 작업을 직접 수행할 수는 없지만 /etc/ufw/before.rules.

iptables를 배우시는 걸 추천합니다. (최적화되지 않은) 시작점으로, 예를 들어

-A ufw-before-input -p tcp --syn -dport 80 -m recent --name LIMIT_BOTS --update --seconds 60 --hitcount 4 --rcheck -j DROP
-A ufw-before-input -p tcp -dport 80 -m string --algo bm --string "NotWantedUserAgent" -m recent --name LIMIT_BOTS --set ACCEPT

작동할 수 있습니다. 물론 NotWantedUserAgent올바른 것으로 교체해야 합니다. 이 규칙은 특정 봇에 대한 분당 새로운 연결 수를 제한해야 합니다. 테스트해 본 적이 없으며 실제로 특정 봇의 작업 부하를 줄이는지 모르겠습니다.

관련 정보