Apache 대신 로드 밸런서를 사용하여 특정 IP의 트랜잭션을 제한합니다.

Apache 대신 로드 밸런서를 사용하여 특정 IP의 트랜잭션을 제한합니다.

요청 유형에 따라 요청이 파이프되는 로드 밸런서 뒤에 두 개의 Apache 인스턴스가 있습니다.

이제 내가 원하는 것은 특정 IP 주소로부터 너무 많은 트랜잭션을 받으면 몇 초 동안 해당 IP를 차단하고 너무 많은 요청을 보냈다는 응답을 클라이언트에 다시 보내는 것입니다.

이제 질문은: 내 인스턴스를 호출하는 대신 로드 밸런서에서 이 상황을 처리할 수 있는 방법이 있습니까?

Apache에서 이 문제를 어떻게 처리할 수 있나요? 저는 아파치 버전 2.2를 사용하고 있습니다.

답변1

Apache에서 mod_evasive를 설정하는 것이 좋습니다.

~에서Apache의 mod_evasive

mod_evasive는 HTTP DoS 공격이나 무차별 대입 공격이 발생할 경우 회피 조치를 제공하는 Apache의 회피 정책 모듈입니다. 또한 탐지 및 네트워크 관리 도구로 설계되었으며 IPChain, 방화벽, 라우터 등과 통신하도록 쉽게 구성할 수 있습니다. mod_evasive는 현재 이메일 및 syslog 도구를 통해 남용을 보고합니다.

데비안에 설치하려면:

apt-get install libapache2-mod-evasive

그런 다음 mods-available/evasive.conf를 편집하세요. 귀하의 값은 서버에 있는 가상 호스트 수에 따라 달라질 수 있습니다.

<IfModule mod_evasive20.c>
DOSHashTableSize 2048
DOSPageCount 50                    <---- visites to site in the given time
DOSSiteCount 500                   <---- to pages
DOSPageInterval 2.0                <---- 2 seconds
DOSSiteInterval 1.0
DOSBlockingPeriod 600.0             <--- seconds
DOSLogDir /var/log/apache2/evasive
DOSWhitelist 127.0.0.1
DOSWhitelist x.x.x.*
</IfModule>

mod_evasive구성을 활성화하려면 Apache를 다시 시작해야 합니다.

다음과 같은 비즈니스 서비스에도 관심이 있을 수 있습니다.윤야오광아니면 아마존윤펑.

관련 정보