Arbeitsräume im Internet für Schulen Bericht Nr. 2



Ähnliche Dokumente
-Bundle auf Ihrem virtuellen Server installieren.

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

Step by Step Webserver unter Windows Server von Christian Bartl

OP-LOG

How to install ubuntu by crypted file system

How to install freesshd

Anleitung: Confixx auf virtuellem Server installieren

Apache HTTP-Server Teil 1

Drupal 8 manuell installieren

Leitfaden für die Installation der Videoüberwachung C-MOR

mygesuad Download: Wamp/Lamp Systemumgebungen:

Anleitungen zum Publizieren Ihrer Homepage

Installation des edu- sharing Plug- Ins für Moodle

Installation/Einrichtung einer Datenbank für smalldms

Legen Sie nun dieses Verzeichnis mit dem Namen "joomla" hier an: C:xampphtdocs.

Collax Web Application

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Anleitung: Webspace-Einrichtung

Anleitung Captain Logfex 2013

Konfiguration Zentyal 3.3 Inhaltsverzeichnis

- Installation. Systemvoraussetzungen für Debian/Ubuntu. conversations installieren conversations wird als TGZ-Archiv mit dem Namen

Mein eigener Homeserver mit Ubuntu LTS

FTP-Server einrichten mit automatischem Datenupload für

SFTP SCP - Synology Wiki

SANDBOXIE konfigurieren

Inhaltsverzeichnis. Vorwort... 3 Installation von XAMPP... 3 Installation von Joomla... 8 Schlusswort Copyright

INSTALLATION. Voraussetzungen

Mapbender-Installation

Windows Server 2012 RC2 konfigurieren

INSTALLATION VON INSTANTRAILS 1.7

WordPress lokal mit Xaamp installieren

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

unter runtergeladen werden.

System-Update Addendum

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Einrichtung Secure-FTP

Betriebssystem Windows - SSH Secure Shell Client

Einrichten der TSM-Backup-Software unter dem Betriebssystem Windows

Verwendung des IDS Backup Systems unter Windows 2000

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Kleines Handbuch zur Fotogalerie der Pixel AG

Wissenswertes über LiveUpdate

Installationsanleitung dateiagent Pro

Wie richten Sie Ihr Web Paket bei Netpage24 ein


Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2

Installationsleitfaden kabelsafe backup home unter MS Windows

VIDA ADMIN KURZANLEITUNG

HTBVIEWER INBETRIEBNAHME

Installation SQL- Server 2012 Single Node

Leitfaden für die Installation der freien Virtual Machine C-MOR Videoüberwachung auf XenServer ab Version 6.2

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Leitfaden für die Installation des Content Management System (CMS) Joomla! auf za-internet Webservern. Die Joomla! Installation

Anleitung BFV-Widget-Generator

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Adminer: Installationsanleitung

Migration Howto. Inhaltsverzeichnis

Anleitungen zum KMG- -Konto

Guide DynDNS und Portforwarding

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Installationsanleitung Webhost Linux Flex

Panda GateDefender eseries Ersteinrichtung

Typo 3 installieren. Schritt 1: Download von Typo3

Lokale Installation von DotNetNuke 4 ohne IIS

0. VORBEMERKUNG VORBEREITUNG DES SYSTEMS INSTALLATION UND KONFIGURATION VON PD-ADMIN Installation...3

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Installation Messerli MySQL auf Linux

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Einrichtung einer VPN-Verbindung (PPTP) unter Windows XP

Leitfaden zur Installation von Bitbyters.WinShutdown

INSTALLATIONSANLEITUNG

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Anleitung zum Prüfen von WebDAV

FTP Server unter Windows XP einrichten

Installationsanleitung

Publizieren von Webs mit SmartFTP

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Tutorial -

Seminar DWMX DW Session 015

Installation mit Lizenz-Server verbinden

Collax Archive Howto

Installationshinweise Linux Edubuntu 7.10 bei Verwendung des PC-Wächter

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

FastViewer Remote Edition 2.X

Windows Server 2012 R2 Essentials & Hyper-V

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

Administrator-Anleitung

Anleitung zur Installation von SFirm 3.1 inklusive Datenübernahme

meine-homematic.de Benutzerhandbuch

Wie richte ich den DNS unter Plesk ein?

Wie benutzt man TortoiseSVN

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße Fulda, Deutschland Tel.: +49 (0) Fax: +49 (0)

Anleitung zur Installation von Windows XP Professional und dem Multilanguage Interface

ab Redirector-Version 2.14

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Transkript:

Arbeitsräume im Internet für Schulen Bericht Nr. 2 E-Learning mit Lernplattformen Landesinstitut für Schulentwicklung Anleitung zur Einrichtung eines schuleigenen Moodles www.ls-bw.de best@ls.kv.bwl.de Qualitätsentwicklung und Evaluation Schulentwicklung und empirische Bildungsforschung Bildungspläne Stuttgart 2010 ARIMIS 2

