Sicherheitshinweise für den Betrieb eines eigenen Einsatzleiterwikis auf einem vom Internet aus zugänglichen Server

Das dem Einsatzleiterwiki zugrunde liegende DokuWiki-System ist eine Webanwendung und wird häufig auf öffentlichen Servern verwendet, welche über das Internet erreichbar sind. Folglich besteht ein höheres Risiko, einem böswilligen Angreifer ausgesetzt zu sein, als dies vergleichsweise bei lokalen Desktop-Anwendungen der Fall ist.

DokuWiki wurde maßgeblich unter dem Gesichtspunkt der Sicherheit entwickelt. Zwar sind die Entwickler im Verhältnis zur Benutzerfreundlichkeit stets um ein Gleichgewicht bemüht. Im Falle mangelnder, zufriedenstellender Kompromisse jedoch, hat die Sicherheit letzten Endes immer die höchste Priorität.

Diese Seite soll einen Überblick darüber verschaffen, welche Aspekte es zu beachten gilt, um selbst ein sicheres Einsatzleiterwiki bzw. DokuWiki im Internet zu betreiben.

Der in der normalen Einsatzleiterwiki-Installation mitgelieferte Server ist aus Sicht der Sicherheit nicht für einen Betrieb im Internet ausgelegt.

Sicherung der Systemdateien

DokuWiki speichert die Konfiguration, als auch die Seiteninhalte in Dateien. Diese Dateien sollten niemals direkt aus dem Internet zugänglich sein. Das Installationspaket enthält eine Reihe von .htaccess-Dateien, mit denen der Apache-Webserver normalerweise angewiesen wird, den Zugriff auf bestimmte Verzeichnisse zu verweigern.

Falls nicht der Apache-Webserver verwendet wird bzw. der Apache-Webserver keine .htaccess-Dateien verwendet, sollte die Installation manuell gesichert werden.

Folgende Verzeichnisse (weitere Infos zu den Inhalten der Verzeichnisse hier) sollten nicht über das Internet erreichbar sein:

data

conf

bin

inc

vendor

Um zu überprüfen, ob die eigenen Zugriffsberechtigungen anpasst werden müssen, sollte versucht werden auf http://feuerwehr-musterstadt.de/einsatzleiterwiki/data/pages/start.txt zuzugreifen (in diesem Beispiel wird davon ausgegangen, dass Ihr Einsatzleiterwiki sich im Unterordner einsatzleiterwiki auf dem Webspace Ihrer Internetseite befinde). Im Normalfall sollte man auf diese Weise keinen Zugriff auf die Datei bzw. den Fehler 403: Forbidden erhalten.

Einschränkung des Zugriffs

In der Regel werden Sie den Zugriff aus dem Internet einschränken wollen, sodass nur angemeldete Benutzer Ihrer Feuerwehr Zugriff erhalten. Die beiden folgenden Möglichkeiten sind die naheliegendsten:

DokuWiki-eigene Benutzer- und Zugangsverwaltung

In der DokuWiki-eigenen Benutzerverwaltung und Zugangsverwaltung können sehr detailliert Berechtigungen vergeben werden. Weitere Informationen finden Sie unter den entsprechenden Verlinkungen.

Vorteil ist hierbei, dass Sie nicht nur festlegen können wer Zugang zum Wiki an sich erhält, sondern ebenfalls weitergehende Berechtigungen, die z.B. nur für Führungskräfte zugänglich sind.

Ein denkbarer Nachteil wäre, dass bei einer Sicherheitslücke der Zugangsverwaltung der DokuWiki-Software evtl. Inhalte Ihres Wikis erreichbar sein könnten, auch wenn es derzeit für solch eine Sicherheitslücke keine Anhaltspunkte gibt.

.htaccess-Verzeichnisschutz

Der .htaccess-Verzeichnisschutz ist keine Funktionalität der DokuWiki-Software, sondern ein Mechanismus des Apache Webservers. Noch bevor das Wiki selbst überhaupt geladen wird, wird eine Benutzer-Passwort-Kombination durch den Webserver abgefragt.

Dieses Verfahren ist weit verbreitet. Die Einrichtung ist beispielsweise hier beschrieben: https://wiki.selfhtml.org/wiki/Webserver/htaccess/Passwortschutz

Der Vorteil dieses Verfahren ist, dass es sehr sicher und eine Angreifbarkeit durch eine Sicherheitslücke eher unwahrscheinlich ist.

Ein Nachteil kann sein, dass die Pflege der Benutzer komplizierter sein kann als die integrierte DokuWiki-Benutzerverwaltung. Ggf. können die Benutzerkonten des .htaccess-Verzeichnisschutzes auch weiterverwendet werden. Dies ist im folgenden Artikel beschrieben, wurde jedoch noch nicht ausprobiert: plugin:authhttp.

Quellenangabe

de:security, veröffentlicht unter der CC Attribution-Share Alike 4.0 Unported-Lizenz

Tracedump:

newBaseSize: 16pt
newBaseSizeInPt: 16