29
2013
Jan

Drupal Going-Live Checklist

von Maximilian Uhl
 - Service, Entwicklung, Programmierung, Drupal

Drupal Going-Live ChecklistNach Wochen und Monaten des Entwickelns einer Drupal Website rückt der Tag des Onlinegangs näher. Wir haben bei StudiosDigital in den letzten 6 Jahren schon viele Drupal Websites online gestellt und haben eine Checkliste die wir abarbeiten, damit alles so komplikationsfrei wie möglich abläuft. Typischerweise gehen wir diese Liste bereits mehrere Tage vor einem Onlinegang durch.

Das hilft uns dabei nichts Wichtiges auszulassen. Diese Liste ist für Drupal 7 Websites, die meisten Einstellungen unterscheiden sich jedoch auch für Drupal 6 nicht wesentlich. Planen sie für den Onlinegang einer neuen Site genug Zeit ein - es kann immer wieder passieren, dass etwas schief geht oder länger dauert als erwartet.

 

Module

  1. Stellen sie sicher, dass nur jene Module aktiviert sind, die sie wirklich brauchen. Umso mehr Module aktiviert sind desto langsamer wird eine Drupal Site. Deaktivieren sie sämtliche Core Module die sie nicht brauchen.
  2. Deinstallieren und löschen sie alle Nicht-Core Module, die nicht benötigt werden.
  3. Für den Fall, dass sie das „Devel Modul“ oder Vergleichbares verwenden, deaktivieren sie dieses. (Nicht deinstallieren).
  4. Deaktivieren sie User Interface Module wie beispielsweise das zu Views gehörige „Views UI“ oder „Migrate UI".

 

Security

Grundsätzlich ist Drupal ein sehr sicheres System, allerdings gibt es einige Einstellungen die gerade während der Entwicklungsphase einer Website vorgenommen werden, die auf einer Live Site wieder geändert werden sollten. Security Review Module

Einen gute Überblick über den Sicherheits-Status ihrer Drupal Website bietet das Modul „Security Review“.

Dieses Modul macht ihre Seite nicht automatisch sicherer - es bietet jedoch eine gute Übersicht, welche Einstellungen sie manuell vornehmen sollten, um ihre Seite sicherer zu machen.
 

Sicherheits-Updates

  1. Überprüfen sie ob es Sicherheits-Updates für den Core bzw. die verwendeten Contributed Module gibt und installieren sie diese.
  2. Falls sie mit dem Kunden eine Vereinbarung für weitere Wartung der Website getroffen haben, tragen sie unter „Berichte“ -> „Verfügbare Aktualisierungen“ -> „Einstellungen“ ihre Email Adresse ein. Falls ihr Kunde keinen Wartungsvertrag mit Ihnen abgeschlossen hat, tragen sie dort die Email Adresse ihres Kunden ein - vielleicht überlegt sich ihr Kunde die Wartungsarbeiten von ihnen durchführen zu lassen wenn er über ausstehende Sicherheitsupdates regelmäßig informiert wird.
     

Konfiguration der Datei settings.php

Session Lifetime einstellen:

Per Default bleiben Benutzer für 23 Tage eingeloggt (2000000 Sekunden), indem ein Cookie im Browser gespeichert wird. Das stellt ein potentielles Sicherheitsproblem dar, wenn auch andere Leute auf einen Computer Zugriff haben.

Die Anweisung in der Datei settings.php

ini_set('session.cookie_lifetime', 2000000);

abändern auf

ini_set('session.cookie_lifetime', 0);

Damit werden angemeldete Benutzer beim Verlassen der Site bzw. beim Schließen des Browsers ausgeloggt.

 

Dateiberechtigungen

Das Dateisystem des Webservers sollte so eingerichtet sein, dass der Webserver nicht die Berechtigungen hat jene Dateien zu verändern welche er ausführt. Alle Dateien der Drupal Installation sollten für den Webserver Prozess auf "Nur Lesen" eingestellt sein und Eigentümer der Datein sollte ein anderer Benutzer sein. Das oben erwähnte Modul „Security Review“ überprüft auch diese Einstellungen.

Die häufigste Frage zur richtigen Einstellung der Berechtigung betrifft folgende Dateien/Verzeichnisse:

Datei/Ordner Berechtigung
/sites/default/settings.php -rw-r--r-- (644)
/sites/all/files rwxrwx--- (770)
/sites/all/private rwxrwx--- (770)


Detailliertere Informationen dazu finden sie unter „Securing file permissions and ownership“.
 

PHP Filter Modul deaktivieren

Dieses Modul sollte aus Sicherheits und Performance Gründen nicht für eine Live Seite eingesetzt werden. Dieses dient eigentlich während der Entwicklung eine Site zum schnellen Ausprobieren von PHP Code, welcher anschliessend unbedingt in einem Modul realisiert werden soll. Weiters beeinträchtigt PHP Filter Code das Caching.
 

TXT Dateien entfernen

Drupal hat eine Menge .txt Dateien im Root-Verzeichnis. (Dinge wie Installations Anweisungen, Upgrade Anweisungen …). Diese zeigen Informationen über die verwendete Drupal Version, dies könnte böswilligen Benutzern Hinweise über etwaige, nicht eingespielte Sicherheits-Updates geben. Daher empfiehlt es sich diese zu entfernen.

CHANGELOG.txt
COPYRIGHT.txt
INSTALL.mysql.txt
INSTALL.pgsql.txt
INSTALL.sqlite.txt
INSTALL.txt
LICENSE.txt
MAINTAINERS.txt
README.txt
UPGRADE.txt