Redaktionelle Bearbeitung Redaktion: Autoren: Layout: Hans Zaoral, LS Stuttgart Andreas Stöffer Benjamin Z. Gregorian Hans Zaoral, LS Stuttgart Stand: Oktober 2008 Impressum Herausgeber: Druck und Vertrieb: Urheberrecht: Herausgeber: Landesinstitut für Schulentwicklung (LS) Heilbronner Str. 172, 70191 Stuttgart Fon: 0711 6642-0 Internet: www.ls-bw.de E-Mail: best@ls.kv.bwl.de Landesinstitut für Schulentwicklung (LS) Heilbronner Str. 172, 70191 Stuttgart Fax: 0711 6642-1099 Fon: 0711 6642-1203 oder -1205 E-Mail: best@ls.kv.bwl.de Inhalte dieses Heftes dürfen für unterrichtliche Zwecke in den Schulen und Hochschulen des Landes Baden-Württemberg vervielfältigt werden. Jede darüber hinausgehende fotomechanische oder anderweitig technisch mögliche Reproduktion ist nur mit Genehmigung des Herausgebers möglich. Soweit die vorliegende Publikation Nachdrucke enthält, wurden dafür nach bestem Wissen und Gewissen Lizenzen eingeholt. Die Urheberrechte der Copyrightinhaber werden ausdrücklich anerkannt. Sollten dennoch in einzelnen Fällen Urheberrechte nicht berücksichtigt worden sein, wenden Sie sich bitte an den Herausgeber. Bei weiteren Vervielfältigungen müssen die Rechte der Urheber beachtet bzw. deren Genehmigung eingeholt werden. Landesinstitut für Schulentwicklung, Stuttgart 2010

1. Aufbau eines Rootservers... 4 1.1 Installation eines Grundsystems (Debian Linux)... 4 1.1.1 Sprachauswahl... 5 1.1.2 Hardware- und Netzwerkerkennung... 6 1.1.3 Partitionieren der Festplatte... 7 1.2 Diensteinstallation und -konfiguration für den Moodle-Betrieb... 15 1.3 Softwarequellen... 16 1.3.1 Apache Webserver... 17 1.3.2 Fast CGI PHP und der Apache Webserver... 20 1.3.3 PHP absichern mit php.ini... 21 1.3.4 Einrichten eines virtuellen Hosts in Apache... 25 1.3.5 Apache Sicherheit mit suexec verbessern... 30 1.3.6 Weitere Konfigurationsschritte... 32 1.3.7 Apache und mod_security2... 33 1.3.8 Apache Webserver und SSL Zertifikate... 38 1.4 Installation und Konfiguration der Datenbank MySQL... 42 1.5 Installation und Konfiguration des E-Mailservers Postfix... 44 2. Mandantisiertes Moodle und ein zweiter virtueller Host... 47 2.1 Moodle Datenbank anlegen... 47 2.2 Moodle-Quelle herunterladen und installieren... 47 2.2.1 Verzeichnisrechte des virtuellen Hosts anpassen... 49 2.2.2 Moodle mandantisieren... 51 2.3 Moodle Installation... 57 3. Weitere Serverdienste... 62 3.1 Open SSH... 62 3.1.1 Exkurs: OSI Referenzmodell... 62 3.1.2 Beispiele... 64 3.2 Benötigte Software... 65 4. Domain Name Server System (DNS)... 67 4.1 Funktion... 67 4.1.1 Exkurs: TCP/IP Protokoll... 68 Seite 1

4.1.2 TCP-Protokoll...68 4.1.3 IP-Protokoll...69 4.2 Ist ein eigener DNS Server sinnvoll?...71 4.2.1 Domain registrieren...71 4.2.2 KK Anträge...71 5. Verwaltung und Administration...72 5.1 Cron-Jobs...72 5.1.1 Aufruf des Skripts von der Kommandozeile:...73 5.1.2 Verwendung des crontab Befehls auf Linux Rechnern...74 i. Automatisierungsprozesse bei BelWü...75 5.2 WWW.CRONJOB.DE...75 5.2.1 Einrichten von Cron-Jobs...75 6. Automatisiertes Datenbankbackup bei BelWü...79 6.1 Einrichtung...79 6.1.1 Funktionstest...81 6.2 Migration einer bestehenden Moodle Installation auf den BelWü-Server.....82 6.2.1 Benötigte Software....82 6.2.2 Vorbereitungen...82 6.2.3 Installation von PhpMyAdmin auf dem lokalen Moodle...85 6.2.4 Datenbanksicherung (Datenbank-Dump) erstellen mit PhpMyAdmin...87 6.2.5 Zurücksichern des MySQL Dumps...89 Seite 2

Seite 3

