Download - XAMPP fuer Windows - :: Happy-Securitydigilib.happy-security.de/files/XAMPP_fuer_Windows-1.pdf · xampp\apache\conf Zentrales Konfigurationsverzeichnis für Apache. xampp\apache\logs

Transcript

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 1(23)

Inhaltsverzeichnis 1. XAMPP, was ist das? ............................................................................... 2

1.1. Informationsquelle und Version .......................................................... 2

2. Installation und erster Funktionstest ......................................................... 3

2.1. Installation mittels „Installer“ durchführen ........................................... 3

2.2. Server-Module starten und erster Funktionstest................................. 8

3. Sicherheit des Web-Servers erhöhen..................................................... 12

3.1. Die XAMPP Sicherheitskonsole........................................................ 13

4. Konfiguration der Komponenten anpassen............................................. 19

4.1. Apache: Grundkonfiguration ............................................................. 20

4.2. Apache: Info-/Statusabfragen ermöglichen ...................................... 20

4.3. Apache: Virtuelle Server definieren .................................................. 21

4.4. Apache: SSL-Konfiguration .............................................................. 22

4.5. PHP: Grundkonfiguration.................................................................. 23

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 2(23)

1. XAMPP, was ist das?

XAMPP ist ein Kunstwort und setzt sich neben dem „X“ aus den Anfangs-buchstaben der Technologien Apache, MySQL, PHP und Perl zusammen. Da es XAMPP nicht nur für ein Betriebssystem gibt, haben es sich die Namens-geber einfach gemacht und den Buchstaben, welches für das Betriebssystem steht, durch ein "X" ersetzt. "X" als Metapher für das Unbekannte. Das "X" steht also stellvertretend für das Betriebssystem unter dem XAMPP läuft. XAMPP wurde in einem so genannten „Apache Friends“-Projekt entwickelt, in welchem sich Freiwillige in ihrer Freizeit engagieren. „Apache Friends“ ist eine non-profit Organisation zur Förderung des Apache Web-Servers und verbundener Technologien wie MySQL, PHP und Perl. Oder genauer gesagt: Rund um Technologien, die für den Betrieb und die Erstellung von Websites benötigt werden. Mit Erstellung ist allerdings eher die programmiertechnische Erstellung gemeint und nicht die gestalterische. Mit XAMPP wird die Möglichkeit geboten, auf ganz einfache Art und Weise Techniken wie Apache, MySQL, PHP und Perl auf den Rechner nach Hause oder ins Büro zu holen, und das ohne ein spezielles Vorwissen und ohne großen Aufwand. Darin besteht der ganze Sinn und Zweck von XAMPP.

1.1. Informationsquelle, Version und Voraussetzungen Nähere Informationen zu „Apache Friends“ und XAMPP sind unter http://www.apachefriends.org zu finden. Diese Beschreibung verwendet XAMPP in der Version 1.6.3a. Für die Installation sind die Administrationsrechte von Windows nötig!

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 3(23)

2. Installation und erster Funktionstest

Vor der Installation von XAMPP muss die derzeit aktuelle Version von der Website der „Apache Friends“ geholt und auf der lokalen Platte des Rechners abgelegt werden. Weiterhin ist zu empfehlen, die Originaldokumentation „XAMPP für Windows“ durchzulesen und auf Besonderheiten zu achten.

2.1. Installation mittels „Installer“ durchführen Für die im Folgenden beschriebe Installation des XAMPP-Programmpakets verwenden wir den so genannten „Installer“. In der Originaldokumentation als „Methode A: Die Installation mit Installer“ bezeichnet. Zur Installation wird als erstes der Windows Explorer gestartet sowie der XAMPP-Installer geöffnet und damit zur Ausführung gebracht. Nachstehende Darstellung zeigt die Handgriffe.

Da die im Folgenden gezeigten Kopien der einzelnen Installationsschritte selbsterklärend sowie die Handgriffe durch rote Einrahmungen gekenn-zeichnet sind, bedarf es keiner weiteren Kommentierung.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 4(23)

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 5(23)

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 6(23)

Momentaufnahme!

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 7(23)

Im Installationsverzeichnis C:\Programme\xampp ist dann die im Folgenden gezeigte Verzeichnisstruktur zu sehen.

