AG-Intra.net Arbeitsgemeinschaft
Intranet

Home
Was ist ein Intranet
Grundlagen
Netzwerke
Linux
Windows
Java
Sicherheit
Datenbanken
Projekte
Links
Impressum
Mitmachen ?
Diskussionsforum
Letztes Update:
10.11.2000
Liebe Besucher, ein aktueller Hinweis in eigener Sache:
Es ist beabsichtigt, diese Seiten und die Domain im Januar/Februar 2004 auf einen anderen Server umzuziehen. Es ist leider nicht auszuschließen, daß es während des Umzugs zu technischen Problemen mit diesen Seiten kommen wird. Insbesondere im eMail-Bereich wird es vermutlich Probleme geben. Wenn Sie fragen haben oder mich sonstwie erreichen wollen empfehle ich an rebel@snafu.de zu posten.
Nachdem der Umzug abgeschlossen ist, wird es allerdings auch inhaltliche Änderungen während des ersten Halbjahrs 2004 geben. Keine Angst. Es werden keine Inhalte verlorengehen, aber die Struktur der Seiten wird komplett geändert. Diese Seite hat eben eine andere Entwicklung genommen seit 2000, als das Projekt gestartet wurde ;-) Ich werde mich bemühen, daß bei ihnen vorhandene alte Bookmarks wenigstens zu einem Verweis auf die Neustruktur führen, und die gesuchten Inhalte für sie trotzdem leicht und schnell auffindbar sein werden.
Die eigentlich zu dieser Seite gehörenden Domains ag-intra.com, ag-intra.org und ag-intra.de werden von mir geschlossen bzw. gelöscht und unregistriert.

Anleitung - Intranet Access by Internet 
Copyright 2000 by Frank Gehde
Wie immer, diese Anleitung gilt für SuSE Linux 6.4.
Konkret geht es an dieser Stelle darum, wie man Zugriff auf den eigenen Linux-Rechner bekommt, wenn man gerade woanders ist, oder wie Dritte Zugriff bekommen können. Dabei wird vorausgesetzt, daß sich der Rechner per PPP ins Internet einwählt (das kann T-DSL, ISDN oder auch Modem sein). Wie man den Rechner aus der Ferne Online bekommt wird hier nicht behandelt, aber in einem anderen Artikel auf diesem Server.

Beachten Sie bitte auch alle möglichen Sicherheitshinweise aus dem Internet, und den Artikel Erste Schritte mit SuSE auf den hiesigen Web-Seiten !

Wo ist das Problem? Nun bei Dialin-Zugängen zum Internet bekommt der eigene Rechner dynamische IP's zugewiesen. Also bei jeder Einwahl eine andere IP. Daher haben wir keine Möglichkeit, einen fest kodierten Link auf unseren Rechner auf einer beliebigen Web-Seite zu hinterlegen. Die Lösung besteht darin, beim Einwählen auch immer gleich eine HTML-Seite mit der aktuellen IP-Adresse zu generieren und auf einen bestehenden Web-Space Account hochzuladen. Beim Abmelden der Verbindung wird dann eine Seite mit dem Hinweis "offline" hochgeladen. So ist auf dieser immer erreichbaren Seite immer der Zustand und ggf. Zugang des lokalen Rechners/Netzwerkes aktuell vermerkt.

Den Umstand, den wir zum Lösen des Problems ausnutzen, ist das Script "ip-up" im Verzeichnis /etc/ppp/. Dieses Script wird dankenswerterweise bei einem PPP-Login NACH Erhalt der aktuellen IP-Adresse ausgeführt, und schleppt diese auch noch in einer Variablen mit.

Wir benötigen also folgendes:

1.) Teile der HTML-Seite, die wir erzeugen wollen
Es wäre schon schön, wenn man etwas HTML-Kenntnisse hat. Wenn nicht, ist das auch nicht so schlimm. Man erzeugt sich einfach eine HTML-Seite, die genauso aussieht, wie sie soll. An der Stelle an der man vermerkt, daß man Offline ist, oder eben Online schreibt man einfach "XXXXXXXXX". Wenn man diese HTML-Datei nun in einem Texteditor betrachtet, findet man schnell die Stelle mit den X'en. Den Teil vor den X'en markiert man und kopiert man in ein leeres Textdokument namens "ich.start". Das gleiche macht man mit dem Teil nach den X'en, und speichert es als "ich.end".
Andernfalls zeige ich hier eine Einfachversion dieser Dateien:

ich.start:

<html>
<head>
   <title>Zugang zu meinem eigenen Rechner</title>