1. Aufbau eines Rootservers 1.1 Installation eines Grundsystems (Debian Linux) Für die folgende Anleitung wird ein Computer mit den Mindestanforderungen, ein Internetzugang und ein Installationsimage 1, das auf einen CD Rohling gebrannt wird, benötigt. Der Computer wird anschließend von der erstellten CD gebootet: Abbildung 0-1 Startbildschirm Debian Installation Bei Drücken der Taste F1 gibt es weitere Hilfestellungen, bezüglich der verwendeten Hardware und optionaler Informationen zum Bootprozess. Nach Betätigung der Enter Taste wird der Prozess gestartet. 1 http://cdimage.debian.org/debian-cd/4.0_r4/i386/iso-cd/debian-40r4-i386-netinst.iso Der zum Zeitpunkt der Erstellung dieser Dokumentation aktuelle Link Seite 4

1.1.1 Sprachauswahl In diesem Dialog können Sie, wie in allen weiteren Dialogen, mit den Cursortasten navigieren. Eine grafische Oberfläche stellt Debian noch nicht zur Verfügung. Abbildung 0-2 Sprachauswahldialog. In diesem Dialog ist Deutschland bereits ausgewählt. Sie bestätigen mit Enter : Im nächsten Dialog ist auch das Tastaturlayout bereits auf Deutsch eingestellt. Auch hier bestätigen Sie mit Enter. Abbildung 0-3 Landesauswahl Seite 5

1.1.2 Hardware- und Netzwerkerkennung Meldungen und Fortschrittsbalken während der Hardware-Erkennung Abbildung 0-4 Hardwareerkennung Nach der automatischen Erkennung der Netzwerkkarte wird diese automatisch über einen DHCP Server konfiguriert. Abbildung 0-5 Netzwerkkonfiguration mit DHCP DHCP vergibt automatisch die notwendigen Konfigurationsdaten für den Zugang zum Internet. Im folgenden Dialog geben Sie bitte einen Namen für den Computer an (z.b. testserver-moodle): Abbildung 0-6 Computername angeben Der nächste Dialog fragt den Domain Namen ab. Übernehmen Sie hier die Einstellungen Ihrer PaedML. Im Internet würde hier die URL Ihrer Schule eingetragen (ohne www ). Abbildung 0-7 Domain Namen eintragen Jetzt sind wir schon fast am Ende unsrer Voreinstellungen. Seite 6

1.1.3 Partitionieren der Festplatte. Bei diesem Vorgang stellen wir bereits erste Weichen für einen stabilen, performanten und sicheren Betrieb des Rootservers. Gehen wir es aber Schritt für Schritt durch. Im ersten Screenshot sind mehrere Partitionierungsoptionen gelistet. Wenn Sie Manuell auswählen müssen Sie alle Einstellungen selbst durchführen. Abbildung 0-8 Partitionierungsdialog Beachten Sie dazu auch Abbildung 23. Im nächsten Dialog wählen Sie die Festplatte für unsere Installation aus. Hier der Eintrag IDE Master Abbildung 0-9 Festplatte für Partitionierung auswählen Mit der Enter Taste gelangen Sie in den nächsten Dialog, in dem Sie mit Ja das Anlegen einer neuen Partitionstabelle bestätigen. Hier wählen Sie den ersten Eintrag und bestätigen Ihre Auswahl mit der Enter Taste. Abbildung 0-10 Eine neue Partition auswählen Seite 7

Hier legen Sie die Größe der Festplatte fest. In diesem Beispiel wird eine eigene Boot Partition für die Kernel- Images 2, die für den Start des Linux Betriebssystems notwendig sind, angelegt. Abbildung 0-11 Partitionsgröße bestimmen Weiter mit der Enter Taste Information: Mit der Tab Taste wechseln Sie zwischen Eingabefeld und den Auswahloptionen Zurück und Weiter. Mit MB (Megabyte) und GB (Gigabyte) treffen Sie eine Größenangabe. Weiter unten finden Sie eine Tabelle mit sinnvollen Größenangaben für die einzelnen Partitionen. Wählen Sie dafür als Partitionstyp Primär. Weiter mit der Enter Taste. Abbildung 0-12 Partitionstyp bestimmen Im nächsten Dialog wählen wir für alle weiteren Partitionen Anfang aus und bestätigen erneut mit Enter. Jetzt gibt es etwas mehr zu tun: Die Einstellungen für die einzelnen Partitionen müssen vorgenommen werden. 2 http://de.wikipedia.org/wiki/betriebssystemkern#starten Seite 8

Der erste Einstellungsdialog gibt uns die Möglichkeit ein Dateisystem für die Partition auszuwählen. Abbildung 0-13 Einstellungsdialog Partitionen Information: Unter Linux ist es möglich, verschiedene Dateisysteme zu mischen. In der Regel reicht das Standard Dateisystem ext3 3 für alle Belange eines Webservers aus. Es ist stabil und performant. Im Screenshot auf der nächsten Seite sehen Sie die Auswahlmöglichkeiten der verschiedenen Dateisysteme. Für die Auslagerungsdatei verwenden wir die Swap Partition. Für die Bootpartition wählen Sie bitte ext2, für alle weiteren Partitionen ext3. Abbildung 0-14 Auswahldialog Dateisysteme 3 http://de.wikipedia.org/wiki/ext3 Seite 9

