DoS(Denial of Service, 서비스 거부) 공격은 널리 알려져있고, 또한 구현하기 비교적 쉬운 서버 공격방법 중 하나이다. 우리나라 네티즌들이 아주 즐겨 사용하는 공격중 하나다. -_-...
DoS 공격은 대량으로 패킷을 보내거나 요청하는 방식으로 공격이 이루어진다. 이때 서버의 과부하가 이루어지게 되어 결국 시스템 다운되거나, 시스템 다운을 방지하기 위해 서버 자체서 서비스를 중단하게 된다.
DoS 공격에 가장 많이 노출된 서버는 80번 포트를 열어둔 웹서버가 아닐까 싶다.
만약 아파치 웹서버를 이용하는 경우 DoS 를 방어할 수 있는 작으면서 비교적 강력한 모듈이 있다.
Nuclearelephant (핵 코끼리? -_-) 에서 개발한 mod_evasive 라는 모듈이다.
URL:
http://www.nuclearelephant.com/projects/mod_evasive/
본 모듈은 아파치 서버 모듈 설정에서 정한 값 이상의 연속 http 요청을 했을 경우 자동으로 IP 차단이 이루어지게 된다.
모듈 설치는 readme 파일을 따라서 하면 그리 어렵진 않다. (설치 매뉴얼 생략)
설치 후 httpd.conf 파일 안에 다음과 같은 설정을 입력하여 준다.
<IfModule mod_evasive.c>
DOSHashTableSize 3097
DOSPageCount 20
DOSSiteCount 100
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify admin@asd.com
DOSLogDir "/var/lock/mod_evasive"
DOSWhitelist 127.0.0.1
</IfModule>
설정에 대한 설명은 다음과 같다.
1. DOSPageCount: 몇개의 연속 pagehit 에 대해 차단 조치를 할 것인가에 대한 설정.
2. DOSSiteCount: 몇개의 연속 site 접속에 대해 차단 조치를 할 것인가에 대한 설정.
3. DOSPageInterval: pagehit 에 대한 "허용될 연속 접속 사이의 시간 간격"을 (초) 단위로 입력.
4. DOSSiteInterval: site 접속에 대한 "허용될 연속 접속 사이의 시간 간격"을 (초) 단위로 입력.
5. DOSBlockingPeriod: 차단된 호스트가 풀릴 때 까지의 시간을 (초) 단위로 입력.
6. DOSEmailNotify: 공격에 대한 정보를 보낼 메일 주소.
7. DOSLogDir: 로그파일 경로
8. DOSWhitelist: 차단에서 제외될 호스트
필자의 설정을 설명하자면 다음과 같다.
** 동일한 호스트로부터 "1초" 사이에 "20번" 이상의 pagehit 가 이루어질 경우 호스트 차단.
** 동일한 호스트로부터 "1초" 사이에 "100번" 이상의 site 접속 이 이루어질 경우 호스트 차단.
** 차단된 호스트는 10초 동안 차단한다.
** DoS 공격이 이루질 때
admin@asd.com 으로 메일을 보낸다.
** 127.0.0.1 은 차단 조치를 하지 않는다.
http://www.82i.com/@/zboard.php?id=faq&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=14