Vorheriger Abschnitt Inhaltsverzeichnis Nächster Abschnitt

11.14 Arktur als eigener öffentlicher Webserver

Hinweis: Änderungen an den Arktureinstellungen können zu einer erhöhten Angreifbarkeit bzw. zu einem Sicherheitsrisiko führen, da z.B. die IP-Adresse schnell ausfindig gemacht werden kann. Masquerading sollte man z.B. ausschalten. Erstellen Sie auch unbedingt vor einer Änderung der Konfigurationsdateien eine Sicherheitskopie, um ggf . wieder auf das Original zurückgreifen zu können.

1. Arktur als eigener Webserver?

Angesichts der nur noch geringen Kosten für einen eigenen Domänenamen und dem entsprechenden Webspeicherplatz mutet es schon seltsam an, auf Arktur einen eigenen Webserver einrichten zu wollen. Es gibt allerdings Gründe, einen kleinen Teil seiner Internetpräsentation auf den Server im Hause umzuleiten:

2. Vorraussetzungen

Arktur bringt bereits alle Voraussetzungen mit, als öffentlicher Webserver betrieben zu werden. Einzige Schwachstelle ist die etwas langsame Internetverbindung. Arktur sollte auf jeden Fall per TDSL mit dem Internet verbunden sein. Damit ist ein Bereitstellen des Angebots von 15KB/s erreichbar und für Besucher, die über ISDN ins Netz gehen, ausreichend, weil auf einer Schulseite vermutlich nicht sehr viele gleichzeitige Anfragen zu verzeichnen sind.
Die Nutzung des schuleigenen Servers als Webserver ist natürlich davon abhängig, ob dieser von "außen" erreichbar ist, ohne seine IP-Adresse kennen zu müssen. Man muss also ermöglichen, dass Arktur im Internet immer unter derselben Internetadresse erreichbar ist.

3. IP-Umleitung durch eine Subdomain

Besteht die Möglichkeit, bei seinem Provider Subdomains einzurichten, so kann man mit einem Script dafür sorgen, dass Arktur bei jedem Onlinegang eine automatische Weiterleitungsseite mit der aktuellen IP generiert und in das entsprechende Verzeichnis beim Provider ablegt. Richtet man z.B. die Subdomain lokal ein, so ist der eigene Server immer unter http://lokal.eigenedomain.de zu erreichen.

Und so sieht das dazu notwendige Script aus:

     #!/bin/sh
     #
     # laedt die aktuelle IP-Adresse in eine Weiterleitungsseite
     # © SD 2003
     MYIP=`/sbin/ifconfig ppp0 | grep P-t-P | cut -d: -f2 | cut -d" " -f1`

     Seite=“www.meinedomain.de“
     User="mein Benutzername"
     Passwort="geheim"

     # alte temporaere Seite loeschen
     rm /tmp/ipload_lokal
     sleep 1

     # Seite in /tmp/ipload_lokal schreiben
     echo "<HTML>" >> /tmp/ipload_lokal
     echo "<HEAD>" >> /tmp/ipload_lokal
     echo "<TITLE></TITLE>" >> /tmp/ipload_lokal
     echo "<meta http-equiv=\"refresh\" content=\"0; URL=http://$MYIP\">" >> /tmp/ipload_lokal
     echo "</HEAD>" >> /tmp/ipload_lokal
     echo "<BODY>" >> /tmp/ipload_lokal
     echo "</BODY>" >> /tmp/ipload_lokal
     echo "</HTML>" >> /tmp/ipload_lokal
     sleep 3

     #temporaeres Script fuer ftp basteln
     echo "open $Seite" > FTP_Script
     echo "user $User $Passwort" >> FTP_Script

     # der erste Parameter bei put gibt das lokale Verzeichnis, der zweite
     # das externe Verzeichnis beim Provider an
     echo "put /tmp/ipload_lokal /www/lokal/index.html" >> FTP_Script
     echo "bye" >> FTP_Script

     #jetzt die vier Zeilen an das FTP-Programm uebergeben
     cat FTP_Script | ftp -vn
     sleep 2

     # und das temp Script wieder loeschen
     rm FTP_Script
     exit 0

Das Script sollte man unterhalb des Verzeichnisse /usr/local speichern. Besitzer ist root/root, die Rechte wegen des Passwortes sind auf 700 zu setzen.

