GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

Sécurisation des serveurs avec Crowdsec

Installer Crowdsec

Crowdsec est une solution open source qui va permettre de rajouter une couche de sécurité aux serveurs Linux et Windows, à la manière d'un fail2ban mais en plus élaboré. Si vous êtes en manque d'inspiration pour les règles de filtrage, il existe un hub ou de nombreuses solutions sont détaillées.

Prérequis sur Linux

La condition obligatoire est qu'il y ait un firewall de déclaré sur le serveur. Nous prenons UFW pour nos tests.

sudo ufw status # vérifie le status du service firewall
sudo apt install ufw # si jamais ufw n'était pas installé sur votre serveur ubuntu-like
Comme toujours, lorsque vous activez des règles initiales, essayez de ne pas bloquer votre accès ssh.
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable # pour activer le firewall

Comme crowdsec analyse les logs du firewall, il ne faut pas oublier de les activer

sudo ufw logging on
Les journaux s'enregistrent dans /var/log/syslog

Installation sur Linux


# Ajout du dépôt crodwsec à votre serveur
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
# mise à jour des paquets
sudo apt update
# Installation de crodwsecsudo apt install crowdsec
            
Durant l'installation crowdsec va détecter automatiquement l'ensemble des applications importantes déjà installées dans le serveur (ssh, nginx, apache, mysql, ...)

Utilisation de la console Crowdsec

L'application Crowdsec vient avec une console que l'on peut lancer par cscli. Les commandes intéressantes :

Installer un Bouncer sur Linux

Depuis le Hub Crowdsec, section bouncers, il y a beaucoup de blocages que vous pouvez mettre en place : firewall, nginx, ...

Crowdsec sous Windows

Pour que Crowdsec puisse fonctionner, certains prérequis (à l'heure de l'écriture) sont à respecter :

Contrairement à l'agent Linux qui va s'auto configurer, la version Windows de l'agent n'est pas (encore) capable de le faire par lui-même. En plus de pouvoir détecter les tentatives d'attaque par brute force du RDP et du SMB, il sera possible, avec des petites configurations manuelles, de détecter des attaques HTTP contre IIS ou des analyses réseau qui essaieraient de passer au-delà du firewall de Windows. Presque tous les types de services supportés sous Linux pourront être détectés par Windows, du moment que le format des logs n'est pas au format syslog. Ainsi Apache ou MySQL pourront être surveillés mais pas SSH...

Installation sous Windows

Récupérez la dernière version de Crowdsec sur le github de crowdsec Cette installation contient un parser pour l'observateur d'événements de Windows, ainsi que les règles de base pour la détection d'un brute force RDP et SMB. L'agent n'est pas capable de détecter automatiquement, comme il le fait avec Linux, des applications sensibles qui pourraient ou devraient être protégées.

Donc selon les auteurs de Crowdsec, actuellement ceci est supporté :

Et suite à l'installation, ces répertoires sont créés :

Logs SQL Server

Crowdsec met à disposition un parser pour détecter les tentatives de brute force ainsi que la surveillance des authentifications SQL. Le prérequis est que SQL ait ses logs d'authentification activés. Pour installer cette collection :

cscli collection install crowdsecurity/mssql
. Ensuite il faut modifier le fichier d'acquisition sur lequel Crowdsec s'appuie et qui est situé ici C:\ProgramData\CrowdSec\config\acquis.yaml en ajoutant :
source: wineventlog
event_channel: Application
event_ids:
 - 18456
event_level: information
labels:
 type: eventlog
Redémarrez le service Crowdsec par
net stop crowdsec
net start crowdsec

Logs IIS Server

Cette collection Crowdsec contient un parser pour le log IIS au format W3C, avec les champs par défaut, ainsi qu'une autre collection contenant tous les scénarios basiques de HTTP. Pour installer cette collection :

cscli collection install crowdsecurity/iis
. Activez le log du serveur IIS et ajoutez ces éléments au fichier de configuration des acquisitions :
use_time_machine: true #Process logs as if we were replaying them to get the timestamp from the
filenames:
  - C:\inetpub\logs\LogFiles\*\*.log
labels:
  type: iis

Attention, l'option use_time_machine est très importante à utiliser. Par défaut, IIS va flusher les logs toutes les minutes ou s'il y a plus de 64 Ko de logs à écrire. Cela permettra au Security Engine de ne pas considérer que l'écriture en masse est un faux positif d'une attaque. Si le IIS journalise dans le journal d'événemtns de Windows, ajoutez ceci au fichier de configuration d'acquisition :

source: wineventlog
event_channel: Microsoft-IIS-Logging/Logs
event_ids:
 - 6200
event_level: information
labels:
 type: iis
Redémarrez le service Crowdsec par
net stop crowdsec
net start crowdsec

Logs du firewall

Avant de pouvoir gérer votre firewall par Crowdsec, il faut activer les logs avancés. En voici globalement la teneur :

Sur un système unique, vous pouvez utiliser les commandes suivantes pour configurer la journalisation :
netsh advfirewall set allprofiles logging allowedconnections enable
netsh advfirewall set allprofiles logging droppedconnections enable
Pour la configuration des journaux par l'intermédiaire d'une GPO, merci de suivre ce lien : Configurer la journalisation du Pare-feu Windows Pour traiter les logs du firewall de Windows, la collection Crowdsec contient un parser pour les logs du firewall ainsi qu'un sénario pour détecter les scans de port. Pour installer cette collection :
cscli collection install crowdsecurity/windows-firewall
. Ajoutez ces éléments au fichier de configuration des acquisitions :
filenames:
  - C:\\Windows\\System32\\LogFiles\\Firewall\\pfirewall.log
labels:
  type: windows-firewall
Redémarrez le service Crowdsec par
net stop crowdsec
net start crowdsec

<2>Mettre en place le Bouncer Windows Firewall

Maintenant que le Security Engine est en place, vous pouvez passer à l'installation du Remediation Component (le Bouncer) pour bloquer les IP qui attaquent votre serveur. Le setup est dans le github https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases

Le composant firewall fonctionne en ajoutant des règles, en fait une règle toutes les 1000 IP bloquées. Ces règles commencent par crowdsec-blocklist et vous ne devez pas les mettre à jour ou les supprimer par vous-même. Elles seront automatiquement supprimées quand le composant s'arrête et sont recréées à chaque démarrage.

Installation manuelle d'un bouncer