호스팅 사용법
호스팅 신청하기
도메인 연결하기
홈페이지 올리기
이메일 설정하기
서버 사용법
FTP사용법
메일사용법
텔넷/리눅스
MySQL사용법
MSSQL사용법
리눅스명령어 모음
시스템사용법
서버세팅
네트워크/보안
L4 매뉴얼
백업/미러링
호스팅용어 모음
프로그램 사용법
알리미사용법
제로보드설치방법
워드프레스설치방법
태터툴즈설치방법
그누보드설치방법
우편번호DB사용법
폼메일사용법
주문서사용법
예전 게시판/방명록
전자지불 서비스


HOME > 호스팅 > 사용안내 > 시스템사용법 > mod_dosevasive 활용하기(아파치 DOS막기)
데몬보안설정하기  시스템변경 여부확인  웹서버 시스템 최적화 
한 IP당 동시 접속량 제한  아파치 성능 체크  SMTP relay설정하기 
debugfs 활용하기(삭제된 파일 복구)  dig활용하기  mod_dosevasive 활용하기(아파치 DOS막기) 
mod_throttle 활용하기(아파치 트래픽제어)  procmail을 통한 메일필터링  ps 활용하기(cpu점유율 높은 프로세스 찾기) 
server 시간맞추기  IP 관련 설정하기 

  • 1. 개요
    mod_dosevasive는 HTTP Dos 또는 DDos 스택 또는 다른 공격으로부터 아파치를 보호한다.
    ipchains, 방화벽, 라우터 등으로 쉽게 구성될 수 있도록 설계되어 있다.
    DOS 탐지는 주소, URI의 IP 내부 동적 해쉬 테이블을 생성함으로 수행되고, 각 아이피별로 거부되며, 다음과 같은 경우.
    - 초당 몇번 이상의 같은 페이지를 요청하는 경우
    - 초당 같은 자식노드를 동시에 50번 이상 생성하는 경우
    - 일시적으로 블러킹되는 동안 어떠한 요청을 생성하는 경우

    2. mod_dosevasive 설치
    (1) 소스 구하기
    * 다운로드 : http://www.rootman.co.kr/bbs/zboard.php?category=11&id=dataroom
    http://www.nuclearelephant.com/projects/dosevasive/

    (2) 설치하기
    - 압축을 푼 뒤 아래 명령을 순차적으로 수행한다. 아파치는 DSO로 설치되어 있는 경우로 하여 설명한다.

    [root@www root]# tar xvfz mod_dosevasive.1.8.tar.gz
    [root@www root]# cd /usr/local/apache/bin
    [root@www bin]# ./apxs -iac ../mod_dosevasive/mod_dosevasive.c
    [root@www bin]# ./apxs -iac ../mod_dosevasive/mod_dosevasive.c
    gcc -DLINUX=22 -DUSE_HSREGEX -fpic -DSHARED_CORE -DSHARED_MODULE -I/usr/local/apache/include -c ../mod_dosevasive/mod_dosevasive.c
    gcc -shared -o ../mod_dosevasive/mod_dosevasive.so mod_dosevasive.o
    [activating module `dosevasive' in /usr/local/apache/conf/httpd.conf]
    cp ../mod_dosevasive/mod_dosevasive.so /usr/local/apache/libexec/mod_dosevasive.so
    chmod 755 /usr/local/apache/libexec/mod_dosevasive.so
    cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak
    cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf
    rm /usr/local/apache/conf/httpd.conf.new

    - 설치한 뒤 httpd.conf에서 아래 두 줄의 내용이 추가되었는지 확인하고, 추가가 되어 있지 않으면 추가한다.
    LoadModule dosevasive_module libexec/mod_dosevasive.so
    AddModule mod_dosevasive.c

    - 설치가 되어 있는 것을 확인하면 아파치 데몬을 재구동한다.
    [root@www /root]# /usr/local/apache/bin/apachectl graceful

    3. 세부 사항 설정하기
    - httpd.conf에 아래 내용을 추가한다.

    DOSHashTableSize 3097
    DOSPageCount 3
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 3600

    - 추가적으로 지시자를 추가할 수 있다.
    DOSEmailNotify hosting@asadal.com
    DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"

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

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

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

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

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

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

    - DOSEmailNotify : 이 값이 지정되면, IP가 블로킹될때마다 지정된 이메일로 발송된다.

    * 주의 : 메일러는 mod_dosevasive.c 에 정확하게 지정되야 한다. 디폴트는 "/bin/mail -t %s" 이다.

    - DOSSystemCommand : 이 값이 지정되면, 시스템은 아이피가 블로킹될때마다 명령행을 실행한다. 이것은 아이피 필터링이나 다른 도구를 사용하도록 설계
    되어 있다.

    5. 인가된 IP 주소 설정
    특정 IP (예를 들면 관리자의 IP 등) 에서는 IP 블로킹이 되지 않도록 설정하는 부분.
    httpd.conf에서 다음과 같이 설정하며, 와일드 카드를 사용하여 클래스 단위로 설정도 가능하다.

    DOSWhitelist 127.0.0.1
    DOSWhitelist 203.255.178.*

    와일드카드는(*) 필요하다면 최대 8진수(xxx.*.*.*)까지 사용할 수 있다.
사이트명 : 바다넷 | 회사명 : (주)아사달 | 대표이사 : 서창녕 | 대표전화 : 070-7510-3007 | 팩스번호 : 02-2026-2008
사업자등록번호 : 206-81-24351 | 법인등록번호 : 110111-1940504 | 통신판매업신고 : 제18-890호 | 벤처확인번호 : 051134532200563
(우편번호 : 153-803) 서울특별시 금천구 가산동 371-28번지 우림라이온스밸리 A동 8층 (주)아사달
Copyright ⓒ badanet.co.kr All rights reserved.

페이지 맨 위로 이동하기