OS

Apache, DDoS 방어모듈

by LionHeart posted Oct 01, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
최근에 필자가 구축한 홈서버에 DDos 공격이 감당하기 어려울 정도로 많이 발생하고 있습니다.
 문제를 해결하는 방법을 찾던 도중에 PHPSchool 게시판에 게시된 'Windows® Apache용 DDos 공격 방지모듈'이 게시되어 있어서 여러분들에게 소개해드리려고 합니다. 이 포스트에서 소개하는 모든 내용은 필자가 임의의 수정과정을 거쳤다는 점 참고하여 사용자님이 운영중인 Windows® Apache 서버에 맞도록 수정하는 과정을 진행해주시기 바랍니다.


mod_evasive 모듈 다운로드

 이 포스트에 첨부된 mod_evasive 모듈은 Windows® Apache에서만 동작합니다. 리눅스용 모듈은 이곳(새창)을 클릭하시면 내려받으실 수 있습니다.
 이 포스트에 첨부된 방지모듈은 Apache폴더내의 modules폴더에 넣어주신 후 아래의 주석을 추가해야합니다.


httpd.conf에 모듈 등록하기

#HTTP DoS or DDoS 공격 방어 모듈.
LoadModule evasive_module modules/mod_evasive.so
< IfModule evasive_module>
    DOSHashTableSize    3097
    DOSPageCount        70
    DOSPageInterval     1
    DOSSiteCount        200
    DOSSiteInterval     1
    DOSBlockingPeriod   5
    DOSLogDir "C:/APMSETUP/temp/DOS"
< /IfModule>
 mod_evasive를 사용하기 위해서는 상단에 첨부된 주석값을 httpd.conf의 하단에 추가해야합니다.


사용자의 서버에 맞는 설정

 상단에 첨부된 주석의 내용은 필자의 홈서버에 맞도록 수정된 내용이므로, 사용자는 사용자의 서버에 적합하도록 설정값을 수정할 필요가 있습니다. 서버의 성능을 고려하여 적용하시기 바랍니다. 일부 사항은 사용자의 서버에 무리를 줄 수 있습니다.
1) DosHashTable
  이 수치가 높으면 evasive의 퍼포먼스는 향상되지만 테이블에 많은 내용을 남겨 나중에는 느려지게 만듭니다.
2) DOSPageCount, DOSSiteCount
  같은 페이지에 또는 요청수에 따른 카운트를 실시한 후 제한합니다.
3) DOSPageInterval, DOSSiteInterval
  이 부분은 기본값인 1을 유지할 것을 권장합니다.
4) DOSBlockingPeriod
  블랙리스트에 아이피가 추가되면 몇 시간동안 접속을 차단할 것인지 설정하는 항목입니다.
5) DOSLogDir
  로그파일이 저장되는 경로를 지정할 수 있습니다.
6) DOSWhitelist  127.0.0.1
  127.0.0.1은 차단대상에서 제외합니다.
 Windows®용 mod_evasive에서는 이메일 알림(Email Notify)를 지원하지 않습니다.


DDOS 공격시 남겨지는 로그파일

 만약, 귀하의 홈서버가 DOS 또는 DDos 공격을 받았다면 상단에서 지정한 로그파일 디렉토리(DOSLogDir)에 관련된 사항이 기록됩니다. 해당 파일은 메모장 또는 AcroEdit(새창)를 이용하면 자세한 내용을 확인할 수 있습니다.



URL: http://jnstory.net/7
URL2: http://blog.naver.com/mrtajo75/60042380820