Navigationsleiste | Direktzugriff | Home |
In diesem Artikel geht es um die Einwahl auf den heimischen Rechner. Gut, von diesen Artikeln gibt es genug, aber dieser hat eine coole Besonderheit ....
Ich das folgende Problem kennt jeder: Du sitzt gerade beim Freund oder
in der Firma und dir fehlt eine Datei oder eine Info die auf deinem Rechner
zu Haus liegt. Also was tun ?
Heimfahren ist doof, besser wäre es doch den Rechner über das Internet
zu erreichen.
Als Besitzer einer Flatrate kein Problem: Einfach den Rechner immer laufen
lassen und mit einer Software ausstatten die dynamische IP-Adressen in
feste "wandelt", ich denke da an DynDNS [1] oder ISdns [2].
Und ohne Flatrate??
Als Modem-Besitzer, weiß ich leider auch nicht (habe schon lange keine
Modem mehr),
als ISDN-Benutzer, lies einfach weiter.
Also, um diesen Artikel geht es um die Einwahl auf den Linux-Rechner, der
eine ISDN-Karte (passiv reicht) hat. Du nimmst dein Handy und wählst deinen
Rechner an, dieser sieht deine Nummer und wählt sich ins Internet ein,
und fertig.
Dein Rechner ist zwar nun im Internet, aber erreichen möchtest du ihn ja
auch noch.
Das Problem ist hier die dynamische IP-Adresse: Bei jeder Einwahl beim
Provider bekommst du eine andere IP-Adresse zugewiesen.
Die Lösung kann sein wie oben angeben mit Diensten wie DynDNS [1] oder ISdns [2].
Aber ich habe ja gesagt dieser Artikel ist cooler:
Du bekommst die IP-Adresse per SMS gesendet !!!!
Das Ganze läuft nun so ab:
Eins ist sicher: Deine Freunde oder Kollegen sind verblüfft wenn die IP
via SMS kommt :-))
Damit alles klappt, brauchst du folgendes:
Zuerst mußt du deinen Handy-Provider "vorbereiten". Standardmäßig werden keine Emails als SMS weitergeleitet.
Bei D2-Vodaphone mußt du eine SMS mit dem Text "OPEN" an die Nummer 3400 senden. Das wird dir dann bestätigt, mit dem aktuellen Preis.
Ja richtig gelesen, pro empfangener Email werden dem Kartenbesitzer 0,198Euro
(Vodaphone CallYa) berechnet. Also besser keinem sagen das du so erreichbar
bist ...
Willst du keine Email mehr empfangen, einfach den Text "CLOSE"
an die Nummer 3400 senden und Ruhe ist.
Damit das alles geht brauchst du den isdnlog und ippd. Bei Debian heißen
die Paket auch so.
Ich gehe bei der weiteren Beschreibung mal von Debian Woody (3.0) aus,
da sich das aber eh alles in den Konfigurationsdateien abspielt, sollte
es auch mit anderen Distributoren so gehen.
Zuerst erlauben wir dem isdnlog das Auslösen von externen Programm (wir
brauchen ein Script, das die Internet-Einwahl auslöst), dazu unter Woody
in der Datei /etc/isdn/isdnlog.isdnctrl0 dort den folgenden Eintrag eintragen
oder auskommentieren:
start=yes # enable program start on events |
Gibt es diese oder eine ähnliche Datei bei dir nicht, kannst du isdnlog
auch mit dem Parameter "-S" im passendem Init-Skript starten.
Danach muß die Datei /etc/isdn/callerid.conf geändert werden:
[MSN] |
Im Einzelnen bedeuten die Einträge:
NUMBER | ist die MSN-Nummer(ohne Vorwahl !!)auf die der Rechner angerufen wird. Diese sollte nur für diesen Fall verwendet werden (Telekom stellt 10 zur Verfügung). |
ALIAS | Dient nur zum besseren Lesen der Log-Dateien |
ZONE | dient zur Abrechnung (verwende ich nicht, ist nicht wichtig) |
NUMBER | Diese Nummer unter [Number] ist die Nummer von der wir anrufen (das Handy). Nur wenn die richtige MSN von diesem Handy angerufen wird, passiert etwas. Macht die Sache schön sicher :-) |
ALIAS | Dient nur zum besseren Lesen der Log-Dateien |
ZONE | dient zur Abrechnung (verwende ich nicht, ist nicht wichtig) |
SI | Service Indicator: Bei SI=1 wird ein normaler Sprach-Anruf (Speech) erwartet. Wir wollen ja keine Daten senden, also =1 |
START | In diesem Abschnitt stehen alle Dinge die isdnlog machen soll, wenn ein passender Anruf kommt |
FLAGS | Hiermit werden die Paramete gesetzt, bei denen die Aktionen (Starten des
Scripts) ausglöst werden soll: I = Incoming Call (Eingehender Anruf), R = Ring (ISDN-Dienst Klingeln), U = Startet Aktion nur einmal pro Intervall |
INTERVAL | Zusammen mit FLAGS=U wird hier festgelegt das die Aktion nur einmal innerhalb von 120sec ausgelöst werden kann. Ist sicherer so |
PROGRAM | Legt fest was passieren soll, wenn alles passt: Startet das Script /home/inter/goonline.sh und übergibt den Called Alias (\${20}) |
USER | Unter welchem Benutzer das Programm laufen soll. Dieser Nutzer muß eine Interneteinwahl auslösen können (also Zugriff auf isdnctrl haben, unter Debian muß der Nutzer Mitglied der Gruppe dialout sein). Wird hier nichts eingeben, läuft das Script als root !!! Also, Achtung! Hier ist es der Benutzer "inter". |
So das war erstmal alles an Einstellungen.
Hier das Script, dieses macht folgendes:
Der ausführende Benutzer dieses Skriptes ist "inter", dieser
Benutzer ist Mitglied in der Gruppe "dialout" (unter Debian)
#!/bin/bash #Skript goonline.sh #Temperäre Internet IP ermitteln und als SMS versenden #Anpassungen TMP=/tmp/IP #Temporäre Datei zum Zwischenspeichern IPPP=ippp4 #zu verwendendes ISDN-Device EMAIL=markus@example.net #Zusaetliche Debug-Email-Adresse SMS=01731234567@d2-message.de #SMS-Empfaenger #War der Anruf auch auf die richtige Nummer: #Der Name kommt aus der callerid.conf if [ "$1" = "Inet-Trigger" ] then #Wenn der Anruf auf die richtige Nummer kam: #Gehe online sleep 15 #Da Leitung vom Anruf belegt, warte 15 sec #Wähle über IDSN isdnctrl dial $IPPP #Steht die Verbindung ? sleep 5 ping -c1 www.tuxhausen.de &>/dev/null && result=1 result=$? if [ $result = 0 ]; then #Verbindung steht: #Kurzer SMS Text und Uhrzeit TIME=`date +%T` echo "Die aktuelle Server-IP um $TIME : ">$TMP #Ermittel aktuelle Internet IP #Dafür wird root benötigt, also sudo verwenden `sudo ifconfig ippp4 | grep inet | gawk '{print $2 }' >> $TMP` #Versende lokal (Debug) und an HAndy als SMS mail $EMAIL <$TMP mail $SMS <$TMP else #Bei fehlerhafter Verbindung erzeuge Fehlermeldung echo "Die Internet-Einwahl um $TIME hat nicht funktioniert!! ">$TMP #Versende Fehlermeldung lokal (Debug) und an Handy als SMS mail $EMAIL <$TMP mail $SMS <$TMP fi fi #Lösche Temporäre Datei rm $TMP |
Ich denke die Erklärungen im Script reichen, bis auf die Ermittlung der
IP-Adresse (`sudo ifconfig ippp4 | grep inet | gawk '{print $2 }' >>
$TMP`).
Leider ist es nicht so einfach verläßlich (!) die aktuelle IP-Adresse zu
lesen. Ich verwende hier die Ausgabe von ifconfig und filtere mir die entsprechende
Zeile und Spalte heraus. Leider gibt es hier ein kleines Problem: Nur root
kann das !!
Deswegen benutze ich das Programm sudo, damit kannst du den Zugriff mit
root-Rechten sehr einschränken.
Damit das alles geht, mußt du das Programm visudo (als root) aufrufen und
folgendes eingeben:
# Host alias specification Host_Alias SERVER = 192.168.44.10 # User alias specification User_Alias INTER = inter # Cmnd alias specification Cmnd_Alias IFCONFIG=/sbin/ifconfig # User privilege specification root ALL=(ALL) ALL INTER SERVER = NOPASSWD:IFCONFIG |
Auf sudo möchte ich aber hier nicht weiter eingehen, aber einige Tipps:
- du mußt wohl immer mit den Aliases arbeiten
- immer visudo verwenden (das geht nur als root)
So das war es, und mal den isdnlog neustarten:
root : /etc/init.d/isdnutils restart |
Bevor du mit dem Handy testest, erstmal den sudo-Befehl testen:
[inter]~/$: sudo ifconfig |
Das sollte nun funktionieren, du solltest die Ausgabe von ifconfig sehen.
Achja, probier mal kurz aus ob gawk vorhanden ist. In der Standard-Installation
fehlt es (Paketname "gawk" Binary-CD1).
Nächster Test, als Benutzer inter das Skript von Hand starten:
[inter]~/$: ./goonline.sh Inet-Trigger |
Wenn du nun die SMS mit der IP bekommen hast, kannst du mit deinem Handy
den Server anrufen (es ist besetzt, und das ist richtig).
Es sollte nun alles gehen, ansonsten die Fehlermeldungen kontrollieren
und in die Log-Dateien sehen.
So fertig, du solltest deinem Rechner aber noch beibringen nach einer bestimmten
Zeit automatisch die Verbindung zum Internet-Provider zu trennen. Könnte
sonst teuer werden :-))
Sollte eine Firewall einsetzen, mußt du diese jetzt ein wenig umändern.
Du brauchst eine Regel die den Zugang zu deinem Rechner erlaubt.
Ich empfehle hierfür OpenSSH [4] zu verwenden.
[1] | DynDNS: | http://www.dyndns.org/ |
[2] | ISdns: | http://www.isdns.net/ |
[3] | Mehrere Provider mit ISDN unter Debian nutzen | http://www.tuxhausen.de/software_isdn_isp.html |
[4] | OpenSSH: | http://www.openssh.org |
Erstellt: 2002-12-26 | Autor: Markus Ungermann (mu@tuxhausen.de) |
Letztes Update: | URL: http://www.tuxhausen.de/handy_einwahl.html |