Die wichtigsten Verzeichnisse: Verzeichnis Bedeutung/Zweck xampp\apache Zentrales Verzeichnis des Web-Servers Apache. xampp\apache\conf Zentrales Konfigurationsverzeichnis für Apache. xampp\apache\logs Log-Verzeichnis für Apache und PHP. xampp\php PHP-Interpreter mit EXE, DLLs, usw. xampp\mysql Datenbankserver MySQL. xampp\perl Perl-Verzeichnis. xampp\phpMyAdmin Website „phpMyAdmin“ zur Administration der

MySQL-Datenbanken übers Web. xampp\htdocs Zentrales Website- und Dokumentenverzeichnis für

HTML, PHP, usw. xampp\htdocs\xampp Website „xampp“ mit vielen nutzbringenden

Informationen und Funktionen.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 8(23)

2.2. Server-Module starten und erster Funktionstest Mit zum Installationsumfang von XAMPP gehört das universelle Verwaltungs-programm „XAMPP Control Panel Application“. Dieses Programm wird als erstes wie folgt gestartet.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 9(23)

Mittels diesem Konsolprogramm wird zunächst der Datenbankserver MySQL gestartet.

Nach dem erfolgreichen Start von MySQL kann nun der eigentliche Web-Server Apache gestartet werden.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 10(23)

Folgendes Bild zeigt sich nach erfolgreichem Start beider Applikationen.

Nun wird der Internet Explorer oder ein anderer Web-Browser gestartet und als URL „http://localhost“ eingegeben. Nachfolgende Darstellung zeigt dies.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 11(23)

Wird die zuvor gezeigte oder die im Folgenden dargestellte Webseite nicht angezeigt, so ist bei der Installation etwas falsch gelaufen. In diesem Falle ist das Paket am besten wieder zu entfernen und die Installation erneut durch-zuführen. Klappt es danach immer noch nicht, so sind die Informationsquellen der „Apache Friends“ für die Fehlersuche zu konsultieren.

Mögliche Gründe für ein Fehlverhalten: Mit Windows XP Service Pack 2 (SP2) wird eine verbesserte Firewall installiert. Diese blockiert unter Umständen die wichtigen Ports 80 (http) und 443 (https). MySQL verwendet übrigens den Port 3306. Abhilfe: Entsprechende Ausnahme im Firewall definieren.

Durch eine Applikation wurde eventuell der „Internet Information Server“ (IIS) von Microsoft installiert. Dieser blockiert dann die nötigen Ports. Abhilfe: Den IIS über die Computerverwaltung deaktivieren.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 12(23)

3. Sicherheit des Web-Servers erhöhen Die folgende, leicht abgeänderte Beschreibung der Sicherheitsprobleme stammt aus der Originaldokumentation von XAMPP. Es ist wichtig zu wissen, dass XAMPP nicht für den Produktionseinsatz, sondern nur für Entwickler in Entwicklungsumgebungen gedacht ist. Das hat zur Folge, dass XAMPP absichtlich nicht restriktiv sondern im Gegenteil sehr offen vorkonfiguriert ist. Für einen Entwickler ist das ideal, da er so keine Grenzen vom System vorgeschrieben bekommt. Für einen Produktions-einsatz ist das allerdings überhaupt nicht geeignet. Hier eine Liste, der Dinge, die an XAMPP absichtlich(!) unsicher sind:

Der MySQL-Administrator (root) hat kein Passwort. Der MySQL-Daemon ist übers Netzwerk erreichbar. PhpMyAdmin ist übers Netzwerk erreichbar. XAMPP Verzeichnis ist nicht geschützt. Bekannte Beispiel-Benutzer bei FileZilla FTP und dem Mercury Mail Server.

Alle aufgeführten Punkte können zu schwerwiegenden Sicherheitsproblemen führen, wenn der betreffende Rechner schutzlos und damit für jede außen stehende Person zugänglich im Internet agiert. Es ist somit jedem selbst überlassen, diese Lücken bei Bedarf zu schließen. In vielen Fällen reicht hierzu eine Firewall oder einfach eine Internetverbindung über einen externen Router aus. In beiden Fällen ist der Rechner in der Regel nicht von außen erreichbar. Eine erste Hilfe bietet die "XAMPP Sicherheitskonsole".

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 13(23)

3.1. Die XAMPP Sicherheitskonsole Als erstes wird der Internet Explorer oder ein anderer Web-Browser gestartet. Vor dem Aufruf der Sicherheitskonsole sollte der web-basierte Sicherheits-check aufgerufen werden. Dies kann auf zweierlei Arten erfolgen:

