Moderne Angriffserkennung für Apache-Webserver
Apache gehört seit vielen Jahren zu den beliebtesten Webservern und kommt auf unzähligen Linux-Systemen zum Einsatz. Genau deshalb steht er regelmäßig im Fokus automatisierter Angriffe. Bots durchsuchen Websites nach Sicherheitslücken, testen Login-Seiten, scannen bekannte Verzeichnisse oder versuchen, Webanwendungen wie WordPress zu kompromittieren.
CrowdSec kann solche Angriffe anhand der Apache-Logdateien erkennen und automatisch Gegenmaßnahmen einleiten. Mit den passenden Collections analysiert die Software eingehende Anfragen nahezu in Echtzeit und erstellt bei verdächtigen Aktivitäten entsprechende Decisions, die anschließend von einem Bouncer umgesetzt werden.
In diesem Teil der Serie richten wir CrowdSec für Apache ein und testen die Angriffserkennung anhand verschiedener Praxisbeispiele.
Voraussetzungen
Für diesen Beitrag setzen wir Folgendes voraus:
- Debian 13
- Apache installiert und funktionsfähig
- CrowdSec installiert
- Zugriff per SSH
- Root-Rechte oder sudo-Berechtigung
Ob Apache läuft, prüfen Sie mit:
sudo systemctl status apache2
Die Ausgabe sollte den Status active (running) anzeigen.
Apache-Logdateien
CrowdSec analysiert nicht den Netzwerkverkehr, sondern die Logdateien des Webservers.
Standardmäßig verwendet Apache unter Debian folgende Dateien:
Zugriffsprotokoll
/var/log/apache2/access.log
Fehlerprotokoll
/var/log/apache2/error.log
Kontrollieren Sie zunächst, ob Apache dort tatsächlich schreibt.
sudo tail -f /var/log/apache2/access.log
Öffnen Sie anschließend Ihre Website im Browser.
Es sollten sofort neue Logeinträge erscheinen.
Apache-Collection installieren
Für Apache stellt CrowdSec eine komplette Collection bereit.
Sie enthält bereits:
- Parser
- Szenarien
- Postoverflows
- Konfigurationen
Installation:
sudo cscli collections install crowdsecurity/apache2
Anschließend empfiehlt sich ein Neustart.
sudo systemctl restart crowdsec
Installation überprüfen
Installierte Collections anzeigen:
sudo cscli collections list
Die Ausgabe sollte unter anderem enthalten:
crowdsecurity/apache2
Ebenso können die installierten Parser überprüft werden.
sudo cscli parsers list
Die Apache-Parser erscheinen nun automatisch in der Liste.
Welche Angriffe erkennt CrowdSec?
Bereits die Standard-Collection erkennt zahlreiche Angriffsmuster.
Dazu gehören beispielsweise:
- Directory Traversal
- SQL-Injection
- Webscanner
- Brute Force
- WordPress-Angriffe
- Bad User Agents
- API-Scanner
- bekannte Exploit-Scanner
- Botnetze
Neue Szenarien werden regelmäßig über den Hub aktualisiert.
Brute-Force-Angriffe erkennen
Ein klassisches Beispiel sind Login-Versuche gegen Webanwendungen.
Ein Bot versucht beispielsweise mehrfach eine Anmeldung.
/login /login /login /login /login
CrowdSec erkennt:
- gleiche IP-Adresse
- viele fehlgeschlagene Anmeldungen
- kurzer Zeitraum
↓
Decision
↓
Bouncer
↓
Firewall oder Webserver blockiert den Angreifer.
Scanner erkennen
Scanner durchsuchen Webseiten automatisiert nach bekannten Schwachstellen.
Typische Anfragen sind:
/phpmyadmin /.env /wp-admin /cgi-bin/ /server-status
Ein einzelner Zugriff ist meist unkritisch.
Mehrere hundert Anfragen innerhalb weniger Sekunden sprechen dagegen eindeutig für einen Scanner.
CrowdSec erkennt dieses Verhalten zuverlässig.
Bots erkennen
Nicht jeder Bot ist schädlich.
Suchmaschinen wie Google oder Bing sind ausdrücklich erwünscht.
CrowdSec unterscheidet daher zwischen legitimen Crawlern und verdächtigen Bots.
Typische Merkmale schädlicher Bots:
- sehr hohe Zugriffszahlen
- ungewöhnliche URLs
- bekannte Exploit-Pfade
- verdächtige User Agents
- automatisierte Scans
Dadurch werden unnötige Sperren vermieden.
WordPress-Angriffe erkennen
WordPress gehört zu den beliebtesten Angriffszielen im Internet.
CrowdSec erkennt unter anderem:
- Brute Force auf
/wp-login.php - XML-RPC-Angriffe
- Plugin-Scanner
- Theme-Scanner
- bekannte WordPress-Exploits
Typische Scanner versuchen beispielsweise:
/wp-admin /wp-login.php /xmlrpc.php /wp-content/plugins/ /wp-content/themes/
Gerade bei öffentlich erreichbaren WordPress-Installationen sorgt CrowdSec so für einen zusätzlichen Schutz.
Testangriffe durchführen
Nach der Installation sollte überprüft werden, ob CrowdSec korrekt arbeitet.
Eine einfache Möglichkeit besteht darin, einige typische Pfade im Browser aufzurufen.
Beispiele:
http://server/phpmyadmin http://server/.env http://server/wp-admin http://server/cgi-bin/
Alternativ kann curl verwendet werden.
curl http://server/.env
oder
curl http://server/wp-login.php
Dabei sollte es sich ausschließlich um Tests gegen den eigenen Server handeln.
Alerts auswerten
Erkannte Vorfälle lassen sich anzeigen.
sudo cscli alerts list
Beispiel:
ID SCENARIO SOURCE 1234 http-sensitive-files 203.0.113.20
Details:
sudo cscli alerts inspect 1234
Hier sehen Sie unter anderem:
- betroffene IP-Adresse
- Anzahl der Ereignisse
- ausgelöstes Szenario
- Zeitstempel
- betroffene Anwendung
Decisions prüfen
Hat CrowdSec den Angreifer blockiert?
sudo cscli decisions list
Beispiel:
203.0.113.20
Ist zusätzlich ein Firewall-Bouncer installiert, wird diese IP automatisch gesperrt.
Apache-Logs überwachen
Während der Tests empfiehlt sich ein Blick in die Logdateien.
sudo tail -f /var/log/apache2/access.log
Zusätzlich kann CrowdSec beobachtet werden.
sudo journalctl -u crowdsec -f
So lässt sich unmittelbar nachvollziehen, wann ein Angriff erkannt wird.
Metriken prüfen
Ob CrowdSec die Apache-Logs verarbeitet, zeigt:
sudo cscli metrics
Hier erscheinen unter anderem:
- gelesene Logeinträge
- Parser
- Szenarien
- erkannte Ereignisse
- Decisions
Steigen diese Werte während Ihrer Tests an, arbeitet die Analyse korrekt.
Best Practices
Für den produktiven Einsatz haben sich folgende Maßnahmen bewährt:
- Apache-Collection stets aktuell halten.
- Hub-Komponenten regelmäßig aktualisieren.
- Firewall-Bouncer verwenden.
- Apache-Logs regelmäßig kontrollieren.
- Logrotation korrekt konfigurieren.
- Verdächtige Alerts regelmäßig prüfen.
- Fehlalarme durch Whitelists minimieren.
- WordPress-Installationen zusätzlich absichern.
Typische Fehler
Keine Alerts
Prüfen Sie:
sudo cscli metrics
Werden überhaupt Apache-Logs verarbeitet?
Keine Apache-Collection installiert
Kontrolle:
sudo cscli collections list
Keine neuen Logeinträge
Überprüfen:
sudo tail -f /var/log/apache2/access.log
CrowdSec liest falsche Logdatei
Kontrollieren Sie die Konfiguration der Collection und die verwendeten Logpfade.
Mit der Apache-Collection lässt sich CrowdSec innerhalb weniger Minuten für den Einsatz auf einem Webserver konfigurieren. Die integrierten Parser und Szenarien erkennen eine Vielzahl typischer Angriffsmuster – von Brute-Force-Versuchen über Webscanner bis hin zu WordPress-spezifischen Angriffen. Durch die Auswertung der Apache-Logdateien kann CrowdSec verdächtige Aktivitäten zuverlässig identifizieren und – in Verbindung mit einem Bouncer – automatisch blockieren.
Besonders hilfreich sind dabei die integrierten Werkzeuge zur Analyse von Alerts, Decisions und Metriken. So behalten Sie jederzeit den Überblick darüber, welche Angriffe erkannt wurden und wie CrowdSec darauf reagiert hat.
Im nächsten Teil der Serie widmen wir uns der Absicherung von Nginx. Auch dort zeigen wir Schritt für Schritt, wie Sie die passende Collection installieren, typische Angriffe erkennen und Ihren Webserver mit CrowdSec effektiv schützen.