## OpenCTI
OpenCTI is an open source platform allowing organizations to manage their cyber threat intelligence knowledge and observables. It has been created in order to structure, store, organize and visualize technical and non-technical information about cyber threats.
https://github.com/OpenCTI-Platform/opencti
## CrowdSec
Curated Threat Intelligence Powered by the Crowd
https://www.crowdsec.net/
### Installation de CrowdSec
```bash
curl -s https://install.crowdsec.net | sudo sh
sudo apt install crowdsec
iptables -V
```
Si `(nf_tables)` est indiquรฉ, installez le paquet `crowdsec-firewall-bouncer-nftables` au lieu du packet `crowdsec-firewall-bouncer-iptables`.
```bash
sudo apt install crowdsec-firewall-bouncer-nftables
```
### Rรฉรฉcrire le fichier de credentials de la local API ?
```bash
sudo cscli machines add --auto
```
### Activer la rรฉception des dรฉcisions par la console CrowdSec ?
```bash
sudo cscli console status
โญโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ _Option Name_ย ย ย ย โ _Activated_ โ _Description_ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ custom ย ย ย ย ย ย โ โ
ย ย ย ย โ Forward alerts from custom scenarios to the consoleย โ
โ manual ย ย ย ย ย ย โ โ
ย ย ย ย โ Forward manual decisions to the consoleย ย ย ย ย ย ย โ
โ taintedย ย ย ย ย ย โ โ
ย ย ย ย โ Forward alerts from tainted scenarios to the console โ
โ contextย ย ย ย ย ย โ โ
ย ย ย ย โ Forward context with alerts to the console ย ย ย ย ย โ
โ console_management โ โย ย ย ย โ Receive decisions from console ย ย ย ย ย ย ย ย ย ย ย โ
โฐโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
```
Si vous souhaitez activer la rรฉception des dรฉcisions par la console :
```bash
sudo cscli console enable console_management
sudo systemctl reload crowdsec.service
sudo cscli console status
โญโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ _Option Name_ย ย ย ย โ _Activated_ โ _Description_ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ
โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ custom ย ย ย ย ย ย โ โ
ย ย ย ย โ Forward alerts from custom scenarios to the consoleย โ
โ manual ย ย ย ย ย ย โ โ
ย ย ย ย โ Forward manual decisions to the consoleย ย ย ย ย ย ย โ
โ taintedย ย ย ย ย ย โ โ
ย ย ย ย โ Forward alerts from tainted scenarios to the console โ
โ contextย ย ย ย ย ย โ โ
ย ย ย ย โ Forward context with alerts to the console ย ย ย ย ย โ
โ console_management โ โ
ย ย ย ย โ Receive decisions from console ย ย ย ย ย ย ย ย ย ย ย โ
โฐโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
```
### Installation multi-serveurs de CrowdSec
#### 1. Configurer le serveur central
##### 2.1 Installer CrowdSec et exposer l'API
Installer CrowdSec et exposer le port de l'API en veillant ร vos rรจgles de pare-feuย :
```bash
curl -s https://install.crowdsec.net | sudo sh
sudo apt install crowdsec
sudo $EDITOR /etc/crowdsec/config.yaml
```
```yaml
api:
server:
listen_uri: <IP>:8080
```
#### 2. Installer et configurer CrowdSec sur les hรดtes
##### 2.1 Installer CrowdSec, dรฉsactiver le serveur API local de chaque hรดte et s'enregistrer auprรจs du serveur central
Installer CrowdSec et dรฉsactiver le serveur API localย :
```bash
curl -s https://install.crowdsec.net | sudo sh
sudo apt install crowdsec
sudo $EDITOR /etc/crowdsec/config.yaml
```
```yml
api:
server:
enable: false
```
S'enregistrer auprรจs du serveur centralย :
```bash
sudo cscli lapi register -u http://<SERVER_IP>:8080
```
##### 2.2. Valider les hรดtes et ajouter un bouncer pour chaque hรดte sur le serveur central
Valider l'hรดte et ajouter un `bouncer` en rรฉcupรฉrant sa clรฉ d'APIย :
```bash
sudo cscli machines list
sudo cscli machines validate <NAME>
sudo cscli bouncers add <NAME>
```
##### 2.3. Configurer le bouncer sur chaque hรดte
Installer et configurer le `bouncer` pour `iptables` avec la clรฉ d'API gรฉnรฉrรฉe sur le serveur centralย :
```bash
iptables -V
```
Si `(nf_tables)` est indiquรฉ, installez le paquet `crowdsec-firewall-bouncer-nftables` au lieu du packet `crowdsec-firewall-bouncer-iptables`.
```bash
sudo apt install crowdsec-firewall-bouncer-nftables
sudo $EDITOR /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
```
```yml
api_url: http://<SERVER_IP>:8080
api_key: <BOUNCER_API_KEY>
```
Relancer les servicesย :
```bash
sudo systemctl restart crowdsec
sudo systemctl restart crowdsec-firewall-bouncer
```
### Bloquer manuellement des adresses IP provenant d'un fichier CSV
#### Exemple 1 : bloquer les adresses IP d'un CSV ร une seule colonne sans ligne d'en-tรชte pour 4h
```bash
sudo cscli decisions import -i decisions.csv
sudo cscli decisions list
```
Pour en savoir plus : https://docs.crowdsec.net/docs/cscli/cscli_decisions_import/
#### Exemple 2 : bloquer les adresses IP de DigitalOcean pour 4h
Les adresses IP de DigitalOcean sont rรฉcupรฉrables via ce lien : https://docs.digitalocean.com/platform/
1. Crรฉer un script :
```bash
#!/bin/sh
curl -L https://digitalocean.com/geo/google.csv | awk -F, '{ print $1 }' | sudo cscli decisions import -i - --format values
```
2. Rendre exรฉcutable et exรฉcuter le script. Vous devriez avoir une sortie vous indiquant l'import des dรฉcisions dans CrowdSec :
```
INFO Parsing values
INFO You are about to add 1141 decisions, this may take a while
INFO Imported 1141 decisions
```
3. Vรฉrifier le bon import des dรฉcisions dans CrowdSec :
```bash
sudo cscli decisions list
```
### Ressources officielles
https://docs.crowdsec.net/u/getting_started/installation/linux
https://www.crowdsec.net/blog/multi-server-setup