Anzeige
Anzeige
UX & Design

Caretaker: Monitoring-Lösung für TYPO3-Installationen

Regelmäßig werden Sicherheitslücken im TYPO3-Core und den Extensions enthüllt, veröffentlicht und behoben. Doch wo ist die betroffene Extension im Einsatz? Und welche Installation nutzt noch den lückenhaften Core? Der Caretaker bietet sich als Monitoring-Lösung an, TYPO3-Installationen zu überwachen.

5 Min.
Artikel merken
Anzeige
Anzeige

Die eigenen oder die TYPO3-Installationen der Kunden stets auf dem aktuellen Stand zu halten und die Erreichbarkeit zu überwachen, ist sehr arbeitsintensiv. Darüber hinaus sollte man bei Veröffentlichung eines Sicherheits-Bulletins prüfen, wo die betroffenen Extensions oder die TYPO3-Core-Version im Einsatz ist. Seine wahre Stärke spielt der Caretaker [1] [2] insbesondere bei Agenturen und System-Administratoren aus, die viele TYPO3-Installationen im Blick behalten müssen. Aber schon bei einer einzelnen Installation kann der Caretaker von Nutzen sein.

Arbeitsweise

Anzeige
Anzeige

Hauptaufgabe des Caretakers ist es, die ihm anvertrauten Installationen auf Erreichbarkeit und Aktualität zu überwachen. Dafür besteht das Caretaker-System im Kern aus zwei Komponenten: dem Caretaker und den Caretaker-Instanzen. Eine zentrale TYPO3-Installation mit der Extension „caretaker“ kann dabei beliebig viele TYPO3-Instanzen, beispielsweise die Kunden-Websites, überwachen. In jeder zu überwachenden Instanz wird die Extension „caretaker_instance“ installiert. Diese stellt der zentralen Caretaker-Installation eine Schnittstelle zur Verfügung, um Daten der Instanz abzufragen und so Tests auszuführen.

Im Backend der Caretaker-Installation konfiguriert man die zu überwachenden Instanzen. Diese können in Gruppen, etwa nach Kunden oder Servern, zusammengefasst werden. Außerdem legt man Konfigurationen für die einzelnen Tests an. Diese beinhalten neben allgemeinen Parametern, wie die Häufigkeit der Ausführung, auch testspezifische Optionen. Mit den beim Caretaker mitgelieferten Tests (siehe Tabelle) lassen sich die Instanzen umfassend überwachen.

Anzeige
Anzeige

So wie die Instanzen lassen sich auch die Tests in Gruppen zusammenfassen: „TYPO3-Basis-Tests“ beispielsweise oder „Tests für TYPO3 4.5“. Die Tests und Test-Gruppen werden schließlich den Instanzen zugewiesen, für die sie durchgeführt werden sollen.

Anzeige
Anzeige

Ein „Scheduler-Task“, die „rechte Hand“ des Caretakers, führt regelmäßig alle ausstehenden Tests für die einzelnen Instanzen aus. Dazu kontaktiert der Caretaker die Instanz über eine verschlüsselte Verbindung und fragt die benötigten Informationen ab. Der Test führt einfache Operationen in der Instanz aus, etwa „gib mir die Liste aller installierten Extensions“. Die Auswertung der Daten (bspw. Prüfung, welche der installierten Extensions als unsicher bekannt sind) und damit der Test selbst erfolgt in der zentralen Caretaker-Installation.

Test-Service Überprüfen der Instanz auf…
Ping Erreichbarkeit und Ping-Antwortzeiten
HTTP Erreichbarkeit und HTTP-Status-Code
TYPO3 Extension Installation einer bestimmten Extension
TYPO3 Version Aktualität des TYPO3-Cores
Insecure Extensions Extensions mit bekannten Sicherheitslücken
Updated Extensions Extensions, für die neuere Versionen vorliegen
BE-User-Accounts Existenz von Backend-Usern, z. B. Zugänge ehemaliger Mitarbeiter
TYPO3_CONF_VARS korrekte TYPO3-Konfigurationen
File Check Path Existenz und ggf. Alter einer Datei (z. B. ENABLE_INSTALLTOOL)

Übersicht und Benachrichtigungen

Ob die einzelnen Tests erfolgreich waren oder Probleme bei den einzelnen Instanzen festgestellt wurden, lässt sich im Caretaker-Backend im Modul „Overview“ feststellen. Dieses zeigt in einer übersichtlichen Baumstruktur den aktuellen Status der Tests und Instanzen. Außerdem kann man für jede Gruppe, Instanz und für einzelne Tests detaillierte Informationen über den letzten Durchlauf und Tests aus der Vergangenheit abrufen. Die Antwortzeiten des Ping-Tests werden beispielsweise als Diagramm dargestellt.

