Der zweite Teil beschäftigt sich mit den Voraussetzungen von Mambo an die PHP-Einstellungen. Diese werden im Pre-Installation-Check von Mambo abgefragt. Ich habe versucht ein paar Hintergrundinformationen zu diesen Einstellungen zu erläutern, um die Wirkungen der verschiedenen Einstellungen deutlich zu machen. Der erste Teil befindet sich hier: http://www.joomlaportal.de/t11766-in...ambo-4522.html
Für konstruktive Kritik am Artikel (Fehler unterlaufen jedem!) bin ich sofort zu haben. Für Verbesserungsvorschläge natürlich auch.
Einleitung
Der folgende Handlungsleitfaden liefert die Vorgehensweisen bei unzureichenden Voraussetzungen für die Installation von Mambo CMS 4.5.2.2. Aufgrund der Vielzahl von verschiedenen Serverumgebungen kann ich keine Garantie für die Richtigkeit der Informationen übernehmen. Der Leitfaden ist nur zur Orientierung gedacht. Haftung für Schäden aller Art aufgrund der Benutzung dieses Leitfadens kann ich nicht übernehmen, die Benutzung geschieht auf eigene Gefahr.
Voraussetzungen
Auf die einzelnen Voraussetzungen der Installation von Mambo CMS 4.5.2 bin ich in folgendem Artikel näher eingegangen: http://www.joomlaportal.de/t11766-in...ambo-4522.html
Dieser dient somit als Referenz für diesen Artikel.
Worst conditions
Im folgenden gehen wir von den schlechtesten Voraussetzungen für die Installation von Mambo CMS aus. Der Pre-Installation-Check sieht rot!
Die Integration von zlib-, XML- und MySQL-Unterstützung nehmen wir aber trotzdem als gegeben an, da es sich hierbei um grundlegende Servereinstellungen handelt. Wenn diese nicht den Voraussetzungen entsprechen, muß PHP bzw. der Apache-Webserver neu kompiliert werden. Die Vorgehensweise dafür würde aber den Rahmen dieses Artikels sprengen.
Wir beschäftigen uns jetzt mit Einstellungen von PHP, um die Webserver-Umgebung an die Installation von Mambo anzupassen. Diese Einstellungen findet man in der Datei php.ini. Der Haken an der Sache ist, dass die wenigsten Webspace-Pakete eine eigene php.ini zulassen. Da es sich bei den meisten Webspace-Angeboten um Shared-Server handelt (man teilt sich den Server mit bis zu 1000 anderen Usern), ist es unmöglich die Einstellungen von PHP zu ändern. Hier sollte man sich direkt an den Hoster wenden, bzw. sich um einen anderen Hoster bemühen.
Sogenannte VServer (Virtuelle Server), Managed Server oder RootServer haben meistens Zugriff auf die php.ini, da es sich hierbei um richtige (virtuelle) Server handelt. Bei VServern teilt man sich zwar auch einen oder mehrere Prozessoren und das RAM mit anderen Usern, das System verhält sich aber fast wie ein alleinstehender Server.
Allgemeine Einstellungen
Hier sehen wir, dass die Datei configuration.php und der Session save path nicht beschreibbar sind. Ersteres ist nicht so tragisch, da es zwei Lösungsmöglichkeiten gibt.
1.Man erstellt per FTP- oder Shell-Zugriff eine leere Datei mit dem Namen configuration.php im Root-Verzeichnis von Mambo und vergibt die Unix-Rechte 644 (-rw-r-- r--)
2.Im Schritt 4 der Installation wird der Inhalt der configuration.php (siehe Abbildung 2) ausgegeben. Diesen kopiert man mit einem einfachen Texteditor (Notepad, gedit) in eine leere Datei. Man sollte hier darauf achten, dass der Inhalt mit <?php anfängt und mit ?> aufhört. Davor und danach dürfen keine Leerzeichen und -zeilen vorkommen. Diese Datei überträgt man dann mittels FTP in das Root-Verzeichnis von Mambo
Der Session save path gibt den Pfad des Verzeichnisses wieder, in dem die Session-Daten gespeichert werden. Dies dient dazu, bestimmte Daten während der gesamten Sitzung (Session) des Internet-Users festzuhalten. Mambo speichert zum Beispiel die User-ID zur Bestimmung des angemeldeten Users. Diese Voraussetzung muss also unbedingt erfüllt sein, da es sonst unter anderem zu fehlerhaftem Verhalten beim Anmelden (Front- wie auch Backend) kommen kann. Auch manche Module und Komponenten benötigen Informationen aus den Session-Daten, um zu funktionieren.
Die Einstellung findet sich in der Datei php.ini. Dort muss der Parameter session.save_path auf ein Verzeichnis eingestellt werden, dass vom User des Webservers beschrieben werden kann.
Empfohlene Einstellungen
Safe Mode
Die meisten Probleme mit Mambo entstehen durch einen aktivierten Safe Mode. Diese Einstellung bewirkt, dass ein Teil der Funktionen von PHP (unter anderem Systembefehle) gesperrt sind. Eine weitere Auswirkung, die Probleme verursacht, ist, dass PHP-Skripte nur noch auf Dateien zugreifen dürfen, die den gleichen Eigentümer haben. Und hier entsteht das Problem bei den meisten Hostern: wenn Dateien per FTP übertragen werden, wird ihnen ein anderer Eigentümer zugewiesen als der Benutzer, unter dem der Webserver läuft (nobody, apache, wwwrun o.ä.). Mit Ordnern verhält es sich ähnlich (da diese auch nichts anderes als Dateien unter Unix/Linux sind).
Warum Hoster überhaupt Safe Mode benutzen, entzieht sich meiner Kenntnis, da es mehr Probleme verursacht, als für Sicherheit zu sorgen. Ohne restriktive Einstellungen des Parameters open_basedir hat Safe Mode keinerlei Auswirkungen, da alle PHP-Dateien dann unter dem User des Webservers laufen. Damit hat man wieder Zugriff auf PHP-Dateien anderer Benutzer des gleichen Servers (da diese ja auch unter dem Webserver-User laufen). Um einen Server sicherer zu machen, sollte man die Parameter open_basedir und disable_functions benutzen bzw. PHP als CGI anstatt als Modul laufen lassen. Letzteres hat leider negative Auswirkungen auf die Performance.
Der Parameter safe_mode in der php.ini regelt das Verhalten von Safe Mode.
Display Errors
Mit display_errors werden Fehler im PHP-Skript als Ausgabe an den Browser gesendet.
Der Parameter display_errors in der php.ini regelt das Verhalten von Display Errors.
File Uploads
Diese Einstellung bestimmt, ob Datei-Uploads per HTTP erlaubt sind. Die Parameter upload_tmp_dir und upload_max_filesize hängen mit dieser Einstellung zusammen. upload_tmp_dir bestimmt das Verzeichnis, in dem Dateien während des Uploads gespeichert werden. Dieses Verzeichnis benötigt Schreibrechte für den User, unter dem das PHP-Skript läuft. upload_max_filesize setzt die maximale Größe, die eine hochzuladende Datei haben darf.
Der Parameter file_uploads regelt das Verhalten von File Uploads.
Magic Quotes GPC
Durch diese Einstellung werden Daten, die durch Formulare oder Cookies (GPC = Get/Post/Cookies) übertragen werden, maskiert. Einzelne und doppelte Anführungszeichen, Backslash und NULs werden mit einem zusätzlichem Backslash geschützt. Dies dient unter anderem der Sicherheit, da hierdurch zum Beispiel die Gefahr von SQL Injections minimiert wird.
Der Parameter magic_quotes_gpc in der php.ini regelt das Verhalten von Magic Quotes GPC.
Magic Quotes Runtime
Das selbe Verhalten wie Magic Quotes GPC. Hier werden Daten, die von Datenbanken und Textdateien zurückgegeben werden mit einem Backslash maskiert.
Der Parameter magic_quotes_runtime regelt das Verhalten von Magic Quotes Runtime.
Register Globals
Die Einstellung Register Globals stellt globale Variablen unter ihrem Namen zur Verfügung. Beispiel: Ein Formular enthält das Feld name, mit register_globals=on kann im Empfängerskript ohne weitere Deklaration per $name auf den Wert dieses Feldes zurückgegriffen werden. Dies stellt eine Sicherheitslücke dar. Ein Angreifer könnte die URL des Empfängerskriptes so verändern, dass der eigentliche Wert von $name mit Code überschrieben wird. Wenn keine Prüfung des Inhaltes vom Programmierer erfolgt, wird dieser dann ausgeführt und kann beträchtlichen Schaden am System anrichten.
Der Parameter register_globals in der Datei php.ini regelt das Verhalten von Register Globals.
Output Buffering
Hiermit wird der vom PHP-Skript ausgegebene Code in einen speziellen Speicherbereich des Servers geschrieben und solange zurückgehalten, bis die Ausgabe erfolgt. Damit können zum Beispiel Header- und Cookie-Informationen nachträglich noch geändert werden.
Der Parameter output_buffering in der Datei php.ini regelt das Verhalten von Output Buffering.
Session auto start
Diese Einstellung aktiviert bei jeder Anfrage an den Webserver eine Session. Da Mambo selber die Sessions verwaltet, muss dieser Wert auf 0 stehen.
Der Parameter session.auto_start in der Datei php.ini regelt das Verhalten von Session auto start.
Verzeichnis- und Datei-Rechte
Hier bleibt nur zu sagen, dass man es vermeiden sollte die Rechte der Dateien und Verzeichnisse auf 777 zu setzen (eine kleine Einführung über die Unix/Linux-Rechteverwaltung habe ich im ersten Teil schon gegeben).
Verzeichnisse sollten höchstens die Rechte 755 besitzen und Dateien 644. Damit läuft Mambo in der Standardinstallation, bei Verwendung von intensiven Komponenten (Gallerien oder ähnliches) kann es zu Abweichungen kommen. Dies betrifft aber nicht die Standard-Verzeichnisse von Mambo.
Diesen Leitfaden gibt es auch wieder als PDF-Download: PDF


LinkBack URL
About LinkBacks




Zitieren
Lesezeichen