Title here
Summary here
La forma más fácil de usar CRS con Coraza es a traves del paquete Go coraza-coreruleset, que incorpora el Core Rule Set y la configuración recomendada de Coraza para que no necesites gestionar archivos manualmente.
package main
import (
"github.com/corazawaf/coraza/v3"
"github.com/corazawaf/coraza-coreruleset"
)
func main() {
waf, err := coraza.NewWAF(
coraza.NewWAFConfig().
WithRootFS(coreruleset.FS).
WithDirectivesFromFile("@coraza.conf-recommended").
WithDirectivesFromFile("@crs-setup.conf.example").
WithDirectivesFromFile("@owasp_crs/*.conf"),
)
if err != nil {
panic(err)
}
// Use waf...
_ = waf
}Si prefieres gestionar los archivos de CRS manualmente:
wget https://raw.githubusercontent.com/corazawaf/coraza/main/coraza.conf-recommended -O coraza.conf
git clone https://github.com/coreruleset/corerulesetLuego carga los archivos en orden:
func initCoraza() {
cfg := coraza.NewWAFConfig().
WithDirectivesFromFile("coraza.conf").
WithDirectivesFromFile("coreruleset/crs-setup.conf.example").
WithDirectivesFromFile("coreruleset/rules/*.conf")
waf, err := coraza.NewWAF(cfg)
if err != nil {
panic(err)
}
_ = waf
}Por favor consulta https://coreruleset.org/docs/deployment/install/ para ejemplos de configuración.