Repolode
fabriziosalmi

fabriziosalmi/caddy-waf

정규식 규칙, IP/DNS/ASN/GeoIP 필터링, 속도 제한, Tor 출구 노드 차단을 지원하는 Caddy용 WAF 미들웨어

대체할 수 있는 제품:Cloudflare WAF

스타
876
포크
37
열린 이슈
1
마지막 커밋
3일 전

어떤 프로젝트인가요?

caddy-waf는 Go로 작성된 Caddy용 HTTP 핸들러 모듈로, 정규식 규칙 집합을 기준으로 요청과 응답을 검사합니다. 각 규칙에는 점수가 부여되며, 총점이 설정 가능한 이상 징후 임계값에 도달하면 요청을 차단합니다. 검사는 요청 헤더, 요청 본문, 응답 헤더, 응답 본문의 네 단계로 진행됩니다.

규칙 검사 외에도 IP 및 CIDR 블랙리스트, DNS 블랙리스트, MaxMind GeoLite2를 이용한 국가 및 ASN 차단, 주기적으로 갱신되는 Tor 출구 노드 목록을 지원합니다. 경로 패턴을 선택적으로 적용할 수 있는 IP별 슬라이딩 윈도우 속도 제한, 사용자 지정 차단 응답, JSON 메트릭 엔드포인트도 제공합니다. 규칙 및 블랙리스트 파일의 변경 사항을 감지해 서버를 재시작하지 않고 다시 불러옵니다.

이 모듈은 Caddyfile 또는 JSON으로 설정할 수 있으며, xcaddy로 빌드하거나 caddy add-package로 설치하거나 Docker 이미지에서 실행할 수 있습니다. 라이선스는 AGPL-3.0입니다.

핵심 기능

  • 01규칙별 이상 징후 점수를 지원하며 Go의 RE2 패키지를 기반으로 하는 정규식 규칙 엔진
  • 02요청과 응답의 헤더 및 본문을 네 단계에 걸쳐 검사
  • 03IP 및 CIDR 블랙리스트와 DNS 블랙리스트
  • 04MaxMind GeoLite2 데이터베이스를 이용한 국가 및 ASN 차단
  • 05경로 패턴을 선택적으로 적용할 수 있는 IP별 슬라이딩 윈도우 속도 제한
  • 06Tor 출구 노드 차단 및 규칙·블랙리스트 파일의 핫 리로드

활용 사례

  • 규칙 집합을 사용해 Caddy로 제공하는 사이트를 일반적인 웹 공격으로부터 보호
  • 특정 국가, ASN, IP 대역 또는 Tor 출구 노드에서 오는 트래픽 차단
  • Caddy 리버스 프록시에서 API 엔드포인트의 요청 속도 제한
  • WAF 메트릭을 Prometheus 또는 Grafana 대시보드로 내보내기

빠른 시작

  1. 1

    xcaddy로 모듈 설치

    go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
  2. 2

    caddy-waf 모듈을 포함해 Caddy 빌드

    xcaddy build --with github.com/fabriziosalmi/caddy-waf
  3. 3

    WAF 모듈을 사용할 수 있는지 확인

    ./caddy list-modules | grep waf

사용 전 알아둘 점

  • 카피레프트 라이선스인 AGPL-3.0에 따라 라이선스가 부여되어 있어 모든 배포 환경에 적합하지 않을 수 있습니다.
  • Go 1.26.0 이상 및 Caddy v2.11.x 이상이 필요합니다.
  • 선택적 GeoIP 기능을 사용하려면 MaxMind GeoLite2 데이터베이스 파일이 필요합니다.

토픽

자주 묻는 질문

caddy-waf은(는) 무엇인가요?
정규식 규칙, IP/DNS/ASN/GeoIP 필터링, 속도 제한, Tor 출구 노드 차단을 지원하는 Caddy용 WAF 미들웨어 caddy-waf는 Go로 작성된 Caddy용 HTTP 핸들러 모듈로, 정규식 규칙 집합을 기준으로 요청과 응답을 검사합니다. 각 규칙에는 점수가 부여되며, 총점이 설정 가능한 이상 징후 임계값에 도달하면 요청을 차단합니다. 검사는 요청 헤더, 요청 본문, 응답 헤더, 응답 본문의 네 단계로 진행됩니다.
caddy-waf은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
caddy-waf은(는) AGPL-3.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
caddy-waf은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. caddy-waf의 마지막 커밋은 2026년 10월 17일입니다.
caddy-waf은(는) 어디에 사용할 수 있나요?
규칙 집합을 사용해 Caddy로 제공하는 사이트를 일반적인 웹 공격으로부터 보호 특정 국가, ASN, IP 대역 또는 Tor 출구 노드에서 오는 트래픽 차단 Caddy 리버스 프록시에서 API 엔드포인트의 요청 속도 제한 WAF 메트릭을 Prometheus 또는 Grafana 대시보드로 내보내기
caddy-waf는 어떻게 설치하나요?
xcaddy로 모듈 설치: go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest caddy-waf 모듈을 포함해 Caddy 빌드: xcaddy build --with github.com/fabriziosalmi/caddy-waf WAF 모듈을 사용할 수 있는지 확인: ./caddy list-modules | grep waf
caddy-waf은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/fabriziosalmi/caddy-waf

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트