Achten sie darauf, dass sie dabei nicht die Datei readme.txt entfernen.
 

Anzeige der Fehlermeldungen deaktivieren

Fehlermeldungen sind während des Site Developments wichtig, verwirren aber ihre User bzw. könnten bei ausstehenden Updates auch Hinweise auf Sicherheitslecks geben.

  1. Gehen sie zu Verwaltung -> Konfiguration -> Protokollierung und Fehler
  2. Wählen Sie unter „Anzuzeigende Fehlermeldungen“ den Wert „Keines“ aus.
  3. Database Logging weder zu hoch noch zu niedrig ansetzen. Zu hoch kann ihre Datenbank sehr groß werden lassen. Ein Eintrag schlägt mit ca. 1kB zu Buche. Zu niedrige Werte bieten ihnen zu wenig Möglichkeiten zum Debugging. Die beste Performance erreichen sie allerdings, wenn sie das „Database Logging“ Modul (Watchdog) komplett deaktivieren und stattdessen das zum Core gehörende Syslog Modul verwenden. Dieses speichert die Fehlermeldungen nicht in der Datenbank sondern in den Log-Dateien des Webservers. Mehr Informationen dazu finden sie unter drupal.org/documentation/modules/syslog
  4. Überprüfen sie die Fehlermeldungen nochmals auf auf Fehler, welche die Sicherheit oder Performance der Site negativ beeinflussen.
     

Performance Tuning

Caching

Drupal Konfiguration LeistungAktivieren sie unter Verwaltung -> Konfiguraton -> Leistung  den Cache der Website. Achten sie darauf den Wert für den Ablauf von zwischengespeicherten Seiten nicht zu hoch zu wählen, da sonst User die über einen Proxy-Server Zugang zum Internet haben ihre Site nicht immer die aktuellsten Inhalte sehen. Richten sie sich bei diesem Wert nach der Frequenz mit der Inhalte auf ihrer Site aktualisiert werden.

Aktivieren sie hier auch die Bandbreitenoptimierung für CSS & Javascript Aggregation und die Seitenkomprimierung. Darüber hinausgehende Möglichkeiten die Performance einer Drupal Site zu optimieren bieten die Modulr „Alternative PHP Cache“, „Memcache API and Integration“ oder falls ihre Site auf einer Shared Hosting Umgebung läuft und keine angemeldeten Benutzer hat das Modul „Boost“.
 

Memory Limit

Drupal 7 benötigt ein minimales PHP Memory Limit von 32MB, jedoch sind 64MB empfohlen. Je nach der Komplexität ihrer Drupal Site empfiehlt es sich das Memory Limit zu erhöhen. Verwendet ihre Seite beispielsweise Module wie Views oder Panels, ist meistens ein minimales Memory Limit von 128MB zu empfehlen. Das Modul „Performance Logging and Monitoring“ bietet die Möglichkeit den Speicherverbrauch einzelner Seiten im Auge zu behalten. Je nachdem ob sie auf ihrem Webserver die Möglichkeit haben die php.ini Datei zu editieren gibt es verschiedene Möglichkeiten das Memory Limit zu erhöhen.
 

Cronjob

Vergessen sie nicht den Cronjob für ihre Drupal Site einzurichten. Der Cronjob ruft ein PHP Skript auf, welches dafür da ist, reglmäßige Aufgaben für Drupal auszuführen. Typische Aufgaben sind beispielsweise der Aufbau des Suchindex für die interne Suche oder der Abruf von Informatinen über Updates. Wenn man nicht die Möglichkeit hat auf seinem Webserver einen externen Cronjob einzurichten, bietet Drupal 7 die Möglichkeit einen solchen unter Verwaltung -> Konfiguraton -> System -> Cron einzurichten. Nähere Informationen zum Thema Cronjobs mit Drupal finden sie unter drupal.org/cron.
 

URLs

Deaktivieren sie Views die nicht mehr benötigt werden bzw. löschen sie diese. Da diese sonst möglichweise Zugriff auf unveröffentlichte oder gar sicherheitsrelevante Inhalte ermöglichen.

Überprüfen sie die URL www.example.com/node . Diese URL listet normalerweise alle Nodes, mit dem Flag „Auf Startseite anzeigen“ auf, das ist meist nicht erwünscht. Das ist die Standard Frontpage von Drupal, welche zwar meist umgestellt wird aber dennoch weiter existiert. Hier leistet das Modul „Nice Frontpage“ Abhilfe, oder sie konfigurieren das in der settings.php bzw. in einem eigenen Custom Modul.
 

Backups einrichten

Sie sollten unbedingt für ihre Site automatisierte Backups einrichten. Ein regelmässiges Backup des Dateisystems kann mit FTP erfolgen, jedoch empfehlen wir eine automatisierte Lösung mit einem Skript. Am wenigsten umständlich ist eine Lösung durch ihren Webhoster: die meisten Webhoster bieten einfache Lösungen zu sehr geringen Kosten, bei welchen die Dateien auf einen externen FTP Server oder auch auf Dropbox Accounts übertragen werden. Für Backups der Datenbank empfiehlt sich das Modul „Backup and Migrate

Wichtig ist, dass sie Backups testen! Wenn man ein Backup nicht getestet hat, hat man nichts gebackupt!
 

Wir hoffen ihnen mit dieser Liste bem Launch ihrer Drupal Website helfen zu können. Diese Liste soll ihnen Hinweise auf mögliche Fehlerquellen geben und stellt nicht den Anspruch auf Vollständigkeit. Sollten sie weitere Tipps haben, lassen sie uns diese wissen.