지난 금요일과 토요일 이틀 연속 디도스(DDoS) 공격을 받아 이 워드프레스 사이트의 접속이 한 때 불안정했습니다. 다행히 클라우드웨이즈(Cloudways)의 도움을 받아 공격 IP들을 차단하는 조치를 취하여 방어할 수 있었습니다.
이제 이 사이트에 대하여 디도스 공격이 일상화된 것 같아서 클라우드플레어(Cloudflare)의 무료 플랜에 가입하여 도메인을 연결했습니다. IP 차단 직후에 클플을 연결했는데, 살펴보니 중국에서 비정상적으로 많은 트래픽이 유입되고 있었습니다. 사이트가 정상화된 이후에도 중국에서의 위협이 간헐적으로 관찰되었습니다.
이 때문에 클라우드플레어에서 중국 트래픽을 전면적으로 차단하도록 설정했습니다. 특정 국가의 트래픽은 웹호스팅 레벨이나 워드프레스 보안 플러그인 레벨에서도 차단하는 것이 가능하겠지만, Cloudflare를 사용하는 경우에는 클플에서 차단하는 것도 하나의 방법일 것 같습니다.
📍 클라우드웨이즈 가입 방법 (+ Cloudways 할인 쿠폰 & 프로모션 코드)
클라우드플레어(Cloudflare)에서 중국 트래픽 차단하기
어제 디도스 공격이 진행되는 시간대에 이 사이트의 도메인을 Cloudflare에 연결하였습니다.
DDoS(디도스, Distributed Denial of Service) 공격은 다수의 시스템을 이용하여 특정 서버나 네트워크에 대량의 트래픽을 일시적으로 집중시켜 정상적인 서비스를 마비시키는 공격 방법입니다. 이 공격은 대량의 트래픽으로 인해 서버의 자원을 고갈시키거나 네트워크를 포화시켜 사용자가 원하는 서비스에 접근할 수 없도록 만듭니다.
국가별 웹 트래픽 요청수(Web Traffic Requests by Country)를 살펴보니 중국에서의 웹 트래픽이 압도적으로 많았습니다.
디도스 공격이 잦아든 이후에도 국가별 위협수(Threats by Country)를 체크해보니 중국에서 위협이 간헐적으로 유입되었습니다. 중국과 러시아에서의 불량 IP 유입이 많은 것 같습니다.
중국에서도 이 블로그를 방문하는 분들이 드물지만 계십니다. 이 때문에 중국 트래픽을 전면적으로 차단해도 되는지에 대하여 잠시 고민이 되었지만, 당분간 중국 트래픽을 차단하기로 했습니다.
예외를 설정할 수 있을 것도 같지만, 클라우드플레어에 대하여 그리 익숙하지 않아서 우선은 중국 트래픽을 모두 차단하고, 추후에 중국 사용자의 요청이 있으면 예외를 설정하는 방법에 대하여 알아볼 생각입니다.
국가별 트래픽 차단 방법
클라우드플레어(Cloudflare)에서 국가별 트래픽을 차단하는 것이 가능합니다.
1 Cloudflare에 로그인하여 해당 도메인을 선택한 다음, Security (보안) » WAF를 선택합니다.
Custom rules 탭(②)을 선택하고 Create rule (규칙 만들기) 버튼을 클릭합니다.
WAF(웹 애플리케이션 방화벽)는 웹 애플리케이션을 보호하기 위해 설계된 특수한 유형의 보안 기술입니다. WAF는 웹 사이트로 유입되고 나가는 HTTP 트래픽을 모니터링하고 필터링하여 XSS(크로스 사이트 스크립팅), SQL 인젝션 같은 악의적인 공격을 차단합니다.
2 사용자 정의 규칙을 생성하는 화면이 표시됩니다.
Rule name에 규칙 이름(①)을 입력합니다.
When incoming requests match... 섹션에서
- ② Field: Country를 선택합니다.
- ③ Operator: equals가 기본 선택되어 있습니다. 그대로 둡니다.
- ④ Value: China를 입력하여 선택합니다.
Then take action...에서 Block을 선택(⑤)합니다.
3 Deploy (배포) 버튼을 클릭합니다.
4 이제 생성한 규칙이 리스트에 표시됩니다.
Enabled 컬럼에서 해당 규칙을 활성화/비활성화할 수 있습니다.
맨 오른쪽의 점 세 개로 된 아이콘을 클릭하여 규칙을 편집(Edit)/복제(Duplicate)/삭제(Delete)할 수 있습니다. Move to...를 클릭하여 위치를 변경할 수 있습니다.
여러 국가의 트래픽 차단하기
예를 들어, 중국뿐만 아니라 러시아 등 여러 국가의 트래픽 유입을 차단하고 싶은 경우 규칙 생성 화면에서 OR 연산자를 클릭하여 추가할 수 있습니다.
AND 연산자를 사용할 경우에는 여러 개의 조건을 동시에 만족시키는 트래픽이 없기 때문에 아무 트래픽도 차단되지 않습니다. OR 연산자를 사용하면 여러 개의 조건 중 하나만 만족시키면 차단이 발생합니다.
차단된 IP 리스트 확인하기
Security » Events (방화벽 이벤트)에서 차단된 IP 로그를 확인할 수 있습니다.
중국 유입을 차단하도록 규칙을 설정하였기 때문에 중국에서 유입되는 IP 주소들은 모두 차단되어 Activity log(활동 로그)에 표시됩니다.
마치며
이상으로 클라우드플레어에서 특정 국가의 트래픽 유입을 차단하는 방법에 대하여 살펴보았습니다. 웹 방화벽 사용자 정의 규칙을 생성하여 IP 주소 등 다양한 기준으로 차단 설정을 할 수 있습니다. 다음 시간에는 여러 개의 IP 주소를 차단하는 방법에 대하여 살펴보도록 하겠습니다.
중국에서는 이 사이트 접속이 차단되도록 설정되어 있습니다. 중국에서 이 사이트에 접속해야 하는 경우 문의 페이지를 통해 IP 주소를 알려주시면 접속이 허용되도록 예외 설정을 해드리겠습니다.