설치 계기
별로 설치할 생각이 없었는데, 이런 작은 사이트도 공격을 DDOS 공격을 당한다
DDOS는 서비스 분산 거부 공격으로 여러 PC가 동시 접속해서 트래픽을 유발할 시
서버가 감당을 못하고 퍼지게 된다
또는 서비스가 정지되었을 시 다른 2차공격 기법을 감행해서 내부 루트를 점령도 가능하다
DDOS 증상
1초에 10만 건 이상의 요청을 서버에 한다고 생각하면 된다 아무리 성능 좋은 서버라도 비정상적인 요청을 지속적으로 공격 받으면 시스템이 작동 불능 상태에 빠진다
증상으로는 웹페이지가 정상적으로 출력되지 않고 흰 화면에 로딩만 계속 진행되다가 404 ERROR를 출력한다
설치 방법
mod_evasive2 라는 모듈을 이용해 차단이 가능하며, 인터넷에 온라온 글들은 전부 리눅스 기반을 바탕으로 적혀 있어서 윈도우 기반의 설치법을 공유한다
https://www.apachehaus.net/modules/mod_evasive2/">https://www.apachehaus.net/modules/mod_evasive2/
위 주소가 윈도우용 아파치 모듈을 다운 받는 곳이다 윈도우 서버 32,64비트 수에 맞춰서 다운 받는다
APACHE24//EXTRA 폴더 내에 다운받은 압축파일 내 mod_evasive2.so파일을 넣는다
APACHE24/CONF/ HTTPD.CONF 파일을 열어서
LOADMODULE 마지막에 다음 내용을 추가한다
LoadModule evasive2_module modules/mod_evasive2.so
그리고 아래 내용을 추가한다
<IfModule evasive2_module>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSSystemCommand "C:/SomeAppDir/someapp.exe %s"
DOSLogDir "C:/Apache24/logs"
</IfModule>
차단 설정 방법
DDOS 차단 모듈의 SETTING 파일에 대해 설명하겠다
– DOSHashTablesize → 자식 hash table마다 탑 레벨 노드 수 지정, 값을 높이면 성능은 좋아지나 메모리가 소모
– DOSPageCount → 하나의 페이지 단위에 반복 요청 가능 수
-DOSPageInterval → 하나의 페이지에 반복 요청 카운트를 몇초 단위로 저장할 지 지정
(ex : 1초당 2번의 요청 초과 시 차단 )
– DOSSiteCount → 하나의 사이트에 반복 요청 가능 수
– DOSSiteInterval → 하나의 사이트에 반복 요청 시 몇 초 단위로 저장할 지 지정
– DOSBlockingPeriod → 차단 되었을 때 몇초동안 403 페이지를 보여줄 지 지정
– DOSWhitelist → 위 규칙에 예외 대상인 ip를 지정한다
– DOSSystemCommand → 규칙에 의해 차단 시 실행할 프로그램 지정
– DOSLogDir → 차단 시 생성되는 로그 파일 경로
본인의 서버 상황과 사용자 유저 수에 따라 숫자를 바꿔가면서 테스트 해보자