dbWatchSite - Einrichten und Konfigurieren

Das Admin-Tool dbWatchSite dient dazu Webmaster bei der Überwachung von Websites zu unterstützen. Eine Einführung finden Sie in dem Artikel "dbWatchSite - Überwachen der Website", dieses Tutorial beschreibt die Installation, die Grundkonfiguration sowie die ersten Schritte mit dbWatchSite.

dbWatchSiteBitte prüfen Sie vor der Installation, ob die Voraussetzungen erfüllt sind:

dbWatchSite installiert sich als Admin-Tool.

Das Addon gliedert sich zur Zeit in drei Funktionsbereiche:

  • Überwachung
  • 404 Fehler
  • Einstellungen

Die Entwicklung von dbWatchSite ist noch nicht abgeschlossen, es werden noch weitere Funktionsbereiche dazukommen.

Der Bereich Überwachung dient dazu Veränderungen im Dateisystem der gesamten WebsiteBaker Installation festzustellen. Darüber hinaus kann dbWatchSite feststellen, ob sich in allen Verzeichnissen eine index.php befindet, diese dient dazu, eine unerwünschte Anzeige der in den jeweiligen Verzeichnissen befindlichen Dateien zu unterbinden. Auf Wunsch kann dbWatchSite fehlende index.php's automatisch einfügen.

Damit die Überwachung kontinuierlich erfolgt und dbWatchSite regelmäßig Überwachungsprotokolle an die Verantwortlichen für die Website versenden kann, ist eine Einbindung als Cronjob erforderlich. Cronjobs stellen sicher, dass wiederkehrende Aufgaben zu den vorgegebenen Zeiten ausgeführt werden.

Die Einrichtung eines Cronjobs erfordert einen uneingeschränkten root Zugriff auf den Webserver sowie Grundkenntnisse in dem jeweiligen Betriebssystem.

Ecronjob.deinfacher geht es mit Hilfe eines externen Dienstleisters, die einen einfachen Cronjob meist kostenlos ausführen, z.B. mit cronjob.de.

Melden Sie sich bei cronjob.de an. Um sicherzustellen, dass Sie berechtigt sind einen Cronjob auf Ihrem Server durchführen zu lassen, müssen Sie noch eine kleine Datei erstellen und per FTP auf Ihren Webspace übertragen - cronjob.de teilt Ihnen den Namen und den Inhalt mit.

Nach Erledigung der Formalitäten können Sie einen neuen Cronjob anlegen. Tragen Sie dort einen beliebigen Namen als Bezeichner ein.

Bei "Aufzurufende URL" tragen Sie die URL auf die Datei cronjob.php ein.

Zusätzlich müssen Sie den Cronjob SCHLÜSSEL, den Sie bei den Einstellungen von dbWatchSite finden, mit angeben. Dieser Schlüssel lautet bei jeder Installation anders und verhindert eine unerwünschte Ausführung von Cronjobs:

http://www.meine-domain.tld/modules/watch_site/cronjob.php?key=SCHLÜSSEL

Wählen Sie bei der schnellen Vorauswahl von cronjob.de die Einstellung "Cronjob alle 5 Minuten" oder "Cronjob alle 15 Minuten" (reicht für dbWatchSite aus).

Cronjob speichern und fertig!

Prüfen Sie nun, ob sich im Backend bei Admin-Tools ⇒ dbWatchSite die bislang leere Anzeige des Überwachungsprotokoll füllt. Der erste Aufruf über den Cronjob kann etwas Zeit in Anspruch nehmen - je nach Umfang Ihrer WebsiteBaker Installation kann die Überprüfung durchaus 15.000 bis 30.000 Dateien umfassen.

dbWatchSite - Überwachungsprotokoll

Erschrecken Sie nicht - es kann durchaus sein, dass dbWatchSite Ihnen hunderte fehlende index.php Dateien meldet. Lassen Sie dbWatchSite einfach die fehlenden Dateien einfügen. Hierzu setzen Sie bei den Einstellungen von dbWatchSite bei "Index Dateien hinzufügen" statt der 0 eine 1 und speichern Sie die Einstellungen.

