Benutzer-Werkzeuge

Webseiten-Werkzeuge


coraza

Dies ist eine alte Version des Dokuments!


Coraza (WAF)

sudo apt update
sudo apt install -y git make build-essential pkg-config curl ca-certificates golang-go
go version

sudo useradd --system --no-create-home --shell /usr/sbin/nologin coraza-spoa || true

sudo mkdir -p /etc/coraza-spoa
sudo mkdir -p /var/log/coraza-spoa
sudo chown -R coraza-spoa:coraza-spoa /var/log/coraza-spoa

cd /usr/local/src
sudo git clone https://github.com/corazawaf/coraza-spoa.git
cd coraza-spoa

go run mage.go build

# binary is in build now

sudo install -m 0755 build/coraza-spoa /usr/local/bin/coraza-spoa

# test it
/usr/local/bin/coraza-spoa -h
sudo cp /usr/local/src/coraza-spoa/example/coraza-spoa.yaml /etc/coraza-spoa/coraza-spoa.yaml

sudo vi /etc/coraza-spoa/coraza-spoa.yaml

# testweise starten
sudo -u coraza-spoa /usr/local/bin/coraza-spoa -config /etc/coraza-spoa/coraza-spoa.yaml
[coraza]
spoe-agent coraza-agent
    messages coraza_req
    option var-prefix coraza
    timeout hello 5s
    timeout idle 30s
    timeout processing 30s
    use-backend coraza-spoa-backend

spoe-message coraza_req
    args app=str("sample_app") src_ip=src method=method path=path query=query version=req.ver
    event on-frontend-http-request
root@ubuntuserver:~# cat /etc/coraza-spoa/coraza-spoa.yaml
bind: 0.0.0.0:9000

# SPOA process logs (daemon-level)
log_level: debug
log_file: /dev/stdout
log_format: console

default_application: sample_app

applications:
  - name: sample_app

    directives: |
      #################################################################
      # Base + CRS
      #################################################################
      Include @coraza.conf-recommended
      Include @crs-setup.conf.example
      Include @owasp_crs/*.conf

      SecRuleEngine On

      #################################################################
      # Audit logging (WAF events / transactions)
      #################################################################
      # RelevantOnly = nur Treffer / relevante Transaktionen loggen
      SecAuditEngine RelevantOnly

      # Alle Parts für Troubleshooting (später ggf. reduzieren)
      SecAuditLogParts ABCEFHIJZ

      # JSON ist einfacher zum Auswerten
      SecAuditLogFormat JSON

      # Eine Datei (einfach fürs Testen)
      SecAuditLog /var/log/coraza-spoa/audit.log

      #################################################################
      # Debug logging (nur vorübergehend!)
      #################################################################
      SecDebugLog /var/log/coraza-spoa/debug.log
      SecDebugLogLevel 3

      #################################################################
      # Optional: mehr Sichtbarkeit beim Testen
      #################################################################
      # Wenn du wirklich JEDE Anfrage im Auditlog sehen willst, statt
      # RelevantOnly -> On setzen:
      # SecAuditEngine On

    # HAProxy sendet bei dir aktuell nur Request-Infos
    response_check: false

    # Transaktionscache (ms)
    transaction_ttl_ms: 60000

    # App-level logs (coraza-spoa intern)
    log_level: debug
    log_file: /dev/stdout
    log_format: console

root@ubuntuserver:~#
coraza.1771928612.txt.gz · Zuletzt geändert: 2026/02/24 11:23 von jango