</head>
<body>
Ich bin zur Zeit:

so, nach dem Doppelpunkt ist die Datei auch schon beendet. Um die Datei rund zu machen, erzeugen wir (wie gesagt) noch die folgende Datei:

ich.end:

</body>
</html>

So, die war wirklich kurz. Wenn ihr aber etwas ausführlichere Seiten erzeugt, macht die start- und end-Datei schon Sinn. Kommen wir nun zum Script:

2.) Script zum Zusammenfügen der HTML-Seite
Ich habe ein Script erzeugt, welches sowohl die Online als auch die Offline-Version der HTML-Seite erzeugt. Es handelt sich eigentlich nur um das Ausgeben am Standard-Output der Shell, mit einer Umleitung, bzw. dem Anhängen der Ausgabe an eine Datei. Das Script heisst "htmake"und wird unter /root/scripte/ gespeichert. Die oben genannten HTML-Teil-Dateien sind im Beispiel unter /root/ht/ gespeichert. Erstmal das Script:

#!/bin/sh
# Dieses Script baut die endgültige HTML-Seite zugang.html zusammen.
# Es versteht den parameter online <ip> und den parameter offline.
#######################################################

case "$1" in
   online)
      cat /root/ht/ich.start > /root/ht/zugang.html
      echo "<a href=\"http://" >> /root/ht/zugang.html
      echo $2 >> /root/ht/zugang.html
      echo "/index.html\"> Online !</a> >> /root/ht/zugang.html
      cat /root/ht/ich.end >> /root/ht/zugang.html
      ;;
   offline)
      cat /root/ht/ich.start > /root/ht/zugang.html
      echo " Offline !" >> /root/ht/zugang.html
      cat /root/ht/ich.end >> /root/ht/zugang.html
      ;;
   *)
      echo "Usage: $0 {online ip | offline}"
      exit 1
      ;;
esac
exit 0

So, was haben wir hier gemacht ? Zunächst für den Online-Fall. Wir haben am Anfang und am Ende jeweils unsere "ich"-Dateien in die Datei "zugang.html" geschrieben. Dazwischen haben wir die HTML-Anweisungen für einen Link erzeugt. Und der Link geht direkt auf eine IP-Adresse. Diese muß dem Script im Online-Fall als zweiter Parameter übergeben werden. Im Endeffekt zeigt die Seite das WortOnline an, welches direkt mit der Seite index.html auf unserem Linux-Web-Server verlinkt ist (Dies bietet sich an. Wenn jemand dann tatsächlich auf unseren Rechner kommt, kann man ihm auf unserem Web-Server weitere Hinweise zur Nutzung unseres PC geben)
Bei Offline ist nicht viel anders. Es wird nur der Link weggelassen, und eben das Wort Offline verwendet. Das Script dürfte soweit klar sein.

3.) Einfügen des Aufrufs dieses Scriptes in "ip-up" und hochladen
Nun kümmern wir uns um das Script ip-up, welches bereits im Verzeichnis /etc/ppp existieren sollte. Wenn Sie sich das Script genauer ansehen, dann werden Sie entdecken, daß hier ein Unterschied zwischen ISDN (ippp*) und anderen PPP-Verbindungen (PPP) gemacht wird. Da ich hier im konkreten Fall PPP verwende, müßen sie (mit eigener gedanklicher Anstrengung) zusehen, wo sie die hier beschriebenen Zeilen im ippp*-Teil einbauen, statt im ppp* Teil.
Leider ist das Script zu lang, um es hier komplett wiederzugeben. Aber sie müßen als allerletzte Anweisung im Teil von ppp*) ip-up) folgende beiden Zeilen einfügen

/root/scripte/htmake online $4
ncftpput -a -u frankie -p hansi www.myspace.test '/lokal' '/root/ht/zugang.html'

