Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Krawl — Krawl은 사용자 정의 가능하고 경량화된 클라우드 네이티브 웹 디셉션 서버이자 안티 크롤러로, 실제와 같은 무작위 생성 디코이 데이터와 AI 생성 HTML 템플릿을 사용하여 낮은 수준의 취약점을 가진 가짜 웹 애플리케이션을 생성합니다. | Kitploit
도구/GitHubGitHub/blessedrebus/krawl
Container SecurityInformation GatheringWeb SecurityNetwork SecurityCloud SecurityThreat IntelligenceIncident ResponseAnti-BotAI Security
GitHubblessedrebus/krawl

Krawl

Krawl은 사용자 정의 가능하고 경량화된 클라우드 네이티브 웹 디셉션 서버이자 안티 크롤러로, 실제와 같은 무작위 생성 디코이 데이터와 AI 생성 HTML 템플릿을 사용하여 낮은 수준의 취약점을 가진 가짜 웹 애플리케이션을 생성합니다.

558452일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기웹사이트

Krawl

공격자와 웹 크롤러의 악성 활동을 감지하고 추적하기 위해 설계된 현대적이고 커스터마이징 가능한 웹 허니팟 서버입니다. 기만적인 웹 페이지, 가짜 자격 증명, 카나리 토큰을 통해 동작합니다.

라이선스 릴리즈
GitHub Container Registry Kubernetes Helm 차트

목차

  • 데모
  • Krawl이란 무엇인가?
  • Krawl 대시보드
  • 배포 모드
  • Krawl 차단 목록
  • 빠른 시작
    • Docker Run
    • Docker Compose
    • Kubernetes
    • Uvicorn (Python)
  • 설정
    • config.yaml
    • 환경 변수
  • 악성 IP 차단
  • IP 평판
  • 서버 헤더 전달
  • 메트릭 및 모니터링
  • 추가 문서
  • AI를 이용한 기만
  • 기여

데모

팁: robots.txt 경로를 크롤링하면 더 재미있습니다.

Krawl URL: http://demo.krawlme.com

대시보드 보기 http://demo.krawlme.com/das_dashboard

Krawl이란 무엇인가?

Krawl은 악성 공격자, 웹 크롤러, 자동화 스캐너를 탐지, 지연, 분석하도록 설계된 클라우드 네이티브 기만 서버입니다.

관리자 패널, 설정 파일, 노출된 가짜 자격 증명과 같은 쉽게 잡힐 수 있는 위협 요소로 가득한 사실적인 가짜 웹 애플리케이션을 생성하여 의심스러운 활동을 유인하고 식별합니다.

대시보드

공격자의 자원을 낭비함으로써 Krawl은 악성 행동을 합법적인 크롤러와 명확히 구분할 수 있도록 도와줍니다.

다음 기능을 제공합니다:

  • AI 생성 기만 페이지: 공격자가 가짜 취약한 공격 표면을 생성하도록 도와주게 하세요
  • 스파이더 트랩 페이지: spidertrap 프로젝트를 기반으로 크롤러의 자원을 낭비하는 무한 랜덤 링크
  • 가짜 로그인 페이지: WordPress, phpMyAdmin, 관리자 패널
  • 허니팟 경로: robots.txt에 광고되어 스캐너를 잡음
  • 가짜 자격 증명: 현실적인 사용자 이름, 비밀번호, API 키
  • 카나리 토큰 통합: 외부 알림 트리거
  • 랜덤 서버 헤더: 서버 헤더와 버전을 기반으로 공격 혼란
  • 실시간 대시보드: 의심스러운 활동 모니터링
  • 커스터마이징 가능한 단어 목록: 쉬운 JSON 기반 설정
  • 랜덤 오류 주입: 실제 서버 동작 모방

리버스 프록시를 사용하여 Krawl을 다른 서비스와 함께 쉽게 노출하여 웹 크롤러와 악성 사용자로부터 보호할 수 있습니다. 자세한 내용은 리버스 프록시 문서를 참조하세요.

사용 사례

Krawl 대시보드