4. IP-Umleitung durch Anbieter wie DynDNS

Einen professionellen Dienst bietet z.b. dyndns.org an. Bei der Eingabe einer dort beantragten Internetadresse wie z.B. http://schulexyz.dyndns.org sorgt dieses Service für die Weiterleitung an die richtige IP-Adresse. Damit wird der schulische Server auch hier weltweit immer unter der selben Adresse erreichbar.

Die IP-Adresse des schulischen Arkturs ändert sich mit jeder neuen Einwahl. Um also das oben beschriebene Verfahren durchführbar zu machen, muss diesem Dienstleister sofort nach der Einwahl von Arktur ins Internet automatisch die IP-Adresse übermittelt werden, die Arktur gerade zugeteilt bekommen hat. Das erledigt der Aufruf eines Scripts, das in die Datei /etc/ppp/ip-up eingebunden wird. Damit Arktur nicht offline geht, reicht ein regelmäßiges ping an irgendeine bekannte Webadresse aus.

Im Folgenden sei beispielhaft das Verfahren bei dyndns.org beschrieben. Zunächst sichert man sich eine entsprechende Internetadresse, z.B. schulexyz.dyndns.org. Dazu ruft man die Seite bei dyndns.org auf, lässt sich dort registrieren und erhält nach wenigen Minuten per Mail den Zugang zur Konfigurationsseite. Damit ist die Registrierung abgeschlossen.

Anschließend muss man nun die Internetadresse definieren, unter der der schulische Arktur erreichbar sein soll - auf der angesprochenen Webseite spricht man von einem Host bzw. man klickt auf Add New Host. In der folgenden Eingabemaske bestimmt man die Internetadresse, hier also z.B. schulexyz.dyndns.org.

Mit der Anmeldung hat man einen Benutzernamen und ein Passwort definieren können, mit denen man sich jederzeit wieder bei dyndns.org einloggen kann und die man benötigt, wenn man später mittels des bereits erwähnten Scriptes Arktur seine IP-Adresse automatisch übermitteln lässt.

Die mit dieser Anleitung geladene Datei dyndns.tar (Zusammenstellung nach einer Vorlage von Thomas Litsch) kopiert man nun in das Wurzelverzeichnis (!wichtig) von Arktur und entpackt es an der Konsole mittels tar xvf dyndns.tar.

Beim Auspacken werden einige Dateien in verschiedene Unterverzeichnisse entpackt. Davon muss die Datei /etc/ppp/ip-up.dyndns noch angepasst werden. Dieses Script übermittelt Arkturs augenblickliche öffentliche IP an dyndns.org. Öffnen Sie dazu die Datei mit mc und tragen Sie an den ausgewiesenen Stellen den bei dyndns.org gewählten Benutzernamen, das Passwort und den eben gewählten Hostnamen ein.   Wenn Sie nun das Script einmal starten, meldet es Ihnen die erfolgreiche Übermittlung und ab sofort können Sie den schulischen Arktur per http://schulexyz.dyndns.org erreichen.

Gelegentlich ist davon berichtet worden, dass der Aufruf mit einem "Segmentation Fault"-Fehler abbricht. Kommentieren Sie dann die Zeile

/sbin/dyndnsupdate -r -u $USERNAME:$PASSWORD -h $DYNHOSTNAME > /var/log/$DYNHOSTNAME

durch ein vorangestelltes # aus und fügen folgende 2 Zeilen hinzu:

MYIP=`/sbin/ifconfig ppp0 | grep P-t-P | cut -d: -f2 | cut -d" " -f1`
/usr/bin/lynx -dump -auth=$USERNAME:$PASSWORD
"http://members.dyndns.org/nic/update?system=dyndns&hostname=
$DYNHOSTNAME&myip=$MYIP" >> /var/log/$DYNHOSTNAME

(Achtung: die letzten drei Zeilen sind ein Befehl und der muss in einer Zeile ohne Umbruch eingetragen sein!)

Um diese Verfahren zu automatisieren, muss der Aufruf innerhalb eines anderen Scriptes erfolgen, das immer dann abgearbeitet wird, wenn Arktur eine Verbindung ins Internet herstellt. Öffnen Sie dazu die Datei /etc/ppp/ip-up ebenfalls mit mc zum Editieren. Etwa in der Zeile 44 findet man einen Eintrag exit 0 ;; .
Vor(!) dieser Zeile fügen Sie eine neue Zeile mit dem Inhalt /etc/ppp/ip-up.dyndns > /dev/null ein.