(Das sind übrigens genau zwei Zeilen) So. Bevor wir zum ip-down-Teil kommen, erklär ich das erstmal. Die erste Zeile ist relativ klar. Unser Script zum Erstellen der HTML-Seite wird aufgerufen. Dabei wird ihm eben der online Parameter und die aktuelle IP-Adresse zugewiesen. Die IP-Adresse befindet sich in der Variablen $4 (wird ziemlich am Anfang des ip-up Scriptes zugewiesen). Danach haben wir die Datei zugang.html in unserem Verzeichnis /root/ht/ in aktuellem Zustand. Nun muß sie auf einen beliebigen Web-Space über den wir verfügen (zB www.tripod.de) hochgeladen werden. Tripod hätte zum Beispiel eine feste Adresse für uns, die wir auch bookmarken können, im Gegensatz zu unserer ständig wechselnden dynamischen IP-Adresse.
Zum Hochladen verwende ich Ncftp. Dabei gibt es einen kleinen Pferdefuß. Dazu gleich mehr. Im Gegensatz zu dem normalen ftp-Befehl, der für diesen Zweck eine Sicherheitsschwache- Parameterdatei in unserem Home-Verzeichnis benötigen würde, kann man mit ncftpputeine Datei direkt hochladen. Sicherheitsschwach ist jetzt nur noch die Klartextangabe des Passwortes für diesen Account in dem Script. Nunja, man kann nicht alles haben. Ich habe die Beschreibung von Ncftp, bzw. der kompletten Variante von dem Linux-Guru :), wo Sie sich dazu nähere Informationen besorgen können.

Jetzt komme ich kurz zum Pferdefuß: Eine Untersuchung des Verzeichnis/usr/binzeigt, daß bei SuSE zwar der Befehl ncftp im Paket enthalten ist, nicht aber die dazugehörigen Tools ncftpput, ncftpget etc. Na toll, da konnt ich ja lange rumprobieren. Aber verzagen hilft auch nicht, Problem lösen ist angesagt. Wir besorgen uns also erstmal den Sourcecode für die ncftp-Client-Tools unter www.ncftp.com. (Dabei haben wir den Vorteil, die aktuellere Variante 3.02 herunterladen zu können) Jetzt erzeugen wir irgendwo ein Arbeitsverzeichnis, zB/root/ncftp. Dorthin kopieren wir das Archiv ncftp-3_0_2-src_tar.gz. Dieses entpacken wir an Ort und Stelle mit

gz -dc ncftp-3_0_2-src_tar.gz | tar xvf -

Jetzt wechseln wir ins neu erzeugte Verzeichnis ncftp-3.0.2 Das Lesen der dortigen README-Datei schadet nicht, aber man kann auch einfach blind die folgenden Befehle eintippen:

./configure
make
make install

Und viola, es hat fast geklappt *g*. Naja, das make install kopiert die erzeugten Kommandos ins übliche Verzeichnis /usr/local/bin. Aber SuSE wär nicht SuSE, wenn sie bei SuSE nicht woanders hin müßten, nämlich nach /usr/bin. Falls dem nichts entgegen steht, verschieben Sie die neuerzeugten Kommandos einfach mit

mv /usr/local/bin/* /usr/bin

ins entsprechende Verzeichnis. Wer sicher gehen möchte nimmt cpanstatt mv. So, ab sofort sind die Kommandos verfügbar und brauchbar. Machen wir also mit unseren Scripten weiter ...

In der hier verwendeten Variante ist frankie der username auf dem account, hansi das passwort, www.myspace.test der Ftp-Server auf den ich dazu Zugriff habe, und lokal der Ordner auf dem Web-Server, in dem meine Seite gespeichert wird. /root/ht/zugang.html ist der Pfad zu unserer dynamisch erzeugten Zugangs-Seite auf unserem Linux-System.
Entsprechend fügen wir nun diese Befehle für die Abwahl ein. Und zwar tun wir dies direkt als ERSTE Befehle in der dazugehörigenip-down-Variante im ip-up Script. Das sieht folgendermaßen aus:

/root/scripte/htmake offline
ncftpput -a -u frankie -p hansi www.myspace.test '/lokal' '/root/ht/zugang.html'

Das sind übrigens genau zwei Zeilen! Damit ist dann unsere Seite so aktuell, daß sie kundtut, daß wir offline sind.
Ein Problem bleibt bestehen ... wenn uns der Provider die Leitung wegen Inaktivität oder wegen eines Zeitlimits kappt, dann kann nicht mehr hochgeladen werden bzw. noch schlimmer: der Hochlade-Versuch initiert eine neue Verbindung, und die wird dann hergestellt, aber es steht trotzdem Offline auf der Seite !!
Was tun ? Ich weiß es grad nicht. Wer eine Lösung hat mailt Sie mir :)

Ab von dem letztgenannten Problem funktioniert die Lösung gut. Denken sie bitte immer an die Systemsicherheit. Aber es ist schon fein, den dynamisch angebundenen eigenen Rechner direkt an das Internet anzuschließen. Wer dazu Fragen oder Anmerkungen hat, kann mir gerne mailen.


zurück zur Linux Übersicht

Copyright 2000 by Frank Gehde