PHP-Sicherheitseinstellungen

Werbung
Konzeption Projekt Realisierung
eines Webservers
E2FI4
Verfasst von: Bertwin Mann, Mike Essig, Steffen Jahr und Alexander Martin
[02 November 07]
INHALTSVERZEICHNIS
1. ANFORDERUNG ............................................................................................................ 2
2. AUFGABENVERTEILUNG ................................................................................................... 2
3. SERVER-ANFORDERUNGEN ............................................................................................... 3
4. BETRIEBSSYSTEM (OPERATION SYSTEM) ................................................................................ 3
5. WEBSERVER (APACHE) ................................................................................................... 3
6. SSL VERSCHLÜSSELUNG................................................................................................... 4
7. PHP UNTERSTÜTZUNG ................................................................................................... 4
8. DATENBANK (MYSQL).................................................................................................... 6
1
1. ANFORDERUNG
Angeboten werden soll ein Root-Server der später als Plattform für eine Online-Applikation dient,
hierbei ist zu beachten, dass mit circa 2 Millionen Zugriffe pro Tag zu rechnen sind die durch den
Root-Server zu bewältigen sind. Der Root-Server ist durch die Firma BMSA zu installieren und warten.
Der Root-Server wird später im Rechenzentrum von 1&1 Karlsruhe implementiert und betrieben,
wodurch eine Verfügbarkeit von 99,9% p.a. gewährleistet wird. Weiterhin werden folgende technische
Anforderungen an den Root-Server gestellt.

Betriebssystem Linux

SSL Unterstützung

FTP Zugänge

Benötigte Applikationen
o
Webserver (Apache)
o
PHP
o
MySQL Datenbank
2. AUFGABENVERTEILUNG
Aufgabe
Arbeitszeit
(geschätzt)
Realisierungsdatum Betreuer
Installation
Grundsystem +
benötigte Applikationen
inklusive Konfiguration
2 MT
19.11.2007
Herrn Bertwin Mann
Integration SSL
1 MT
26.11.2007
Herrn Mike Essig
Integration PHP
Unterstützung
1 MT
03.12.2007
Herrn Steffen Jahr
Installation Datenbank
1 MT
03.12.2007
Herrn Alexander Martin
Präsentation Projekt
-
17.12.2007
Herrn Bertwin Mann,
Herrn Mike Essig,
Herrn Steffen Jahr und
Herrn Alexander Martin
Wir behalten uns vor eine Abweichung von circa 1 - 2 Arbeitstage von den veranschlagten 5 MT explizit in
Rechnung zu stellen falls kundenseitige Änderungen im Rahmen der Umsetzungsphase erfolgen.
2
3. SERVER-ANFORDERUNGEN
Anforderungen an den Root-Server:

Ausfallsicherheit (Strom / Netzwerk)

Datensicherheit und Performance

Hochleistungs-Datenbankanwendungen

Wartungsfreundlich