Um sicher zu stellen, dass Arktur nicht offline geht, muss noch der standardmäßig vorhandene Eintrag /etc/ppp/inet-off aus der crontab entfernt werden. Zur Bearbeitung der crontab ruft man an der Konsole crontab -e auf.

Will man ein offline bzw. die Zwangstrennung von Arktur durch die Telekom grundsätzlich verhindern, fügt man in die crontab folgende Zeile ein
  0-59/5 * * * ping -c 1 www.irgendeineAdresse.de > /dev/null.
Damit wird alle fünf Minuten eine ganz kurze Verbindung ins Internet hergestellt.
Jetzt ist Arktur immer über http://schulexyz.dyndns.org erreichbar und man kann seine Downloaddateien oder die Bilder der Webcam in einen Unterordner unterhalb von /home/www ablegen.

4. Apache-Einstellungen

Mit der Erreichbarkeit des schulischen Arkturs auch von außen wird ein Zugriff auf Unterverzeichnisse des Pfades /home/www möglich (online, webmail), den man durch Einstellungen in der Datei /etc/httpd/access.conf verhindern kann.

Möchte man z.B. vermeiden, dass man aus dem Internet die auf Arktur eingetragenen User sehen kann (z.B. http://schulexyz.dyndns.org/online oder http://schulexyz.dyndns.org/webmail), schränkt man den Zugriff auf das lokale Netz ein, d.h. man erlaubt nur denjenigen Besuchern das Lesen, deren IP aus dem lokalen Netz kommt. Auch sollte man die Zugriffe auf die Webseiten der einzelnen User von Außen unterbinden. Ggf. lassen sich im Einzelfall, wenn es denn erwünscht wird, symbolische Links auf einzelne Benutzer setzen.

Änderungen in der /etc/httpd/access.conf

<Directory /home/www>
Options FollowSymLinks SymLinksIfOwnerMatch IncludesNOEXEC
AllowOverride None
order allow,deny
allow from all
</Directory>

Das Hinzufügen von FollowSymLinks erlaubt ab dem Ordner /home/www das Setzen symbolischer Links, ohne dass die Benutzerrechte identisch sein müssen.
<Directory /home/www/online>
Options FollowSymLinks ExecCGI
Order deny,allow
  allow from 192.168.
  deny from all
</Directory>

Nur User aus dem lokalen Netz können das Unterverzeichnis /home/www/online aufrufen. Reihenfolge von deny und allow beachten!
<Directory /home/*/www-pub>
Order deny,allow
  allow from 192.168.
  deny from all
</Directory>

 
Nur User aus dem lokalen Netz können die Unterverzeichnisse /home/alleArkturUser/www-pub aufrufen, Aufrufe wie schulname.dyndns.org/~xyz werden abgewiesen. Reihenfolge von deny und allow beachten!

In meinem Fall wollte ich zusätzlich ein einfaches Verzeichnis für Downloads anbieten. Standardmäßig erlaubt Arktur bzw. der Webserver nicht die Ansicht einzelner Dateien in einer Liste. Um das zu ändern, musste die Datei /etc/httpd/httpd.conf etwas angepasst werden:

Alias /intranet/downloads/ "/home/xyz/www-pub/"
Ruft man aus dem Internet die Seite http://schule.dyndns.org/intranet/downloads auf, so befindet man sich tatsächlich im www-Verzeichnis des Users xyz. Dafür sorgt dieser Alias-Eintrag. Im Verzeichnis /home/www/intranet muss zusätzlich noch ein symbolischer Link auf das www-Verzeichnis des Users xyz gelegt werden mit: ln -s /home/www/intranet/downloads
/home/xyz/www-pub
<Directory "/home/xyz/www-pub ">
   Options Indexes MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

Der Inhalt des Verzeichnisses soll sichtbar sein, alle Dateien werden in eine Liste angezeigt und man kann sie durch Anklicken downloaden. Dafür ist hauptsächlich der Eintrag Indexes zuständig

Damit alle Änderungen wirksam werden, muss der Server neu gestartet werden.


Vorheriger Abschnitt Inhaltsverzeichnis Nächster Abschnitt
© Stephan Dreisbach, Sigurd Mahr, 2003