Anzeige
Anzeige

Doch über einige aktuelle Ereignisse und Statuswechsel möchte man direkt benachrichtigt werden, etwa wenn eine Instanz nicht mehr erreichbar ist oder ein Bulletin über eine unsichere Extension veröffentlicht wurde. Dazu bietet der Caretaker zwei Benachrichtigungssysteme an: Im Extension-Manager kann man das einfache „Simple notification system“ oder das komplexere „Advanced notifications system“ wählen.

In der farblich unterstützten Darstellung fallen Ausreißer sofort auf.

Das „Simple notification system“ deckt einfache Anforderungen ab und ist schnell zu konfigurieren: Jeder Instanz oder Instanz-Gruppe werden Kontakte zugewiesen. Bei einem Statuswechsel eines Tests (bspw. wenn ein Fehler auftritt oder ein bereits aufgetretener gerade behoben wurde) werden E-Mails an alle Kontakte aus den betroffenen Instanzen verschickt. Weitere Konfigurationsmöglichkeiten gibt es nicht. Für einfache Zwecke ist das aber vollkommen ausreichend.

Erst vor wenigen Wochen wurde das „Advanced notification system“ in den Caretaker implementiert. Aktuell befindet sich dieser Teil noch im „Beta“-Stadium, ein Einsatz sollte also genau geprüft werden. Das „Advanced notification system“ bietet deutlich mehr Möglichkeiten, um auf die unterschiedlichsten Situationen reagieren zu können. Die Konfiguration wird in so genannten Strategien definiert. Jede Strategie enthält mehrere Regeln, wobei diese jeweils Bedingungen und „ExitPoints“ enthalten. Ein ExitPoint definiert, wie die Benachrichtigungen verschickt werden sollen. Zurzeit stehen dafür E-Mail, Jabber/XMPP und ein Datei-Log zur Verfügung. Es ist aber auch denkbar, ExitPoints für SMS, Prowl (Push-Notifications für das iPhone) oder ein Ticket-System zu implementieren.

Den einzelnen Instanzen oder Instanz-Gruppen wird eine Strategie zugewiesen, die beim Ausführen der Tests angewandt werden soll. Für alle Regeln dieser Strategie werden die Bedingungen geprüft. Eine Bedingung kann etwa die Uhrzeit oder der Wochentag, die Art oder das Ergebnis des ausgeführten Tests sein. Sind sämtliche Bedingungen einer Regel erfüllt, werden die Benachrichtigungen über die entsprechenden ExitPoints verschickt.

Anzeige
Anzeige

Durch eine derart flexible Konfiguration könnte jeder Statuswechsel in einer Datei vermerkt, bei aufgetretenen Problemen eine E-Mail an den Techniker und am Wochenende zusätzlich eine SMS an den Notdienst verschickt werden (Listing 1).

Beispiel-Strategie
logToFile.exit.file.filePath = fileadmin/caretaker.log
emailToAdmin {
	conditions {
		newState = warning,error
		onlyIfStateChanged = 1
	}
	exit {
		mail.roles = admin,emergency
		sms {
			conditions {
				schedule.saturday = 0-24
				schedule.sunday = 0-24
			}
			roles = emergency
		}
	}
}

Listing 1

Sicherheit

Die Kommunikation zwischen dem Caretaker und der Instanz wird über eine asynchrone Verschlüsselung (Public/Private-Key-Verfahren) mit OpenSSL gegen Fremdzugriffe geschützt. Bei jeder Installation der „caretaker_instance“ wird also ein eigenes Schlüssel-Paar für diese Instanz generiert, dessen Public-Key im Caretaker in der Instanz-Konfiguration hinterlegt wird. Im Gegenzug erhält die Instanz den Public-Key des Caretakers.

Ein wichtiger Grundsatz bei der Entwicklung des Caretakers war, dass keine mitgelieferten Tests und Operationen der „caretaker_instance“ in der Instanz Daten oder Dateien verändern. Das Risko ist groß, dass durch ein automatisches Update einer Extension oder das Löschen vermeintlich alter Datensätze der
geregelte Betrieb der Seite gestört wird. Dieser Aspekt ist insbesondere bei der Erweiterung durch eigene Tests oder Operationen wichtig. Denn die Architektur der Extension erlaubt durchaus Eingriffe in die überwachten Installationen. Definierte Aufgabe des Caretakers ist deshalb lediglich das Überwachen der Installationen und nicht eine Fernsteuerung oder gar die automatische Behebung eines Fehlers.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Ein Kommentar
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Sebastian Krüger

Ich verwende seit einiger Zeit http://www.t3manager.com/ und kann bis jetzt nicht meckern. Solltet ihr evt. in eurer nächsten Ausgabe veröffentlichen.

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige