Donnerstag, 21. Januar 2010

TYPO3 Sicherheitsmaßnahmen

TYPO3 ist ein sehr sicheres CMS und das TYPO3 Security Team wacht mit Argusaugen darüber dass das so bleibt. Dies betrifft den TYPO3-Core. Darüber hinaus ist es wichtig, die eigene TYPO3-Installation durch ein paar grundlegende Sicherheitsmaßnahmen vor unerwünschten Zugriffen zu schützen. Heute stelle ich ein paar Sicherheitmaßnahmen vor, die nach einer TYPO3-Installation vorgenommen werden sollten.

Standard-Administratorenkennung deaktivieren
Nach der Installation der erforderlichen TYPO3-Pakete existiert im Backend bereits ein erster User admin mit dem Passwort password. Dieser User hat Adminrechte und wird für die erste Grundkonfiguration benötigt. Sobald man sich (nach den ersten Konfigurationsschritten) mit diesem User am Backend angemeldet hat, sollte man einen neuen adminstrativen Backend-Benutzer anlegen und das Standardkonto admin deaktivieren. Dies ist sicherer als lediglich des Passwort der Standard-Adminkennung zu ändern.

Neues Install-Tool-Passwort vergeben
Das Install-Tool wird nach der Installation durch das Standardpasswort joh316 geschützt. Jeder, der TYPO3 kennt, kennt auch dieses Passwort! Da man über das Install-Tool u.a. eine neue Admin-Kennung anlegen kann, sollte das Install-Tool unmittelbar nach der Installation durch ein neues Kennwort geschützt werden. Zusätzlich kann man das gesamte Installationsverzeichnis vor Zugriff schützen (siehe weiter unten).

Sicherer Passwörter verwenden
Viele glauben, dass niemand Interesse an den eigenen unbedeutenden Daten hat und selbst wenn, müssten so schwierige Passwörter wie Urlaub09 ja erstmal geknackt werden ;-) Die heutige Rechenleistung in Kombination mit entsprechenden Tools (die im Internet frei verfügbar sind) erlauben es solch "schwierige" Passwörter in kürzester Zeit zu entschlüsseln. Daher sollte man bei der Auswahl des Passworts einige Dinge beachten:

  • Keine persönlichen Daten, wie z.B. Geburtstage, in Passwörtern verwenden
  • Keine bekannten Wörter benutzen
  • Keine 'simplen' Tastenkombinationen wählen (z.B. nebeneinander liegende Tasten)
  • Unterschiedliche Passwörter für Server und Applikationen vergeben
  • Zeichenlänge des Passworts sollte mindestens 8, besser 12 Zeichen betragen
  • Klein- und Großbuchstaben sowie Ziffern und Sonderzeichen verwenden

Dennoch sollte man sich das Passwort gut merken können. Am besten einen Satz wählen, der einem leicht von der Hand geht. Von diesem Satz die Anfangsbuchstaben der einzelnen Worte zu einem Passwort zusammenfügen und dabei Worte wie "und" durch "&" ersetzen:

Satz:
Mein Urlaub auf der Insel Spiekeroog war sehr erholsam und ich konnte gut entspannen
ergibt Passwort:
MUadISwse&ikge

Das beste Passwort nutzt nichts, wenn es im Klartext übertragen wird. Daher sollte man den Zugang zum Backend nur noch über SSL zulassen und entsprechende http-Anfragen auf https umleiten. Diese Umleitung kann man z.B. in der Konfiguration des virtuellenm Host oder über eine .htaccess-Datei im Ordner /typo3/ realisieren:

RewriteEngine On
RewriteBase /typo3/
RewriteCond %{SERVER_PORT} !443
RewriteRule ^(.*)$ https://www.meinedomain.de/typo3/ [R,L]

TYPO3 Installationsverzeichnis über .htaccess schützen
Zusätzlich zum sicheren Install-Tool Passwort ist es empfehlenswert das gesamte Installationsverzeichnis über eine .htaccess-Datei mit einem Kennwortschutz oder einem generellen Zugriffsschutz zu versehen.

.htaccess Passwortschutz
Für den zusätzlichen Passwortschutz existiert im Verzeichnis [TYPO3SOURCE]/typo3/install bereits eine vorbereitete Datei _.htaccess mit folgendem Inhalt:

AuthType Basic
AuthName Typo3InstallScript

AuthUserFile /www/.htpasswd
require valid-user

