워드프레스 블로그가 지난 8월 23일부터 시작하여 엊그제 월요일까지 총 8차례에 걸쳐 디도스 공격을 받았습니다. 이런 공격은 처음 당하다 보니 처음에는 시행착오가 있었지만, 이제는 어떤 식으로 방어할지에 대한 일종의 매뉴얼(?)이 마련되었습니다.😄
디도스 공격을 당할 때 엄청난 수의 접속 시도로 인해 트래픽도 크게 증가할 수 있습니다. 클라우드플레어(Cloudflare)의 무료 요금제에 가입하여 CDN을 활성화하면 트래픽을 클라우드플레어에서 감당하므로 트래픽 증가 위험은 감소하리라 생각됩니다.
디도스 (DDoS) 공격을 당하는 경우 트래픽 문제
최근 2주 사이에 집중적으로 디도스 공격을 받았습니다.
디도스 공격이 들어오면 CPU 사용률이 급증하면서 서버가 다운되거나 그로기 상태가 됩니다. 디도스 공격이 감지되면 Cloudflare에 접속하여 Under Attack 모드를 활성화하고 공격에 사용된 IP 주소들을 차단 조치하면 어느 정도 방어가 가능합니다.
저는 처음에 이 방법으로 방어할 수 있었지만, 한 번은 평소보다 두 배 정도 강한 공격에 서버가 다운되는 일이 있었습니다. 그때 서버 크기를 클라우드웨이즈에서 2GB 램 사이즈에서 4GB 램 사이즈로 업그레이드하니 공격을 당해도 사이트가 다운되거나 느려지는 현상이 발생하지 않고 정상화되었습니다.
클라우드웨플레어에 도메인을 연결하면 CDN이 활성화됩니다. CDN을 이용할 경우 우리나라에서 속도가 조금 느려질 우려가 있습니다.
실제로 사이트 체감 속도가 조금 느렸지만, 디도스 우려가 있거나 공격을 당할 때에는 클라우드플레어의 CDN을 이용하면 트래픽 절감 효과가 있습니다.
처음 Cloudflare에 도메인을 연결한 후에 사이트 속도가 느려질지도 모른다는 생각에 캐시를 비활성화하였습니다. 하지만 디도스 공격 때 트래픽 사용량을 체크해 보니 한 번의 공격에 200~300GB가 소모되는 것을 확인했습니다. 공격이 지속적으로 발생할 경우 호스팅 요금제에 따라 하루 200~300GB의 트래픽 소모를 감당하지 못할 수도 있습니다.
다음은 클라우드플레어의 통계 화면 중 일부를 캐처한 것인데요. 세 차례 공격으로 445GB의 트래픽이 소요되었고, 그중 367GB가 캐싱된 데이터인 것으로 표시되고 있습니다.
다음은 클라우드플레어를 활성화한 이후의 트래픽 사용량 그래핍니다.
2주가 안 되는 기간에 1TB의 데이터가 소모된 것으로 표시되네요.
이용 중인 웹호스팅 상품에서 제공하는 트래픽 용량이 많지 않을 경우 트래픽 부족 문제가 나타날 수 있습니다.
디도스 공격 우려가 사라지는 경우 클라우드플레어의 CDN 기능을 사용하도록 설정하면 사이트 속도가 조금 개선될 것입니다.
저는 클라우드플레어의 캐싱 기능을 비활성화하였고, 디도스 공격이 이루어지는 것이 확인되면 캐시 기능을 다시 활성화하여 트래픽 사용량을 체크 볼 생각됩니다.
디도스 공격(분산 서비스 거부 공격)의 우려가 있는 경우에는 클라우드플레어 연동을 고려해보시기 바랍니다.
저는 클라우드플레어를 활성화하여 HTTP 요청 IP들을 체크해보니 중국에서 많은 HTTP 요청이 이루어진다는 사실을 발견하여 중국 등 일부 국가의 트래픽은 항상 차단하고 있습니다.
참고
https://avada.tistory.com/3046
https://avada.tistory.com/2897