Information: Ext3 ist das Nachfolgedateisystem von ext2 4. Der entscheidende Vorteil zu ext2 ist eine Journalfunktion (Anlegen von Metadaten zu allen Dateioperationen), was nach einem Absturz des Computers einen schnellen Neustart des Betriebssystems ermöglicht. Sie sehen im Screenshot, dass Sie auch die Möglichkeit haben, FAT16 und FAT32 Dateisysteme auszuwählen, FAT32 kann auch in WindowsXP genutzt werden. FAT32 kann für Datenpartitionen Sinn machen, wenn Linux als Parallelsystem zu WindowsXP auf Desktopsystemen installiert wird, um einen einfachen Dateiaustausch zwischen den Betriebssystemen zu gewährleisten. Das Dateisystem XFS eignet sich für Partitionen auf denen überwiegend große Dateien, z. B. Videos, abgelegt werden. Im Screenshot ist der Auslagerungsspeicher (Swap) ausgewählt. Legen Sie dafür eine eigene Partition an, auch wenn diese für den Betrieb eines Webservers nicht zwingend benötigt wird, das vermeidet dennoch Probleme im späteren Produktivbetrieb. Swap wird genutzt, wenn nicht genügend Arbeitsspeicher für alle laufenden Programme bzw. Prozesse dem Betriebssystem zur Verfügung steht. Das verlangsamt aber die Ausführung und ist auf einem Webserver unbedingt zu vermeiden. Die nächste Option in Abb. 21 ist der Einhängepunkt (mount point). Hier werden den einzelnen Partitionen Ordner zugewiesen, die beim Booten des Betriebsystems eingehängt werden. Information: In Unix 5 basierten Betriebsystemen wie Linux, wird alles als Ordner betrachtet und eingehängt. Dabei ist es gleichgültig, ob es sich um eine Partition, ein Gerät, z. B. Ein USB-Stick, eine externe Festplatte, eine Maus oder eine interne Soundkarte handelt. Eine Maus findet sich im Ordner /dev (devices) als /mice, eine Partition als /dev/hda, usw. : 4 http://de.wikipedia.org/wiki/ext2 5 http://de.wikipedia.org/wiki/unix Seite 10

Dieser Screenshot zeigt beispielhaft die Aufteilung einer 33,6 GB großen Festplatte. Passen Sie die einzelnen Partitionsgrößen an die tatsächliche Festplattegröße an. Abbildung 0-15 Partitionierte Festplatte Information: In Abb. 21 ist der 3. Auswahlpunkt Mount Optionen. Hier können direkt Verhaltensweisen von Partitionen festgelegt werden, z. B. die Option noexec für /tmp (temporäre Dateien) die verhindert, dass in der Partition Programme ausgeführt werden können. Eine empfehlenswerte Sicherheitsmaßnahme, da /tmp gerne für das Einschleusen von Schadprogrammen genutzt wird. Mit noexec wird die Ausführung der Programme wirkungsvoll verhindert. In der Regel können Sie aber die Default Vorgabe übernehmen. Eine Änderung der Optionen können Sie auch später im Produktivbetrieb vornehmen. Ausführliche Informationen zur Sicherheit von Debian finden Sie hier 6. Dabei ist aber Aufwand und Nutzen gegeneinander abzuwägen. 6 http://www.debian.org/doc/manuals/securing-debian-howto/index.de.html#contents Seite 11

Abbildung 0-16 Partitionierungseinstellungen bestätigen Nach der Einrichtung aller Partitionen beenden wir den Dialog. Bevor die eigentliche Installation des Betriebssystems gestartet wird, müssen in den nächsten Dialogen noch Benutzereinstellungen vorgenommen werden: Für den Benutzer root (Administrator des Systems) ein Passwort Ein normaler Benutzer mit Angabe von Namen und Passwort Nachdem die wichtigsten Benutzer angelegt sind, wird der Paketmanager konfiguriert. Für die Grundinstallation kann direkt ein Netzwerkspiegel im Internet ausgewählt werden (optional). Abbildung 0-17 Netzwerkspiegel auswählen Information: Debian verfügt über ein flexibles Softwaremanagement. Während der Installation werden sogenannte Repository Server als Quellen für weitere Software, z. B. Apache Web-Server, Postfix E-Mail Server, Virenscanner, etc., eingebunden. In Linux Systemen wird auch von (Software-)Paketen 7 gesprochen. Im nächsten Dialog wird noch die Teilnahme an der anonymen Erhebung von Statistiken über die Verwendung der Software abgefragt um danach eine Vorauswahl treffen zu können: 7 http://de.wikipedia.org/wiki/advanced_packaging_tool Seite 12

