Mittwoch, 15. September 2010

PHP Beschleuniger eAccelerator - Installation für TYPO3 unter Ubuntu

eAccelerator beschleunigt und optimiert die Ausführung von PHP-Code unter Apache. Dabei wird einmal ausgeführter PHP-Code kompiliert gespeichert und muss so nicht bei jedem Seitenaufruf neu kompiliert werden. Dadurch wird PHP-Code bis zu zehn mal so schnell ausgeführt.

Die Installation eines PHP Beschleunigers macht sich, insbesondere bei Content Management Systemen wie TYPO3, positiv bemerkbar.

Zunächst müssen die Voraussetzungen für die Kompilierung und die Installation von eAccelerator geschaffen und die erforderlichen Pakete wie folgt installiert werden:

apt-get install build-essential php5-dev

Anschließend wird die aktuelle Version (derzeit 0.9.6.1) von der Webseite der eAccelerator-Entwickler geladen, im Ordner /usr/src gespeichert und dort entpackt:

cd /usr/src

wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2


tar -xfvj eaccelerator-0.9.6.1.tar.bz2


Nach dem Entpacken des Archivs in den erstellten Ordner /usr/src/eaccelerator-0.9.6.1 wechseln und mit folgenden Befehlen die Installation durchführen:

cd /usr/src/eaccelerator-0.9.6.1

phpize


./configure


make


make install


Nun muss im Ordner /etc/php5/conf.d noch die Datei eaccelerator.ini:

nano /etc/php5/conf.d/eaccelerator.ini

erstellt und mit folgenden Standardeinstellungen versehen werden:

extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Bei den Werten handelt es sich um vorgegebene Einstellungen von eAccelerator die ggf. (je nach Größe der TYPO3- /Web-Site) angepasst werden müssen.

Sollte eine Erhöhung des SharedMemory-Wertes "eaccelerator.shm_size" auf Werte über 32 notwendig sein, sollte geprüft werden, ob der Kernel auf dem betroffenen System Reservierungen über 32MB zulässt (/proc/sys/kernel/shmmax) und diese ggf. höher setzen:

#zum Testen temporär auf 64GB erhöhen
echo "67108864" > /proc/sys/kernel/shmmax
#Erhöhung auf 64GB festlegen
echo "kernel.shmmax=67108864" >> /etc/sysctl.conf
#Einlesen der sysctl.conf
sysctl -p
Mit dieser Einstellung kann man eAccelerator nun bis zu 64MB Shared Memory zur Verfügung stellen.

Abschließend muss noch der -in der eaccelerator.ini angegebene- Ordner für die Ablage der gecachten Dateien angelegt und für alle Benutzer mit Schreibrechten versehen werden:

mkdir /var/cache/eaccelerator

chmod 777 /var/cache/eaccelerator


Nun noch den Apache neu starten:

/etc/init.d/apache2 restart

dann sollte eAccelerator seinen Dienst tun.

eAccelerator Webkonsole aktivieren

eAccelerator bringt ein Web-Interface mit, welches es einem ermöglicht sich einen Überblick über gecachte Seiten sowie über den Status der eAccelerator-Installation zu verschaffen. Diese Webkonsole muss extra aktiviert werden:

Die Datei control.php aus dem Installationsverzeichnis in den Webseitenordner des Apache kopieren:

cp /usr/src/eaccelerator-0.9.6.1/control.php /var/www

Die eaccelerator.ini editieren:

nano /etc/php5/conf.d/eaccelerator.ini

und den Pfad zur control.php wie folgt eintragen:

eaccelerator.allowed_admin_path="/var/www/control.php"

Apache neu starten:

/etc/init.d/apache2 restart

Anschließend kann die Webkonsole über

http://meinwebserver.de/control.php

aufgerufen werden.

Standardmäßig ist die Konsole über eine Passwortabfrage geschützt:

Benutzername: admin
Kennwort: eAccelerator

Die Zugangsdaten können und sollten in der control.php angepasst werden, indem man die folgenden Werte ändert:

$user = "admin";
$pw = "eAccelerator";

Wenn man den Zugangsschutz für die Webkonsole deaktivieren möchte geht das über folgenden Wert in der control.php:

$auth = false;

Freitag, 30. Juli 2010

Mehrere kritische Sicherheitslücken in Typo3 geschlossen

die Sicherheitslücken betreffen TYPO3-Versionen bis einschließlich 4.1.13, 4.2.12, 4.3.3 sowie 4.4 und ermöglichen unter anderemCross-site Skripting
  • Umgehen der Authentifizierung
  • Preisgabe vertraulicher Informationen
  • SQL Injection
  • HTML Injection
  • Session-Fixation
  • nicht autorisierten E-Mail-Versand
TYPO3 Administratoren sollten Ihre Systeme umgehend auf den neuesten Stand bringen.

Mittwoch, 24. Februar 2010

TYPO3-Update schließt Sicherheitslücken

Das TYPO3 -Sicherheitsteam hat die TYPO3 Updates 4.2.12 und 4.3.2 zum Download bereit gestellt. Diese beheben u.a. eine Cross-Site-Scripting- und eine Authentication Bypass-Schwachstelle. Weitere Informationen enhält ein TYPO3 Security Bulletin.

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.