Logo

Was mir in Sachen Linux einfällt

Webserver einfach

Die einfachste Lösung: Du hast einen Router, auf dem schon ....

Nein, das ist in diesem Fall nicht ganz das Gelbe vom Ei. Denn obwohl auf den Routern ein Webserverprogramm läuft, kann man ihn nicht als Webserver missbrauchen. Der dort installierte Webserver ist ausschließlich für die Bedienoberfläche zuständig und es ist nicht sinnvoll, diesen für andere Zwecke umzustricken. Das fällt in diesem Fall also flach. Du brauchst also zwingend ein anderes Gerät, irgendeinen Computer, auf dem schon Linux installiert ist, oder auf dem Du Linux installieren kannst. So ein Rechner könnte z.B. Dein gekauftes NAS sein oder Dein selbst "aufgesetzter" Samba - bzw. FTP-Server. Denn "Webserver" ist auch "nur" ein Programm, das natürlich mit anderen Programmen gleichzeitig auf einem Computer laufen kann.

Doch bevor wir damit anfangen, muss ich die

Arbeitsweise eines Webservers

loswerden.

Jetzt die

Voraussetzungen auf dem Rechner:


Sicherheitstipps

Aus der Auswertung meiner Log-Dateien weiß ich, dass die Informatik-Bösewichte der Welt am liebsten Standards abfragen. Und weil es so schön einfach ist, die vorgegebenen Standards einfach beizubehalten, haben sie damit oft Erfolg. Beispiel: ich weiß, dass viele Hausbesitzer einen Zweitschlüssel außen am Haus "versteckt" haben. Die häufigsten Orte dafür sind "unter der Fußmatte", "unter der Mülltonne" und "auf dem Balken des Carport". Schleiche ich mich also durch meinen Ort und sehe bei jedem Haus an den drei genannten Orten nach, dann werde ich irgendwann fündig und kann ins Haus. Easy, oder? Glaub mir, das funktioniert!

Übertragen auf den Webserver: wenn der Standard für "Documentroot" /srv/www/htdoc ist, dann kann jeder, der es schafft, per Sicherheitslücke aus "Documentroot" auszubrechen sich leicht weiter orientieren. Er sieht zwar nichts wirklich, kennt aber den Verzeichnisbaum und kann sich damit weiterbewegen zu Ordnern, die ihn interessieren. Lege ich "Documentroot" irgendwo anders hin, z.B. nach /home/Webserver/MeineInternetDokumente, dann habe ich gleich drei Fallen gelegt: außerhalb von "Documentroot" ist nicht /srv/www, sondern /home/Webserver. Das kann ein Angreifer nicht auf Anhieb sehen, er müsste sich erst mühsam orientieren. Zweitens habe ich deutsche Bezeichner gewählt, die das üblicherweise englischsprachige Publikum nicht kennt und ich benutze Groß- und kleinschreibung, was für "try and error"-Versuche eine Erschwernis darstellt. Zusätzlich heißt der Benutzer des Webservers nicht www, sondern hat einen "normalen" deutschen Namen und ein sicheres Passwort. Und mein Zweitschlüssel für unser Haus ist elektronischer Art und verbirgt sich in einem gewöhnlichen Stein unter hunderten von ähnlichen Steinen. Viel Spaß beim Suchen ...


XAMPP

Mit sicherheitsrelevanten Dingen spielt man nicht! Und deshalb gibt es die komplette Webservereinrichtung als Spielversion. Sie heißt XAMPP und ist bei den Apache-Friends erhältlich. Lade Dir das Paket auf Deinen Arbeitsrechner (nicht auf den Server) herunter und installiere es auf dem Arbeitsrechner (nicht auf dem Server) genau nach deren Anweisung und nicht anders ! Dann funktioniert der Webserver auch.

XAMPP ist die Buchstabenfolge der Worte: X, Apache, MySQL, PHP und Perl. X steht für eines der Betriebssysteme Linux oder Windows, denn früher gab es mal die Unterscheidung in LAMPP und WAMPP, Apache heißt das Webserverprogramm, MySQL ist eine Datenbank, PHP ist eine Script-Sprache, mit der man dynamische Webseiten erstellt und Perl ist ebenfalls eine Scriptsprache, mit der man Webseiten auswertet. Wir brauchen hier nur Apache, denn dynamische Webseiten, für die PHP und MySQL gebraucht werden, kommen später.

Lies Dir bitte auf der Webseite, von der Du XAMPP gerade heruntergeladen hast, das Kapitel "LIES MICH" durch, ich spare mir das hier. Für den Anfang reichen die Startbefehle (als root) "/opt/lampp/lampp startapache" und "/opt/lampp/lampp startftp". Rufst Du jetzt im Browser "localhost" auf, dann siehst Du den Erfolg. Jetzt kannst Du Deine erste Webseite schreiben, per FTP auf den Server laden und sie Dir anschließend mit Deinem Browser ansehen. Für die Herstellung von Webseiten empfehle ich meinen "Homepage-Kurs".

