
Monitoritzant Crowdsec amb Centreon
Si en la vostra organització heu implementat Crowdsec i Centreon imagino que a banda de ser felices i descansar, ho tindreu tot bastant controlat; però, y… Què passa si us comento que des de Centreon podem monitoritzar els bagencs que ens fa Crowdsec? Efectivament, quan Crowdsec afegeixi alguna adreça IP a la llista negra podrem alertar-nos via Centreon!
Crec que molts ja coneixeu el funcionament de Crowdsec i els avantatges del seu ús en qualsevol organització i fins i tot àmbits personals, la idea és que com sabem, Crowdsec detecta amenaces, qualsevol atac o 'cosa rara’ que pugui patir algun servei que tinguem publicat a Internet. Sabem que Crowdsec per si mateix pot notificar-te quan afegeixi l'adreça IP de qualsevol atacant per correu, Telegram, Slack, Teams… Però per tenir totes les notificacions d'IT centralitzades, doncs és bona idea potser que Centreon es pugui encarregar d'això també, no només per saber quan algú és bloquejat, si no per tenir aquest control, tenir aquestes dades emmagatzemades…
Així que farem un Comando que s'executarà a Centreon per checkejar en el nostre servidor Crowdsec Central API si alguna màquina amb Crowdsec ha estat atacada, aquest Comandament com sempre l'associarem a un Servei a Centreon i quedarà llest. Primerament, en el nostre servidor Crowdsec central API haurem de donar d'alta un nou bouncer per poder usar el seu Token i realitzar les consultes per API:
cscli bouncers add CENTREON-MONITORIZA
API key for 'CENTREON-MONITORIZA':
uz0Oxxxxxxxxsdfsdf Please keep this key since you will not be able to retrieve it!
Al Centreon Central o Poller crearem doncs un script per monitoritzar-lo, per exemple anomenat alguna cosa com /usr/lib/centreon/plugins/check_crowdsec.sh, recordar després de gravar-ho fer-ho executable amb (chmod +x), en l' script haurem de tenir un parell de consideracions, posar l'API key i l'adreça IP del Central API de Crowdsec
#!/bin/bash # Realitza la sol·licitud amb curl i filtra amb jq result=$(curl -s -H "X-Api-Key: xxxxxxxxxxxx" http://DIRECCION_IP_CROWDSEC_LAPI:8080/v1/decisions/stream?startup\=true | jq '.new[] | select(.uuid != null) | {value, scenario}') # Cuenta las direcciones IP únicas ip_count=$(echo "$result" | jq -r '.value' | sort -u | wc -l) ip_list=$(echo "$result" | jq -r '.value' | sort -u | paste -sd,) # Verifica si hay direcciones IP baneadas y genera el mensaje if [ "$ip_count" -gt 1 ]; then echo "CRITICAL: Hay $ip_count direcciones IPs baneadas: $ip_list" exit 2 elif [ "$ip_count" -gt 0 ]; then echo "CRITICAL: Hay $ip_count dirección IP baneada: $ip_list" exit 2 else echo "OK: No hay direcciones IPs baneadas." exit 0 fi
Posteriormente como sigue la costumbre, crearemos el Comando en Centreon, n'hi haurà prou amb posar-li un nom al comandament amb la següent línia de comandaments '/usr/lib/centreon/plugins/check_crowdsec.sh'.
Creem un servei a Centreon anomenat per exemple 'Crowdsec – Checkeo IPs ranejades’ i se l'eixu al servidor de Crowdsec i al 'Check Command’ n'hi haurà prou amb triar el Comando nou creat.
Un cop guardada i exportada la configuració a Centreon podrem ja veure el nostre checkeig i verificar que funciona correctament.
En el cas de detectar una IP a la blocklist o blacklist ens alertarà, podeu provar d'afegir una decisió manualment des de la CLI de Crowdsec i veureu com el servei a Centreon es posa a CRITICAL i ens alerta de què o quins, són les adreces IP que han estat xadejades pel sistema.
Bo espero que aquest document us pugui inspirar en quins tipus de cosiques podem muntar per tenir més control en les nostres organitzacions per tal d'aconseguir una major seguretat, o per als que encara potser no coneguin què és Crowdsec i els pugui animar a descobrir-ho… bo, que això, que us porteu molt bé, gaudir de la fruita!