Passa al contenuto principale
Versione: 0.5.6

CrowdSec su Aruba Cloud

Esegui il deployment di CrowdSec — threat intelligence collaborativa e prevenzione delle intrusioni — su Aruba Cloud tramite Terraform e cloud-init. Installa l'agente CrowdSec e il firewall bouncer dal repository ufficiale con collection configurabili e registrazione opzionale alla CrowdSec Console.

Versione provider: arubacloud/arubacloud ~> 1.0 | Terraform: ≥ 1.9


Introduzione​

CrowdSec è un agente di sicurezza leggero e open-source che analizza i log in tempo reale usando scenari comportamentali e blocca gli IP malevoli tramite bouncer. La community condivide l'intelligence sulle minacce tramite la CrowdSec Console, rendendola un IDS/IPS collaborativo. Questo esempio esegue il provisioning di:

  • Agente CrowdSec installato dal repository di pacchetti ufficiale
  • Firewall bouncer (crowdsec-firewall-bouncer-nftables) per applicare i blocchi a livello OS
  • Collection configurabili (parser + scenari per SSH, Linux, nginx, ecc.)
  • Registrazione opzionale alla CrowdSec Console per gestione centralizzata e intelligence dalla community

Caso d'uso tipico: distribuisci CrowdSec come componente aggiuntivo su server che eseguono Nginx, Apache o Traefik aggiungendo la collection rilevante — oppure distribuiscilo autonomamente come gateway di sicurezza dedicato con firewall bouncer.


Panoramica dell'architettura​


Infrastruttura creata​

RisorsaPattern del nomeDescrizione
arubacloud_projectcs-prodContenitore del progetto
arubacloud_vpccs-prod-vpcVirtual Private Cloud
arubacloud_subnetcs-prod-subnetSubnet base
arubacloud_securitygroupcs-prod-vm-sgSecurity group
arubacloud_securityrulecs-prod-vm-sshRegola ingress SSH
arubacloud_elasticipcs-prod-vm-eipIP pubblico della VM
arubacloud_blockstoragecs-prod-bootDisco di boot da 20 GB (Performance)
arubacloud_keypaircs-prod-keypairChiave pubblica SSH
arubacloud_cloudservercs-prod-vmVM CloudServer

Costo mensile stimato​

RisorsaSpecificheCosto stimato/mese
VM CloudServerCSO1A2 — 1 vCPU / 2 GB~€8
Disco di boot20 GB Performance~€3
Elastic IP—~€3
Totale~€14/mese

Requisiti​

  • Terraform ≥ 1.9
  • ArubaCloud Terraform Provider ~> 1.0
  • Un account ArubaCloud con credenziali API OAuth2
  • Una coppia di chiavi SSH
  • (Opzionale) Un account CrowdSec Console per la registrazione

Variabili​

Obbligatorie​

VariabileDescrizione
arubacloud_client_idClient ID OAuth2 di ArubaCloud
arubacloud_client_secretClient secret OAuth2 di ArubaCloud
ssh_public_keyContenuto della chiave pubblica SSH

Opzionali​

VariabileDefaultDescrizione
app_name"cs"Nome breve usato in tutti i nomi delle risorse
environment"prod"Etichetta dell'ambiente
location"ITBG-Bergamo"Regione ArubaCloud
zone"ITBG-1"Zona di disponibilità
billing_period"Hour""Hour" o "Month"
vm_flavor"CSO1A2"Flavor del CloudServer
vm_image"LU22-001"Immagine del disco di boot (Ubuntu 22.04 LTS)
vm_disk_size_gb20Dimensione del disco di boot in GB
ssh_cidr"0.0.0.0/0"CIDR per SSH
enroll_key""Chiave di registrazione alla CrowdSec Console (da app.crowdsec.net)
collections["crowdsecurity/linux", "crowdsecurity/sshd"]Collection da installare

Output​

OutputDescrizione
vm_public_ipIndirizzo IP pubblico della VM
ssh_commandComando SSH per connettersi alla VM
cscli_statusComando per verificare lo stato di CrowdSec da remoto

Istruzioni di deployment​

1. Clona e naviga​

git clone https://github.com/arubacloud/terraform-arubacloud-examples.git
cd terraform-arubacloud-examples/crowdsec

2. Configura le variabili​

cp terraform.tfvars.example terraform.tfvars

Aggiungi la tua chiave di registrazione e le collection:

enroll_key = "your-console-enrollment-key"
collections = ["crowdsecurity/linux", "crowdsecurity/sshd", "crowdsecurity/nginx"]

3. Esegui il deployment​

terraform init
terraform plan
terraform apply

Il bootstrap richiede circa 2–3 minuti.

4. Verifica​

ssh ubuntu@$(terraform output -raw vm_public_ip)
sudo cscli version
sudo cscli collections list
sudo cscli decisions list

Aggiunta di CrowdSec a un server esistente​

CrowdSec è più potente quando distribuito insieme ai servizi che protegge. Per proteggere un server Nginx, aggiungi la collection:

sudo cscli collections install crowdsecurity/nginx
sudo systemctl reload crowdsec

Quindi configura Nginx per scrivere i log di accesso nel percorso monitorato da CrowdSec (/var/log/nginx/access.log).


Collection disponibili​

# Cerca le collection disponibili
sudo cscli hub list
sudo cscli collections list -a

# Collection comuni
sudo cscli collections install crowdsecurity/linux # scenari base Linux
sudo cscli collections install crowdsecurity/sshd # protezione brute-force SSH
sudo cscli collections install crowdsecurity/nginx # parsing log Nginx
sudo cscli collections install crowdsecurity/apache2 # parsing log Apache
sudo cscli collections install crowdsecurity/traefik # parsing log Traefik
sudo cscli collections install crowdsecurity/wordpress # scenari di attacco WordPress

Risoluzione dei problemi​

CrowdSec non rileva gli attacchi​

sudo cscli metrics
# Verifica che le sorgenti di acquisizione rilevanti siano configurate
cat /etc/crowdsec/acquis.yaml
# Segui i log
sudo journalctl -u crowdsec -f

Il firewall bouncer non blocca​

sudo systemctl status crowdsec-firewall-bouncer
# Controlla le regole nftables
sudo nft list ruleset

Riferimenti​