Krawl은 시작 시 생성된 랜덤 비밀 경로 또는 KRAWL_DASHBOARD_SECRET_PATH를 통해 설정된 커스텀 경로에서 접근 가능한 종합적인 대시보드를 제공합니다. 이를 통해 대시보드가 허니팟을 스캔하는 공격자로부터 숨겨집니다.

대시보드는 6개의 탭으로 구성됩니다:

  • 개요: 공격 활동에 대한 높은 수준의 보기: IP 원산지의 대화형 지도, 최근 의심스러운 요청, 상위 IP, User-Agent, 경로.

geoip

  • 공격: 캡처된 자격 증명, 허니팟 트리거, 감지된 공격 유형(SQLi, XSS, 경로 탐색 등)에 대한 세부 분석과 차트 및 테이블.

공격 유형

  • IP 인사이트: 선택한 IP에 대한 심층 포렌식 보기: 지리적 위치, ISP/ASN 정보, 평판 플래그, 행동 타임라인, 공격 유형 분포, 전체 접근 기록.

ipinsight

또한 대시보드 비밀번호로 인증한 후에는 두 개의 보호된 탭이 추가로 활성화됩니다:

  • 추적 IP: 시간에 따라 모니터링하려는 IP 주소의 감시 목록 유지.
  • IP 차단 목록: IP 차단 관리, 감지된 공격자 보기, 차단 목록을 원시 또는 IPTables 형식으로 내보내기.
  • 기만: AI 생성 페이지 관리, 내보내기 또는 새 페이지 가져오기.

자세한 내용은 대시보드 문서를 참조하세요.

배포 모드

Krawl은 config.yaml의 mode 설정 또는 KRAWL_MODE 환경 변수를 통해 제어되는 두 가지 배포 모드를 지원합니다.

독립 실행형: 요청 수가 적은 개발 환경이나 홈랩에 적합합니다. 추가 설정이 필요 없으며, Krawl을 실행하기만 하면 작동합니다.

  • 외부 종속성이 없는 단일 컨테이너 배포
  • 낮은 RAM 및 리소스 사용량

확장 가능형: 프로덕션 환경이나 트래픽이 많은 허니팟을 위해 설계되었습니다. Helm 차트는 기본적으로 이 모드를 사용합니다.

  • Redis 다중 계층 캐싱 덕분에 더 빠르고 응답성이 뛰어난 대시보드
  • Redis가 PostgreSQL 앞에서 핫패스 캐시 역할을 하여 디스크 I/O 감소
  • 수평 확장으로 로드 밸런서 뒤에서 Krawl 복제본 수 증가

자세한 설정, Docker Compose 예제, Kubernetes/Helm 설정, 단계별 마이그레이션 지침은 배포 모드 문서를 참조하세요.

Krawl 차단 목록

Krawl은 허니팟 트랩을 트리거한 공격자의 IP 주소로 정기적으로 업데이트되는 banlist.txt를 유지 관리합니다. 차단 목록은 매주 게시되며 다운로드 가능하여, 커뮤니티가 Krawl을 사용하지 않더라도 알려진 악성 행위자를 선제적으로 차단할 수 있도록 돕습니다.

차단 목록은 다음에서 직접 가져올 수도 있습니다: https://demo.krawlme.com/das_dashboard/api/export-ips?categories=attacker&fwtype=raw.

빠른 시작

Docker Run

최신 이미지로 독립 실행형 모드에서 Krawl 실행:```bash docker run -d
-p 5000:5000
-e KRAWL_DASHBOARD_SECRET_PATH="/my-secret-dashboard"
-e KRAWL_DASHBOARD_PASSWORD="my-secret-password"
-v krawl-data:/app/data
--name krawl
ghcr.io/blessedrebus/krawl:latest

root@kitploit:~
서버에 접속: `http://localhost:5000`

### Docker Compose

두 배포 모드 중 하나로 `docker-compose.yaml`을 생성하세요.

