WAF로 관리자 페이지가 차단될 때 예외 처리하기

보안 설정을 조금 올렸더니 내 관리자 페이지가 403으로 막혔습니다. 글도 못 쓰고 설정도 못 바꿉니다. 그런데 여기서 당황해서 보안 수준을 최저로 내려버리면, 문제는 사라지지만 사이트도 무방비가 됩니다.

안녕하세요, 코딩하는 안다형입니다. 이 글에서는 자기 자신이 잠겼을 때 방어를 유지한 채 되살리는 순서를 정리했습니다. 핵심은 전체를 낮추지 않고 내 접속만 여는 것입니다.

3줄 요약
1. 먼저 보안 이벤트 로그에서 무엇이 막았는지 확인합니다. 원인마다 대응이 다릅니다.
2. 급하면 내 IP만 Skip으로 여세요. 보안 수준을 전체적으로 낮추면 안 됩니다.
3. 조치 후 다른 네트워크에서 여전히 차단되는지 반드시 확인하세요.

 

복구 순서: 원인 확인, 임시 우회, 정식 예외, 검증

먼저: 진짜 WAF가 막은 게 맞나

엉뚱한 곳을 고치지 않으려면 이것부터 가려야 합니다. 화면을 보세요.

  • Cloudflare 로고와 Ray ID가 있는 차단 화면: Cloudflare가 막은 것입니다. 이 글의 내용이 맞습니다.
  • Cloudflare 로고가 없는 403: 서버나 보안 플러그인이 막은 것입니다. 서버 쪽을 봐야 합니다.
  • 확인 절차가 반복되며 통과가 안 됨: 보안 수준이나 봇 관련 설정입니다.
  • 522나 연결 오류: WAF가 아니라 원본 연결 문제입니다.

Cloudflare 차단 화면이면 Ray ID를 메모해 두세요. 로그에서 그 요청을 정확히 찾을 수 있습니다.

1단계. 로그에서 원인 확인

Cloudflare 대시보드에서 보안 → 이벤트로 들어갑니다. 차단된 시각으로 좁히고, 해당 항목을 펼쳐 확인할 것은 세 가지입니다.

  • 어떤 서비스가 막았나: 관리형 규칙인지, 사용자 정의 규칙인지, 속도 제한인지, 보안 수준인지.
  • Rule ID와 규칙 이름: 예외를 만들 때 필요합니다.
  • 요청 경로와 내 IP: 조건을 좁힐 때 씁니다.

여기까지 확인하면 남은 일은 기계적입니다. 원인을 모른 채 이것저것 끄는 것이 가장 오래 걸리는 길입니다.

2단계. 급할 때: 내 IP만 열기

지금 당장 관리자에 들어가야 한다면 이 방법이 가장 빠르고 안전합니다.

먼저 내 IP를 확인합니다. 검색창에 "내 아이피"를 넣으면 바로 나오고, 명령줄에서도 확인할 수 있습니다. 그다음 사용자 정의 규칙을 하나 만들고 조치를 Skip으로 지정합니다.

(ip.src eq 111.222.33.44)

그리고 이 규칙을 목록 맨 위로 올리세요. 규칙은 위에서 아래로 평가되므로, 아래에 있으면 이미 차단된 뒤라 실행되지 않습니다.

주의할 점이 두 가지 있습니다. 가정용 인터넷은 IP가 바뀝니다. 며칠 뒤 다시 막힐 수 있으니 임시 조치로 생각하세요. 그리고 휴대폰 데이터는 IP가 다릅니다. 두 환경 모두 필요하면 조건에 함께 넣어야 합니다.

3단계. 정식 예외: 경로 기준으로 좁히기

IP는 바뀌므로 오래 쓸 방법이 아닙니다. 더 안정적인 방식은 경로와 조건을 겹쳐 예외를 만드는 것입니다.

(http.request.uri.path contains "/wp-admin/" and ip.src in {111.222.33.44 55.66.77.88})

이렇게 하면 내 IP에서 관리자 경로로 들어올 때만 검사를 건너뜁니다. 공격자가 같은 경로로 와도 IP가 다르니 그대로 막힙니다. 관리자 경로 외의 페이지는 여전히 전부 보호됩니다.

IP를 고정할 수 없는 환경이라면 조치를 Skip 대신 Managed Challenge로 두는 방법도 있습니다. 나는 확인 한 번 거치고 들어가고, 자동화된 공격은 걸러집니다.

 

차단 유형별 원인과 대응 정리표

