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
[root@vpsv-haproxy1 ~]# cat /etc/haproxy/coraza-spoe.cfg
[coraza]
spoe-agent coraza-agent
messages coraza-req
option var-prefix coraza
timeout hello 2s
timeout idle 10s
timeout processing 5s
use-backend coraza-spoa-backend
spoe-message coraza-req
args app=str(sample_app) id=unique-id src_ip=src src_port=src_port dst_ip=dst dst_port=dst_port method=method path=path query=query version=req.ver headers=req.hdrs
event on-frontend-http-request
[root@vpsv-haproxy1 ~]#
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:~#