Wenn Sie das Protokoll jetzt die nächsten automatischen Durchläufe verfolgen, werden Sie sehen, wie dbWatchSite funktioniert:

  • beim nächsten Durchlauf werden die fehlenden index.php Dateien hinzugefügt - Sie sehen entsprechende Meldungen.
  • beim übernächsten Durchlauf stellt dbWatchSite fest, dass sich die Prüfsummen aller Verzeichnisse, in denen eine index.php hinzugefügt wurde, geändert hat. Die hinzugefügte index.php wird registriert und die Prüfsummen werden aktualisiert.

Erst im darauf folgenden Durchlauf kehrt Ruhe ein - das Protokoll ändert sich nicht, es kommt kein neuer Eintrag hinzu, lediglich in der Infobox oben ist zu sehen, dass ein weiterer Durchlauf erfolgt ist.

dbWatchSite - Überwachungsprotokoll

Es ist nicht erforderlich, dass Sie das Überwachungsprotokoll ständig kontrollieren - lassen Sie sich das Protokoll einfach ein oder zweimal am Tag zusenden. Geben Sie hierzu bei den Einstellungen:

  • unter "Überwachungsprotokolle versenden" eine 1 für versenden,
  • bei "Überwachungsprotokolle versenden (Zeiten)" die gewünschten Zeiten, wann Sie die Protokolle erhalten möchten (ein bis zwei Zeiten pro Tag sollten reichen),
  • bei "Überwachungsprotokolle versenden (E-Mail)" die E-Mail Adresse oder E-Mail Adressen, an die das Protokoll jeweils gesendet werden soll

an. Speichern Sie die Einstellungen und fertig. Dadurch, dass im Protokoll nur Veränderungen erfasst werden, haben Sie künftig immer die Möglichkeit festzustellen ob Änderungen durchgeführt wurden, die Sie nicht selbst veranlasst haben. In diesem Fall sollten Sie sich die betroffenen Dateien ansehen und diese prüfen - diese Arbeit und Verantwortung kann Ihnen dbWatchSite (noch) nicht abnehmen.

Ein weiterer sehr wichtiger Funktionsbereich von dbWatchSite ist die Überwachung von Fehlermeldungen. Gemeint sind hierbei die 404 - Seite nicht gefunden Fehlermeldungen, die der Webserver generiert, wenn eine nicht existierende Seite aufgerufen wird.

Sicherlich haben Sie auf Ihrer Website bereits eine eigene Fehlerseite eingerichtet, die dem Besucher angezeigt wird, wenn er eine Seite aufruft, die nicht oder nicht mehr existiert. Falls nicht, schauen Sie sich bitte meinen Tipp "Abfangjäger für Fehlermeldungen" an, legen Sie aber nur eine reine Hinweisseite sowie die .htaccess Datei an, das dort beschriebene Script benötigen Sie nicht!

Sofern Ihre Fehlerseite bereits mit einer E-Mail Benachrichtigung kombiniert ist, entfernen Sie bitte das Script und reduzieren Sie die Seite auf die reine Fehlermeldung für die Besucher. Fügen Sie anschließend einen Abschnitt vom Typ Code zu der Seite hinzu und tragen Sie dort ein:


if (file_exists(WB_PATH.'/modules/watch_site/tracker.php')) {
  require_once(WB_PATH.'/modules/watch_site/tracker.php');
}

