mod_evasive는 Apache 모듈로서 간단하게 아파치 웹서버를 공격하는 DDos공격을 차단하는 모듈입니다. 하드웨어적으로 별도의 DDos방화벽을 설치하지 못하는 중소규모의 웹서버 및 소규모 VPS환경에서 비교적 효율적으로 사용할 수 있습니다. 하지만 성능이 웹서버의 성능에 좌우되므로 가장 최선의 방법은 웹서버와 별도로 하드웨어적인 DDos를 차단하는 솔루션을 고려해야 합니다. 여기서는 간단히 Apache 2.0이상의 웹서버에서 사용하는 방법을 살펴보겠습니다.

우선 mod_evasive를 다운로드합니다. http://www.zdziarski.com/projects/mod_evasive/ 에서 최신버전의 mod_evasive를 다운로드 합니다. wget으로 직접 경로를 서버상에서 받아도 되며, 다운로드후 다시 자신의 웹서버로 FTP업로드해도 상관없습니다. 가령 /home 경로에 업로드 했다고 가정합니다.

압축풀기 및 설치

tar xzvf mod_evasive_1.10.1.tar.gz
cd mod_evasive
/usr/local/apache2/bin/apxs -iac mod_evasive20.c


Apache2 환경설정

자신의 웹서버의 httpd.conf 파일을 열어 아래를 추가합니다. 그런 다음 Apache 웹서버를 재시작 합니다.

LoadModule evasive20_module /usr/local/apache2/modules/mod_evasive20.so

<IfModule mod_evasive.c>
        DOSHashTableSize          3097
        DOSPageCount              3
        DOSSiteCount                50
        DOSPageInterval            1
        DOSSiteInterval              1
        DOSBlockingPeriod        30

        DOSEmailNotify             test@test.com
        DOSLogDir                    "/usr/local/apache2/logs/mod_evasive.log"
        DOSSystemCommand   "iptables -I INPUT -s %s -j DROP"
    DOSWhitelist                     127.0.0.1
</IfModule>


모듈설정


모듈설정에 대한 자료는 http://guni.loveyust.net/136 에서 참조하였습니다. 다만, DOSSystemCommand 를 IPTABLES로 차단하도록 명령어를 변경했습니다. 참조하세요.

- DOSHashTableSize
각 자식 해쉬테이블 마다 탑레벨 노드의 수를 지정한다.
수치가 높으면 높을수록 더 많은 퍼포먼스가 나타나지만 테이블스페이스에 메모리를 남기게 된다,
접속량이 많으면 이 수치를 높혀도 된다.

- DOSPageCount
이것은 같은 페이지 또는 URI, 인터벌당 요청수에 대한 카운트 수이다.
지정된 값이 초과되면 클라이언트에 대한 IP 정보가 블러킹리스트에 추가된다.

- DOSSiteCount
지정된 시간동안 같은 페이지를 지정된 수 보다 초과될경우 IP 정보가 블러킹리스트에 추가된다.

- DOSPageInterval
페이지 카운트 시발점, 디폴트는 1초이다.

- DOSSiteInterval
사이트 카운트 시발점, 디폴트는 역시 1초이다.

- DOSBlockingPeriod
클라이언트가 블랙리스트에 추가되어 블러킹되는 총 시간. 이때 클라이언트는 403(Forbidden) 에러를 출력하게 된다.

- DOSEmailNotify
이 값이 지정되면, IP가 블러킹될때마다 지정된 이메일로 발동된다.
주의 : 메일러는 mod_dosevasive.c 에 정확하게 지정되야 한다. 디폴트는 "/bin/mail -t %s" 이다.

- DOSLogDir
로그 파일 경로

- DOSSystemCommand
이 값이 지정되면, 시스템은 아이피가 블러킹될때마다 명령행을 실행한다.

- DOSWhitelist
차단에서 제외될 호스트
DOSWhitelist    127.0.0.1

신고

+ Recent posts

티스토리 툴바