본문 바로가기
Server&OS/Apache

[보안] mod_evasive를 이용한 웹Dos 공격을 막자

by 백룡화검 2010. 4. 23.

 다운로드 : http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz

# 압축해제
$ tar xvzf mod_evasive_1.10.1.tar.gz

# 디렉토리 이동
$ cd mod_evasive

# 모듈 추가
$ /usr/local/apache2/bin/apxs -iac mod_evasive.c -> Apache.1.x

$ /usr/local/apache2/bin/apxs -iac mod_evasive20.c -> Apache.2.x

# 환경설정
$ vi /usr/local/apache/conf/httpd.conf

check LoadModule evasive_module    modules/mod_evasive.so -> Apache.1.x

check LoadModule evasive20_module    modules/mod_evasive20.so -> Apache.2.x

# 다음을 추가한다
<IfModule mod_evasive.c>
        DOSHashTableSize        3097
        DOSPageCount              3
        DOSSiteCount                50
        DOSPageInterval          1
        DOSSiteInterval            1
        DOSBlockingPeriod      30

        DOSEmailNotify            webmaster@abcd.com
        DOSLogDir                    "/usr/local/apache/logs/mod_evasive.log"
</IfModule>

# 환경설정 검사

$ apachectl configtest
# 재시작
$ apachectl -k restart

설정에 대한 설명은 다음과 같다.

1. DOSPageCount: 몇개의 연속 pagehit 에 대해 차단 조치를 할 것인가에 대한 설정.
2. DOSSiteCount: 몇개의 연속 site 접속에 대해 차단 조치를 할 것인가에 대한 설정.
3. DOSPageInterval: pagehit 에 대한 "허용될 연속 접속 사이의 시간 간격"을 (초) 단위로 입력.
4. DOSSiteInterval: site 접속에 대한 "허용될 연속 접속 사이의 시간 간격"을 (초) 단위로 입력.
5. DOSBlockingPeriod: 차단된 호스트가 풀릴 때 까지의 시간을 (초) 단위로 입력.
6. DOSEmailNotify: 공격에 대한 정보를 보낼 메일 주소.
7. DOSLogDir: 로그파일 경로
8. DOSWhitelist: 차단에서 제외될 호스트
설정에 대한 설명은 어디서 인용을 했는데...기억이 나질 안네요...원작자에겐 정말 죄송합
니다.;;;

이렇게 셋팅을 하고나서 사이트 접속후 F5키를 누르고 있으면 403 Access Denied가 뜹니다. 나름... 괜찮지요...
그런데 문제점도 있습니다. js, css, swf등을 코딩할때 embed를 하게되는데...
이게 사이트 카운트로 인식해서 많이 포함된 웹페이지는 접속하자마자 403입니다..

위 샘플의 설정대로 하고 swf를 스크립트로 embed를 10개 했더니...
바로 Access Denied ...;; 해결 방법이 있으면 공유 좀 부탁드립니다.

 

출처 : PHPSCHOOL