Startseite der XAMPP-Website durch die Eingabe URL http://localhost in die Adresszeile des Browsers aufrufen und danach die Funktion „Sicherheitscheck“ auswählen.

Webseite mit dem Sicherheitscheck durch die direkte Eingabe der URL http://localhost/security in der Adresszeile des Browsers aufrufen.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 14(23)

Der Sicherheitscheck liefert nach der XAMPP-Installation das im Folgenden gezeigte Ergebnis:

Der zweite Teil des Sicherheitschecks ist auf der nächsten Seite zu finden!

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 15(23)

Es ist außerordentlich wichtig, dass die Hinweise der vorhergehenden und nachfolgenden Darstellung ausführlich gelesen wird.

Nun wird die Sicherheitskonsole durch Auswahl der gekennzeichneten URL gestartet. Sie kann natürlich auch durch die direkte Eingabe der URL http://localhost/security/xamppsecurity.php in der Adresszeile des Browsers aufgerufen werden.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 16(23)

Nach Durchführung der mit 1 und 2 bezeichneten Tätigkeiten erscheint auf der Webseite folgender Hinweis:

Nach den Tätigkeiten 3 und 4 erscheint folgende Meldung:

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 17(23)

Zum Abschluss der Sicherheitsverbesserung wird wie empfohlen der Datenbankserver MySQL gestoppt und wieder gestartet. Wird nun der Sicherheitscheck ein weiteres Mal durchgeführt, sieht die Ausgabe schon ein wenig besser aus.

Achtung: Da über die Sicherheitskonsole ein Benutzer und Passwort für die XAMPP-Website definiert wurde, ist unter bestimmten Voraussetzungen eine Authentifizierung nötig. Beachte dazu folgenden Hinweis.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 18(23)

Nach der Definition einer Benutzer/Passwort-Kombination für die XAMPP-Website, wird unter normalen Umständen die im Folgenden dargestellte Authentifizierung nötig.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 19(23)

4. Konfiguration der Komponenten anpassen

Bevor die Konfigurationen der einzelnen Module geändert werden, sollten die wichtigsten Verzeichnisse und Konfigurationsdateien bekannt sein. Folgende existieren: Verzeichnis/Datei Bedeutung/Zweck xampp\apache\conf Zentrales Konfigurations-

verzeichnis für Apache. xampp\apache\conf\httpd.conf Zentrale Konfigurationsdatei

für Apache. xampp\apache\conf\extra\httpd-info.conf Konfigurationsdatei für Info-

und Statusabfragen von Apache.

xampp\apache\conf\extra\httpd-vhosts.conf Konfigurationsdatei für virtuelle Server von Apache.

xampp\apache\conf\extra\httpd-ssl.conf Konfigurationsdatei für SSL von Apache.

xampp\apache\bin\php.ini Zentrale Konfigurationsdatei für PHP.

xampp\mysql\bin\my.cnf Zentrale Konfigurationsdatei für MySQL.

xampp\phpMyAdmin\config.inc.php Zentrale Konfigurationsdatei für phpMyAdmin.

Achtung: Da die Module ihre Konfigurationsdateien nur beim Start lesen,

wird die Änderung einer Konfiguration erst wirksam, wenn das entsprechende Modul gestoppt und wieder gestartet wird.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 20(23)

4.1. Apache: Grundkonfiguration Es ist nicht unbedingt nötig, die Grundkonfiguration von Apache anzupassen. Die folgende Änderung wird jedoch empfohlen und ist in der Konfigurations-datei xampp\apache\conf\httpd.conf vorzunehmen:

ServerAdmin [email protected] Für „[email protected]“ ist die E-Mail

Adresse des Administrators des aktuellen Web-Servers zu schreiben.

4.2. Apache: Info-/Statusabfragen ermöglichen In xampp\apache\conf\httpd.conf muss das eventuell vorhandenen Kommentarzeichen „#“ vor den folgenden Direktiven entfernt werden:

LoadModule info_module modules/mod_info.so LoadModule status_module modules/mod_status.so

In xampp\apache\conf\extra\httpd-info.conf sind die folgende Location-Direktiven sicherzustellen:

<Location /server-info> SetHandler server-info Order deny,allow Deny from all Allow from localhost </Location>

