Linux als PPP-Client konfigurieren

Wichtung: 3

Beschreibung: Die Kandidaten sollen in der Lage sein, die Grundlagen des PPP-Protokolls zu verstehen und PPP für abgehende Verbindungen zu konfigurieren.

Wichtigste Wissensgebiete:
Definition der Chat-Sequenz für den Verbindungsaufbau (für ein vorgegebenes Login-Beispiel) und Einrichtung von automatisch beim Verbindungsaufbau auszuführenden Befehlen.
Aufbau und Beendigung einer PPP-Verbindung über Modem, ISDN oder ADSL mit den geeigneten Scripts.
PPP für die automatische Neuwahl nach Verbindungsabbruch konfigurieren.

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:
/etc/ppp/options.*
/etc/ppp/peers/*
/etc/wvdial.conf
/etc/ppp/ip-up
/etc/ppp/ip-down
wvdial
pppd

PPP - Point-To-Point-Protokoll

Wie der Name schon sagt wird PPP für eine Punkt-Zu-Punkt-Verbindung benötigt. Die Aufgabe von PPP ist es, Rechner über serielle Leitungen mit anderen Rechnern zu verbinden, die wiederum an ein Netzwerk angeschlossen sind. Somit erhält der Rechner über einen anderen Rechner (beide Rechner sind via serieller Schnittstelle miteinander verbunden) Zugriff auf das Netzwerk.

Ein gutes Beispiel für eine Verbindung über PPP ist eine Verbindung in das Internet über die heimische DSL-Leitung. Beginnend beim PC wird eine herkömmliche Verbindung über das LAN zum DSL-Modem hergestellt. Nun muss eine Verbindung über das Telefonnetz zum DSL-Provider hergestellt werden. Hierfür wird eine serielle Punkt-Zu-Punkt-Verbindung vom DSL-Modem zum DSL-Provider hergestellt. Letzterer ermöglicht dann den Zugriff auf das World Wide Web.

Aber nicht nur bei ADSL-Verbindungen wird das Point-To-Point-Protokoll eingesetzt, sondern auch Modem- und ISDN-Verbindungen.

/etc/ppp/ip-up und /etc/ppp/ip-down

Die Skripte /etc/ppp/ip-up und /etc/ppp/ip-down werden zum Verbindungsaufbau und -abbau einer PPP-Verbindung benötigt. Weitere Informationen findet man hier: http://www.linuxhaven.de/dlhp/HOWTO/DE-PPP-HOWTO-14.html.

Automatisierung der Verbindung mit chat

Der Verbindungsaufbau über ein Modem in das Internet erfolgt nach dem Frage/Antwort Prinzip. Das Modem des Anwenders tauscht mit dem ISP (Internet Service Provider) wichtige Verbindungseinstellungen und Login-Daten aus. Dieses Prinzip nennt man Handshake-Authentifizierung.

Es ist möglich, die Authentifizierung manuell durchzuführen, quasi die Fragen des ISP interaktiv zu beantworten. Dieses wäre für den Anwender auf Dauer nicht praktikabel. Für diesen Zweck wird das Programm chat eingesetzt, welches die Einwahl automatisiert. In einer Skript-Datei werden die benötigten Daten notiert.

Beispiel:

  ''   ATZ
OK ATD01905333666555
CONNECT ''
ogin: user@lycos.de
ssword: miezekatze

Erklärung/Mögliche Einträge:

chat -v -l LCK..$DEVICE
rufe chat auf und erzeuge eine lock Datei für diese serielle Schnittstelle, damit nur diese Applikation auf die Schnittstelle zugreift ($DEVICE ist eine Shellvariable, die die Schnittstelle festlegt). Das -v fordert chat auf, all sein I/O in der Logdatei des Systems mitzuschreiben(normalerweise /var/log/messages)
ABORT "NO CARRIER" ABORT BUSY
Falls Du eine dieser Antworten erhälst, breche den Versuch ab.
"" ATZ
erwarte nichts (""), sende dann ATZ (setzt das Modem zurück).
OK ATDT$PHONE
erwarte OK (die Modem Antwort auf ATZ), wähle $PHONE (eine andere Shellvariable, die die Nummer angibt, die gewählt werden soll).
CONNECT ""
erwarte CONNECT (das Modem auf der anderen Seite hat geantwortet und die Modems haben erfolgreich die Baud Rate usw. abgestimmt), sende nichts ("").
ogin: $USER
erwarte ogin:, das Login Prompt (ohne das führende l - dieses muß an das Prompt angepaßt werden, das der eigene ISP benutzt), und sende $USER (eine Shellvariable, die den eigenen Namen enthält).
ssword: \\q$PASSWORD
erwarte assword: das Passwort Prompt (ohne das führende p) und sende $PASSWORD (eine weitere Shellvariable, die das eigene Paßwort enthält) Das \\q fordert chat auf, daß Paßwort nicht mittels syslog zu speichern, wenn es mit -v aufgerufen wird.

Quelle: http://www.linuxhaven.de/dlhp/HOWTO/DE-PPP-HOWTO-14.html

Um den PPP-Daemon mit diesem Script zu starten, wird der Befehl

  pppd "chat -f Scriptdatei" /dev/tty2 38400

eingegeben. Scriptdatei bezeichnet die Datei, die das oben besprochene Chat-Script enthält. Dadurch wird eine PPP-Verbindung automatisch aufgebaut. Der PPP-Daemon pppd wird aufgerufen und er erhält als ersten Parameter den Aufruf von Chat, mit der Scriptdatei.

Automatisierung der Verbindung mit wvdial

Der Nachfolger von chat ist wvdial, welches noch bequemer ist. wvdial erledigt alle Aufgaben, von der Anwahl über das Modem, bis hin zum Start des PPP-Daemons. wvdial wird über die Konfigurationsdatei /etc/wvdial.conf konfiguriert, in welcher die Zugangs- und Verbindungsdaten festgelegt werden. Die Syntax ist selbsterklärend:

  [Dialer Defaults]
Modem = /dev/modem
Baud = 57600
Init1 = ATZ
Dial Command = ATDT
Idle Seconds = 180
Phone = 01905666333555
Username = 1324@lycos.de
Password = mietzekatze

[Dialer Lycos]
Phone = 05451135445345
Username = ich
Password = ganzgeheim

[Dialer Freenet]
Phone = 51515416864
Login Prompt = Helo:
Username = Du
Password = nochgeheimer

/etc/ppp/options

Der PPP-Dämon muss in der Regel mit zahlreichen Optionen gestartet werden. Diese Optionen können in der Datei /etc/ppp/options eingetragen werden, damit dieser Umstand entfällt. Da man in mehrere Schnittstellen im System haben kann, ist es möglich, für jede Schnittstelle eine eigene Konfigurationsdatei anzulegen.

/etc/ppp/options.ttyS1
/etc/ppp/options.ttyS2
/etc/ppp/options.modem


noipdefault = Der ppp-Client bezieht seine Adresse vom Server
noauth = Keine automatische Authentifizierung.
crtscts = Hardware-Flußkontrolle des Modems wird aktiviert
lock = Lockdateien werden zur Vermeidung weiterer Zugriffe angelegt
modem = Die Verbindung läuft über ein Modem
defaultroute = Die aufgebaute PPP-Verbindung wird als Default Route gesetzt.
persist = Automatische Wiedereinwahl nach Trennung der Verbindung
maxfail N = Die Verbindung wird abgebrochen, wenn N mal die Verbindung durch einen Fehler abgebrochen wurde.
idle N = Die Verbindung wird automatisch beendet, wenn mehr als N Sekunden keine Daten über sie gelaufen sind.