Aber einen Hinweis muss ich noch loswerden: XAMPP ist eine reine Spielwiese und nicht für den produktiven Einsatz gedacht. Ansonsten viel Spaß beim stöbern ...


Der "richtige" Webserver

Das Apache-Logo

Hast Du Dir schon Gedanken gemacht, wo der Ordner für "Documentroot" hin soll?. Wie schon gesagt, es ist egal wo, aber wenn Du bei der Vorgabe /srv/www/htdocs bleiben willst, dann muss ich vorher doch noch was wichtiges loswerden:

Der Inhalt des Webservers hat auf der Systempartition nichts zu suchen

Denn sollte mit der Installation mal irgendetwas sein und Du musst neu installieren, dann überschreibt das den Ordner für den Webinhalt. Abhilfe: Du bindest eine extra Festplattenpartition an der Stelle ein! Oder Du legst "Documentroot" auf die /home-Partition, die Du hoffentlich wie üblich angelegt hast.

Jetzt installierst Du den eigentlichen Webserver. Installiere Apache2 mit allem, was dazu gehört. Das müsste automatisch auch apache2-prefork und apache2-utils installieren. Bevor das Programm gestartet wird, musst Du diverse Einträge in Konfigurationsdateien machen.

Diese "config"-Dateien befinden sich bei Opensuse fast alle in /etc/apache2/, die fehlende ist /etc/sysconfig/apache2. Die Struktur sieht so aus:

Overview of include files, chronologically:

httpd.conf
 | 
 |-- uid.conf  . . . . . . . . . . .UserID/GroupID to run under
 |-- server-tuning.conf  . . . . .  sizing of the server 
 |-- sysconfig.d/loadmodule.conf .  [*] load these modules
 |-- listen.conf . . . . . . . . . .IP adresses / ports to listen on
 |-- mod_log_config.conf .  . . .   define logging formats
 |-- sysconfig.d/global.conf . . .  [*] server-wide general settings
 |-- mod_status.conf . . . . . . .  restrict access to mod_status 
 |-- mod_info.conf . . . . . . ..   restrict access to mod_info
 |-- mod_usertrack.conf  . . . . .  defaults for cookies
 |-- mod_autoindex-defaults.conf .  defaults for directory listing
 |-- mod_mime-defaults.conf  . . .  defaults for mime configuration
 |-- errors.conf . . . . . . . . . .customize error responses
 |-- ssl-global.conf . . . . . . .  SSL for default server
 |
 |-- default-server.conf . . . . .  set up the default server 
 |    |--mod_userdir.conf  . . . .  enable UserDir 
 |    `--conf.d/apache2-manual?conf add the docs 
 |
 |-- sysconfig.d/include.conf. . .  [*] your include files 
 |                  (for each file to be included here, put its name 
 |                  into APACHE_INCLUDE_* in /etc/sysconfig/apache2)

Das sieht unheimlich kompliziert aus, ist aber halb so wild, hier muss man nur wenig eintragen. Die wichtigste Datei ist ganz oben: httpd.conf. In der braucht schon mal nichts geändert werden, dort stehen nur alle aufgeführten Dateien drin als "include". Aber hier einige der anderen Dateien mit den Einträgen. Alle Dateien sind gut kommentiert, so dass Du mit Englisch-Kenntnissen keine Schwierigkeiten haben wirst, die Stellen zu finden.

  • default-server.conf: /der/ordner/fuer/documentroot
    ServerName (der Name des Rechners)
    ServerAdmin (Deine Mailadresse)
  • listen.conf :        Listen 80
  • uid.conf:            User (der Name des Besitzers des Webordners)
    Group (Gruppe, in der der Besitzer ist)

Hinweis: Falls der Server eine Seite nicht ausliefern kann, wird er statt derer automatisch eine Fehlerseite (Error 404) schicken, in der er den Servernamen und Deine Mailadresse einsetzt, damit hilfreiche Besucher Deines Webauftrittes Dir Bescheid sagen können. Und natürlich passiert das auch bei einigen anderen Fehlern ...

Jetzt brauchst Du nur noch eine erste HTML-Seite, die im Quelltext so aussehen könnte:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 \
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<h1>Meine erste Seite</h1>
</body>
</html>

Diese Seite speicherst Du als index.html in "documentroot" ab und jetzt kannst Du den Webserver starten:

rcapache2 start (gilt für Opensuse)

und rufst von einem anderen Rechner aus den Server auf: gib in die Adresszeile Deines Lieblingsbrowsers die IP-Nummer Deines Servers ein gefolgt von ENTER. Wenn Du alles richtig gemacht hast, wirst Du Deine erste Seite sehen.

Viel Spaß beim Erstellen Deines Webauftritts ...