Onlineverfügbarkeit
Der Root-Server wird komplett datenredundant, netzwerkredundant sowie stromredundant ausgelegt.
Er ist für Hochleistungs-Datenbankanwendungen konzipiert und besitzt ein Höchstmaß an Effizienz.
Nachträgliche Erweiterungen des Hauptspeichers ist durch das Hotplug Prinzip im laufenden Betrieb
möglich.
Technische Daten des Servers:
Dual-Core 4-HE-Rackserver mit 4 Sockets
Bis zu 4 Intel® Xeon® Dual-Core 7100-Serie Prozessoren
Bis zu 64 GB ECC DDR-2 SDRAM
Bis zu 1500 GB maximaler interner Festplattenspeicher
Im Rechenzentrum wird der Server zusätzlich an eine USV Anlage angeschlossen, um somit eine
höhere Ausfallsicherheit zu gewährleisten. Die Netzwerk beziehungsweise Onlineverfügbarkeit beträgt
99,9% p.a. (Dieser Wert ergibt sich aus dem gewählten Rechenzentrum)
4. BETRIEBSSYSTEM (LINUX, UBUNTU)
Der spätere Root-Server wird später mit der Linux Distribution Ubuntu 6.06 LTS (Long Term Support)
betrieben, durch dieses Betriebssystem fallen keine weiteren kosten an, der Erwerb eine Lizenz ist
nicht nötig. Von Seiten des Herstellers werden Updates bis 2011 bereitgestellt somit können mögliche
Sicherheitsrisiken beseitigt werden.
5. WEBSERVER (APACHE)
Um den Root-Server und auch die darauf installierte Kunden-Applikation zu einem späteren Zeitpunkt
über das World Wide Web erreichen zu können, wird die Anwendung Apache installiert und dient als
Webserver. Apache ist der meistbenutzte Webserver, er ist für viele Betriebssysteme erhältlich, der
Webserver ist modular aufgebaut wodurch er zu jederzeit ohne größeren Aufwand durch Module
3
erweiterbar ist. Der Webserver wird die Standardports 80 für http und 443 für https (SSL) belegen.
Aus Sicherheitsgründen bleiben sind dieses die einzigsten öffentlich erreichbaren Ports. Die
Anmeldung am Root-Server erfolgt stehts über eine gesicherte SSL Verbindung.
6. SSL VERSCHLÜSSELUNG
SSL arbeitet transparent, so dass es leicht eingesetzt werden kann, um Protokollen ohne eigene
Sicherheitsmechanismen abgesicherte Verbindungen zur Verfügung zu stellen. Ende-zu-EndeVerschlüsselung mittels symmetrischer Algorithmen und Sicherung der Nachrichten-Integrität und
Authentizität durch Bildung einer kryptografischen Prüfsumme sind die Kernaufgaben des SSL.
Entrust
Thawte
Versign
Preis
899 $ / Jahr
899 $ / Jahr
995 $ / Jahr
Typ
Root
Root
Root
Ausstellung
sofort
sofort
max. nach 2 Tagen
Validierung
Dokumente
Email, Robot
Dokumente
Zertifiziert
Domaininhaber,
Domaininhaber
Domaininhaber,
Identität
Identität
V ERGLEICH 1: V ERSCHIEDENE SSL-A USSTELLER
Nach einem näheren Vergleich verschiedener SSL-Aussteller, haben wir uns für ein Zertifikat der
Firma Verisign entschieden. . Das SSL-Zertifikat von Verisign bietet eine 256-Bit-Verschlüsselung,
welche heute den neuesten Standards entspricht. Dieses Zertifikat bietet Unterstützung vieler
aktueller Browser, sowie eine hohe Haftungssumme (100.000$) bei Schäden die durch
Sicherheitslöcher des Zertifikates entstanden sind. Durch die hohe Belastung des Servers die zu
erwarten ist, sind wir mit diesem Zertifikat ausreichend abgesichert.
7. PHP UNTERSTÜTZUNG
Die Kunden-Applikation wurde mittels der Programmiersprache PHP realisiert. Die Implementierung
der PHP Unterstützung kann über zwei verschiedene Arten ermöglicht werden, beide Varianten haben
sowohl Vor- als auch Nachteile welche nachstehend etwas genauer erläutert werden.
Implementierung Apache Modul „mod_php”
Das Apache Modul hat den Nachteil, das es für alle Benutzer nur einen Prozess anstarten. Dies
bedeutet, dass es nicht möglich ist verschiedenen Benutzern verschiedene PHP-Konfigurationen zu
geben. Allerdings hatte diese Einbindung von PHP den Vorteil, das Anfragen schneller bearbeitet
werden können, da nur ein Prozess überprüft weden muss.
4
Implementierng über die PHP CGI Schnittstelle
Für die Einbindung von PHP per CGI spricht, dass man pro Benutzer eine PHP-Konfiguration
vergeben kann. Allerdings wird auch für jeden Benutzer ein eigener Prozess angestartet, was
bedeutet, dass diese Einbindung deutlich mehr Resourcen benötigt als die Einbindung per Modul. Die
CGI-Anbindung wird meist auf Servern genutzt auf die mehrere Benutzer Zugriff haben.
Wir entscheiden uns für den Apache Modulmod, da wir pro Server nur einen Benutzer haben und
daher keine geteilte Rechtevergabe benötigen.
PH P- S i che rh e it s e in st el lung en
Um absolute Sicherheit bei Ihren PHP-Anwendungen zu gewährleisten werden verschiedene
Sicherheitseinstellungen an ihrem Webserver vorgenommen:
1. allow_url_fopen() = off
Mit dem Abschalten dieser Funktion wird das Öffnen von Dateien Verbietet das öffnen von
Dateien auf anderen Servern. Keine Ausführung externer Scripte
2. allow_url_include() = off
Verbietet das einbinden von Dateien die auf einem anderen Server liegen. Daher können
keine externen Scripte ausgeführt werden.
3. display_errors = off
Um zu verhindern das Benutzer ungewünschte Fehlermeldungen von PHP sehen und
dadurch eventuelle Schwachstellen ausnutzen wird diese Funktion abgeschaltet.
4. open_basedir = Pfad auf Webverzeichniss
Durch Setzen dieses Pfades wird verhindert, dass Dateioperationen auf ein übergeordnetes
Verzeichniss angewendet werden kann. Diese Einstellung dient weniger dem Benutzer, als
der Sicherheit des Servers.
5. register_globals = off
Die Einstellung register_globals steuert ob URL oder POST Variablen global deklariert werden
oder nicht. Da sich viele Angriffe eines PHP-Skriptes auf diese Schwachstelle richten, ist es
ratsam diese Einstellung abzuschalten.
6. safe_mod = on
Deaktiviert zahlreiche Sicherheitslöcher die im Laufe der Jahre in PHP implementiert worden
sind. Ausführliche Liste unter http://www.php.net/manual/de/features.safe-mode.php
7. disable_functions = Funktionen die deaktiviert werden sollen
(exec,system,passthru,shell_exec,popen,escapeshellcmd,proc_open,proc_nice,ini_restore)
Mit dieser Einstellung werden Befehle deaktiviert mit der ein Benutzer per PHP Befehle auf
dem System ausführen könnte. Wird aktiviert um unbefugten Zugang zu unterbinden.
5
Die Implementierung auf dem Root-Server erfolgt über das Apache Modul da keine
Mehrfachbenutzung in Aussicht steht.
8. DATENBANK (MYSQL)
Die Enterprise-Edition der Open-Source Datenbank ist im Gegensatz zur kostenlosen Community
Edition auf Unternehmen egal welcher Größe spezialisiert, durch die Zuverlässigkeit und Sicherheit ist
sie somit perfekt geeignet für geschäftskritische Anwendungen.
Als Gold beziehungsweise Platinum Kunde steht Ihnen ein qualifiziertes Support Team 24 Stunden 7
Tage die Woche zur Verfügung. In wichtigen Fehler-Fällen können spezielle Hotfixes
maßgeschneidert für die eigene Applikation angefordert werden welche binnen 3 Stunden zur
Verfügung stehen.
Die Open-Source Datenbank informiert über verfügbare Updates, hinzu kommen technische
Warnhinweise, sowie monatliche Updates und vierteljährliche Service-Packs.
Der MySQL Enterprise-Server steht für über 10 verschiedene Plattformen bereit, ausgeliefert wird
dieser mit zahlreichen Tools und Utilities zum administrieren und warten der angelegten Datenbanken.
Mitgelieferte Administrations- und Wartungstools
MySQL Migration Toolkit
Mit Hilfe des Toolkit können über einen Assistenten bestende Datenbanken auf MySQL migriert
werden.
MySQL Administrator
Mittels eine graphischen Verwaltsungskonsole können Sie auf einfache Weise die MySQL Umgebung
verwalten, die Oberfläche bietet einen Überblick über den Status der bestehenden Datenbanken. Der
MySQL Administrator ermöglicht die Wartung und Administration einer Datenbank mittels einer klar
strukturierten und intuitiv bedienbarer Oberfläche.
MySQL Query Browser
Der Query Browser dient als Werkzeug zum erstellen, ausführen und optimieren von SQL-Statements
(Abfragen), mittels Drag-and-Drop Verfahren können Abfragen visualisiert erstellt, analysiert und
verwaltet werden.
MySQL Workbench
Die MySQL Workbench kann als Werkzeug zur Datenbankgestaltung eingesetzt werden, es
ermöglicht die Konzeption und Erstellung neuer Datenbankschematas auch können Dokumentationen
zu bestehenden Datenbanken erstellt werden ebenfalls sind komplexe Migrationen auf MySQL
möglich.
6
Herunterladen