Linux-Skripte

Nachfolgende Erklärungen gestatten eine recht komfortable Einwahl, auch wenn mehrere Provider benutzt werden. Wir können auch relativ schnell den Provider wechseln oder mal einen anderen probieren. Dieses Beispiel ist für 1&1.

Wie fangen wir an?

1. Als erstes sollten natürlich die Grundvoraussetzung vorhanden sein. Also Kernelunterstützung für ppp und TCP/ IP, DNS-Server in der Datei /etc/resolv.conf und die ppp-Pakete sind vorhanden. Der Modem sollte mit YaST eingerichtet sein und auf /dev/modem gelinkt sein.

# resolv.conf
search online.de
nameserver 195.20.224.234
nameserver 194.25.1.129

(siehe auch Hinweise zur dynamischen IP-Nummernvergabe)

2. 1&1 verwendet für die Authentizierung PAP. Das authentizieren wird durch die Datei /etc/ppp/pap-secrets gesteuert. Wenn diese Datei nicht vorhanden ist, wird sie nach folgendem Muster angelegt:

# Secrets for authentication using PAP
# client server secret IP addresses
"1und1/1234-567" * "Passwort"

Dabei ist unbedingt darauf zu achten, dass die Leerzeichen zwischen den Einträgen mit der Tabulatortaste [Tab] und nicht mit der Leertaste [Space] gesetzt werden. Auch die Anführungsstriche sollten nicht vergessen werden.

3. Als nächsten Schritt überprüfen wir, ob die Datei /usr/sbin/pppd existiert. Wenn nicht, dann das Paket ppp nachinstallieren.

4. Jetzt legen wir eine Datei 'options' in /etc/ppp/ an. Diese Datei 'options' sollte leer bleiben, enthält also keinen Eintrag.

5. Weiterhin wird eine providerspezifische chat-Datei in /etc/ppp/ angelegt. Ich nenne meine mal premium.chat (von Premium-Tarif), auch um die Provider auseinander halten zu können.

Die Datei 'premium.chat' hat bei mir folgende Inhalt:

TIMEOUT 60
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT ERROR
"" +++ATZ
OK ATM0
OK ATDT019102345
CONNECT

Zu den Modembefehlen muss gesagt werden, dass nicht jeder Modem den gleichen Befehlssatz verwendet. Nicht immer wird der Modem mit z. B. "ATZ" initialisiert. Der Lautsprecher wird mit ATM0 stummgeschalten. Für die Lautstärke kommen auch noch ATM1, ATM2 und ATM3 in Frage. Zum anfänglichem Probieren sicher empfehlenswert. Genauen Aufschluss über alle Befehle finden wir in den Modem-Handbüchern.
Zur Einwahlnummer sei nur soviel bemerkt, dass sich jeder bitte selber schlau macht über die für ihn günstigste Variante. Das gilt besonders für Leute mit Pre-Selection-Verträgen.
Für Fehlkonfigurationen wird natürlich keine Haftung übernommen!

6. Jetzt brauchen wir noch in /etc/ppp/ eine Datei 'premium.options'. Diese legen wir wie folgt an:

/dev/modem
115200
crtscts
lock
name "1und1/1234-567"
noipdefault
defaultroute
-vj
-vjccomp
-ac
-pc
mru 1524
mtu 1500
asyncmap 00000000
debug

Die Anführungszeichen für die User-ID bei der Option 'name' sind wichtig!
Nähere Erklärung für die anderen Parameter liefert das SuSE - Handbuch, ich möchte hier nicht weiter darauf eingehen.

7. Jetzt kann es schon losgehen. Mit dem folgendem Befehl (alles in eine Zeile!) wird die Verbindung aufgebaut:

/usr/sbin/pppd connect "/usr/sbin/chat -f /etc/ppp/premium.chat" file /etc/ppp/premium.options

