# Installer CrowdSec pour Apache sur Debian 11

Dans cette procédure, je vais vous montrer comment installer [CrowdSec](https://www.crowdsec.net/) sur Debian 11 pour protéger son site Web Apache. CrowdSec est un outil qui va permettre de bloquer les attaques qu’il détecte sur le serveur, nous allons utilisé un serveur Debian 11 dans notre démonstration. CrowdSec fonctionne avec des modules appelés des Bouncers. Les bouncers permettent de bloqué les trafics réseau qui ne sont pas détecter comme « normaux ». Ils peuvent soit bloqué complètement la requête ou afficher à Captcha dans le but de vérifier qu’il ne s’agit pas d’un robot.

[![logo-crowdsec.png](https://doc.vainsta.fr/uploads/images/gallery/2024-12/scaled-1680-/cPaakkswA06oenI9-logo-crowdsec.png)](https://doc.vainsta.fr/uploads/images/gallery/2024-12/cPaakkswA06oenI9-logo-crowdsec.png)

## Prérequis :

- Une machine Debian avec Apache2 d’installé.
- Avoir Composer d’installer
- Avoir les permissions root ou avoir sudo

## Installer CrowdSec pour Apache 2 sur Debian 11 :

Avant de commencer l’installation de CrowdSec, commencer par mettre à jour la liste des paquets votre machine Debian 11

```
sudo apt update
```

Ensuite télécharger le CrowdSec sur votre machine Debian :

```
sudo apt install -y crowdsec
```

Après avoir installer CrowdSec sur votre machine, la CLI de CrowdSec (CSCLI) vous permet de voir les services pouvant être protéger par CrowdSec présents sur votre machine.

```
cscli collections list
```

[![crowdsec-collections-list.png](https://doc.vainsta.fr/uploads/images/gallery/2024-12/scaled-1680-/F5xDIZz3r0LkppFs-crowdsec-collections-list.png)](https://doc.vainsta.fr/uploads/images/gallery/2024-12/F5xDIZz3r0LkppFs-crowdsec-collections-list.png)

Vous pouvez également lister les bouncers installés et disponibles sur votre machine :

```
cscli bouncers list
```

Si vous exécutez cette commande, vous allez voir un tableau vide. C’est normal car nous n’avons pas encore installer de bouncer.

## Installation du Bouncer Apache 2 sur CrowdSec (Debian 11) :

Avant de commencer l’installation du Bouncer, assurez-vous d’avoir composer d’installé. Si vous ne l’avez pas installer, voici une procédure pour l’installer :   
[Installer Composer sur Debian 11](https://doc.vainsta.fr/books/debian/page/installer-composer-sur-debian-11)

Nous allons installer git sur la machine pour pouvoir cloner le Repo du bouncer :

```
sudo apt install git -y
```

Puis nous clonons le Repo GitHub :

```
git clone https://github.com/crowdsecurity/cs-php-bouncer.git
```

On se rend dans le dossier du projet :

```
cd cs-php-bouncer/
```

Enfin on lance l’installation avec un compte utilisateur (pas avec le compte root ni avec sudo mais le compte utilisateur doit être dans le groupe ‘sudo’)

```
./install.sh --apache
```

Puis on donne les droit en tant que propriétaire www-data (apache) sur le répertoire de CrowdSec

```
sudo chown www-data /usr/local/php/crowdsec/
```

Puis on redémarre le service de Apache

```
sudo systemctl reload apache2
```

Enfin le Bouncer de Apache va apparaître dans la liste des bouncers :

```
sudo cscli bouncers list
```

[![Installer-CrowdSec-pour-Apache-sur-Debian-11-Bouncer-list-verification--768x118.png](https://doc.vainsta.fr/uploads/images/gallery/2024-12/scaled-1680-/P9ivU9kLCts0up1V-installer-crowdsec-pour-apache-sur-debian-11-bouncer-list-verification-768x118.png)](https://doc.vainsta.fr/uploads/images/gallery/2024-12/P9ivU9kLCts0up1V-installer-crowdsec-pour-apache-sur-debian-11-bouncer-list-verification-768x118.png)

Ensuite on va afficher un Captcha pour les utilisateurs qui consulterons notre site web avec un mauvais User-agent (Généralement les outils de pentest utilisent des User-Agent différent des navigateurs Web) et les crawler non static.

On va modifier le fichier de configuration :

```
sudo nano /etc/crowdsec/profiles.yaml
```

```
# Mauvais User-Agent + Crawler
name: crawler_captcha_remediation
filters:
 - Alert.Remediation == true && Alert.GetScenario() in ["crowdsecurity/http-crawl-non_statics", "crowdsecurity/http-bad-user-agent"]
decisions:
 - type: captcha
   duration: 4h
on_success: break
---
name: default_ip_remediation
filters:
 - Alert.Remediation == true && Alert.GetScope() == "Ip"
decisions:
 - type: ban
   duration: 4h
on_success: break
---

```

Puis on redémarre CrowdSec pour qu’il utilise la nouvelle configuration :

```
sudo systemctl restart crowdsec
```

Il est possible d’afficher toutes les actions que CrowdSec aura pris avec cette commande :

```
sudo cscli decisions list
```

C’est également possible de débanir une adresse IP :

```
sudo cscli decisions delete --ip adresse-ip-a-deban
```

La CLI de CrowdSec est pratique mais CrowSec propose également une interface graphique Web avec Docker.

> Sources :
> 
> <cite>[https://doc.crowdsec.net/](https://doc.crowdsec.net/)</cite>