Hier wird nur das Standardsystem ausgewählt (An und Abwählen mit der Leertaste). Abbildung 0-18 Auswahl von Paketzusammenstellungen Abbildung 0-19 Installation Grundsystem Nun ist es geschafft. Das Grundsystem für die weiteren Arbeiten wird installiert. Wenn Sie einen Netzwerkspiegel ausgewählt haben, werden aus dieser und der CD-ROM- Quelle die Software auf die Festplatte übertragen. Nach ca. 15-30 Minuten ist der Vorgang abgeschlossen und das System wird bootfähig gemacht. Abbildung 0-20 GRUB Bootloader Einrichtungsdialog Da Debian wahrscheinlich das einzige System auf Ihrem Computer ist, können Sie hier mit Ja bestätigen. Danach wird noch bestätigt, dass die Installation erfolgreich abgeschlossen wurde und das neue System gestartet werden kann. Mit Weiter bootet der Computer. Seite 13

Nach dem Neustart begrüßt Sie der Bootloader GRUB mit einem Auswahldialog. (Die Standardauswahl wird beibehalten.) Abbildung 0-21 GRUB Auswahldialog Seite 14

1.2 Diensteinstallation und -konfiguration für den Moodle-Betrieb Nachdem das Betriebssystem gestartet ist, landen wir beim Login Dialog. Geben Sie bitte als Benutzername root ein sowie, nach einem Enter, das während der Installation vergebene Passwort. Mit erneutem Enter werden Sie am System angemeldet und können sofort Befehle eingeben. Information: Sie haben als Benutzer root alle Rechte im System, d. h. Sie können auch durch versehentliches Löschen von Systemdateien die Funktionsfähigkeit des Betriebssystems stören oder unmöglich machen. In einem späteren Kapitel wird erklärt, wie eine Abfrage bei Operationen eingebaut werden kann, so dass gravierende Fehler erschwert werden. Gehen Sie grundsätzlich bitte bei allen Operationen vorsichtig vor. Tipp: Benutzen Sie eine Virtualisierungssoftware, die es ermöglicht mehrere Betriebssystem gleichzeitig auszuführen. Eine leistungsfähige Freeware finden Sie hier 8. Demoversionen für alle Betriebssysteme gibt es von VMware 9 und Parallels 10. Sie sind 30 Tage lauffähig. Eine Anleitung für ein Vollbackup des Servers folgt später. Mit diesem Backup ist es möglich ganze Betriebssysteme auf andere Computer zu installieren, auch aus einer virtuellen Maschine heraus. Information: Für die Konfiguration der Dienste müssen einige Dateien bearbeitet werden. Dazu wird ein Texteditor benötigt. Für unsere Zwecke reicht dieser vollkommen aus. Debian bringt bereits bei der Grundinstallation den Editor nano 11 Aufgerufen wird der Editor mit nano w /pfad/zur/datei.. Abbildung 0-22 Fensteransicht "nano" Editor Im unteren Fensterbereich finden Sie die wichtigsten Befehle die mit STRG+Buchstabe ausgeführt werden. Speichern wäre STRG+o und mit STRG+x wird der Editor geschlossen. 8 http://www.virtualbox.org/ 9 http://www.vmware.com/de/download/ 10 http://www.parallels.com/en/consumers/ 11 http://www.nano-editor.org/ Seite 15

1.3 Softwarequellen Information: Alle verwendeten Dienste liegen als Debian Softwarepakete vor. Ein Kompilieren 12 ist daher nicht notwendig. Für die Implementation eines Sicherheitsmoduls 13 für den Apache Webserver wird eine vertrauenswürdige Softwarequelle hinzugefügt. Zuerst fügen wir der Konfigurationsdatei für die verfügbaren Softwarequellen Einträge hinzu. Mit nano w /etc/apt/sources.list wird diese aufgerufen und wie im folgenden Screenshot geändert: Abbildung 0-23 sources.list Im Original ist die CD-ROM-Quelle nicht auskommentiert und die Einträge contrib und non-free fehlen. Danach die Datei abspeichern, nano verlassen und Mit apt-get update die Quellen neu einlesen. Abbildung 0-24 Aktualisierung Software Quellen 12 http://www.information-lexikon.de/lexikon/kompilieren.htm 13 http://www.modsecurity.org/ Seite 16

1.3.1 Apache Webserver Zuerst installieren wir den Webserver, auf den alle weiteren Dienste aufbauen. Der Apache 14 ist der verbreitetste Webserver er besitzt einen Marktanteil von über 60% 15. Alternativen befinden sich zwar in der Entwicklung, müssen sich aber erst noch einen Platz erobern. Im nächsten Schritt wird der Webserver installiert: zusätzlich zum Apache werden folgende Pakete installiert: 1. apache2-mpm-worker Abbildung 0-25 Apache Webserver installieren 2. php5-cgi 3. libapache2-mod-fcgid Information: Alle Eingaben auf der Kommandozeile werden mit der Enter Taste bestätigt. Zu 1. Ein Zitat: Dieses Multi-Processing-Modul (MPM) implementiert einen Hybrid-Server mit Multi-Thread und Multi-Prozess-Unterstützung. Durch die Verwendung von Threads für die Bedienung von Anfragen ist er in der Lage, eine große Anzahl von Anfragen mit weniger Systemressourcen als ein Prozess-basierter Server zu bedienen. Er behält jedoch viel von der Stabilität eines Prozess-basierten Servers bei, indem er mehrere Prozesse verfügbar hält, jeden mit etlichen Threads. 18 Mit dieser Auswahl wird der Grundstein für eine performante und sichere Serverumgebung gelegt. Die erwähnten Threads werden parallel ausgeführt, was sich beim Einsatz von Moodle mit vielen konkurrierenden gleichzeitig im System angemeldeten Nutzern auszahlt. 14 http://httpd.apache.org/ 15 http://www.computerbase.de/news/software/server/2007/oktober/apache_boden_microsofts_iis/ 18 http://httpd.apache.org/docs/2.0/de/mod/worker.html Seite 17