**독립형(Standalone)**: Sqlite 저장소를 사용하는 Krawl 서버만 포함:```yaml
services:
  krawl:
    image: ghcr.io/blessedrebus/krawl:latest
    container_name: krawl-server
    ports:
      - "5000:5000"
    environment:
      - CONFIG_LOCATION=config.yaml
      # - KRAWL_DASHBOARD_PASSWORD=my-secret-password
    volumes:
      - ./config.yaml:/app/config.yaml:ro
      - krawl-data:/app/data
    restart: unless-stopped

volumes:
  krawl-data:

확장 가능: PostgreSQL 및 Redis 사용:

[!CAUTION] 아래 예제는 기본 비밀번호 (krawl/krawl)를 사용합니다. 프로덕션에 배포하기 전에 변경하십시오.```yaml services: postgres: image: postgres:16-alpine environment: POSTGRES_DB: krawl POSTGRES_USER: krawl POSTGRES_PASSWORD: krawl volumes: - postgres_data:/var/lib/postgresql/data restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U krawl -d krawl"] interval: 10s timeout: 5s retries: 5

redis: image: redis:7-alpine volumes: - redis_data:/data restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5

krawl: image: ghcr.io/blessedrebus/krawl:latest container_name: krawl-server ports: - "5000:5000" environment: - CONFIG_LOCATION=config.yaml - KRAWL_MODE=scalable - KRAWL_POSTGRES_HOST=postgres - KRAWL_POSTGRES_PORT=5432 - KRAWL_POSTGRES_USER=krawl - KRAWL_POSTGRES_PASSWORD=krawl - KRAWL_POSTGRES_DATABASE=krawl - KRAWL_REDIS_HOST=redis - KRAWL_REDIS_PORT=6379 # - KRAWL_DASHBOARD_PASSWORD=my-secret-password volumes: - ./config.yaml:/app/config.yaml:ro restart: unless-stopped depends_on: postgres: condition: service_healthy redis: condition: service_healthy

volumes: postgres_data: redis_data:

root@kitploit:~
배포하려면 그냥 실행하세요.```bash
docker compose up -d

프로덕션 준비 완료 컴포즈 파일은 docker/ 디렉터리에서도 사용할 수 있습니다. 개발용 (소스에서 빌드 및 핫-리로드 포함)은 프로젝트 루트에 있는 컴포즈 파일을 사용하세요.

두 모드에 대한 자세한 내용은 배포 모드를 참조하세요.

Kubernetes

Krawl은 네이티브로 Kubernetes에서도 사용할 수 있습니다. 설치는 매니페스트를 통해 하거나 Helm 차트를 사용하여 할 수 있습니다.

Helm 차트는 기본적으로 번들 PostgreSQL 및 Redis를 포함한 확장 가능 모드로 설정됩니다:```bash helm install krawl oci://ghcr.io/blessedrebus/krawl-chart --version 2.2.0
-n krawl-system --create-namespace
--set postgres.password=your-password
--set redis.password=your-redis-password
--set dashboardPassword=your-dashboard-password
--set config.dashboard.secret_path=/my-secret-dashboard

