
Pour l'installation, je vous invite à vous rendre sur la page suivante :
Installation de l'agent CrowdSec
De même pour l'installation des bouncers Firewall et Nginx :
Installation des bouncers CrowdSec
Dans le fichier '/etc/crowdsec/bouncers/crowdsec-nginx-bouncer.conf', vous devez renseigner l'option APPSEC_URL= comme ceci :
APPSEC_URL=http://127.0.0.1:7422
Ensuite, il faut modifier le fichier '/etc/nginx/conf.d/crowdsec_nginx.conf' avec la configuration suivante :
lua_package_path '/usr/lib/crowdsec/lua/?.lua;;';
lua_shared_dict crowdsec_cache 50m;
lua_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
resolver $SERVER_DNS ipv6=off;
init_by_lua_block {
cs = require "crowdsec"
local ok, err = cs.init("/etc/crowdsec/bouncers/crowdsec-nginx-bouncer.conf", "crowdsec-nginx-bouncer/v1.2.2")
if ok == nil then
ngx.log(ngx.ERR, "[Crowdsec] " .. err)
error()
end
ngx.log(ngx.ALERT, "[Crowdsec] Initialisation done")
}
map $server_addr $unix {
default 0;
"~unix:" 1;
}
access_by_lua_block {
local cs = require "crowdsec"
if ngx.var.unix == "1" then
ngx.log(ngx.DEBUG, "[Crowdsec] Unix socket request ignoring...")
else
cs.Allow(ngx.var.remote_addr)
end
}
init_worker_by_lua_block {
cs = require "crowdsec"
local mode = cs.get_mode()
if string.lower(mode) == "stream" then
ngx.log(ngx.INFO, "Initializing stream mode for worker " .. tostring(ngx.worker.id()))
cs.SetupStream()
end
if ngx.worker.id() == 0 then
ngx.log(ngx.INFO, "Initializing metrics for worker " .. tostring(ngx.worker.id()))
cs.SetupMetrics()
end
}
Veiller à ne pas oublier de remplacer la variable $SERVER_DNS dans le fichier à la ligne :
resolver $SERVER_DNS ipv6=off;Il faut renseigner un (ou des) serveur DNS fonctionnel
Exemple : resolver 9.9.9.9 ipv6=off;
Pour vérifier la bonne configuration du fichier, vous pouvez taper la commande :
nginx -t
cscli collections install crowdsecurity/appsec-virtual-patching crowdsecurity/appsec-generic-rules crowdsecurity/appsec-crs crowdsecurity/appsec-bot-challenge
CrowdSec produit des règles de Virtual Patching pour les nouvelles vulnérabilités (et parfois anciennes) que nous observons comme étant exploitées activement dans la nature.
Contrairement au CRS, qui offre une protection générique, les règles de Virtual Patching ciblent des vulnérabilités spécifiques et présentent un risque quasi nul de faux positifs.
Le OWASP Core Rule Set (CRS) est un ensemble de règles génériques de détection d'attaques conçu pour protéger les applications web contre une large gamme de menaces, y compris les 10 principales vulnérabilités OWASP, avec un minimum de fausses alertes.
Le CRS offre une protection contre de nombreuses catégories d'attaques courantes, telles que :Injection SQL
Cross-Site Scripting (XSS)
Inclusion de fichiers locaux (LFI)
etc.
appsec_configs:
- crowdsecurity/appsec-default
- crowdsecurity/crs
- crowdsecurity/appsec-bot-*
labels:
type: appsec
listen_addr: 127.0.0.1:7422
source: appsec
name: myAppSecComponent
systemctl restart crowdsec.service nginx.service
cscli bouncers list