Zu 2. PHP 19 als notwendige Skriptsprache für den Moodle Betrieb kann auf verschiedene Arten in den Apache Webserver eingebunden werden. Aus Sicherheitsgründen (später mehr dazu) wird die cgi 20 Variante gewählt. Dabei wird PHP als ausführbares Binary (ausführbare Datei) über die cgi Schnittstelle dem Webserver zur Verfügung gestellt. Zu 3. Debian Softwarepakete sind modular 21 aufgebaut. Damit Apache in der Grundinstallation PHP als cgi ausführen kann, ist ein zusätzliches Modul notwendig. Das gilt auch für PHP, wie im weiteren Installationsprozess noch ersichtlich wird. Information: Debian hat ein intelligentes Softwaremanagement. Das.deb Format löst Abhängigkeiten automatisch auf und installiert weitere Pakete die ggf. für den fehlerfreien Betrieb notwendig sind. Im Screenshot (Abb. 34) sehen Sie die Installation von Modulen und die Einrichtungsdialoge von aptget. Achten Sie darauf, dass alle Installationsroutinen fehlerfrei ablaufen. Abbildung 0-26 Ausgaben von "apt-get" Information: Falls es zu Fehlern kommt gibt es 2 Befehle, die diese beheben können: 1. apt-get f install 2. dpkg 22 -configure a Wenn beides nicht funktioniert kann auch ein Neustart des Computers das 19 http://www.lerne-php.de/introduction.html 20 http://de.wikipedia.org/wiki/common_gateway_interface 21 http://debiananwenderhandbuch.de/apt-get.html 22 http://debiananwenderhandbuch.de/dpkg.html Seite 18

Problem beheben. Aus der Erfahrung kommt es bei den verwendeten Komponenten zu keinen Installationsfehlern. Die Paketverwaltung von Debian ist ausgereift und auf Stabilität und Kompatibilität der Programme ausgerichtet. Alle Softwarepakete durchlaufen intensive Stabilitätstests bevor sie in den stable Zweig der Debian Distribution übernommen werden. Während des Installationsvorgangs werden die Dienste automatisch gestartet. Mit dem Befehl ps -ax lässt sich das überprüfen. Es werden alle laufenden Prozesse angezeigt: Sie sehen, dass insgesamt 4 Prozesse angezeigt werden, die für den Apache Webserver gestartet wurden. Abbildung 0-27 Auszug "ps -ax" Zusätzlich kann das Verhalten von Apache durch die Datei /etc/apache2/apache2.conf beeinflusst werden. Es gibt viele Einstellungen, von denen die meisten gut ausgewählt sind. Im Screenshot (Abb. 36) auf der nächsten Seite sind die Einstellungen für das Worker Modul abgebildet. Im Zusammenhang mit der Hardware des Servers, z. B. Menge an verfügbarem Arbeitsspeicher, können Änderungen Performancevorteile bringen. Zu allen Einstellmöglichkeiten gibt es in der Datei Kommentare. Für weitere Informationen wird auf die umfangreiche Dokumentation 23 verwiesen. Abbildung 0-28 Konfiguration Apache Worker Modul 23 http://httpd.apache.org/docs/2.0/mod/worker.html Seite 19

1.3.2 Fast CGI PHP und der Apache Webserver Mit dem Modul libapache2-mod-fcgid haben wir dafür gesorgt, dass der Webserver um die Möglichkeit CGI Programme auszuführen, erweitert wird. Es handelt sich dabei um ein modifiziertes Modul, das die Ausführung der Programme erheblich beschleunigt. Information: Wenn PHP als CGI Binary ausgeführt wird, muss für jeden durch den Webserver gestarteten Prozess ein eigenes Binary gestartet werden, was viel Zeit benötigt und die Auslieferung von Webseiten verzögert. Zusätzlich wird jedes Binary bis zum Ende der Prozesse im Arbeitsspeicher vorgehalten. Das erfordert einen hohen Bedarf an verfügbarem Arbeitsspeicher. Für einen bestimmten Zeitraum verbleiben Binaries auch im Speicher, wenn es keine Anfragen mehr gibt. Das sorgt für einen entsprechenden Overhead, der durch mehr Arbeitsspeicher ausgeglichen werden muss und dadurch hohe Kosten verursachen kann. Aus diesen Gründen hat sich das Prinzip nicht durchgesetzt, obwohl es den Webserver wesentlich sicherer macht (mehr dazu später). Die Sicherheit zu verbessern, die Performance zu steigern und die verfügbaren Ressourcen zu schonen ist das Ziel des FastCGI 24 Projekts gewesen. Diese Möglichkeit wird häufig verwendet. Das Projekt wird allerdings seit 2004 nicht mehr weiterentwickelt. Das Nachfolgeprojekt 25 hat die Strategie des Prozessmanagements verbessert und die Konfiguration vereinfacht. 24 http://www.fastcgi.com/ 25 http://fastcgi.coremail.cn/ Seite 20

