어제 클라우드웨이즈 서버가 일시적으로 다운되면서 워드프레스 사이트에 접속하지 못하는 문제가 발생했습니다. 디도스(DDoS) 공격이 의심되었지만, 클라우드웨이즈(Cloudways)에 라이브 채팅으로 연락하여 서버 다운 문제를 문의하니 서버 내의 한 사이트에 빙봇과 Bytespider 크롤러가 대량으로 유입되면서 서버 과부하가 발생했다고 확인해 주었습니다. 다행히 해당 IP들을 차단하는 코드를 추가하니 서버가 정상화되었습니다.
클라우드웨이즈에서는 서버 Security 섹션에서 유입되는 IP 주소들을 확인할 수 있고, 개별 애플리케이션(워드프레스 사이트 등)에서 봇 트래픽과 요청이 많은 IP들을 볼 수 있습니다.
📍 클라우드웨이즈 할인 프로모 코드 & 가입 방법 (+45% 쿠폰)
클라우드웨이즈(Cloudways): 공격 IP 및 봇 트래픽 확인하기
서버가 갑자기 다운되는 경우 대부분 트래픽이 일시적으로 증가하는 것이 원인일 수 있습니다. 다음과 같은 이유로 트래픽이 급증할 수 있습니다.
- 디도스(DDoS) 공격
- 검색봇 방문의 급격한 증가
- 잘못된 코드로 인해 (예: 무한 루트에 걸리는 경우, 너무 많은 리디렉션이 발생하는 경우)
디도스(DDoS)는 대형 사이트를 타겟으로 주로 이루어졌지만, 디도스 공격 단가가 하락하면서 소규모 사이트를 대상으로도 자주 발생하는 것 같습니다. 실제로 작년 8월과 9월 사이에 극심한 디도스 공격이 제 워드프레스 사이트에 대하여 발생했습니다.😥
10번째 디도스 공격... 정말 징하네요
지난 8월 23일 첫 디도스 공격 이후 오늘 10번째 디도스 공격을 받았습니다. 며칠 동안 공격하다 2~3일 정도 쉰 후에 다시 공격을 재개하는 패턴을 반복하고 있네요. 처음에는 제대로 대응을 못해
avada.tistory.com
디도스 공격이 의심되는 경우 서버의 Security 섹션에서 유입 IP들을 체크하여 확인할 수 있습니다. 또한, 클라우드플레어와 연동하면 보다 확실히 파악할 수 있습니다.

저는 어제 빙봇과 악성 검색봇인 Bytespider 크롤러의 급증으로 인해 서버가 일시적으로 다운되었습니다. 서버의 Security » Incidents에서 문제가 되는 IP들을 확인할 수 있습니다.

47.128.61.140과 같이 47.128로 시작하는 IP는 Bytespider 크롤러로 악성 검색봇으로 유명합니다.
클라우드웨이즈 담당자가 짧은 시간에 대량으로 유입되는 IP들을 체크해주었습니다.

52.167.144로 시작하는 IP는 빙봇 크롤러입니다. 40.77.167로 시작하는 IP는 Bytespider 크롤러로서 계속 IP를 바꾸어가면서 유입되고 있었습니다.😥
애플리케이션 레벨에서 요청수가 많은 IP 주소와 검색 봇들을 확인할 수 있습니다.

애플리케이션 관리 페이지에서 Monitoring » Analytics » Traffic » IP Requests를 클릭하면 요청수가 많은 IP들이 나열됩니다.
52.167.144.17과 52.167.144.147은 Bingbot이고 40.77.167.4와 40.77.167.7은 Bytespider 크롤러입니다.
그리고 Bot Traffic에서 상위 방문 봇들을 확인할 수 있습니다.