root@kitploit:~
두 모드 모두에 대한 최소 예제 values 파일이 제공됩니다:
- [`values-minimal.yaml`](https://github.com/blessedrebus/krawl/blob/HEAD/helm/values-minimal.yaml) ---> 확장 가능 (기본값)
- [`values-standalone.yaml`](https://github.com/blessedrebus/krawl/blob/HEAD/helm/values-standalone.yaml) ---> 독립 실행형

전체 구성 및 마이그레이션 지침은 [배포 모드](https://github.com/blessedrebus/krawl/blob/HEAD/docs/deployment-modes.md)와 [차트 문서](https://github.com/blessedrebus/krawl/blob/HEAD/helm/README.md)를 참조하세요.

### Uvicorn (Python)

로컬 개발 또는 테스트를 위해 Python 3.13+ 및 uvicorn을 사용하여 Krawl을 직접 실행하세요:```bash
pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 5000 --app-dir src --no-server-header

서버에 접속: http://localhost:5000

설정

Krawl은 설정 계층 구조를 사용하며, 환경 변수가 설정 파일보다 우선합니다. 이 방법은 Docker 배포 및 즉시 사용자 정의에 권장됩니다.

config.yaml을 통한 설정

고급 설정(예: Docker Compose 또는 Helm 차트 배포)은 config.yaml 파일을 사용할 수 있습니다.

환경 변수를 통한 설정

예를 들어```bash

Set canary token

export CONFIG_LOCATION="config.yaml" export KRAWL_CANARY_TOKEN_URL="http://your-canary-token-url"

Set number of pages range (min,max format)

export KRAWL_LINKS_PER_PAGE_RANGE="5,25"

Set analyzer thresholds

export KRAWL_HTTP_RISKY_METHODS_THRESHOLD="0.2" export KRAWL_VIOLATED_ROBOTS_THRESHOLD="0.15"

Set custom dashboard path and password

export KRAWL_DASHBOARD_SECRET_PATH="/my-secret-dashboard" export KRAWL_DASHBOARD_PASSWORD="my-secret-password"

root@kitploit:~
환경 변수를 사용한 Docker 실행 예시 (독립 실행 모드):```bash
docker run -d \
  -p 5000:5000 \
  -e KRAWL_MODE=standalone \
  -e KRAWL_PORT=5000 \
  -e KRAWL_DELAY=100 \
  -e KRAWL_DASHBOARD_PASSWORD="my-secret-password" \
  -e KRAWL_CUSTOM_TEMPLATE_PATH="/templates/custom_page.html" \
  -e KRAWL_CANARY_TOKEN_URL="http://your-canary-token-url" \
  --name krawl \
  ghcr.io/blessedrebus/krawl:latest

Krawl을 사용하여 악성 IP 차단하기

Krawl은 평판 기반 시스템을 사용하여 공격자 IP 주소를 분류하고, 방화벽 통합을 위해 IP 목록을 내보내는 두 가지 방법을 제공합니다.

/api/export-ips 엔드포인트는 데이터베이스를 직접 쿼리하며 IP 카테고리(attacker, bad_crawler, regular_user, good_crawler)와 출력 형식(raw, iptables, nftables)별 필터링을 지원합니다:```bash curl "https://your-krawl-instance//api/export-ips?categories=attacker&fwtype=raw"

root@kitploit:~
이를 통해 다양한 플랫폼에서 악성 트래픽을 자동으로 차단할 수 있습니다:
* [OPNsense 및 pfSense](https://ipv64.net/v64_blocklist_integration_guide)
* [RouterOS](https://rentry.co/krawl-routeros)
* [IPtables](https://github.com/blessedrebus/krawl/blob/HEAD/plugins/iptables/README.md) 및 [Nftables](https://github.com/blessedrebus/krawl/blob/HEAD/plugins/nftables/README.md)
* [Fail2Ban](https://github.com/blessedrebus/krawl/blob/HEAD/plugins/fail2ban/README.md)

전체 API 매개변수, 예제, 사용자 정의 방화벽 형식 추가에 대한 자세한 내용은 [Firewall Exporters 문서](https://github.com/blessedrebus/krawl/blob/HEAD/docs/firewall-exporters.md)를 참조하세요.

## IP Reputation
Krawl은 [최근 트래픽을 분석하여 IP 평판 점수를 구축하고 지속적으로 업데이트하는 작업](https://github.com/blessedrebus/krawl/blob/HEAD/src/tasks/analyze_ips.py)을 사용합니다. 주기적으로 실행되며 여러 행동 지표를 기반으로 각 활성 IP 주소를 평가하여 공격자, 크롤러 또는 일반 사용자로 분류합니다. 임계값은 완전히 사용자 정의할 수 있습니다.

![ip reputation](https://assets.kitploit.com/production/public/readmes/12879/b6498c17152c4bc5667f22e5a2bfe92c0b0a6e7c5ced5b7d99176bda23963753.png)

분석에는 다음이 포함됩니다:
- **위험한 HTTP 메서드 사용** (예: POST, PUT, DELETE 비율)
- **Robots.txt 위반**
- **요청 시간 이상 징후** (폭발적이거나 불규칙한 패턴)
- **User-Agent 일관성**
- **공격 URL 탐지** (예: SQL injection, XSS patterns)

각 신호는 가중치 기반 점수 모델에 기여하여 평판 범주를 할당합니다:
- `attacker`
- `bad_crawler`
- `good_crawler`
- `regular_user`
- `unknown` (데이터 부족)

결과 점수와 메트릭은 데이터베이스에 저장되며, Krawl이 대시보드, 평판 추적, IP 차단 또는 방화벽 통합과 같은 자동 완화 작업을 구동하는 데 사용됩니다.

## AI-Generated Deception Pages

Krawl은 **OpenRouter** 또는 **OpenAI** API의 AI 모델을 사용하여 현실적인 위장 페이지를 자동으로 생성할 수 있습니다. 이 기능은 수동 페이지 생성 없이 공격자를 속이기 위해 즉시 독특하고 그럴듯한 허니팟 페이지를 만듭니다.

**주요 기능:**
- **동적 생성**: 모든 요청 경로에 대해 고유한 HTML 페이지 생성
- **스마트 캐싱**: 중복 API 호출을 방지하기 위해 생성된 페이지 캐시
- **일일 속도 제한**: 구성 가능한 요청 제한으로 API 비용 제어
- **다중 제공업체**: OpenRouter (무료 옵션) 및 OpenAI 지원
- **우아한 폴백**: 비활성화되거나 제한에 도달하면 표준 허니팟으로 대체
- **캐시 제공**: AI가 비활성화된 경우에도 이전에 생성된 페이지 제공

**빠른 설정:**```yaml
ai:
  enabled: true
  provider: "openrouter"
  openai_base_url: "your-custom-base-url"
  api_key: "your-api-key"
  model: "nvidia/nemotron-3-super-120b-a12b:free"
  timeout: 60
  max_daily_requests: 10

자세한 구성과 사용법은 AI 생성 문서를 참조하세요.

또한 PR을 통해 기만 템플릿을 기여할 수 있습니다. 자세한 내용은 기만 템플릿 기여를 참조하세요.

포워드 서버 헤더

Krawl이 NGINX와 같은 프록시 뒤에 배포된 경우, 프록시에서 다음 구성을 사용하여 서버 헤더를 전달해야 합니다:```bash location / { proxy_pass https://your-krawl-instance; proxy_pass_header Server; }

root@kitploit:~
## Metrics & Monitoring

Krawl은 `/<dashboard_secret_path>/metrics`에서 [Prometheus](https://prometheus.io/) 메트릭을 노출하며(기본 활성화), [`grafana-dashboard.json`](https://github.com/blessedrebus/krawl/blob/HEAD/grafana-dashboard.json)에 즉시 가져올 수 있는 [Grafana](https://grafana.com/) 대시보드를 제공합니다.

전체 메트릭 목록, Grafana 가져오기 단계, Prometheus/Kubernetes(ServiceMonitor) 스크래핑 설정은 [모니터링 문서](https://github.com/blessedrebus/krawl/blob/HEAD/docs/monitoring.md)를 참조하세요.

## 추가 문서

| 주제 | 설명 |
|-------|-------------|
| [AI 생성](https://github.com/blessedrebus/krawl/blob/HEAD/docs/ai_generation.md) | OpenRouter 또는 OpenAI를 사용하여 AI 생성 사기 페이지 구성 |
| [사기 페이지](https://github.com/blessedrebus/krawl/blob/HEAD/docs/deception_pages.md) | 사기 페이지 관리, 가져오기, 내보내기; 대량 작업 및 날짜 기반 필터링 |
| [배포 모드](https://github.com/blessedrebus/krawl/blob/HEAD/docs/deployment-modes.md) | 독립형(SQLite) 대 확장형(PostgreSQL + Redis) 모드, 구성 및 데이터 마이그레이션 |
| [허니팟](https://github.com/blessedrebus/krawl/blob/HEAD/docs/honeypot.md) | 허니팟 페이지 전체 개요: 가짜 로그인, 디렉터리 목록, 자격 증명 파일, SQLi/XSS/XXE/명령어 삽입 트랩 등 |
| [대시보드](https://github.com/blessedrebus/krawl/blob/HEAD/docs/dashboard.md) | 실시간 모니터링 대시보드 접속 및 탐색 |
| [API](https://github.com/blessedrebus/krawl/blob/HEAD/docs/api.md) | Krawl이 IP 데이터, 평판, 지리적 위치에 사용하는 외부 API |
| [리버스 프록시](https://github.com/blessedrebus/krawl/blob/HEAD/docs/reverse-proxy.md) | NGINX 뒤에 Krawl 배포 또는 유인 서브도메인 사용 방법 |
| [데이터베이스 백업](https://github.com/blessedrebus/krawl/blob/HEAD/docs/backups.md) | 자동 데이터베이스 덤프 작업 활성화 및 구성 |
| [카나리 토큰](https://github.com/blessedrebus/krawl/blob/HEAD/docs/canary-token.md) | canarytokens.org를 통한 외부 알림 트리거 설정 |
| [단어 목록](https://github.com/blessedrebus/krawl/blob/HEAD/docs/wordlist.md) | 가짜 사용자 이름, 비밀번호, 디렉터리 목록 사용자 지정 |
| [아키텍처](https://github.com/blessedrebus/krawl/blob/HEAD/docs/architecture.md) | 코드베이스, 요청 파이프라인, 데이터베이스 스키마, 백그라운드 작업의 기술적 개요 |
| [방화벽 내보내기](https://github.com/blessedrebus/krawl/blob/HEAD/docs/firewall-exporters.md) | REST API를 통해 IP 차단 목록을 raw, iptables 또는 nftables 형식으로 내보내기 |
| [메트릭 및 모니터링](https://github.com/blessedrebus/krawl/blob/HEAD/docs/monitoring.md) | Prometheus 메트릭 엔드포인트, 노출된 메트릭 참조, Grafana 대시보드, ServiceMonitor 스크래핑 |

## 기여

기여를 환영합니다! 다음을 따르세요:
1. 저장소를 포크하세요
2. 기능 브랜치를 만드세요
3. 변경 사항을 적용하세요
4. 풀 리퀘스트를 제출하세요 (변경 사항 설명!)

## 면책 조항
> [!CAUTION]
> 이는 사기/허니팟 시스템입니다. 격리된 환경에 배포하고 보안 이벤트를 주의 깊게 모니터링하세요. 관련 법률 및 규정을 준수하여 책임감 있게 사용하세요.

## 별 기록
<img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" width="600" alt="별 기록 차트" />
도구 다운로드
독립 실행형확장 가능형
데이터베이스SQLite (WAL 모드)PostgreSQL
캐시메모리 내 Python dictRedis (다중 계층 TTL)
복제본1 (단일 인스턴스)1+ (수평 확장)
외부 종속성없음PostgreSQL + Redis
적합한 환경개발, 홈랩, 50만 미만 요청프로덕션, 고가용성, 50만 이상 요청
환경 변수설명기본값
CONFIG_LOCATIONYAML 설정 파일 경로config.yaml
KRAWL_PORT서버 수신 포트5000
KRAWL_DELAY응답 지연 시간(밀리초)100
KRAWL_SERVER_HEADER허니팟용 HTTP 서버 헤더""
KRAWL_LINKS_LENGTH_RANGE링크 길이 범위 (min,max)5,15
KRAWL_LINKS_PER_PAGE_RANGE페이지당 링크 수 범위 (min,max)10,15
KRAWL_CHAR_SPACE링크 생성에 사용되는 문자abcdefgh...
KRAWL_MAX_COUNTER초기 카운터 값10
KRAWL_CANARY_TOKEN_URL외부 카나리 토큰 URL없음
KRAWL_CANARY_TOKEN_TRIES카나리 토큰을 표시하기 전 요청 수10
KRAWL_DASHBOARD_SECRET_PATH대시보드 사용자 지정 경로자동 생성
KRAWL_DASHBOARD_PASSWORD보호된 대시보드 패널 비밀번호자동 생성
KRAWL_DASHBOARD_CACHE_WARMUP5분마다 대시보드 데이터를 미리 계산하여 즉시 페이지 로드true
KRAWL_DASHBOARD_WARMUP_PAGES테이블 패널당 미리 준비할 페이지 수10
KRAWL_DASHBOARD_WARMUP_AGGREGATION전체 top_paths/top_ua 집계를 미리 계산하여 쿼리 없이 제공false
KRAWL_DASHBOARD_TOP_N_MIN_COUNT상위 경로/사용자 에이전트 패널의 최소 접근 횟수 (비활성화 시 1)5
KRAWL_PROBABILITY_ERROR_CODES오류 응답 확률 (0-100%)0
KRAWL_DATABASE_PATH데이터베이스 파일 위치data/krawl.db
KRAWL_DATABASE_PERSIST_SUSPICIOUS_ONLY의심스러운 요청만 접근 로그에 저장false
KRAWL_BACKUPS_PATH데이터베이스 덤프 저장 경로backups
KRAWL_BACKUPS_CRON백업 작업 일정을 제어하는 cron 표현식*/30 * * * *
KRAWL_BACKUPS_ENABLEDDB 덤프 작업 활성화 여부true
KRAWL_DATABASE_RETENTION_DAYS데이터 보관 기간(일)30
KRAWL_TARPIT_ENABLED느린 응답과 무작위 텍스트로 AI 에이전트 함정false
KRAWL_TARPIT_DELAY_SECONDS함정 활성화 시 응답당 추가 지연 시간(초)5
KRAWL_HTTP_RISKY_METHODS_THRESHOLD위험한 HTTP 메서드 탐지 임계값0.1
KRAWL_VIOLATED_ROBOTS_THRESHOLDrobots.txt 위반 임계값0.1
KRAWL_UNEVEN_REQUEST_TIMING_THRESHOLD요청 타이밍 변동 계수 임계값0.5
KRAWL_UNEVEN_REQUEST_TIMING_TIME_WINDOW_SECONDS요청 타이밍 분석 시간 창(초)300
KRAWL_USER_AGENTS_USED_THRESHOLD다중 사용자 에이전트 탐지 임계값2
KRAWL_ATTACK_URLS_THRESHOLD공격 URL 탐지 임계값1
KRAWL_INFINITE_PAGES_FOR_MALICIOUS악성 IP에 무한 페이지 제공true
KRAWL_MAX_PAGES_LIMIT크롤러 최대 페이지 제한250
KRAWL_BAN_DURATION_SECONDS요율 제한 IP 차단 기간(초)600
KRAWL_AI_ENABLEDAI 생성 허니팟 페이지 활성화false
KRAWL_AI_PROVIDERAI 제공업체 ("openrouter" 또는 "openai")"openrouter"
KRAWL_AI_OPENAI_BASE_URL사용자 정의 API 엔드포인트용 선택적 OpenAI Base URL"https://api.openai.com/v1"
KRAWL_AI_API_KEYAI 제공업체 API 키None
KRAWL_AI_MODEL페이지 생성에 사용할 AI 모델"nvidia/nemotron-3-super-120b-a12b:free"
KRAWL_AI_TIMEOUTAI API 호출 요청 제한 시간(초)60
KRAWL_AI_MAX_DAILY_REQUESTS하루 최대 AI 생성 페이지 수 (0 = 무제한)0
KRAWL_AI_PROMPTAI 페이지 생성용 사용자 정의 프롬프트 템플릿기본 프롬프트
KRAWL_CUSTOM_TEMPLATE_PATH사용자 정의 HTML 템플릿의 컨테이너 내 경로. 템플릿에는 {counter} 및 {content} 자리 표시자가 포함되어야 함./templates/custom_page.html
확장 모드
KRAWL_MODE배포 모드 (standalone 또는 scalable)standalone
KRAWL_POSTGRES_HOSTPostgreSQL 호스트명localhost
KRAWL_POSTGRES_PORTPostgreSQL 포트5432
KRAWL_POSTGRES_USERPostgreSQL 사용자명krawl
KRAWL_POSTGRES_PASSWORDPostgreSQL 비밀번호krawl
KRAWL_POSTGRES_DATABASEPostgreSQL 데이터베이스 이름krawl
KRAWL_REDIS_HOSTRedis 호스트명localhost
KRAWL_REDIS_PORTRedis 포트6379
KRAWL_REDIS_DBRedis 데이터베이스 번호0
KRAWL_REDIS_PASSWORDRedis 비밀번호없음
KRAWL_REDIS_CACHE_TTL대시보드 웜업 데이터 TTL(초)600
KRAWL_REDIS_HOT_TTL핫 경로 데이터(차단 정보, IP 카테고리) TTL(초)30
KRAWL_REDIS_TABLE_TTL페이지네이션된 대시보드 테이블 TTL(초)120