Damit diese Stelle für die Einbindung von PHP nutzbar wird muss nur eine kleine Änderung in der Datei /etc/apache2/mods-enabled/fcgid.conf vorgenommen werden: Am Ende der 2. Zeile muss.fcgi mit.php ausgetauscht werden Abbildung 0-29 Auszug "fcgid.conf" Abbildung 0-30 Änderungen "fcgid.conf" für die Ausführung von PHP Das Apache Modul wurde automatisch geladen und mit den obigen Änderungen ist die erste Phase der Apache2 Konfiguration abgeschlossen: Der Server ist einsatzbereit. 1.3.3 PHP absichern mit php.ini PHP ist potentiell unsicher. In der Grundkonfiguration ist die php.ini nicht optimal konfiguriert. Moodle erfordert viele Funktionen von PHP nicht, die über die php.ini abgeschaltet werden können. Auf der anderen Seite müssen Parameter für den Upload von Dateien über die Moodle-Plattform und die Dauer der Skriptausführung, z. B. das Erstellen automatischer Kurssicherung oder das Versenden von E-Mails an die Moodle-Nutzer, angepasst und erweitert werden. Im Folgenden werden die relevanten Stellen in der php.ini als Listing aufgeführt, die in die eigene Installation übernommen werden können. Die Datei befindet sich auf dem Server im Verzeichnis /etc/php5/cgi Seite 21

Information: Es ist möglich für jeden virtuellen Host, s. nächstes Kapitel, eine eigene php.ini über die FCGIWrapper Datei 26 zu konfigurieren. Wenn weitere PHP Binarys vorliegen, können auch diese eingebunden werden, z. B. wenn unterschiedliche PHP-Versionen notwendig sind. Dadurch wird der Webserver extrem flexibel. Testszenarien mit neuen PHP-Versionen können so auf derselben Machine realisiert werden. Ältere Webapplikationen, die auf ältere PHP-Versionen angewiesen sind, können neben aktueller Software betrieben werden, etc. Listing: Auszug aus der php.ini Datei mit den relevanten Änderungen für den sicheren und performanten Moodle-Betrieb [PHP] [...] ; Safe Mode ; ; NOTE: this is considered a "broken" security measure. ; Applications relying on this feature will not recieve full ; support by the security team. For more information please ; see /usr/share/doc/php5-common/readme.debian.security Kommentar: Durch die Konfiguration mit Fastcgi und PHP werden die Prozesse der virtuellen Hosts mit eingeschränkten Nutzerrechten ausgeführt, daher ist die Aktivierung mit safe_mode=on nicht notwendig. Daher wird der safe_mode ausgeschaltet: safe_mode = Off [...] ; open_basedir, if set, limits all file operations to the defined directory ; and below. This directive makes most sense if used in a per-directory ; or per-virtualhost web server configuration file. This directive is ; *NOT* affected by whether Safe Mode is turned On or Off. ; NOTE: this is considered a "broken" security measure. ; Applications relying on this feature will not recieve full ; support by the security team. For more information please 26 s. Abb. 39 Zeile 11 Seite 22

; see /usr/share/doc/php5-common/readme.debian.security ; Kommentar: Eine Sicherheitssperre stellt die Variable open_basedir dar. Damit wird das Ausführen von (Schad-)Programmen außerhalb von /var/www unterbunden. open_basedir = /var/www ; This directive allows you to disable certain functions for security... ; It receives a comma-delimited list of function names. This directive is ; *NOT* affected by whether Safe Mode is turned On or Off. Kommentar: PHP ist so programmiert, dass Systemfunktionen des Servers ausgeführt werden können und sind somit beliebte Ziele von böswilligen Hackern oder Schadprogrammen. Aus diesem Grund werden hier nicht benötigte Funktionen abgeschaltet. [...] ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; Kommentar: Über die Direktiven werden die Bedingungen für PHP Skripte festgelegt, die z. B. bei einem Dateiupload oder einer Kurssicherung in Moodle ausgeführt werden. Sind Werte zu gering gesetzt, führt das zum Abbruch von Vorgängen, die länger dauern (weißes Browserfenster ohne weitere Meldungen und abgebrochenem Vorgang). Wenn das auftritt müssen diese Werte entsprechend erhöht werden. max_execution_time = 180 ; Maximum execution time of each script, in.. max_input_time = 60 ; Maximum amount of time each script may... memory_limit = 32M ; Maximum amount of memory a script may... (16MB) [...] ;;;;;;;;;;;;;;;;; ; Data Handling ; ;;;;;;;;;;;;;;;;; [...] ; NOTE: applications relying on this feature will not receive full ; support by the security team. For more information please ; see /usr/share/doc/php5-common/readme.debian.security Seite 23

