사용 매뉴얼
개요
이 앱으로 할 수 있는 주요 업무는 다음과 같습니다.
- Cloudflare의 방화벽 이벤트·HTTP 요청·DNS·Spectrum·감사 로그를 Logpush(HTTP/S3) 또는 API로 수집·정규화
- 방화벽 이벤트 대시보드로 공격 출발지·공격 유형·대응 추이를 모니터링
- 확장 명령어로 감사 로그·방화벽 이벤트 등을 온디맨드 조회
- Cloudflare IP 접근 규칙(블랙리스트)을 조회·추가·삭제
기본 개념·용어
| 용어 | 의미 | 관련 리소스 |
|---|---|---|
| 데이터셋 | Cloudflare Logpush가 내보내는 로그 종류. firewall_events / http_requests / dns_logs / spectrum_events / audit_logs. | cloudflare-firewall-event |
| Ray ID | Cloudflare가 각 요청에 부여하는 식별자. 방화벽·HTTP·감사 로그를 잇는 상관관계(피벗) 키. | — |
| IP 접근 규칙 | Cloudflare의 IP 차단/허용 규칙(블랙리스트). 이 앱의 blacklist 명령어로 관리. | cloudflare-blacklist-rules |
| Enterprise 필드 | WAF 공격 점수 등 Enterprise 요금제에서만 제공되는 필드. 조회 시 extra=t로 요청. | cloudflare-firewall-events |
| Zone / Account | Zone은 도메인 단위, Account는 계정 단위 스코프. 방화벽·HTTP·DNS는 Zone, 감사 로그는 Account 기준. | — |
주요 화면·메뉴 경로
| 기능 | 경로 |
|---|---|
| 앱 관리 | 앱 |
| 접속 프로파일 설정 | 시스템 > 접속 프로파일 |
| 수집기 등록·상태 확인 | 수집 > 수집기 |
| 확장명령어 실행 | 분석 > 쿼리 |
| 대시보드 | 대시보드 > 대시보드 |
작업 시나리오
시나리오 1: 특정 출발지 IP의 방화벽 차단 이벤트 조사
목적: 공격이 의심되는 IP가 최근 어떤 요청을 보냈고 Cloudflare 방화벽이 어떻게 대응했는지 확인합니다.
사전 조건:
- Cloudflare API 토큰과 Zone ID가 설정된 접속 프로파일이 있어야 합니다.
- 방화벽 이벤트를 수집 중이거나, 아래처럼 확장 명령어로 직접 조회할 수 있어야 합니다.
수행 절차:
- 분석 > 쿼리로 이동합니다.
- 아래 쿼리를 실행합니다. 최근 1일 범위에서 해당 IP의 차단(BLOCK) 이벤트만 추립니다.
cloudflare-firewall-events profile=my_profile duration=1d
| search src_ip == "192.0.2.1" and action == "BLOCK"
| sort -_time
| fields _time, ray_id, src_ip, src_country, src_asn, action, signature, host, path
결과 확인:
아래와 같은 레코드가 나오면 정상입니다.
| _time | ray_id | src_ip | src_country | action | signature | host |
|---|---|---|---|---|---|---|
| 2026-07-14 09:12:03 | 00000000000000aa | 192.0.2.1 | US | BLOCK | SQLi 방어 규칙 | example.com |
action이BLOCK이면 차단,signature로 어떤 규칙에 걸렸는지 확인합니다.
시나리오 2: 관리자 계정의 설정 변경 추적 (감사 로그)
목적: 특정 관리자가 계정에 어떤 변경을 수행했는지 감사 로그로 추적합니다.
사전 조건:
- Account ID가 설정된 접속 프로파일이 필요합니다.
- 감사 로그 v2 사용을 권장합니다(원본 HTTP 요청·리소스 정보 등 필드가 더 풍부).
수행 절차:
- 분석 > 쿼리로 이동합니다.
- 최근 7일간 특정 수행자의 감사 로그를 조회합니다.
cloudflare-audit-logs-v2 profile=my_profile duration=7d actor-email=user@example.com
| sort -_time
| fields _time, actor_email, actor_ip, action_type, action_result, resource_type, resource_id
결과 확인:
| _time | actor_email | actor_ip | action_type | action_result | resource_type |
|---|---|---|---|---|---|
| 2026-07-14 08:40:11 | user@example.com | 192.0.2.2 | update | true | zone_setting |
action_result가true면 성공한 변경입니다.resource_type·resource_id로 무엇이 바뀌었는지 식별합니다.
실패 대응:
| 증상 | 원인 | 해결 |
|---|---|---|
| v1보다 결과가 적음 | v2는 GA 이후 데이터만 제공 | 오래된 기간은 cloudflare-audit-logs(v1)로 조회 |
시나리오 3: 악성 IP 차단 규칙 추가·확인·해제
목적: 공격 IP를 Cloudflare IP 접근 규칙에 즉시 차단 등록하고, 대응 종료 후 해제합니다.
사전 조건:
- 접속 프로파일이 단일로 지정되어야 합니다(변경 명령은 여러 프로파일 동시 실행 불가).
- IP 접근 규칙을 수정할 수 있는 권한의 토큰이 필요합니다.
수행 절차:
- 분석 > 쿼리에서 차단 규칙을 추가합니다.
- 등록되었는지 조회로 확인합니다.
- 대응이 끝나면 규칙 ID로 해제합니다.
결과 확인:
| id | start_ip | end_ip | mode | description | | -- | -- | ---- | ---- | ----- | | 8e2fc30220744764bf9d10dd96d29c9b | 192.0.2.1 | 192.0.2.1 | block | SOC 임시 차단 |
- 2단계 조회에 해당 IP가 보이면 차단이 반영된 것입니다.
- 3단계 후 다시 조회해 규칙이 사라졌는지 확인합니다.
실패 대응:
| 증상 | 원인 | 해결 |
|---|---|---|
| 추가 후 조회에 안 보임 | 반영 지연 / Zone·Account 스코프 불일치 | 잠시 후 재조회, 프로파일의 Zone ID 확인 |
| remove가 성공했는데 규칙이 남음 | 존재하지 않는 ID 제거는 성공으로 처리됨 | 조회로 정확한 id를 확인 후 재실행 |
대시보드·리포트
Cloudflare 대시보드
용도: Cloudflare 방화벽 이벤트를 한눈에 모니터링합니다. 어떤 IP·국가·통신망에서 어떤 공격이 들어오고, 방화벽이 어떻게 대응했는지 파악합니다.
주요 위젯:
| 위젯명 | 지표·질문 |
|---|---|
| 출발지IP 상위 10 | 이벤트가 가장 많은 출발지 IP |
| 출발지국가 상위 10 | 공격 트래픽이 집중된 국가 |
| 출발지통신망 상위 10 | 공격이 몰린 ASN(호스팅/통신망) |
| 공격명 상위 10 | 가장 많이 탐지된 공격 유형 |
| 대응 추이 | 시간대별 대응(BLOCK 등) 추이 |
| 대응 통계 | 대응 유형 비율 |
| 최근 로그 | 최신 방화벽 이벤트 원본 |
활용 팁: 특정 국가·ASN에서 이벤트가 급증하면 상위 IP를 확인하고, 시나리오 3으로 즉시 차단 규칙을 추가할 수 있습니다.
주의사항
- HTTP 요청 조회 범위 제한: HTTP 요청은 최근 7일 이내만 조회 가능하며,
to는 현재보다 최소 1분 이전이어야 하고, 한 번의 조회 범위는 자동으로 1시간 단위로 분할됩니다. - Enterprise 전용 필드: 방화벽 이벤트의 WAF 공격 점수 등은 Enterprise 요금제에서만 제공됩니다.
extra=t로 요청하되, 요금제가 낮으면 값이 비거나 오류가 날 수 있습니다. - 감사 로그 v1과 v2 차이: v2는 최신 API로 필드가 더 풍부하지만 GA 이후 데이터만 제공합니다. 오래된 기간은 v1로 조회하세요.
- 권한 주의: add/remove blacklist 명령은 Cloudflare의 IP 접근 규칙을 실제로 변경합니다. 존재하지 않는 ID 제거는 오류 없이 성공 처리되므로, 반드시 조회로 정확한 대상을 확인한 뒤 실행하세요.
- 수집 방식: Logpush(HTTP push/S3)와 API 수집은 데이터셋별로 수집기가 분리됩니다. 자세한 설정은 설치 매뉴얼을 참고하세요.
FAQ
Q. 방화벽 이벤트에서 출발지 국가·ASN이 비어 있어요. A. 수집기(로거) 경로는 GeoIP로 자동 보강되며, 확장 명령어 경로는 Cloudflare가 제공하는 값을 사용합니다. 값이 비면 접속 프로파일의 토큰 권한과 요금제를 확인하세요.
Q. Ray ID로 여러 로그를 연결할 수 있나요? A. 방화벽 이벤트와 HTTP 요청은 같은 방문자 요청에 동일한 ray_id가 부여되어 서로 교차 조회할 수 있습니다. 감사 로그의 raw_cf_ray_id는 설정을 변경한 관리 API 호출의 Ray ID로, 방문자 트래픽의 ray_id와는 별개입니다.
Q. 한 번에 여러 프로파일을 조회할 수 있나요?
A. 조회 명령은 profile을 생략하거나 쉼표로 여러 개를 지정할 수 있습니다. 단, blacklist 변경 명령은 단일 프로파일만 허용합니다.
관련 문서
- 설치 매뉴얼 — 최초 설치 및 접속 프로파일·수집기 설정
- cloudflare-firewall-events — 방화벽 이벤트 조회 명령어
- cloudflare-firewall-event — 방화벽 이벤트 로그 스키마
