msn easysurfer Internet-by-Call mit ISDN unter Linux
Es ist garnicht so schwer, msn easysurfer unter Linux zu nutzen. Ich gehe jetzt davon aus, daß Du schon ISDN-Support in den Kernel eingebaut hast, andernfalls findet man auf den ISDN-Seiten von Bernhard Hailer sicherlich viele Anregungen. Auch in der isdn4linux-FAQ und im ISDN4Linux Tutorium solltest Du viele Hinweise finden, wie das System zu konfigurieren ist.Parameter der Verbindung
- Authentifizierung:
- PAP
- Level 2 Protokoll:
- HDLC
- Level 3 Protokoll:
- transparent
- Encapsulation:
- SyncPPP
PPP-Konfiguration
Im wesentlichen wird PPP über die Datei /etc/ppp/options (bei neueren Versionen /etc/ppp/ioptions) konfiguriert. Da ich persönlich es nicht mag, daß eine einzige Datei für alle PPP-Verbindungen, also auch für die analog betriebenen, zuständig ist, ist diese Datei bei mir komplett leer und alle Optionen werden dem pppd bzw. ipppd direkt beim Aufruf mitgegeben.Authentifizierung
Die Authentifizierung geschieht mittels PAP. Hierzu legt man die Datei /etc/ppp/pap-secrets an, die folgenden Inhalt haben sollte:# Secrets for authentication using PAP # client server secret IP addresses msn msn msn -Sowohl Username (msn) als auch Passwort (msn) sind für alle User identisch, hier braucht man also keine persönlichen Anpassungen vornehmen. Da die IP-Nummer dynamisch zugewiesen wird, geben wir die hier nicht an.
Nameserver
Wie beim Connect per Modem üblich, muß auch per ISDN der verwendete Nameserver in /etc/resolv.conf definiert werden:nameserver 192.76.144.66
Aufbau der Verbindung
Um die Verbindung aufzubauen sind einige Schritte durchzuführen, am besten in einem kleinen Shell-Skript, das man von Hand oder mit isdnbutton startet.#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin # Interface erzeugen: isdnctrl addif ippp0 # Telefonnummern des Servers konfigurieren: # Die zuletzt angegebene Nummer wird zuerst ausprobiert. Wenn man dort # keinen Connect bekommt, werden die anderen Nummern verwendet. isdnctrl addphone ippp0 out 010880192658 # Eigene MSN (ohne Vorwahl!) dem Device zuordnen: isdnctrl eaz ippp0 1234567 # Nach 60 Sekunden "Funkstille" Verbindung automatisch beenden: isdnctrl huptimeout ippp0 60 # Dafuer sorgen, dass sich niemand von unberechtigt bei uns einwaehlt: isdnctrl secure ippp0 on # Protokoll definieren: isdnctrl l2_prot ippp0 hdlc isdnctrl l3_prot ippp0 trans isdnctrl encap ippp0 syncppp isdnctrl dialmode ippp0 auto # Das Interface konfigurieren (mein.rechnername sollte der Name des # eigenen Rechners sein, er tut nichts zur Sache, es muss also nichts # mit msn oder so im Namen sein): ifconfig ippp0 mein.rechnername metric 1 # Default-Routing auf das Device setzen: route add default ippp0 # ipppd starten: ipppd /dev/ippp0 \ remotename msn \ user msn \ ipcp-accept-local \ ipcp-accept-remote \ noipdefault \ -vjccomp \ -ac \ -pc \ -bsdcomp \ -vj \ defaultrouteWie schon oben gesagt, gebe ich dem ipppd alle Optionen direkt mit, statt sie in /etc/ppp/options (alter ipppd) bzw. /etc/ppp/ioptions (neuer ipppd) global zu definieren. Hier ist zu beachten, daß der remotename mit dem in /etc/ppp/pap-secrets angegebenen Namen übereinstimmt und daß der Username korrekt angegeben wird. Falls Probleme mit dem Handshake auftreten, empfiehlt es sich, zusätzlich noch die Option debug anzugeben, dann sollte man allerdings sehr vorsichtig mit seinen Logfiles umgehen, da dann auch das Passwort unverschlüsselt im Logfile zu sehen ist.
Weiterhin sollte man beim Testen beachten, daß der ipppd sich nicht einfach mittels
killall ipppdbeenden läßt, sondern daß ein
killall -9 ipppdnotwendig ist. Andernfalls muß man damit rechnen, daß zwei ipppd gleichzeitig laufen, von denen immer der falsche die Anfragen beantwortet und man sich wundert, warum die veränderte Konfiguration völlig ignoriert wird.
Abbau der Verbindung
Am einfachsten ist die Verbindung abzubauen, indem man wartet, bis huptimeout abgelaufen ist und isdn4linux daher automatisch "auflegt". Dabei sollte man aber bedenken, daß isdn4linux dial-on-demand unterstützt, d.h. sobald irgendein IP-Paket den Rechner über die default-Route verläßt, wird automatisch wieder eine Verbindung aufgebaut und das kann schnell ins Geld gehen.Daher verwende ich hier ein Shell-Skript, das die Verbindung brutal abbricht:
#!/bin/sh # Route loeschen: /sbin/route del default # Interface loeschen: /sbin/ifconfig ippp0 down /sbin/isdnctrl delif ippp0 # ipppd beenden: /usr/sbin/killall -9 ipppd