요즘 이슈가 되고 있는 DDOS 공격으로 인해 많은 피해를 보고 있습니다.
apache 모듈 중에 가벼운 공격을 차단할 수 있는 모듈이 있다는 것을 알고 계신가요?
바로 mod_evasive 모듈인데요.
이 모듈에 대해 알아보고, 간단하게 설치 및 설정 방법에 대해 소개해 드리겠습니다.
mod_evasive 모듈이란?
apache의 Dos, DDoS 공격 방어 모듈로 초 당 일정 횟수 이상 같은 페이지를 요청하는 경우, 초 당 같은 자식 노드를 동시에 일정 회수 생성하는 경우 공격 IP에 대한 접근을 일정 시간 차단하는 기능이 있습니다.
해당 모듈로는 가벼운 공격만 차단할 수 있으며, DDoS 공격은 여러 가지 형태로 공격할 수 있어 방어 장비 및 방화벽 프로그램으로 막는 것이 가장 좋은 방법입니다.
* DOS(Denial of Service Attack) 공격이란?

-> 서비스 거부 공격, 즉 시스템을 악의적으로 공격해 해당 시스템의 리소스를 부족하게 하여 원래 의도 된 용도로 사용하지 못하게 하는 공격입니다.
* DDOS(Distributed Denial of Service) 공격이란?

-> 분산 서비스 거부 공격, 즉 여러 대의 공격자를 분산적으로 배치해 동시에 서비스 거부 공격을 하는 방법입니다.
mod_evasive 모듈로 차단 가능한 case 예시
- 초 당 몇 번 이상의 같은 페이지를 호출 - 일시적으로 blocking 되는 동안 요청을 생성하는 경우
간단하게 evasive 모듈이 어떤 모듈인지 알게 되었다면, evasive 모듈 설치 및 설정 방법에 대해 알려드리겠습니다.
mod_evasive 모듈 설치 방법
|
# yum install mod_evasive // CentOS # apt install libabache2-mod-evasive // 우분투 |
mod_evasive 모듈 확인
| # ll /etc/httpd/modules | grep mod_evasive |
mod_evasive.conf 파일 수정
| # vi /etc/httpd/conf.d/mod_evasive24.so |
|
# mod_evasive 구성 <IfModule mod_evasive24.c> |
위 설정 파일에서 항목이 어떤 것을 의미하는지 알아봅시다.
1. DOSHashTableSize : HashTable 크기, 사이트 분석을 위한 사이즈 할당
접속량이 많은 사이트인 경우 크기를 크게 잡습니다.
(값을 높이면 성능은 좋아지나 메모리가 소요됩니다.)
2. DOSPageCount : Page interval e당 같은 페이지 요청 수
3. DOSSiteCount : Site interval 당 같은 페이지 요청 수
4. DOSPageInterval : 페이지 수 임계값 간격 (초)
5. DOSBlockingPeriod : Blocking list에 등록된 후 차단 해제되는 시간
6. DOSSystemCommand : 발동 시 시스템 명령어 실행
7. DOSLogDir : 로그 파일 경로 (반드시 logdir를 설정해야 해제가 가능합니다.)
로그 파일 경로에 설정해둔 디렉토리가 있는지 확인,
없다면 생성해줘야 하며 권한 설정도 확인하고 해줘야 합니다.
8. DOSWhitelist : Blocking되지 않을 Withe IP 등록
(단일IP, IP 대역 모두 적용 가능합니다.)
mod_evasive.conf 파일설정 완료 후 apache 재시작
| # systemctl 재시작 httpd |
간단한 스크립트를 생성하여 공격 테스트를 진행해봤습니다.
차단된 리스트는 위에 mod_evasive.conf 파일에서 지정한 log-dir에서 확인이 가능합니다.
![]()
차단 해제하려면 로그 디렉터리에 있는 파일을 rm 명령어로 삭제하면 됩니다.
처음에도 안내해드린 것과 같이 apache evasive 모듈은 가벼운 공격만 차단하는 기능으로 DDOS 공격에는 DDOS 공격에 전문적으로 대응 가능 한 장비 및 웹 방화벽을 사용하는 것을 권장해드립니다.
감사합니다.