Dadurch verbinden Sie die Fehlerseite mit dbWatchSite. Die Aufgabe der Datei tracker.php ist hierbei, alle Fehlermeldungen aufzuzeichnen und ein Protokoll zu erstellen. Zusätzlich erstellt dbWatchSite eine sogenannte 404 Basis. Fehler treten selten nur ein einziges Mal auf, sie wiederholen sich. In der 404 Basis werden alle Fehler sowie Fehlermuster (dazu später mehr) genau einmal gespeichert. In der 404 Basis können Sie festlegen, wie mit dem jeweiligen Fehler zu verfahren ist:

  • er soll bei jedem Auftreten gemeldet werden (das ist sinnvoll bei allen "echten" Fehlern, die z.B. dann Auftreten weil eine Seite umbenannt oder verschoben wurde - STANDARD)
  • er soll künftig ignoriert werden (das ist sinnvoll bei Fehlern, die z.B. auf eine fehlende Datei hinweisen die Sie nicht ergänzen können oder wollen - z.B. eine fehlende Datei favicon.ico)
  • er soll künftig als Cross-Site Scripting (XSS) gewertet werden, d.h. der Aufrufende ist ein Angreifer, der versucht auf Ihre Website einzudringen.

Die ersten beiden Möglichkeiten sind denke ich ziemlich klar, mit der dritten, dem attackierenden XSS Scripting werden wir uns noch näher beschäftigen.

Damit dbWatchSite die Fehlermeldungen nicht nur im Protokoll führt und anzeigt, sondern Sie auch per E-Mail meldet nehmen Sie bei den Einstellungen Änderungen vor:

  • tragen Sie unter "404 Fehlermeldungen versenden (E-Mail)" eine oder mehrere E-Mail Adressen ein, die bei Fehlern benachrichtigt werden sollen,
  • tragen Sie unter "Server Bezeichnung" eine griffige Bezeichnung für die WebsiteBaker Installation ein (ich verwende normalerweise den Domainnamen)

und sichern Sie die Einstellungen.

Eine letzte Änderung müssen Sie noch vornehmen, dann ist alles geschafft...

Bitte editieren Sie die Datei index.php des von Ihnen verwendeten Templates.

Fügen Sie unterhalb von if (!defined('WB_PATH')) ein:


// prevent this file from being accessed directly
if (!defined('WB_PATH')) die(header('Location: ../../../index.php'));
if (file_exists(WB_PATH.'/modules/watch_site/check.php')) {
  include(WB_PATH.'/modules/watch_site/check.php');
}

Dadurch geben Sie dbWatchSite zwei ganz wichtige Fähigkeiten:

  • das Addon kann auf Befehle reagieren, die Sie durch Anklicken von Links in den E-Mail Benachrichtigungen erteilen,
  • das Addon kann als attackierend eingestufte IP Adressen sperren, damit diese keinen Zugriff mehr auf Ihre Website erhalten.

Dies bedeutet ganz nebenbei, dass Sie sich künftig aktiv gegen Angreifer wehren können.

Aber erst noch einmal einen Schritt zurück: Bei Fehlern werden Sie nun per E-Mail benachrichtigt:

dbWatchSite - Benachrichtigung über 404 Fehler

Sie erhalten alle verfügbaren Informationen über die aufgerufene (fehlerhafte) Seite und den Aufrufer selbst. Um die Fehlermeldung einzustufen, genügt ein Klick auf den Link: Melden, Ignorieren und XSS Scripting.

Der key in den Links wechselt bei jeder Meldung und stellt sicher, dass kein Dritter die Schnittstelle zwischen Ihnen und dbWatchSite missbrauchen kann.

Interessant ist, was passiert, wenn Sie eine Fehlermeldung als Cross-Site Scripting (XSS) einstufen:

  • dbWatchSite betrachtet jeden Aufrufer, genauer: jede IP, die eine Fehlermeldung erzeugt, die als XSS Scripting eingestuft ist als attackierend.
  • als attackierend eingestufte IP Adressen erhalten für eine festgelegte Zeitdauer keinen Zugriff mehr auf die Inhalte der Website, sondern eine 403 Zugriff verweigert Statusmeldung durch den Webserver und bleiben draußen.

Die Dauer der Sperre können Sie in den Einstellungen unter "404 IP Sperrdauer in Minuten" festlegen.

Alles weitere sollte sich während des Betriebs weitgehend von selbst erklären...

Bitte helfen Sie mit, dieses Tutorial zu ergänzen und zu verbessern!

Ralf Hertsch