Crowdsec Configuring Apache2 Bouncer
CrowdSec – Apache2 HTTP Brute-Force Erkennung
Ziel
In diesem Lab schützen wir eine Apache2-Webseite mit CrowdSec gegen HTTP-Brute-Force-Angriffe. Der Angreifer versucht mit Hydra Passwörter gegen eine Login-Seite zu erraten. CrowdSec erkennt das Angriffsmuster und sperrt die Angreifer-IP automatisch — der Apache2-Bouncer liefert dem gesperrten Client eine eigene Fehlerseite aus.
Voraussetzung
- CrowdSec ist installiert und die Whitelist ist angepasst (siehe CrowdSec)
Installation des Apache2-Bouncers
Der Bouncer integriert sich in Apache2 und blockt erkannte IPs direkt auf Webserver-Ebene.
- apt install crowdsec-apache-bouncer
Fehlerseite einrichten
Apache liefert bei einem Ban eine eigene Fehlerseite aus statt einer kahlen 403-Seite.
- wget https://xinux.de/downloads/misc/blocked.html -P /var/www/html/
Apache2 konfigurieren
HTTP- und HTTPS-VirtualHost mit Verweis auf die Fehlerseite einrichten.
- nano /etc/apache2/sites-available/vulnsite.conf
<VirtualHost *:80>
ServerAdmin technik@lab.int
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/vulnsite-error.log
CustomLog ${APACHE_LOG_DIR}/vulnsite-access.log combined
ErrorDocument 403 /blocked.html
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/own.crt
SSLCertificateKeyFile /etc/ssl/own.key
ServerAdmin technik@lab.int
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/vulnsite-error.log
CustomLog ${APACHE_LOG_DIR}/vulnsite-access.log combined
ErrorDocument 403 /blocked.html
</VirtualHost>
Konfiguration testen und Apache2 neu laden
- apache2ctl configtest
- systemctl reload apache2
Bouncer neu starten und prüfen
Nach der Installation wird der Bouncer gestartet und der Status geprüft.
- systemctl restart crowdsec-apache-bouncer
- systemctl status crowdsec-apache-bouncer
Bouncer-Verbindung prüfen
Zeigt ob der Bouncer korrekt bei CrowdSec registriert ist.
- cscli bouncers list
Angriff vom Attacker durchführen
Passwortliste herunterladen
Hydra installieren
- apt update
- apt install hydra -y
Angriff starten
Hydra führt einen HTTP-Brute-Force-Angriff gegen die Login-Seite durch.
- hydra -l christine -P bad-passwords http-post-form://10.88.2XX.11"/login.php:username=^USER^&password=^PASS^:Ungültige" -V
Erkannte Angriffe anzeigen
Listet alle von CrowdSec erkannten Alerts auf.
- cscli alerts list
Gebannte IP-Adressen anzeigen
Zeigt alle aktiven Sperrentscheidungen an.
- cscli decisions list
Ban aufheben
Entfernt den Ban für die Angreifer-IP manuell.
- cscli decisions delete --ip 172.26.2XX.100
Live-Log beobachten
Zeigt die laufende Analyse von CrowdSec in Echtzeit.
- journalctl -u crowdsec -f