안녕하세요. 취미 사진가 나라입니다.
지난 2월부터 제가 관리운영하던 워드프레스로 악성 IP접근과 함께 부쩍이나 악성 봇들의 접근이 많아졌습니다.
DDoS 공격이 의심될 정도로 1초~10초 사이에 한순간에 집중에서 접근하는 특징도 보입니다.
지난번 포스팅에서는 클라우드플레어와 워드프레스의 워드팬스를 이용한 방법을 소개해 드렸었는데요.
이번에는 서버 상위에서 막는 방법을 제가 아는 범위 내에서만 알려드리려 합니다.

.htaccess 규칙 이용
# 악성 및 과도한 크롤러 차단 통합 리스트
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (AhrefsBot|SemrushBot|MJ12bot|DotBot|PetalBot|SeznamBot|8LEGS|MauiBot|Sogou|AspiegelBot|YandexBot|SCspider|Textbot|s2bot|webmeup-crawler|oBot|SiteExplorer|BaiDuSpider) [NC]
RewriteRule .* - [F,L]
Apache 웹 서버에서 사용하는 구성 파일인 .htaccess를 이용해서 원천적으로 사이트(워드프레스, 웹페이지 등)에 악성 봇 접근을 막는 코드입니다.
※ 과부하 트래픽을 유발하는 봇을 기준으로 악성 봇을 챗GPT의 도움을 받아 리스트를 만들어 보면 다음과 같습니다.
- AhrefsBot
- SemrushBot
- MJ12bot
- DotBot
- PetalBot
- SeznamBot
- 8LEGS
- MauiBot
- Sogou
- AspiegelBot
- YandexBot
- SCspider
- Textbot
- s2bot
- webmeup-crawler
- oBot
- SiteExplorer
- BaiDuSpider
악성 봇이라 생각하지 않으시는 건 빼셔도 되고, 추가할 것이 있다면 추가하셔도 됩니다.
이러한 규칙을 .htaccess 파일을 편집창을 열어 넣어주시면 됩니다.
ModSecurity 규칙 이용
SecRule REQUEST_HEADERS:User-Agent "@rx (?i:MJ12bot|SemrushBot|AhrefsBot|DotBot|PetalBot|SeznamBot|8LEGS|MauiBot|Sogou|AspiegelBot|YandexBot|SCspider|Textbot|s2bot|webmeup-crawler|oBot|SiteExplorer|BaiDuSpider)" \
"id:1000001,\
phase:1,\
deny,\
status:403,\
log,\
msg:'Blocked malicious crawler: %{MATCHED_VAR}',\
tag:'crawler-protection',\
severity:'CRITICAL'"
ModSecurity는 웹 애플리케이션 방화벽(WAF)으로, 웹 서버에서 실행되는 요청을 실시간으로 분석하고 보호하는 강력한 보안 도구입니다.
cPanel이나 cyber-panel을 통해 ModSecurity를 이용할 수 있습니다.
사이버패널의 경우 대시보드에서 Security → ModSecurity Rules로 들어가 위 코드를 복사하여 붙여 넣기 하시고 저장하시면 됩니다.
이 규칙은 단순하고 직접적으로 봇 이름을 매칭하며, (?i:) 플래그로 대소문자를 구분하지 않습니다.
규칙 적용 후 반드시 웹 서버를 재시작하고, ModSecurity 로그를 확인하여 규칙이 제대로 작동하는지 검증해야 합니다. 만약 여전히 문제가 발생한다면, ModSecurity 설정과 서버 구성을 전반적으로 검토해볼 필요가 있습니다.
악성 봇 기준은 위 와 동일합니다. 악성 봇 이름을 추가하시거나, 악성 봇이 아니라 생각하시는 것은 삭제하셔도 됩니다.
ModSecurity의 장점
ModSecurity는 웹 애플리케이션 방화벽(WAF)으로서 다음과 같은 이점이 있습니다.
- 더 정교한 매칭 패턴 사용 가능
- 접근 시도를 로깅하고 모니터링 가능
- User-Agent 전체 문자열을 더 효과적으로 검사
- 차단 규칙에 임계값 설정 가능
결론
이 두 가지의 방법 중 하나만 사용하면 되는데요. 개인적으론 ModSecurity를 더 추천합니다.
ModSecurity는 서버 전체에 규칙을 적용하며, 모든 요청을 중앙에서 관리합니다. .htaccess는 개별 디렉토리마다 설정해야 합니다. 즉, .htaccess는 개별 디렉토리마다 설정해야 하므로 관리가 번거로울 수 있지만, ModSecurity는 서버 차원에서 모든 요청을 중앙에서 관리하므로 더 효율적입니다.
ModSecurity는 서버 수준에서 동작해 요청을 더 빠르게 처리하며, HTTP 요청의 헤더, 본문, 파라미터 등을 정밀하게 검사할 수 있어 더 복잡한 공격도 탐지 가능합니다. 반면 .htaccess는 각 요청마다 파일을 읽으므로 성능이 저하될 수 있습니다.
저는 그동안 .htaccess 를 이용해서 악성 봇을 차단해 왔었는데, 트래픽 접근 IP를 살펴보니 MJ12bot이 제가 지정한 .htaccess를 뚫고 접근하였더군요. 변형된 User-Agent 문자열로 차단을 회피하여 접근한 것으로 보입니다.
[참고*MJ12bot은 User-Agent 문자열을 변형하여 .htaccess 규칙을 우회할 수 있습니다. 예를 들어, 'Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)'와 같은 문자열은 단순한 패턴 매칭으로는 탐지되지 않을 수 있습니다.*]
이에 위에 소개해드린 ModSecurity 규칙 코드를 적용해서 현재까지는 보안이 잘 유지되어 오고 있습니다.
.htaccess와 ModSecurity는 모두 악성 봇과 과도한 트래픽으로부터 사이트를 보호하는 유용한 도구입니다. 하지만 서버 전체에 통합적인 보안을 제공하고 변형된 User-Agent 문자열까지 탐지하려면 ModSecurity가 더 강력하고 효율적인 솔루션이라 할 수 있습니다.
이전 포스팅에서 소개해드린 클라우드플레어와 워드팬스를 함께 사용한다면 더욱 완벽한 보안 체계를 구축할 수 있을 것입니다.
"워드프레스 사이트를 위한 DDoS 및 트래픽 과부하 공격 실전 대응법
"워드프레스 사이트를 위한 DDoS 및 트래픽 과부하 공격 실전 대응법
안녕하세요. 취미 사진가 나라입니다.본 블로그 외에 제가 관리 운영중인 워드프레스 블로그로 최근 DDoS 및 트래픽 과부하 공격을 의심하게 하는 일이 발생하였었습니다. 처음 겪는 일이기도 하
jknara.tistory.com
"워드프레스 사이트를 위한 DDoS 및 트래픽 과부하 공격 실전 대응법 (0) | 2025.03.04 |
---|---|
[티스토리/워드프레스] 웹브라우저 개발자 도구에서 발견되는 오류 메시지 해결 방법 (2) | 2025.01.14 |
코어 웹 바이탈 평가 CLS 0.1 초과 애드센스가 원인?! (1) | 2023.09.29 |
티스토리 자체광고가 내 수익도 가져간다?!! (1) | 2023.08.09 |
티스토리 자체광고 사태 어떻게 대응해야 하나... (12) | 2023.06.30 |