## 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