Tiny Star

프로젝트/뉴스 요약 (AI)

[뉴스 요약] Cloudflare 해외 국가 차단 (러시아 트래픽 발생)

하얀지 2025. 7. 21. 20:22

Cloudflare로 트래픽을 확인해보니 24시간 내에 러시아에서 300건 가까이 되는 요청이 온 것을 확인했다.

 

세부 정보를 보니 HTTP로 계속 접근을 시도중인 것 같다.

 

 

비정상 접근 예방

1. HTTPS 요청만 허용

Always Use HTTPS
Automatic HTTPS Rewrites

 

  • Always Use HTTPS: HTTP로 들어온 요청을 자동으로 HTTPS로 리디렉트
  • Automatic HTTPS Rewrites: 리소스 내 HTTP 링크도 자동 HTTPS로 변환

 

이렇게 하면 브라우저가 강제로 암호화 연결(TLS) 사용하게 되므로, 중간자 공격(MITM), 비정상적인 봇 요청 대부분은 차단되거나 무력화됩니다.

 

 

 

2. 방화벽 설정

WAF 설정
규칙 상세

Cloudflare WAF에서 `ip.src.country ne "KR"`→ 차단(Block) 설정 시 KR(대한민국) 외 국가에서 들어오는 모든 요청을 차단합니다.

이건 서버에 도달하기 전 Cloudflare 경계에서 차단되므로 실질적인 "접근 자체"를 차단하는 효과가 있습니다.

 

 

확인

적용 전 요청

오후 4시정도에 이 설정을 완료했고, 왼쪽이 적용 전, 오른쪽이 적용 후인데 변화가 없다.

 

http 로 접근하고 있다는 걸 먼저 확인했기 때문에, http 이벤트에 걸리는지 테스트 해봤는데 그래도 이벤트에 걸리지 않았다.

 

찾아보니 "Always Use HTTPS" 가 가장 첫번째로 적용되어 HTTPS 로 전환되기 때문에 방화벽에 걸리지 않는것으로 보인다. [참고]

 

 

요청은 늘어나는데 WAF 이벤트에 걸리지 않는 이유를 예상해보면, 

  1. 러시아 클라이언트 → `http://mydomain.com` 요청 전송
  2. 이 요청은 Cloudflare 엣지 서버에 도착함
  3. Cloudflare는 “Always Use HTTPS” 정책에 따라
    • HTTP 요청을 감지
    • 클라이언트에게 `301 Moved Permanently` 응답을 보냄
    • 리디렉션 주소: `https://mydomain.com`
  4. 러시아 클라이언트가 `https://mydomain.com` 으로 새 요청을 시도
  5. 이 HTTPS 요청은 이제 WAF 규칙(`ip.src.country ne "KR"`)에 의해 차단됨
  6. 백엔드 서버(Spring 등)는 전혀 호출되지 않음

이 과정에서 3번까지만 응답을 받고 재요청인 4번부터는 시도를 하지 않기 때문으로 보인다.

HTTPS, WAF 두 가지 설정을 하면 일단 안전한걸로 보면 될 것 같다.

 

WAF에 걸리는 게 있는지 종종 확인해보기로 했다.

 

 

 


 

+ 프랑스 접근 및 차단 확인

사용자 에이전트를 보면 python-httpx 로 정상적인 접근이 아님을 알 수 있다.

("Mozilla"가 User-Agent에 없고, Cloudflare가 신뢰하는 봇(cf.client.bot)도 아닌 경우)
정상 브라우저도 아니고, 좋은 봇도 아니면 모두 차단

 

또한 시도한 경로를 보면 /phpinfo.php, /.env 등 공격자가 자주 접근하는 경로임을 알 수 있다.

해당 경로들에 대한 것도 차단 조건에 추가했다.

 

top