crowdsec
This commit is contained in:
parent
8726bba766
commit
e5d688063c
BIN
ilnostropianetaselvaggio/content/images/vps/crowdsec_console.png
Normal file
BIN
ilnostropianetaselvaggio/content/images/vps/crowdsec_console.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 169 KiB |
@ -18,7 +18,7 @@ Un *server privato virtuale* o `VPS` è un ambiente isolato creato su un server
|
||||
2. SSH non su porta standard 22
|
||||
3. Non consentire SSH all'utente root
|
||||
4. Installare un firewall e consentire solo le porte SSH, HTTP e HTTPS, dietro *reverse-proxy*
|
||||
5. Installare **Fail2Ban** (e **Crowdsec**) per bloccare i tentativi di accesso ripetuti
|
||||
5. Installare **Fail2Ban** (e **CrowdSec**) per bloccare i tentativi di accesso ripetuti
|
||||
6. Aggiornare i pacchetti di sistema
|
||||
7. Aggiornamenti automatici di sicurezza
|
||||
8. Fare un backup automatico e regolare
|
||||
@ -325,6 +325,86 @@ journalctl -f -u caddy.service
|
||||
|
||||
Quando Caddy riceve una richiesta su una determinata porta (ad esempio la porta 443 per HTTPS), gestirà internamente il routing del traffico verso i servizi backend specificati nel file di configurazione, senza dover aprire le porte sul firewall del sistema
|
||||
|
||||
## CrowdSec
|
||||
|
||||
CrowdSec è un software di sicurezza open-source progettato per proteggere i server e le applicazioni da attacchi informatici.
|
||||
|
||||
Il funzionamento che sta alla base è molto semplice: tutti condividono i risultati dei vari scan e così facendo si crea una lista globale degli ip utilizzati dagli attaccanti per sfruttare vulnerabilità o causare delle interruzioni di servizio.
|
||||
|
||||
CrowdSec utilizza dei `bouncer` (*buttafuori*), che sono componenti che si integrano con il sistema di sicurezza per applicare le decisioni di blocco o limitazione delle richieste provenienti da indirizzi IP considerati malevoli. CrowdSec offre bouncer per vari sistemi, come iptables (per sistemi Linux), AWS, Cloudflare e molti altri.
|
||||
|
||||
Quando CrowdSec rileva un comportamento sospetto da un indirizzo IP, questo viene aggiunto a una blacklist. I bouncer utilizzano queste blacklist per bloccare o limitare le richieste in tempo reale.
|
||||
|
||||
Poiché CrowdSec è progettato per essere collaborativo, le blacklist possono essere aggiornate in tempo reale con informazioni provenienti da altri utenti.
|
||||
|
||||
Il runtime di CrowdSec ruota attorno ad alcuni semplici concetti:
|
||||
|
||||
- vengono letti i log (file system, journald, docker, ecc);
|
||||
- i log vengono analizzati tramite *parser* (utilizzati per analizzare i log e identificare comportamenti sospetti);
|
||||
- i log normalizzati vengono confrontati con gli scenari;
|
||||
- quando uno scenario viene *attivato*, CrowdSec genera un avviso ed eventualmente una o più decisioni su quale azione dovrebbe essere intrapresa contro l’ip offensivo
|
||||
|
||||
### Installazione e configurazione di CrowdSec
|
||||
|
||||
- Si installa col comando seguente:
|
||||
|
||||
```bash
|
||||
curl -s https://packagecloud.io/install/repositories/CrowdSec/CrowdSec/script.deb.sh | bash
|
||||
apt update
|
||||
apt install CrowdSec CrowdSec-firewall-bouncer-iptables
|
||||
```
|
||||
|
||||
- Abilitare il servizio col comando: `systemctl enable --now CrowdSec.service`.
|
||||
- Installare il parser per caddy: `cscli parsers install CrowdSecurity/caddy-logs`, quindi dare il comando `systemctl reload crowdsec`, in modo che vengano applicate effettivamente le nuove configurazioni
|
||||
- Installare la collection per caddy: `cscli collections install crowdsecurity/caddy`. Dare sempre il comando `systemctl reload crowdsec`
|
||||
- Dopo aver installato CrowdSec, dobbiamo editare il file `/etc/CrowdSec/acquis.yaml`, inserendo il path log da monitorare:
|
||||
|
||||
```bash
|
||||
[...]
|
||||
---
|
||||
filenames:
|
||||
- /var/log/caddy/access.log
|
||||
labels:
|
||||
type: caddy
|
||||
---
|
||||
filenames:
|
||||
- /var/log/fail2ban.log
|
||||
labels:
|
||||
type: fail2ban
|
||||
---
|
||||
```
|
||||
|
||||
Nel mio caso, ho aggiunto semplicemente il percorso dei log di caddy e di fail2ban.
|
||||
|
||||
### Comandi principali
|
||||
|
||||
- `cscli metrics`: mostra le metriche di CrowdSec, come il numero di attacchi rilevati e le azioni intraprese
|
||||
- `cscli metrics show acquisition`: mostra i log analizzati
|
||||
- `cscli decisions list`: elenca le decisioni attuali, mostrando quali IP sono stati bloccati e per quanto tempo
|
||||
- `cscli ban <IP>`: aggiunge manualmente un indirizzo IP alla blacklist
|
||||
- `cscli unban <IP>`: rimuove un indirizzo IP dalla blacklist
|
||||
- `cscli parsers <list/upgrade --all>`: gestisce i **parser**, ossia gli strumenti che analizzano i log
|
||||
- `cscli bouncers <list>`: gestisce i bouncer, consentendo di attivare o disattivare specifici bouncer
|
||||
- `cscli alerts list`: mostra un elenco di allerte generate da CrowdSec
|
||||
- `cscli scenarios list`: elenca tutti gli scenari disponibili nel sistema. Gli **scenari** sono regole di rilevamento specifiche che definiscono come CrowdSec deve reagire a determinati comportamenti sospetti o attacchi
|
||||
- `cscli collections list`: Elenca tutte le collezioni disponibili nel sistema. Le **collezioni** sono gruppi di scenari e parser che possono essere utilizzati per proteggere specifici servizi o applicazioni. Ad esempio, una collezione per un server Linux potrebbe includere scenari per rilevare attacchi SSH, mentre una collezione per un server web potrebbe includere scenari per rilevare attacchi di tipo SQL injection
|
||||
- `cscli collections upgrade --all`: aggiorna tutte le collezioni
|
||||
- `cscli hub update`: questo comando aggiorna l'*hub* di CrowdSec, che è un repository di risorse condivise, come scenari, parser e bouncer. Utile per assicurarsi di avere le ultime regole e configurazioni disponibili
|
||||
- - `cscli help`: mostra un elenco di comandi disponibili
|
||||
|
||||
### CrowdSec Console
|
||||
|
||||
La Console di CrowdSec funge da interfaccia web progettata per gestire efficacemente i bouncer di CrowdSec, permettendo di visualizzare le attività e le decisioni prese. Ovviamente, non è obbligatoria per utilizzare CrowdSec, ma offre un'interfaccia visiva che può rendere più facile l'analisi delle informazioni e il monitoraggio delle minacce.
|
||||
|
||||
Maggiori informazioni [qui](https://doc.crowdsec.net/u/getting_started/post_installation/console/)
|
||||
|
||||
- Una volta loggati, per registrare un'istanza di CrowdSec con la Console, dare il comando `cscli console enroll $ENROLLMENT_KEY`
|
||||
- La `$ENROLLMENT_KEY` si trova nella pagina [security engines](https://app.crowdsec.net/security-engines)
|
||||
![crowdsec_console](/images/vps/crowdsec_console.png)
|
||||
- Dalla console, accettare la registrazione
|
||||
- Una volta accettata la registrazione, bisogna riavviare CrowdSec: `systemctl restart crowdsec`
|
||||
- Dall'[Hub](https://app.crowdsec.net/hub) è possibile trovare nuove collezioni, bouncer, block-list, scenari e parser da installare
|
||||
|
||||
## Aggiornamenti automatici di sicurezza
|
||||
|
||||
Gli `unattended upgrades` (aggiornamenti non presidiati o automatici) sono una funzionalità presente in Debian (e in altre distribuzioni basate su Debian, come Ubuntu) che consente di installare automaticamente gli aggiornamenti di sicurezza, senza richiedere l'intervento dell'utente. Questa funzionalità è particolarmente utile per mantenere il sistema sicuro e aggiornato, riducendo il rischio di vulnerabilità.
|
||||
@ -462,10 +542,13 @@ Per verificare, basta eseguire il comando: `docker stats`
|
||||
- [log caddy](https://caddyserver.com/docs/caddyfile/directives/log)
|
||||
- [Caddy — Configure Logging and Access Logs](https://futurestud.io/tutorials/caddy-configure-logging-and-access-logs)
|
||||
|
||||
### Crowdsec
|
||||
### CrowdSec
|
||||
|
||||
- [Crowdsec](https://blog.marvinpascale.it/posts/2021/crowdsec/)
|
||||
- [caddy-logs](https://app.crowdsec.net/hub/author/crowdsecurity/log-parsers/caddy-logs)
|
||||
- [crowdsec](https://github.com/crowdsecurity/crowdsec)
|
||||
- [CrowdSec](https://blog.marvinpascale.it/posts/2021/CrowdSec/)
|
||||
- [caddy-logs](https://app.CrowdSec.net/hub/author/CrowdSecurity/log-parsers/caddy-logs)
|
||||
- [Crowdsec centralizzato](https://blog.marvinpascale.it/posts/2022/crowdsec-centralizzato/)
|
||||
- [Useful Commands](https://docs.ibracorp.io/crowdsec/crowdsec/useful-commands)
|
||||
|
||||
### ntfy
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user