8. Mit diesen Einstellungen sollte alles funktionieren. Läßt man einen tail -f auf /var/log/messages mitlaufen, kann man den Verbindungsaufbau mitprotokollieren. Dazu gibt man auf einer anderen Konsole oder in einem xterm den folgenden Befehl ein:
tail -f /var/log/messages

9. Mit folgendem Befehl wird die Verbindung beendet:

kill -INT `cat /var/run/ppp0.pid`

10. Sollte bis hierher alles funktionieren, kann man alles in 2 Skripte packen und in /etc/ppp/ ablegen:

/etc/ppp/ppp-on

#!/bin/sh
#
#
/usr/sbin/pppd connect "/usr/sbin/chat -f /etc/ppp/$1.chat" file /etc/ppp/$1.options

/etc/ppp/ppp-off

#!/bin/sh
#
#
if [ -r /var/run/ppp0.pid ]; then
kill -INT `cat /var/run/ppp0.pid`
echo "PPP link to ppp0 terminated."
exit 0
fi

11. Da der pppd etwas pingelig ist, hier noch die Rechte aller beteiligten Dateien:

-rw------- 1 root root pap-secrets
-rw-r--r-- 1 root root premium.chat
-rw-r--r-- 1 root root premium.options
-rwxr-xr-x 1 root dialout ppp-off
-rwxr-xr-x 1 root dialout ppp-on

Das heisst also, wenn wir als "user" die Verbindung starten wollen, müssen wir Mitglied der Gruppe 'dialout' sein. Aber die Zugriffsrechte sollen hier grundsätzlich nicht abgehandelt werden.

12. Mit /etc/ppp/ppp-on premium können wir jetzt eine Verbindung ins Internet aufbauen, mit /etc/ppp/ppp-off wieder trennen. Links auf die Skripte ersparen zusätzlich Tipperei! Ich gebe z.B. nur premium ein und die Verbindung startet, mit off trenne ich sie wieder.

13. Sollte es wider Erwarten nicht funktionieren, finden wir, auf Grund der eingeschaltete debug-option in premium.options, in /var/log/messages die Fehlermeldungen.

14. Wenn man mal den Provider wechseln, oder mal einen dieser neuen CallByCall-Provider ausprobieren will, braucht man nur wie oben beschrieben Neuer-Provider.chat und Neuer-Provider.options mit selben Inhalt erstellen, in pap-secrets (oder eventuell in der chap-secrets, je nach Anbieter) User-ID und Passwort eintragen und schon kann man mit /etc/ppp/ppp-on Neuer-Provider eine Verbindung aufbauen.

15. Fast schon Luxus sind die Skripts ip-up und ip-down, die automatisch vom PPP-Daemon ausgeführt werden, wenn die Verbindung auf- bzw. abgebaut wird. Damit kann man z.B. automatisch eMail versenden bzw. abholen, sobald die Verbindung steht. Praktisch ist auch die Umleitung des date-Befehls in eine Datei, was die Auswertung der Verbindungszeit erlaubt.

Hier als Beispiel die Datei ip-up:

#!/bin/sh
#
# When the ppp link comes up this script is called with the following
# parameters
# $1 the interface name used by pppd (e.g. ppp0)
# $2 the tty device name
# $3 the tty device speed
# $4 the local IP address for the interface
# $5 the remote IP address
# $6 the parameter specified by the 'ipparam' option to pppd
#
echo "$(date) PPP-UP" >> /var/log/connectlog

und die Datei ip-down:

#!/bin/sh
echo "$(date) PPP-DOWN" >> /var/log/connectlog

Mit einem Skript kann man dann die Datei /var/log/connectlog auswerten und die Summe der Verbindungszeiten berechnen.

Das Programm pppcosts, welches auch über eine TCL-Oberfläche verfügt, zeigt komfortabel die verbrauchte Online-Zeit und die angefallenen Telefonkosten an, unter: http://www.isjm.com/tst/pppcosts_f.htm erhältlich.