Kommentar: Auf jeden Fall auf Off stehen lassen. 27 register_globals = Off ; Whether or not to register the old-style input arrays, HTTP_GET_VARS ; and friends. If you're not using them, it's recommended to turn them off, ; for performance reasons. register_long_arrays = On ; This directive tells PHP whether to declare the argv&argc variables (that ; would contain the GET information). If you don't use these variables, you ; should turn it off for increased performance. register_argc_argv = On ; When enabled, the SERVER and ENV variables are created when they're first ; used (Just In Time) instead of when the script starts. If these variables ; are not used within a script, having this directive on will result in a ; performance gain. The PHP directives register_globals,..._arrays, ; and register_argc_argv must be disabled for this directive to... affect. auto_globals_jit = On ; Maximum size of POST data that PHP will accept. Kommentar: Dieser Wert korrespondiert mit upload_max_filesize weiter unten. Mit diesen Einstellungen wird der größtmögliche Wert für die Dateigrößen angegeben, die in Moodle oder jeder anderen PHP basierten Webapplikation, hochgeladen werden können. Das betrifft nicht die Möglichkeiten über (S)FTP auch größere Dateien hochzuladen. post_max_size = 128M ; Magic quotes ; ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. file_uploads = On ; Temporary directory for HTTP uploaded files (will use system,,, if not ; specified). ;upload_tmp_dir = Kommentar: Siehe weiter oben post_max_size 27 http://de.php.net/register_globals Seite 24

; Maximum allowed size for uploaded files. upload_max_filesize = 128M ;;;;;;;;;;;;;;;;;; ; Fopen wrappers ; ;;;;;;;;;;;;;;;;;; ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. Kommentar: Dieser Wert ist per Default auf On gestellt, stellt aber ein hohes Sicherheitsrisiko dar. Damit aus Moodle heraus, z. B. Sprachpakete nachgeladen werden können, wird das Programm curl 28 verwendet. Da curl aber ein Systemprogramm ist und im Verzeichnis /usr/bin/ auf dem Server liegt, kann curl nicht ausgeführt werden, wenn open_basedir weiter oben gesetzt ist. Eine Möglichkeit wäre, open_basedir für den Zeitraum von Wartungsarbeiten auszukommentieren, wenn administrativer Zugriff auf die php.ini möglich ist, oder den Provider zu bitten curl freizugeben allow_url_fopen = Off ; Whether to allow include/require to open URLs (like http:// or ftp://) as allow_url_include = Off [...] Es gibt noch weitere Einstellungen, mit denen Feinabstimmungen vorgenommen werden können, z. B. include Variablen, mit denen ausführbare Verzeichnisse angegeben werden können, in die curl oder weitere Systemprogramme kopiert werden können um open_basedir aktiv zu lassen und Systemprogramme zu nutzen. Allerdings sollte Aufwand und Nutzen immer im Verhältnis stehen. 1.3.4 Einrichten eines virtuellen Hosts in Apache Wie vorher beschrieben ist Apache einsatzbereit. Allerdings bedeutet das noch nicht, dass auch die Ergebnisse der Arbeit sofort sichtbar werden. Es muss ein erster virtueller Host 29 eingerichtet werden. Apache hat die Fähigkeit eine beliebige Anzahl virtueller Hosts auszuführen. Eine wichtige Eigenschaft, die benötigt wird um dezidierte Web-Spaces, mit eigenem Domain-Namen und IP-Adressen, geschütztem 28 http://curl.haxx.se/ 29 http://httpd.apache.org/docs/2.0/de/vhosts/ Seite 25

Bereich, zugewiesenem Speicherplatz und individueller Konfiguration zur Verfügung zu stellen. Information: Debian bietet dazu eine komfortable Möglichkeit virtuelle Hosts einzubinden. Es gibt im Verzeichnis /etc/apache2/ zwei weitere Verzeichnisse: 1. sites-available 2. sites-enabled Damit lassen sich virtuelle Hosts die als Konfigurationsdateien in sitesavailable vorhanden sind mit einem einfachen Befehl an- und abschalten. Zuerst wird die Konfigurationsdatei angelegt. Dazu wird mit dem Befehl cd /etc/apache2/sites-available gewechselt und mit nano w test.conf eine leere Datei erzeugt. Beispielkonfiguration für einen "virtuellen Host Nach Abspeichern der Datei wird der Host mit dem Befehl a2ensite test.conf aktiviert... Abbildung 0-31 Inhalt der Datei test.conf Abbildung 0-32 virtuellen Host in Apache einbinden... und anschließend mit /etc/init.d/apache2 force-reload dem Webserver bekannt gemacht Seite 26