Wenn wir diese Datei unverändert nutzen möchten, muss im Verzeichnis /www/ die Datei .htpasswd sowie eine Benutzerkennung wie folgt erzeugt werden:

Syntax: htpasswd [ - c ] passwdfile Benutzername

In diesem Beispiel also
htpasswd -c /www/.htpasswd neuerbenutzer

Nach Bestätigung der Befehlszeile wird für den neuen Benutzer noch ein Kennwort abgefragt. Zum Aktivieren des Verzeichnisschutzes muss nur noch im Ordner [TYPO3SOURCE]/typo3/install die Datei _.htaccess in .htaccess umbenannt werden.
Wurde für die Erstellung der Datei .htpasswd ein anderes Verzeichnis gewählt, so muss dieses in der .htaccess unter AuthUserFile angepasst werden.

.htaccess Zugriffsschutz
Möchte man statt Passwortschutz lieber generellen Zugriffsschutz genügen folgende Einträge in der .htaccess

Order deny,allow
Deny from all


TYPO3 Extensions
Weniger ist oft mehr! Viele Sicherheitslücken entstehen durch Extensions. Daher empfiehlt es sich so wenig Extensions wie möglich und soviel wie nötig einzusetzen. Bei der Auswahl der Extensions sollte man zunächst populäre Extensions in Betracht ziehen. Diese haben sich in der Praxis als gut und sicher erwiesen und werden nach Bekanntwerden einer Sicherheitslücke meist schnellstens gepatcht. Wird man bei "Popular extensions" nicht fündig, ist bei der Wahl einer Extension -neben dem Status "Alpha", "Beta", "Stable"- die Downloadhäufigkeit ein gutes Indiz für die Beliebtheit einer Extension, und lässt i.d.R. Rückschlüsse auf die Zuverlässigkeit einer Extenions zu. Es sollte immer die aktuelle Version einer Extension eingesetzt werden und nicht mehr benötigte Extensions sollten nicht nur deaktiviert sondern vollständig deinstalliert werden.

Bekannte Sicherheitslücken schnell schließen
Darüber hinaus sollte man regelmäßig einen Blick auf TYPO3 Security Bulletins werfen, um zu checken ob die eigene TYPO3-Installation von Sicherheitslücken betroffen ist und Sicherheitslücken so schnell wie möglich schließen. Ein Patch bei Zeiten verhindert gehackte Webseiten ;-) Um stets mit aktuellen Informationen versorgt zu werden, sollte man die Mailingliste "TYPO3-announce" abonnieren.

Donnerstag, 14. Januar 2010

TYPO3 4.2.11 und 4.3.1 freigegeben, Sicherheitslücke in Zusammenhang mit OpenID und TYPO3 4.3.0 wurde geschlossen

Laut Release Notes wurden in TYPO3 4.2.11 und TYPO3 4.3.1 Bugfixes vorgenommen. Wer in TYPO3 4.3.0 die System Extension OpenID verwendet, sollte schnellst möglich auf TYPO3 4.3.1 updaten, da mit dem Update eine Sicherheitslücke geschlossen wird.

Donnerstag, 7. Januar 2010

TYPO3 Menü-Sortierung bei mehrsprachigen Webseiten

Mit TYPO3 können über die die Option alternativeSortingField im TMENU Menüs sortiert werden.

#Menü der Unterseiten - Sortierung aufsteigend nach Erstellungsdatum:
Typoscript:
tt_content.menu.20.1.1.alternativeSortingField=crdate ASC

#oder Sortierung nach nav_title
Typoscript:
tt_content.menu.20.1 = HMENU
tt_content.menu.20.1.1 = TMENU
tt_content.menu.20.1.1 {
alternativeSortingField = nav_title ASC
}

Klappt alles wunderbar, solange man keine mehrsprachigen Seiten hat. Bei mehrsprachigen Seiten wählt TYPO3 die Originalsprache des angegebenen Feldes als Sortierkriterium.

Dies lässt sich relativ geschmeidig mit einer Funktion lösen, welche z.B. über die localconf.php included werden kann. Wie erfahrt Ihr im blog von loglan.net

Die dort beschriebene Lösung zeigt außerdem die Möglichkeit mehrere Felder für die Sortierung anzugeben, wenn man beispielsweise, dort wo dieser angegeben wurde, den Navigationstitel anstelle des Seitentitels verwenden möchte.