빙봇이 지나치게 많이 유입되고 있는 것을 확인할 수 있습니다. 어제 robots.txt 파일에 Bingbot 속도를 제한하는 코드를 추가해 보았습니다. 실제로 효과가 있는지는 모르겠지만, 코드를 넣은 덕분인지 빙봇의 유입이 다소 줄어들었습니다만, 그래도 높은 수준인 것 같습니다. 다음과 같은 코드를 robots.txt 파일에 추가했습니다.
User-agent: bingbot
Crawl-delay: 6
Crawl-delay 숫자가 낮을수록 더 자주 빙봇이 방문하게 됩니다. 처음에는 3으로 설정했다가 추이를 살펴보면서 점차 숫자를 높였습니다. 참고로 티스토리의 경우 다음과 같은 코드가 robots.txt 파일에 추가되어 빙봇이 매우 느리게 방문하도록 하여 티스토리 서버 부하를 줄이고 있습니다.
User-agent: bingbot
Crawl-delay: 20
상기 그림에서 AhrefsBot, SemrushBot 등의 봇들도 보이는데요. AhrefsBot은 robots.txt 파일에 다음 코드를 추가하여 차단할 수 있다고 합니다.
User-agent: AhrefsBot
Disallow: /
하지만 robots.txt 파일에 지시문을 통한 차단은 해당 봇이 무시할 수 있습니다. 저는 다음과 같은 코드를 .htaccess 파일에 추가하여 SemrushBot, AhrefsBot 등과 같은 봇을 차단하도록 했습니다.
# Block listed crawlers (403)
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(SCspider|Textbot|s2bot|MJ12bot|YandexBot|SemrushBot|AspiegelBot|BLEXBot|webmeup-crawler|oBot|Semrush|SiteExplorer|BaiDuSpider|AhrefsBot).*$ [NC]
RewriteRule .* - [F,L]
이렇게 해도 완벽히 차단되지는 않는 것 같지만, 급격한 유입 증가로 인해 서버에 부하를 일으키는 것을 방지하는 데 도움이 될 것 같습니다.
디도스 공격 대응 방법
디도스 공격을 받는 경우 일반 공유호스팅을 이용하면 해당 호스팅에서 방을 빼달라는 요청을 받을 수 있습니다. 공유 호스팅에서 서버 내의 특정 사이트가 디도스 공격을 받으면 다른 사이트들에게도 영향을 미치기 때문입니다.
저는 작년 디도스 공격을 받을 때 클라우드웨이즈의 도움을 많이 받았습니다. 클라우드웨이즈에 연락하면 공격에 사용되는 IP들을 차단하여 트래픽을 완화시켜 서버가 정상화되도록 조치해 줍니다. 하지만 공격 규모가 큰 경우에는 Cloudflare와 연동하여 클라우드웨이즈에서 공격을 완화시키고 클라우드웨이즈에서 IP들을 차단하여 방어할 수 있습니다. 저는 서버 크기가 2GB 램일 때에는 방어가 잘 안 되었지만, 4GB 램 서버로 업그레이드하니 방어가 되었습니다. (디도스 공격 때문에 서버 비용 부담이 증가했습니다.😥)
디도스 공격이 잦다면 클라우드플레어에 가입하여 디도스 공격이 시작될 때 이메일로 알림이 오도록 설정하면 보다 빠르게 대응할 수 있습니다.
디도스 공격 감지 알림 설정 방법 (feat. 클라우드플레어) - 워드프레스 정보꾸러미
이 워드프레스 블로그는 지난 8월 말부터 한 달 동안 14차례에 걸쳐 디도스(DDoS) 공격을 받았습니다. 디도스 공격이 시작되면 서버에 과도한 HTTP 요청이 유입되어 서버가 매우 느려지거나 다운되
www.thewordcracker.com
요약하면 디도스 공격을 방어해야 하는 경우...
- 클라우드플레어에서 디도스 공격 알림이 오도록 설정하여 공격이 시작될 때 빠르게 대응할 수 있도록 합니다.
- 공격이 시작되면 클라우드플레어에서 Under Attack 모드로 전환하여 방어합니다.
- 동시에 웹호스팅 업체에 연락하여 공격에 사용되는 IP들을 차단해 줄 것을 요청합니다.
- 서버 크기가 작은 경우 방어가 잘 안 될 수 있습니다. 그런 경우 서버 사이즈를 업그레이드하는 것을 고려합니다.
저는 이렇게 한 달 정도 방어하니 디도스 공격자가 포기하더군요.😄😄 또 언제 공격을 재개할지 모르겠지만, 그런 경우 이미 경험이 있기 때문에 이전보다는 효과적으로 방어가 가능할 것 같습니다.
참고
https://avada.tistory.com/3461
디도스 (DDoS) 공격 트래픽 소모량과 초과 트래픽 비용
지난 8월 23일부터 워드프레스 블로그에 대한 디도스 (DDoS) 공격이 지속적으로 이루어지고 있습니다. 어제까지 14차례나 디도스 공격이 있었으며 이틀에 한 번꼴로 공격이 들어왔습니다.처음에는
avada.tistory.com
https://avada.tistory.com/3747
케미클라우드 워드프레스에 도메인 연결 방법
케미클라우드(ChemiCloud)는 블루호스트, 패스트코멧 등과 비슷한 레벨의 해외 공유호스팅 서비스입니다. 블루호스트는 미국 서버만을 제공하여 우리나라에서 속도가 느려서 불만이 많습니다. 패
avada.tistory.com