1. Home
  2. Review (리뷰와 생활정보)/티스토리 블로그
  3. 악성 봇 차단: .htaccess와 ModSecurity를 활용한 서버 보안 강화 방법 (for 워드프레스)

악성 봇 차단: .htaccess와 ModSecurity를 활용한 서버 보안 강화 방법 (for 워드프레스)

 .htaccess 규칙 이용ModSecurity 규칙 이용ModSecurity의 장점결론

안녕하세요. 취미 사진가 나라입니다.

지난 2월부터 제가 관리운영하던 워드프레스로 악성 IP접근과 함께 부쩍이나 악성 봇들의 접근이 많아졌습니다.

DDoS 공격이 의심될 정도로  1초~10초 사이에 한순간에 집중에서 접근하는 특징도 보입니다.

지난번 포스팅에서는 클라우드플레어와 워드프레스의 워드팬스를 이용한 방법을 소개해 드렸었는데요.

이번에는 서버 상위에서 막는 방법을 제가 아는 범위 내에서만 알려드리려 합니다.

bot-001.jpg

 .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

 

SNS 공유하기
네이버밴드
카카오톡
페이스북
X(트위터)

ㄴrㄹr님의
글이 좋았다면 응원을 보내주세요!

최근글
이모티콘창 닫기
울음
안녕
감사
당황
피폐