Erlaubt Informationsabfragen auf dem Web-Server durchzuführen. Die dafür nötige URL ist „http://localhost/server-info“.

<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from localhost </Location>

Erlaubt Statusabfragen auf dem Web-Server durchzuführen. Die dafür notwendige URL ist „http://localhost/server-status“.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 21(23)

4.3. Apache: Virtuelle Server definieren Der Apache Webserver bringt eine gerade für den Webseiten-Entwickler sehr interessante Konfigurationsmöglichkeit mit. Die Einrichtung von Namens-basierten virtuellen Servern. Dies bedeutet, dass unter jeder IP-Adresse mehrere Server mit unterschiedlichem Namen laufen. Die Tatsache, dass sie auf dem gleichen physikalischen Server laufen, ist für den Endbenutzer nicht offensichtlich. Virtuelle Namens-basierte Server werden in der Konfigurationsdatei xampp\apache\conf\extra\httpd-vhosts.conf definiert. Eine mögliche Konfiguration könnte wie folgt aussehen:

NameVirtualHost *:80 Aktiviert die Namens-basierte virtuelle Serverbearbeitung.

<VirtualHost *:80> ServerName Herbie.Hochschule-Reutlingen.DE ServerAlias Herbie.HS-Reutlingen.DE \ Herbie.FH-Reutlingen.DE \ Herbie.Reutlingen-University.DE ServerAdmin [email protected] DocumentRoot "C:/Programme/xampp/htdocs" ErrorLog "C:/Programme/xampp/apache/logs/error.log" CustomLog "C:/Programme/xampp/apache/logs/access.log" common </VirtualHost>

Definiert einen virtuellen Server, deren Aliase und sonstigen Daten. Danach können Verbindungen zum Web-Servers mittel dem Servernamen sowie allen zusätzlich definierten Namen hergestellt werden. Beispielweise ist http://herbie.reutlingen-university.de möglich.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 22(23)

4.4. Apache: SSL-Konfiguration Die Konfiguration von SSL ist dann nötig, wenn eine höhere Sicherheit zwischen dem Klienten und dem Server benötigt wird. In der URL wird dann „https“ anstelle von „http“ geschrieben. HTTPS ist der Standard für die verschlüsselte Übertragung von Daten zwischen Browser und Web-Server. Er beruht auf X.509-Zertifikaten. Vorraussetzung für HTTPS ist der Besitz eines offiziellen Zertifikats für den Web-Server. Dieses erhält man von einer so genannten Zertifizierungsinstanz (Certificate Authority - CA). Die CA garantiert die Echtheit des Servers. Das Zertifikat für unseren Server besteht aus den beiden Dateien herbie.crt und herbie.key. Als erstes müssen diese beiden Dateien auf dem Server in folgenden Verzeichnissen abgelegt werden:

Die Zertifikatsdatei herbie.crt wird im Verzeichnis xampp\apache\conf\extra\ssl.crt abgelegt.

Die Schlüsseldatei des Zertifikats herbie.key wird im Verzeichnis xampp\apache\conf\extra\ssl.key abgelegt.

Danach ist die Datei xampp\apache\conf\extra\httpd-ssl.conf für die SSL-Konfiguration wie folgt anzupassen:

SSLCertificateFile conf/ssl.crt/herbie.crt Definiert den relativen Pfad der Zertifikatsdatei.

SSLCertificateKeyFile conf/ssl.key/herbie.key Definiert den relativen Pfad der Schlüsseldatei des Zertifikats.

Nach dem Restart des Web-Servers können nun SSL-Verbindungen mit beispielsweise der URL https://herbie.hochschule-reutlingen.de hergestellt werden.

XAMPP für Windows Installation und Konfiguration

Herbert Nemeczek Brühlstraße 20 72147 Nehren

2007-08-22

XAMPP_fuer_Windows.doc Seite 23(23)

4.5. PHP: Grundkonfiguration Wird für die Erstellung eines Web-Auftritts beispielsweise TYPO3 verwendet, so sind einige Default-Einstellungen nicht ausreichend. Aus diesem Grunde werden die folgenden Konfigurations-Einstellungen in der Datei xampp\apache\bin\php.ini verändert:

memory_limit = 64M Maximal erlaubter Speicher, den ein PHP-Skript konsumieren darf.

upload_max_filesize = 48M Maximal erlaubte Größe für den Download einer Datei.