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 |