차단 유형별 대응

  • 403 차단 화면: WAF 규칙에 걸린 것입니다. Rule ID를 예외로 둡니다.
  • 확인 절차가 계속 나옴: 보안 수준이 높습니다. 내 IP를 허용합니다.
  • 특정 동작만 실패: 요청 본문 검사입니다. 해당 경로를 예외로 둡니다.
  • 국가 차단에 걸림: 지역 기반 규칙입니다. 예외 조건을 추가합니다.
  • 로그인만 실패: 속도 제한입니다. 임계값을 조정합니다.

완전히 잠겨서 대시보드도 못 여는 경우

드물지만 있습니다. 그럴 때 쓸 수 있는 방법입니다.

  • Cloudflare 대시보드는 별개입니다. 내 사이트가 막혀도 dash.cloudflare.com은 정상적으로 열립니다. 여기서 규칙을 수정하면 됩니다.
  • 다른 네트워크로 접속해 보세요. 휴대폰 데이터로 바꾸면 IP가 달라져 통과되는 경우가 있습니다.
  • 최후의 수단은 프록시 끄기입니다. 해당 레코드를 회색 구름으로 바꾸면 Cloudflare를 우회해 원본에 직접 접속됩니다. 다만 이 상태에서는 보호가 없으니, 규칙을 고친 뒤 즉시 되돌리세요.

이건 하지 마세요

  • 보안 수준을 최저로 낮춰 해결: 사이트 전체가 약해집니다. 내 IP만 여세요.
  • 관리형 규칙 세트를 통째로 끄기: 원인이 되는 규칙 하나만 좁혀서 처리하세요.
  • Skip 규칙을 목록 아래에 두기: 위에서 이미 차단되어 실행되지 않습니다.
  • 예외를 만들고 검증 없이 넘어가기: 다른 네트워크에서 차단이 유지되는지 확인해야 합니다.
  • 프록시를 끈 채로 방치: 원본 IP가 노출되고 방어가 사라집니다. 임시 조치로만 쓰세요.
  • 관리자 경로 예외를 IP 조건 없이 만들기: 그 경로가 누구에게나 열립니다. 가장 위험한 실수입니다.

자주 묻는 질문

Q. 내 IP가 자꾸 바뀝니다. 어떻게 하나요?

가정용 인터넷은 대개 유동 IP입니다. 세 가지 방법이 있습니다. 대역 단위로 허용하거나, 조치를 Managed Challenge로 두거나, 통신사에서 고정 IP를 받는 것입니다. 개인 사이트라면 두 번째가 현실적입니다.

Q. 관리자 경로만 통째로 예외로 두면 안 되나요?

권하지 않습니다. 관리자 경로는 공격이 가장 집중되는 곳입니다. 그곳의 검사를 IP 조건 없이 꺼버리면 방어가 필요한 자리를 정확히 비우는 셈입니다.

Q. 대시보드에서 규칙을 고쳤는데 여전히 막힙니다.

브라우저 캐시일 수 있습니다. 시크릿 창으로 접속해 보세요. 그래도 막힌다면 규칙 순서와 다른 규칙에 중복으로 걸렸는지를 로그에서 확인하세요.

Q. 방문자도 같은 차단을 겪고 있나요?

로그를 보면 알 수 있습니다. 보안 이벤트에서 차단 건수가 갑자기 늘었다면 정상 방문자까지 걸리고 있을 가능성이 큽니다. 그럴 때는 규칙 범위가 너무 넓은 것이니 조건을 좁히세요.

Q. Skip과 Allow는 어떻게 다른가요?

Skip은 지정한 이후 검사들을 건너뛰는 조치입니다. 무엇을 건너뛸지 항목을 고를 수 있어서, 관리형 규칙만 건너뛰고 속도 제한은 유지하는 식의 세밀한 설정이 가능합니다.

Q. 이런 일을 미리 막을 수 있나요?

있습니다. 보안 규칙을 추가하기 전에 내 IP를 Skip으로 여는 규칙을 맨 위에 만들어 두세요. 그러면 어떤 규칙을 잘못 만들어도 자기 자신이 잠기는 일은 생기지 않습니다.

마무리

정리하면 로그에서 원인 확인 → 내 IP만 Skip으로 임시 우회 → 경로와 IP를 겹친 정식 예외 → 다른 네트워크에서 검증 순서입니다.

그리고 미리 해두면 좋은 일이 하나 있습니다. 규칙을 만지기 전에 내 IP 예외를 먼저 걸어 두는 것입니다. 문 안에 갇히기 전에 열쇠를 챙겨 두는 셈입니다. 다음 글부터는 직접 규칙을 만드는 방법을 다루겠습니다.

 

함께 보면 좋은 글