Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
coraza [2026/02/24 15:56] jango |
coraza [2026/04/05 04:22] (aktuell) jango |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | Coraza | + | Coraza WAF (Web Application [[Firewall]]) |
| + | < | ||
| + | journalctl -u coraza -n 30 --no-pager | ||
| + | </ | ||
| + | |||
| + | =====Installation===== | ||
| + | Ubuntu 24.04 | ||
| < | < | ||
| sudo apt update | sudo apt update | ||
| Zeile 31: | Zeile 37: | ||
| sudo vi / | sudo vi / | ||
| - | |||
| - | # testweise starten | ||
| - | sudo -u coraza-spoa / | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | [root@vpsv-haproxy1 ~]# cat / | ||
| - | [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 ~]# | ||
| </ | </ | ||
| Zeile 73: | Zeile 59: | ||
| Include @coraza.conf-recommended | Include @coraza.conf-recommended | ||
| Include @crs-setup.conf.example | Include @crs-setup.conf.example | ||
| + | | ||
| + | SecRule REQUEST_FILENAME " | ||
| + | | ||
| Include @owasp_crs/ | Include @owasp_crs/ | ||
| Zeile 118: | Zeile 107: | ||
| root@ubuntuserver: | root@ubuntuserver: | ||
| </ | </ | ||
| + | |||
| + | < | ||
| + | # testweise starten | ||
| + | sudo -u coraza-spoa / | ||
| + | </ | ||
| + | |||
| + | =====HAProxy Integration===== | ||
| + | Siehe auch [[HAProxy]] | ||
| + | < | ||
| + | [root@vpsv-haproxy1 ~]# cat / | ||
| + | [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 ~]# | ||
| + | </ | ||
| + | |||
| + | HAProxy leitet eingehende HTTP-Requests an den Agenten weiter; das eigentliche Blocken passiert danach in HAProxy per http-request deny anhand der von Coraza gesetzten Variablen. | ||
| < | < | ||
| Zeile 133: | Zeile 148: | ||
| filter spoe engine coraza config / | filter spoe engine coraza config / | ||
| http-response set-header X-Coraza-Action %[var(txn.coraza.action)] if { var(txn.coraza.action) -m found } | http-response set-header X-Coraza-Action %[var(txn.coraza.action)] if { var(txn.coraza.action) -m found } | ||
| + | http-response deny status 404 hdr X-Coraza-Action %[var(txn.coraza.action)] if { var(txn.coraza.action) -m found } | ||
| default_backend outlook | default_backend outlook | ||
| </ | </ | ||
| + | |||
| + | =====Links===== | ||
| + | |||
| + | * [[https:// | ||