]>

# Das Kppp Handbuch

Bernd Johannes
Wuebben

    wuebben@kde.org

Version 1.6.2
5. Februar 1999

Dieses Handbuch beschreibt Kppp Version 1.6.2.

KPPP

KDE
internet
kppp

## Einführung

### Über Kppp

`BITTE DENKEN SIE DARAN, DIE HÄUFIG GESTELLTEN FRAGEN ZU LESEN! DANKE!`

Kppp ist ein Wähler und Frontend für pppd. Es bietet interaktive Skript-Erstellung und Netzwerkeinstellung. Es automatisiert den Einwahlprozeß zu Ihrem Internet-Provider während Sie bequem den gesamten Vorgang überwachen können. Sobald Sie verbunden sind, bietet Kppp eine große Anzahl an Statistiken und überwacht für Sie die online verbrachte Zeit. Ein eingebautes Terminal und ein Skriptgenerator erlauben Ihnen, Ihre Verbindung mit Leichtigkeit einzustellen. Sie benötigen keine weiteren Terminalprogramme wie Seyon oder Minicom, um Ihre Verbindung zu testen und einzustellen. Kppp bietet eine ausgefeilte Telefonkostenabrechnung, die Ihnen erlaubt, Ihre Onlinekosten einfach im Blick zu behalten.

### Autoren

Kppp wurde aus ezppp 0.6 von Jay Painter weiterentwickelt. Allerdings wurde fast alles in Kppp neu geschrieben, so daß ezppp und Kppp fast nichts mehr gemeinsam haben.

Die Hauptentwickler sind:

- `Bernd Johannes Wuebben` wuebben@kde.org

- `Mario Weilguni` mweilguni@sime.com

- `Harri Porten` porten@kde.org

Vielen Dank an folgende Leute, die Code zu Kppp beigesteuert haben:

- Jesus Fuentes Saaverdra für Implementierung einiger Optionen und verschiedener anderer Arbeiten.

- Markus Wuebben für den ATI Fragedialog.

- Peter Silva für Popup-Dialoge und andere Hilfen.

- Martin A. Brown für Testlesen von englischem Text im Programm.

- Martin Häfner für das Kapitel callback

- Olaf Kirch für Einführung in die Mysterien der "File-Descriptor"-Übergabe.

Deutsche Übersetzung:

- Oliver Hensel <oliver.hensel@gmx.de>

- Matthias Kiefer <matthias.kiefer@gmx.de>

### Lizenz und Garantie

Kppp ist unter den Bedingungen der GNU General Public License (GPL) veröffentlicht. Es gibt keine Garantie, das dieses Programm funktioniert, oder sonstiges.

## Installation

`BITTE DENKEN SIE DARAN, DIE HÄUFIG GESTELLTEN FRAGEN ZU LESEN! DANKE!`

### Wie man Kppp bekommt

Kppp ist eine Anwendung für das KDE-Projekt http://www.kde.org. Kppp kann auf ftp://ftp.kde.org/pub/kde/ gefunden werden, des FTP-Servers des KDE-Projekts.

### Voraussetzungen

Um Kppp erfolgreich zu compilieren, benötigen Sie die aktuellsten Versionen von libkdecore und libkdeui. Alle benötigten Bibliotheken sowie Kppp selbst können auf ftp://ftp.kde.org/pub/kde/ gefunden werden.

### Kompilierung und Installation

`BITTE DENKEN SIE DARAN, DIE HÄUFIG GESTELLTEN FRAGEN ZU LESEN! DANKE!`

Ich konnte Kppp nur auf Linux testen, aber Sie sollten Kppp auf verschiedenen Plattformen, unter anderem SVR4, Solaris 2, Linux, FreeBSD, NetBSD, SunOS 4, AIX 4, OSF/1, zum Laufen bringen, wenn Sie pppd auf diesen Systemen ebenfalls installiert haben.

Falls Sie Kppp auf einer anderen Plattform als Linux compilieren möchten, überprüfen Sie bitte zuerst kurz die ersten paar Zeilen aus `pppstats.cpp` und stellen Sie sicher, daß die ``defines'' und ``includes'' in Ordnung sind. Wahrscheinlich sind sie das. Bitte informieren Sie mich über etwaige nötige Änderungen.

Um Kppp auf Ihrem System zu compilieren und installieren, geben Sie im Grundverzeichnis des Kppp-Pakets folgendes ein:

    % ./configure
    % make
    % make install

Dies installiert Kppp mit gesetztem SUID-Bit.

Stellen Sie sicher, das die Optionsdatei von pppd, die normalerweise in `/etc/ppp/` steht, existiert aber leer ist. pppd braucht diese Datei, aber sie muß leer sein, da sonst pppd keine Einstellungen von Kppp übernimmt.

Nochmal:Sollten bei Ihnen Probleme auftauchen, berichten Sie mir davon.

### Vorbereitung Ihres Linux-Systems für eine PPP-Verbindung

Um Kppp/pppd mit Ihrem Kernel zum laufen zu bringen, benötigen sie PPP-Unterstützung. Falls sie das nicht haben, holen Sie sich die neueste Version von pppd von einem der populären Linuxarchiven und compilieren Sie Ihren Kernel mit eingeschalteter PPP-Unterstützung. Haben Sie keine Angst, das hört sich schwieriger an, als es ist. Vergessen Sie nicht, pppd danach zu installieren. Falls Sie unsicher sind, ob Sie einen Kernel mit PPP-Unterstützung haben, geben Sie `dmesg` auf der Kommandozeile ein, und suchen Sie nach etwas wie:

    PPP: version 2.3.0 (demand dialling)
    TCP compression code copyright 1989 Regents of the University of California
    PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
    PPP line discipline registered

Es gab bei PPP Änderungen von der Linux-Version 1.2.x nach 2.0.x, die die Programmierung eines neuen pppd-Dämons benötigten. Bei den meisten Distributionen kann der pppd-Dämon in `/usr/sbin` gefunden werden. Bei Kernelversionen 1.2.x ist die richtige pppd-Version 2.1; für Kernelversionen 2.0.x ist das 2.2 oder neuer; für Kernelversionen 2.1.x und 2.2.x brauchen Sie pppd Version 2.3. Falls Sie nicht wissen, welche Version von pppd Ihr System hat, können Sie folgendes eingeben:

    % pppd --version

Kein pppd-Dämon hat wirklich eine `--version`-Option, aber die Verwendung dieser Option bewegt den pppd-Dämon dazu, einen Fehler über eine nicht erkannte Option, eine Liste von Optionen und die Versionsnummer auszugeben.

### Mehr über PPP/pppd

Die folgende Webseiten könnten von Interesse für weiterführende Informationen über das PPP-Protokoll, pppd und Netzwerke im allgemeinen sein:

- Linux PPP FAQ: http://metalab.unc.edu/mdw/FAQ/PPP-FAQ.html

- Linux PPP HOWTO: http://metalab.unc.edu/mdw/HOWTO/PPP-HOWTO.html

- http://www.thoughtport.com:8080/PPP/index.html

- The Network Administrators' Guide: http://metalab.unc.edu/mdw/LDP/nag/nag.html

## Kppp einstellen

Um Kppp einzustellen, starten Sie Kppp und drücken Sie den Einstellungen-Knopf in Kppp's Hauptfenster. Ein neuer Dialog erscheint.

### Zugänge

Dieser Dialog zeigt die von Ihnen erzeugten Zugänge. Sie müssen mindestens einen Zugang erstellen. Der Kosten zurücksetzen-Knopf setzt die gesamten Kosten für den gewählten Zugang auf Null zurück. Typischerweise werden Sie diesen Knopf einmal im Monat betätigen wollen, nachdem Sie Ihre Telefonrechnung überprüft haben.

### Gerät

Modemgerät

  Wählen Sie das passende Gerät für Ihre Hardware. Hier sind einige Beispiele:

  - /dev/ttyS0 - DOS oder Windows Benutzer kennen dies als COM1, COM2 ist /dev/ttyS1 und so weiter. Diese Geräte werden hauptsächlich unter Linux benutzt.

  - /dev/cua0 - der erste serielle Anschluß (COM1). COM2 wäre /dev/cua1 und so weiter. Diese Geräte werden hauptsächlich auf BSD Systemen benutzt: FreeBSD, NetBSD und OpenBSD.

  - /dev/ttyI0 - unter Linux gehört dieses zu internen ISDN-Karten. Diese Geräte emulieren ein gewöhnliches Hayes-kompatibles Modem. /dev/ttyI0 ist die erste, /dev/ttyI1 die zweite ISDN-Karte usw. Diese Geräte sind nur in der Linux Version vorhanden.

  - /dev/modem - viele Linuxdistributionen erstellen einen symbolischen Link vom realen Modemgerät zu /dev/modem. Sie sollten es vermeiden, diesen Link zu benutzen. Verwenden Sie besser /dev/ttySx (x ist eine Zahl).

Flußkontrolle

  Wählen Sie aus Hardware- (CRTSCTS), Software- (XON/XOFF) und keiner Flußkontrolle. Die empfohlene Einstellung ist Hardware-Flußkontrolle.

Zeilenende

  Wählen Sie die richtige ``Enter''-Zeichenfolge für Ihr Modem. Die meisten Modems nutzen ``CR/LF''. Trotzdem benötigen manche Modems eine andere Einstellung. Falls bei Ihnen Probleme beim Ablauf eine Skripts auftreten: Spielen Sie mit diesem Parameter herum.

Geschwindigkeit

  Wählen Sie sie aus der Liste, der von Ihrer seriellen Schnittstelle unterstützten Verbindungsgeschwindigkeiten.

Sperrdatei verwenden

  Aktivieren Sie diese Option, wenn Kppp eine Sperrdatei erstellen soll. Unter Linux wird diese Datei in `/var/lock` erstellt. Programme wie mgetty bestehen auf der Existenz solcher Sperrdateien und Kppp arbeitet nicht mit mgetty, wenn die Sperrdatei nicht verwendet wird. Stellen Sie sicher, daß Sie nicht die Option ``lock'' bei pppd nutzen, falls Kppp die Modemsperrung übernimmt, da die Option ``lock'' pppd dazu bringt, selbst das Modemgerät sperren zu wollen. Da Kppp dann bereits das Modem gesperrt hat, scheitert pppd und Kppp wird sich mit ``pppd died unexpectedly'' melden.

Modem-Wartezeit

  Das ist die Zeit, die Kppp auf die ``CONNECT''-Antwort von Ihrem Modem nach der Anwahl eines anderen Modems wartet. (Typischerweise ein Modem von Ihrem ISP.) Ich empfehle eine Einstellung von etwa 30 Sekunden.

### Modem

Modembefehle

  Damit kommen Sie in einen Dialog, den Sie mit den passenden Modembefehlen für Ihr Modem ausfüllen müssen. Falls Sie ein Hayes-kompatibles Modem besitzen, müssen Sie wahrscheinlich die Standardeinstellungen nicht ändern. Ich empfehle Ihnen aber trotzdem den Abschnitt über Hayes-Befehle im Anhang dieser Dokumentation zu lesen. Die dort gebotenen Informationen sollten auch von Hilfe sein für den Fall, daß Sie auf Probleme bei der Einstellung einer stabilen Verbindung zu Ihrem ISP stoßen. Die zwei Einstellungen "Pre-Init Verzögerung" und "Post-Init Verzögerung" könnten von besonderem Interesse sein, wenn Sie Modem lock-ups testen. Diese Optionen veranlassen Kppp dazu, vor und nach dem Senden des Init-Strings kurz anzuhalten. Die "Pre-Init-Verzögerung" wird durch Senden eines CR abgeschlossen, wenn nicht als Verzögerungsintervall 0 eingestellt wurde.

Modemabfrage

  Auf Betätigung des Modemabfrage-Knopfs hin befragt Kppp Ihr Modem nach seiner Identifikation. Bei Erfolg wird die Antwort Ihres Modems in einem Dialog dargestellt. Das kann, abhängig von Ihrem Modem, mehr oder weniger informativ sein.

Terminal

  Durch Betätigung des Terminal-Knopfs wird ein Miniterminal gestartet. Sie können das Miniterminal benutzen, um Ihr Modem zu testen, und mit dem Anmeldeprotokoll für eine PPP-Verbindung mit Ihrem ISP zu experimentieren. Sie benötigen nicht länger ein Terminalprogramm wie Minicom oder Seyon.

### PPP

pppd-Wartezeit

  Kppp wartet diese Zeit nach dem Ablauf des Skripts und dem Start von pppd, bis pppd eine gültige PPP-Verbindung aufgebaut hat, bevor es aufgibt und pppd beendet.

Bei Verbindung in Kontrolleiste einbinden

  Falls diese Option gewählt ist, bindet sich Kppp in die Kontrolleiste ein, wo es durch ein kleines animiertes Symbol symbolisiert wird. Klicken Sie mit der linken Maustaste darauf, um das Kppp-Fenster wieder herzustellen. Die rechte Maustaste öffnet ein Popup-Menü das anbietet, das Fenster wieder herzustellen, weitere Übertragungsstatistiken anzuzeigen oder die Verbindung zu schließen. Diese Option hat Vorrang vor Minimiere Fenster nach dem Verbinden.

Automatische Neuwahl nach Trennung

  Diese Auswahl bewirkt, daß Kppp versucht, sich erneut zu verbinden, falls Sie unabsichtlich getrennt werden während Sie online sind.

Zeige Verbindungsdauer im Fenstertitel

  Damit zeigt Kppp die Verbindungszeit im Titel des Kppp-Fensters während Sie online sind an.

Trennen bei Schließen des X-Servers

  Die Aktivierung dieser Option bewirkt, daß Kppp die PPP-Verbindung beendet, das Modem auflegen läßt und die Gebührenzählung in ordentlicher Weise beendet, wenn der X-Server beendet wird. Das ist nützlich, falls sie immer wieder vergessen, Kppp vor Beenden des X-Servers zu schließen, oder falls Sie sich einfach keine Sorgen über das Trennen Ihrer Verbindung machen möchten. Falls Sie nicht möchten, daß Kppp das Modem bei Beenden des X-Servers auflegen läßt, sollten Sie diese Option nicht aktivieren. Denken Sie aber daran, daß Sie bei eingeschalteter Gebührenzählung einen nicht beendeten Gebühreneintrag in Ihrer Gebührenabrechnung haben werden, wenn der X-Server sich und damitKppp beendet.

Minimiere Fenster nach dem Verbinden

  Das Kppp-Fenster wird nach dem Aufbau einer Verbindung minimiert. Die verstrichene Verbindungszeit wird in der Programmleiste angezeigt.

## Einen Zugang konfigurieren

### Wählen

Verbindungsname

  Sie müssen einen Zugangsnamen angeben. Sie können einen beliebigen Namen wählen, aber wenn Sie mehrere Zugänge haben, muß dieser eindeutig sein.

Telefonnummer

  Geben Sie die zu wählende Telefonnummer an. Sie dürfen Zeichen wie ``-'' benutzen, um die Nummer lesbarer zu machen. Wenn Sie eine Serie von Nummern (durch Doppelpunkte getrennt) eingeben, wird Kppp sie in dieser Reihenfolge durchprobieren, wenn die Leitung besetzt ist. Beispiel: "1111111:2222222:3333333"

Authentifizierung

  Wählen Sie die passende Authentifizierungsmethode, die Kppp benutzen soll, um Sie bei Ihrem Provider anzumelden. Erkundigen Sie sich bei Ihrem Provider, ob er PAP oder CHAP Unterstützung anbietet oder ob Sie eine Skript- oder Terminal-basierte Anmeldung vornehmen müssen.

Speichere Paßwort

  Aktivieren Sie diese Option, wenn Kppp bei der nächsten Verbindung Ihr Paßwort automatisch eingeben soll.

Führe bei Verbindung Programm aus

  Kppp versucht, den hier angegebenen Befehl auszuführen, sobald eine PPP-Verbindung hergestellt wurde.

Führe nach Trennung Programm aus

  analog zum Vorherigen.

Führe vor Trennung Programm aus

  Kppp wird dieses Kommando vor Trennung der Verbindung ausführen. DIes ist nützlich, wenn Sie eine Route oder Adresse ändern müssen, wenn Sie das Netz verlassen.

Bearbeite pppd-Argumente

  Das öffnet den pppd-Argumente-Dialog. Sie können diesen Dialog nutzen, um jede gewünschte Option hinzuzufügen, die Kppp an pppd weitergeben soll. Sehen Sie in der pppd-Manpage für eine Liste der verfügbaren Optionen nach. Solange Sie nicht genau wissen, was Sie tun, sollten Sie davon Abstand nehmen, an den pppd-Optionen herumzuspielen.

### IP

Dynamische IP-Adresse

  Aktivieren Sie diese Option, wenn Ihr ISP dynamische IP-Adresszuweisung benutzt. Das bedeutet, daß sich Ihre IP-Adresse vermutlich bei jedem Verbindungsaufbau ändert.

Statische IP-Adresse

  Wählen Sie dies, falls Ihr ISP Ihnen eine feste IP-Adresse gegeben hat. In diesem Fall müssen Sie auch diese Adresse und die Teilnetz-Maskierung angeben. Fragen Sie Ihren ISP, falls Sie unsicher sind.

Konfiguriere Hostname automatisch von dieser IP

  Wählen Sie diese Option, falls Sie möchten, daß Kppp den Host- und Domainnamen für Ihren Rechner nach erfolgreichem Verbindungsaufbau einstellt. Dies wird gemacht, indem der angegebene Domain Name Server mit der zugewiesenen IP-Adresse für die PPP-Verbindung befragt wird. Diese Option ist nützlich für Stand-Alone Rechner, die Protokolle wie talk nutzen wollen, die benötigen, daß der Hostname der gleiche ist, wie der, den Ihr Rechner im Internet hat. Es überschreibt die Domain-Namensoption im DNS-Abschnitt. Die Standardwerte werden auf die ursprünglichen Werte zurückgesetzt, wenn Sie die PPP-Verbindung schließen. Seien Sie vorsichtig, wenn Sie diese Option wählen: sie könnte sich als nützlich für Sie herausstellen, aber sie kann auch eine Menge an unerwünschten Nebeneffekten verursachen. Spielen Sie damit herum…

### DNS

Domain-Name

  Geben Sie den Domainnamen für Ihre Maschine an. Wie bei DNS-Adressen wird dies auf die ursprünglichen Angaben aus `/etc/resolv.conf` zurückgesetzt, wenn die Verbindung beendet wird. Falls Sie hier nichts eintragen, werden keine Änderungen am Domainnamen vorgenommen, der in `/etc/resolv.conf` angegeben ist.

DNS-Server

  Fügen Sie die Domain Name Server von Ihrem ISP an. Sie müssen mindestens einen Domain Name Server angeben, um menschlich lesbare IP-Adressen wie `ftp.kde.org` aufzulösen. Die angegebenen DNS-Serveradressen müssen in numerischer Form vorliegen, z.B. `128.231.231.233`. Die Adressen werden zur Laufzeit zu denen aus `/etc/resolv.conf` hinzugefügt.

Schalte während Verbindung existierende DNS-Servers aus

  Wählen Sie diese Option, wenn Kppp bereits vorhandene Nameserver-Einträge aus `/etc/resolv.conf` ausschalten soll.

### Gateway

Standard-Gateway

  Wählen Sie das, wenn pppd den Standard-Gateway für Ihre Maschine verwenden soll.

Fester Gateway

  Wählen Sie das, wenn Sie den zu benutzenden Gateway angeben möchten.

### Login-Skript

Skript bearbeiten

  Mit diesem Dialog können Sie ein Einwahlskript für Ihren ISP erstellen. Benutzen Sie das Mini-Terminal und die Informationen von Ihrem ISP, um herauszufinden, welche Reihenfolge von Aktionen ausgeführt werden muß.

  - Expect: Kppp wartet auf den Empfang der angegebenen Zeichenfolge.

  - Send: Kppp sendet die angegebene Zeichenfolge.

  - Scan: Kppp durchsucht die eingehenden Daten nach der gegebenen Zeichenfolge und speichert die darauffolgenden Zeichen bis zum nächsten Zeilenumbruch in einem internen Puffer. Leerzeichen am Anfang und Ende der gespeicherten Zeichenfolge werden entfernt.

  - Save: speichert den vorher mit 'Scan' gesuchten String permanent im angegebenen Register. Das einzige gültige Register ist bisher 'password'.

  - Pause: Die angegebene Anzahl Sekunden warten.

  - Hangup: Kppp sendet den Aufhängen-Befehl an das Modem.

  - Answer: Kppp versetzt das Modem in den Antwort-Modus.

  - Timeout: Ändert die Standard-Zeitüberschreitung auf die angegebene Anzahl Sekunden dynamisch während der Skript-Ausführung. Sie können dies während der Skriptausführung mehrmals tun, falls nötig.

  - Prompt: Bittet den Kppp-Benutzer, eine Zeichenkette einzugeben, mit der angegebenen Zeichenfolge als Hinweis. Der Benutzer sieht dabei, was er eingibt. Wenn die angegebene Zeichenfolge die Marke &num;&num; enthält, wird diese durch den Inhalt des internen Puffers ersetzt.

  - PWPrompt: Bittet den Kppp-Benutzer, eine Zeichenkette einzugeben, mit der angegebenen Zeichenfolge als Hinweis. Der Benutzer sieht ein Sternchen für jedes eingegebene Zeichen.

  - ID: Falls das Benutzername-Feld in Kppp's-Hauptfenster ausgefüllt ist, wird dieser Benutzername gesendet. Falls das Benutzername-Feld nicht ausgefüllt ist, wird der Kppp-Benutzer nach seinem Benutzernamen gefragt, mit der angegebenen Zeichenfolge als Hinweis. Der Benutzer sieht, was er eingibt. Bei einem zweiten Aufruf, zum Beispiel aus einer Schleife, wird eine Eingabe gefordert mit der angegebenen Zeichenfolge als Hinweis.

  - Password: Wenn das Paßwort-Feld in Kppp's-Hauptfenster ausgefüllt ist, wird dieses gesendet. Falls nicht, wird der Kppp-Benutzer aufgefordert, ein Paßwort einzugeben, mit der angegebenen Zeichenfolge als Hinweis. Es wird ein Sternchen für jedes eingegebene Zeichen ausgegeben. Bei einem zweiten Aufruf, zum Beispiel aus einer Schleife, wird eine Eingabe gefordert mit der angegebenen Zeichenfolge als Hinweis.

  - LoopStart: Kppp wartet auf den Empfang der angegebenen Zeichenkette. Die Zeichenkette wird gespeichert für die Nutzung durch LoopEnd

  - LoopEnd: Kppp wartet auf den Empfang der angegebenen Zeichenkette und beendet die Schleife. Falls die Zeichenkette vom entsprechenden LoopStart zuerst empfangen wird, wird ein Sprung in die Zeile nach LoopStart vorgenommen, was eine Wiederholung von Benutzernamen/Paßwort-Dialogen ermöglicht.

#### Beispielskripte

Hier ist ein einfaches Skript, das ich zur Verbindung zu meinem ISP verwenden könnte:

    Expect      ID:           # auf 'ID:' warten
    Send        myid          # Sie müssen 'myid' durch Ihren Benutzernamen ersetzen
    Expect      word:         # warte auf 'password'
    Send        4u3fjkl       # sendet mein Paßwort '4u3fjkl'
    Expect      granted       # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
    Send        ppp           # Das startet eine PPP-Verbindung für mich
                              # auf Seiten des ISPs.

Hier ist ein Skript für den selben Zugang mit Benutzername- und Paßwort-Abfrage: Dieses Skript fragt jedes Mal nach Benutzername und Paßwort, egal was im Benutzername- und Paßwort-Feld in Kppp's Hauptdialog eingegeben wurde. Dieses Skript zeigt auch die Benutzung der LoopStart/LoopEnd-Struktur. Falls während des Anmeldevorgangs etwas schiefgeht, ich zum Beispiel das Paßwort falsch eingegeben habe, gibt mein ISP eine Fehlermeldung aus und beginnt die ID/Paßwort-Schleife erneut, indem er die Zeichenkette ``ID:'' erneut sendet. Falls die Zeichenkette ``ID:'' vor der Abarbeitung von LoopEnd empfangen wird, startet Kppp das Skript erneut nach dem LoopStart-Befehl.

    LoopStart   ID:                        # wartet auf 'ID:'
    Prompt      Benutzername eingeben:     # fragt nach meinem Benutzernamen und sendet ihn.
    Expect      word:                      # wartet auf 'password'
    PWPrompt    Paßwort eingeben:          # fragt mich nach meinem Paßwort und sendet es.
    LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
    Send        ppp                        # Das startet eine PPP-Verbindung für mich

Hier ist das Skript, das ich zur Verbindung zu meinem ISP nutze: Dieses Skript fragt nur nach Benutzernamen und Paßwort, falls sie nicht in den entsprechenden Feldern in Kppp's Hauptdialog eingegeben wurden.

    LoopStart   ID:                        # wartet auf 'ID:'
    ID          Benutzername eingeben:     # fragt nach meinem Benutzernamen und sendet ihn.
    Expect      word:                      # wartet auf 'password'
    Password    Paßwort eingeben:          # fragt mich nach meinem Paßwort und sendet es.
    LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
    Send        ppp                        # Das startet eine PPP-Verbindung für mich
                                           # auf Seiten des ISPs.

Hier ist das Skript, das ich zur Verbindung mit einem ISP benutze, der eine Art Forderung/Antwort Authentifizierung benutzt. Normalerweise erhält man dazu eine Hardware-Ausrüstung (eine kleine Karte mit einem Display und einer Taschenrechnerähnlichen Tastatur) von seinem ISP. Sie müssen ein Paßwort kennen, um dieses Gerät nutzen zu können. Nach der Einwahl zeigt der ISP die Forderung an. Sie müssen diese in Ihr Gerät eingeben und erhalten als Antwort ein dynamisches Paßwort. Dieses müssen Sie dann an den ISP zurücksenden.

    LoopStart   ID:                        # wartet auf 'ID:'
    ID          Enter ID:                  # fragt mich nach meiner ID und sendet sie
    Scan        Challenge:                 #  Wartet auf 'Challenge' und speichert alles dahinter bis zum nächsten Zeilenumbruch.
    Expect      Password:                  # warte auf 'password'
    Prompt      Your token is ## - Enter Password  # fragt mich nach meinen Paßwort und sendet es.
    LoopEnd     granted                    # Mein ISP sendet 'Permission granted' bei Verbindungserfolg
    Send        ppp                        # Das startet eine PPP-Verbindung für mich
                                           # auf Seiten des ISPs.

Das folgende Log zeigt die Anmeldeprozedur eines fiktiven ISP, der bei jeder Anmeldung ein neues Paßwort vergibt. Das neue Paßwort muß überprüft und für die nächste Anmeldung gespeichert werden.

    Universität von Lummerland

    Login:mylogin
    Password:
    Das Passwort fuer Ihre naechste Anmeldung ist: YLeLfkZb
    Bitte speichern Sie es und geben Sie es zur Ueberpruefung ein.
    Ueberpruefung:YLeLfkZb

    1 = telnet
    2 = SLIP
    3 = PPP

    Ihre Wahl:

Kppp kann dazu benutzt werden, diese Aufgabe für Sie zu übernehmen (und schaltet dabei das Risiko aus, daß Sie das kleine Blatt Papier, auf dem Ihr derzeitiges Paßwort steht, verlieren). Der wichtigste Teil des folgenden Skripts ist die Kombination des Scan/Save Teils.

    Expect      Login:                     # warte auf Login Prompt
    ID                                     # sende ID
    Expect      Password:                  # warte auf Paßwort Prompt
    Password                               # sende password
    Scan        ist:                       # warte auf '... naechste Anmeldung ist:' und
                                           # scanne das folgende Paßwort
    Save        password                   # speichere das neue Paßwort für nächste Anmeldung
    Expect      Verification:              # warte auf 'Ueberpruefung:'
    Password                               # sende neues Paßwort
    Expect      choice:                    # warte auf Prompt, bei dem Sie zwischen verschiedenen
                                           # Optionen (telnet, SLIP, PPP) wählen können
    Send        3                          # wähle Option 3, PPP

### Abrechnung

Abrechnungs-Einrichtung

  Benutzen Sie den Abrechnung ein-Knopf, um die Telefongebührenzählung an- oder auszuschalten. Wählen Sie eine für Ihre Region passende Regelung. Falls Sie keine Regelung für Ihre Region finden können, müssen Sie eine schreiben, indem Sie die beigefügte `TEMPLATE`-Datei in `&dollar;(KDEDIR)/share/doc/HTML/en/kppp/` nutzen. Haben Sie keine Angst, denn es ist wirklich einfach. Vergessen Sie nicht, Ihre neu erzeugte Regeldatei an mich zu senden. Die neu erzeugte Regeldatei kann mit dem Befehlszeilen-Parameter `-r Regeldatei` von Kppp auf richtige Syntax überprüft werden und muß in `&dollar;(KDEDIR)/share/apps/kppp/Rules` oder in `&dollar;(HOME)/.kde/share/apps/kppp/Rules` installiert werden, bevor Sie sie in diesem Dialog auswählen können.

### Volumenberechnung

#### Was ist Volumenberechnung?

Hauptsächlich ist damit die Zählung der Bytes, die gesendet oder empfangen werden, gemeint. Kppp kann eingehende, empfangene Bytes oder beides zählen. Es liegt an Ihnen, was Sie benutzen wollen (oder müssen).

#### Warum sollte ich Volumenberechnung benutzen?

Weil heutzutage viele Internet Service Provider dazu übergehen, die Gebühren nach der Menge der gesendeten Daten zu berechnen. Oder oft ist es so, daß ein ISP eine Grenze der zu übertragenden Daten festlegt, und Sie für jedes darüberliegende Megabyte zahlen müssen. Kppp zeigt Ihnen an, wieviele Daten sie bisher übertragen haben und kann Ihnen dabei helfen, Ihre Rechnungen zu senken. Natürlich können Sie die Volumenberechnung auch benutzen, wenn Sie keine Begrenzung der Datenmenge haben.

#### Welche Art der Volumenberechnung soll ich wählen?

Das hängt von Ihrem Provider ab. Viele berechnen nur die Menge der gesendeten Daten und kümmern sich nicht darum, wieviele Daten gesendet werden. In diesem Fall sollten Sie ''Bytes gesendet'' wählen. Wenn Sie für Übertragungen in beide Richtungen zahlen müssen, sollten Sie ''Bytes gesendet/empfangen'' wählen. ''Bytes empfangen'' ist nicht sehr nützlich und ist nur der Vollständigkeit wegen vorhanden.

#### Einschränkungen

Unglücklicherweise gibt es eine Einschränkung bei der Volumenberechnung. Kppp zählt alle Daten unabhängig von Ihrem Ursprung. Viele Provider setzen Ihre Grenzen aber nur für den Internetzugang, nicht für Ihr eigenes Netzwerk. Wenn Sie also im Web surfen und dabei einen Proxy benutzen, wird dieser Proxy zum Netzwerk Ihres Providers gehören und Ihnen werden keine Gebühren für Daten, die von diesem Proxy stammen, berechnet. Kppp weiß nicht, daß diese IP-Pakete von diesem Proxy stammen, und sie mitzählen. Wenn Sie also einen Proxy benutzen, oder Ihr Provider benutzt einen Newserver mit Zwischenspeicher (wie z.B. nntpcached), wird die von Kppp angezeigte Datenmenge größer sein.

## Modem Tricks & Hinweise

Dieser Abschnitt soll den schwierigen Einstieg in die (nicht so) hohe Kunst der Modemeinstellung bieten. Die Befehle hier sind alle Hayes-AT-Standard, aber nicht alle Modems sind gleich, so daß Ihre Vorgangsweise unterschiedlich sein kann.

### Modemsitzungen

Eine Modemsitzung gibt Ihnen die Möglichkeit, direkt mit dem Modem zu interagieren. Sie geben Befehle ein und es antwortet. Um eine Modemsitzung zu erhalten, wenn keine Verbindung aktiv ist, gehen Sie in den "Einstellungen/Modem/Terminal"-Dialog. Das öffnet ein Fenster zur interaktiven Konfiguration des Modems. Versuchen Sie, `ATZ` einzugeben (das setzt Ihr Modem zurück). Sie sollten eine `OK`-Antwort erhalten. Benutzen Sie "Datei/Beenden", um die Sitzung zu beenden.

### Modemprofile

Ein Grund, weshalb Sie dem Modem direkt Befehle senden möchten, könnte sein, daß Sie mehrere Modemeinstellungen haben, die Sie behalten und nicht für jede Verbindung eingeben möchten. Ein guter Weg, dies zu tun, führt über Modemprofile. Modems können mehrere gespeicherte Profile haben, numeriert mit 0,1,…. AT&V kann zur genutzt werden, um alle anzusehen. Das Standardprofil ist üblicherweise 0 (das kann über AT&Y geändert werden). Das derzeit verwendete Profil wird ``aktives'' Profil genannt.

Wenn Sie eine Einstellung ändern, wird das aktive Profil verändert. Der ATZ-Befehl veranlaßt das Modem, das Standardprofil zu laden und alle Ihre Änderungen zu verwerfen. Um Änderungen zu speichern, laden Sie das Profil, das Sie ändern möchten über ATZn (wobei n die Profilnummer ist). Machen Sie die gewünschten Änderungen, dann speichern Sie sie mit AT&Wn. Damit Kppp das von Ihnen gewünschte Profil nutzt, ändern Sie den Initialisierungs-String (Einstellungen/Modem/Modembefehle/Init-String). Zum Beispiel bewirkt ATZ1, daß Kppp das Modem zurücksetzt und das gespeicherte Profil 1 lädt.

Falls Sie Ihr Modem auf einen bekannten Urzustand zurücksetzen möchten, benutzen Sie AT&F&W, um das aktive Profil auf die Fabrikeinstellungen zu setzen, und diese im Standardprofil zu sichern.

Beispiele von Profiländerungen finden Sie im nächsten Abschnitt.

### Das Modem zum Auflegen bewegen

Manchmal könnte Kppp Schwierigkeiten beim Auflegen des Modem haben. Das ist vermutlich die Folge eines Unterschieds zwischen den Einstellungen von Kppp und denen des Modems. Ein Standardmodem nutzt zwei Methoden, um sich zum Auflegen zu entscheiden: Befehl und DTR. Die Befehlsmethode besteht aus dem Senden einer Abbruchsequenz an das Modem, das es in den Befehlsmodus versetzt, und dann dem Senden des Auflegen-Befehls (ATH).

Außerhalb von Kppp, wenn Sie das pppd-Paket manuell konfigurieren, ist es oft hilfreich die Befehlsmethode zu nutzen, so daß Sie eine Terminalsitzung verlassen können, und dann pppd starten, ohne das Modem auflegen zu lassen. In den meisten anderen Situationen wird die DTR-Methode bevorzugt, weil sie einfacher ist.

#### DTR (AT&Dn)-Methode

Die DTR-Methode läßt das Modem immer dann auflegen, wenn Kppp es nicht mehr nutzt. Wenn Sie eine Modemsitzung starten und den Zustand über AT&V abfragen, und unter den angezeigten Einstellungen für das aktive Profil ist auch `&D0`, dann ist die DTR-auflegen-Methode abgeschaltet. Um DTR einzuschalten, benutzen Sie Einstellungen/Modem/Terminal, um eine Modemsitzung zu starten. Dann:

    ATZ		    # auf Standardprofil zurücksetzen
    AT&D2		# einstellen auf Auflegen bei DTR-Wegfall
    AT&W		# Standardprofil sichern

##### Wie die DTR-Methode funktioniert

Jedesmal wenn die Data Terminal Ready (DTR)-Leitung der seriellen Verbindung zwischen dem Computer und dem Modem Spannung führt, legt das Modem auf. Wenn Kppp die serielle Schnittstelle öffnet, wird dir DTR-Leitung auf niedrige Spannung gesetzt, und bei einem externen Modem können Sie das DTR (oder TR)-Lämpchen angehen sehen, wenn das passiert. Wenn das TR-Lämpchen ausgeht (weil Kppp die serielle Schnittstelle geschlossen hat, oder Schlimmeres!), legt das Modem auf.

#### Befehlsmethode

Der andere Weg, ein Modem auflegen zu lassen, wenn man verbunden ist (mit `AT&D` n, wobei n nicht 2 ist), ist, das Modem den Befehl annehmen zu lassen, wenn eine Sitzung läuft. Um es richtig auflegen zu lassen, starten Sie eine Modemsitzung und stellen Sie die Guardzeit auf ein kleines Intervall ein, wie folgt:

    ATZ
    ATS12=5
    AT&W

Dann benutzen Sie den Einstellungen/Modem/Modembefehle/Guard-Zeit-Regler, um den Wert aus Register (S12) auf (5) einzustellen. Das Modem sollte dann richtig auflegen.

##### Wie die Befehlsmethode funktioniert

Wenn das lokale Modem mit einem entfernten Modem verbunden ist, ist es im ``connect''-Zustand, in dem es alle empfangenen Zeichen, ohne sie auszuwerten, an das entfernte Modem weitergibt. Damit das Modem Befehle für sich selbst annimmt, muß man das Modem in den Befehlszustand versetzen. Der Abbruchcode macht dies.

Der Abbruchcode ist definiert als drei Zeitintervalle, deren Länge durch S12 definiert wird (in fünfzigstel Sekunden).

- Ruhe (muß mindestens S12/50 Sekunden dauern)

- Abbruchzeichen (definiert durch Register S2, Standard ist ``+'') drei Mal wiederholt (weniger als S12/50 Sekunden zwischen jedem)

- Ruhe (muß mindestens S12/50 Sekunden dauern)

Sobald das Modem im Befehlsmodus ist, können Sie ihm Befehle senden. Um es auflegen zu lassen, senden Sie ATH. Die Abbruchcodes und die Auflegenfolge, die Kppp nutzt, werden im Einstellungen/Modem/Modembefehle-Dialog angezeigt. Diese sollten zu Ihrem Modem passen.

### Tonwahl schneller machen

Falls Sie Tonwahl nutzen können, kann die Zeit, die zum Wählen benötigt wird, mit dem S11-Register verändert werden. Es gibt die Dauer (in hundertstel Sekunden) an, um einen Ton während der Wahl zu senden. Der Standard ist üblicherweise 95 (fast eine Sekunde). Wie schnell Sie wählen können, hängt von den Geräten Ihrer Telefongesellschaft ab. Die minimale Dauer ist 50, fast doppelt so schnell, und diese Geschwindigkeit funktioniert häufig.

    ATZ		# auf Standardprofil zurücksetzen
    ATS11=50	# schnellstmögliche Wahl, nehmen Sie eine höhere
                    # Zahl, falls es nicht funktioniert.
    AT&W	    # Standardprofil sichern

## PAP und CHAP

Seit Version 0.9.1 unterstützt Kppp direkt die meistbenutzte Form der PAP-Authentifizierung. Der Abschnitt 'PAP und CHAP mit Kppp' beschreibt, wie man im Allgemeinen PAP und CHAP zur Arbeit mit Kppp bewegt, während der Abschnitt 'PAP mit Kppp' im Einzelnen beschreibt, wie Sie Kppp's eingebaute Unterstützung für die wichtigsten Versionen von PAP nutzen, die oft von kommerziellen ISPs verwendet werden.

### PAP mit Kppp

Es gibt zwei unterschiedliche Methoden, PAP zu nutzen:

#### Authentifizierung auf Seiten des Clients

Diese Variante wird von vielen kommerziellen ISP genutzt. Grundsätzlich bedeutet das, daß Sie (oder Ihr Computer) sich selbst beim PPP-Server des ISPs authentifizieren müssen. Der PPP-Server darf sich nicht selbst auf Ihrem Computer authentifizieren, und normalerweise ist das auch nicht notwendig, da Sie wissen, mit welchem Computer Sie verbunden sind (da die Verbindung von Ihnen selbst hergestellt wurde). Also ist das nicht sehr Sicherheitsrelevant. Kppp unterstützt diese Variante direkt. Für weitere Informationen, wie das genutzt wird, siehe unten.

Falls Ihr ISP Ihnen nur einen Benutzernamen und ein Paßwort gibt, und Ihnen sagt, PAP-Authentifizierung zu benutzen, müssen Sie diese Variante nehmen.

#### Zwei-Wege-Authentifizierung

Gleich wie oben, aber Ihr Computer fordert den PPP-Server des ISP auf, sich selbst zu authentifizieren. Um eine Verbindung aufzubauen, müssen Sie die Authentifizierungs-Methode Skript-basiert und nicht PAP wählen, und müssen dann Sie die Datei `/etc/ppp/pap-secrets` manuell bearbeiten. Obwohl Kppp keine eingebaute Unterstützung für diese Variante bietet, ist es einfach, eine Verbindung mit dieser Variante von PAP mit Kppp aufzubauen. Die Einzelheiten sind im nächsten Abschnitt 'PAP und CHAP mit Kppp' nachzulesen.

#### Kppp für PAP vorbereiten

1. Stellen Sie sicher, daß `/etc/ppp/options` (und `˜/.ppprc`, falls Sie eine solche Datei haben) keinen der folgenden Parameter enthält:

   - +pap

   - -pap

   - papcrypt

   - +chap

   - +ua

   - remotename

   Es ist sehr unwahrscheinlich, daß einer dieser Parameter bereits dort steht, aber nur zur Sicherheit.

2. Starten Sie Kppp

3. Klicken Sie auf Einstellungen

4. Wählen Sie den Zugang, für den Sie PAP nutzen möchten, und klicken Sie auf Bearbeiten

5. Klicken Sie auf die Wählen-Karteikarte.

6. Wählen Sie PAP aus der Auswahlbox Authentifizierung

7. Falls Sie das Paßwort nicht bei jeder Einwahl erneut eingeben möchten, wählen Sie Speichere Paßwort. Damit wird das Paßwort gespeichert. Stellen Sie sicher, daß niemand anderes als Sie Zugriff auf den Zugang hat, sonst hat diese Person Zugriff auf Ihr Paßwort.

8. Das war's. Schließen Sie die Dialoge, geben Sie den Benutzernamen und das Paßwort, die Sie von Ihrem ISP erhalten haben, an und wählen Sie.

### PAP und CHAP mit Kppp(alternative Methode)

Das Folgende basiert auf einer E-Mail von Keith Brown und beschreibt, wie man Kppp mit einem PAP oder CHAP-Zugang zum Laufen bringt. Falls Ihr ISP Ihnen gerade eine Benutzerkennung und ein Paßwort für einen PAP-Zugang gegeben hat, können Sie wahrscheinlich diesen Abschnitt überspringen und nur den vorherigen Abschnitt 'PAP mit Kppp' lesen.

PAP scheint auf den ersten Blick wesentlich komplizierter, als es in Wirklichkeit ist. Der Server (die Maschine, mit der Sie sich verbinden) sagt dem Client (ihrer Maschine), sich per PAP zu authentifizieren. Der Client (pppd) sucht in einer bestimmten Datei nach einem Eintrag, der für diese Verbindung passende Server- und Clientnamen enthält und schickt das dort gefundene Paßwort. Das war's! Und so kann man das machen. Ich nehme eine pppd-Version von 2.2.0 an und eine Standardinstallation der Konfigurationsdateien unter `/etc/ppp`.

Zur Verdeutlichung nehme ich an, daß ich einen Internetzugang bei 'glob.net' habe, unter dem Benutzernamen 'booger', und das Paßwort lautet 'foobar'. Zuerst muß ich das alles in die Datei `/etc/ppp/pap-secrets` eintragen. Das Format jedes Eintrags lautet für unsere Zwecke:

    BENUTZERNAME  SERVERNAME   PASSWORT

also füge ich die Zeile:

    booger  glob  foobar

der Datei hinzu und speichere sie. Hinweis: ich kann jeden Namen für den Server nehmen, solange ich den gleichen Namen bei den pppd-Argumenten angebe, wie wir später sehen werden. Ich habe das mit 'glob' abgekürzt. Dieser Name ist nur dazu da, um das richtige Paßwort zu finden.

Nun muß ich meine Verbindung in Kppp einstellen. Die Grundlagen sind die gleichen wie bei jeder anderen Verbindung, und ich möchte hier nicht auf die Details eingehen, abgesehen davon, daß die sicherstellen sollten, daß die `/etc/ppp/options`-Datei leer ist, und Sie vermutlich auch kein Anmeldeskript möchten. Also, im Einstellungen-Dialog, ganz unten, ist der pppd-Argumente-Knopf. Dieser öffnet einen Dialog, ähnlich dem, der zur Bearbeitung des Anmeldeskripts benutzt wird. Hier geben wir Werte ein, die an pppd als Befehlszeilen-Argumente übergeben werden, und im Fall von Argumenten mit mehreren Parametern müssen wir jeden Wert als getrennten Eintrag, aber in der richtigen Reihenfolge in die Liste eintragen.

Wir können hier zuerst alle anderen Parameter angeben, die wir möchten. Nun müssen wir Parameter hinzufügen, die pppd benötigt, um PAP-Authentifizierung durchzuführen. In diesem Beispiel werde ich 'user', 'booger', 'remotename', 'glob' in dieser Reihenfolge hinzufügen. Der 'user'-Parameter sagt pppd, welcher Benutzername in `pap-secrets` zu suchen und an den Server zu senden ist, 'remotename' ist wird von pppd nur genutzt, um den Eintrag in der `pap-secrets`-Datei zu finden, und wird nicht an den Server gesendet, also nochmal, es kann alles sein, was ich möchte, solange es passend zum Eintrag in der `pap-secrets`-Datei ist.

Das ist auch schon alles. Sie sollten jetzt in der Lage sein, Ihre eigene Verbindung zu einem Server mit PAP-Authentifizierung einzustellen. CHAP ist nur wenig anders. Schlagen Sie im Linux Network Administrators' Guide für das Dateiformat von `chap-secrets` und den zu benutzenden pppd-Parametern nach. Der Rest sollte einfach sein, aber… Ihr persönliches Vorgehen, sie wissen schon.

## Fragen und Antworten

### Häufig gestellte Fragen

#### Ich kann Kppp nicht zum laufen bringen. Kppp erzählt mir, daß pppd beendet wurde oder daß eine Zeitüberschreitung eingetreten ist!

Haben Sie dieses Handbuch sorgfältig gelesen? Hier sind nochmal die häufigsten Fallen.

- Klicken Sie auf den Details-Knopf. Kppp zeigt Ihnen dann einen Auszug aus dem PPP-Log (funktioniert evtl. nicht auf nicht-Linux-System oder sogar mit einigen Distributionen). Diese Meldungen können Ihnen Helfen, den Fehler zu finden.

- Stellen Sie sicher, daß pppd wirklich das pppd-Programm ist, und kein Skript!

- Stellen Sie sicher, das pppd mit root-Rechten ausgeführt wird. Sie können das als root mit dem Kommando `chmod u+s pppd` einstellen.

- Stellen Sie sicher, das die Datei `/etc/ppp/options` existiert und keine widersprüchlichen Einträge enthält. Falls Sie sich nicht sicher sind, lassen Sie diese Datei leer.

- Stellen Sie sicher, daß Sie NICHT den Parameter ``lock'' für pppd angegeben haben (Kppp kümmert sich bereit um die Gerätesperrung)!

- Entfernen Sie den ``lock''-Parameter aus den Dateien `/etc/ppp/options` und `˜/.ppprc`!

- Wenn Sie den symbolischen Link `/dev/modem` benutzen, kann das zu Konflikten führen. Verhindern Sie diese Art Ärger, indem Sie das reale Gerät verwenden, z.B. `/dev/cuaX` oder `/dev/ttySX`. Hinweis: COM1 ist ttyS0, COM2 ist ttyS1 usw.

- Stellen Sie sicher, daß Sie die richtigen Berechtigungen eingestellt haben. Im Fall von Problemen sollten Sie es vielleicht zuerst als root ausführen, und dann, wenn alles gut funktioniert, weniger gefährliche Berechtigungen nehmen, wenn Sie es sich nicht leisten können Kppp mit root-Rechten laufen zu lassen. Die richtige Vorgehensweise wäre vermutlich die Erzeugung einer eigenen ``modem''-Gruppe.

- Eventuell starten Sie pppd zu früh, z.B. bevor der entfernte Server bereit ist, eine PPP-Verbindung aufzubauen. Wenn Sie ein Login-Skript benutzen, sollten Sie das eingebaute Terminal benutzen, um Ihre Login-Prozedur zu überprüfen. Manche Provider erwarten von Ihnen ein einfaches "Send" oder "Send ppp", um PPP zu starten. Einige Benutzer berichteten, daß Sie "Pause 1" oder "Pause 2" an Ihr Skript anhängen mußten, um Timing-Probleme zu lösen.

Wenn gar nichts hilft, sollten Sie evtl. Debug-Informationen aus Ihrem Systemlog erhalten, indem Sie folgendes eingeben:

    # tail /var/log/messages

#### Kppp sagt mir ``Tut mir leid, kann auf Modem nicht zugreifen''.

Das bedeutet, daß Kppp keine Berechtigung hat, daß Modemgerät zu öffnen, oder daß Sie ein ungültiges Modemgerät auf der Modem-Karteikarte gewählt haben. Stellen Sie zunächst sicher, daß Sie das richtige Modemgerät gewählt haben. Wenn Sie sicher sind, daß dies der Fall ist, müssen Sie Kppp die richtige Berechtigung geben, um auf das Modemgerät zugreifen zu können, und in der Lage zu sein, `/etc/resolv.conf` zu ändern, im Fall, daß Sie möchten, daß Kppp den DNS richtig für Sie einstellt. Falls Sie in der Lage sind, Kppp als SETUID root auszuführen, würde das alle Zugriffsprobleme für Sie lösen, wenn nicht, müssen Sie herausfinden, was die richtigen Berechtigungen für Ihre Zwecke sind. Um Kppp SETUID root-Berechtigung zu geben, machen Sie Folgendes:

    % su root
    % chown root:root &dollar;(KDEDIR)/bin/kppp
    % chmod +s &dollar;(KDEDIR)/bin/kppp
    % exit

#### Kppp sagt mir, daß es keine Modemsperrung erzeugen kann.

In den meisten Fällen bedeutet das, daß Sie Kppp mit gesetztem SETUID-Bit installiert haben, während Sie, die Person, die Kppp ausführt, keine Schreiberechtigung für das Sperrdateiverzeichnis haben, das standardmäßig `/var/lock` ist. Das ist zum Beispiel der Fall auf RedHat-Systemen. Überprüfen Sie den Modem-Dialog nach der genauen Position der Sperrdatei. Die Lösung ist einfach, entweder Kppp SETUID laufen zu lassen, falls Sie können, oder normalen Benutzern Schreibzugriff auf `/var/lock` zu gewähren oder eine modem-Gruppe zu erstellen, die Zugriff auf die `/var/lock`-Datei hat.

#### Warum wird Kppp mit gesetztem SETUID-Bit installiert?

Das SETUID-Bit muß nicht gesetzt sein, wenn Sie sich ein bißchen mit Unix-Systemadministration auskennen. Erstellen Sie einfach eine Modemgruppe, fügen Sie alle Benutzer, denen Sie Zugriff auf das Modem gewähren wollen, dieser Gruppe hinzu und machen Sie das Modemgerät les- und schreibbar für diese Gruppe. Wenn Sie auch DNS-Konfiguration mit Kppp benutzen wollen, muß `/etc/resolv.conf` les- und schreibbar von den Mitgliedern dieser Gruppe sein. Das gleiche gilt für `/etc/ppp/pap-secrets` und `/etc/ppp/chap-secrets`, wenn Sie die eingebaute PAP- und CHAP-Unterstützung benutzen wollen.

Bitte kritisieren Sie mich nicht dafür, Kppp mit gesetztem SETUID-Bit zu installieren, ich kann einfach nicht länger die Masse an E-Mail behandeln, die ich vorher von verzweifelten Benutzern bekommen habe, die Probleme hatten, Kppp zum laufen zu bringen, weil sie nicht genug über Unix und Geräte-Berechtigungen wußten.

Das Kppp-Team hat in letzter Zeit sehr viel daran gearbeitet, um Kppp SETUID-Sicher zu machen. Aber es liegt an Ihnen, ob und wie Sie es installieren.

Eventuell wollen Sie dazu auch das Kapitel Kppp und die Sicherheit lesen.

#### Kppp ist einfach da und wartet: ``erwarte OK''

- Haben Sie an der CR/LF-Einstellung herumgespielt? Probieren Sie CR, LF oder CR/LF.

- Ihr Modem braucht vielleicht einige Zeit, um auf seine Initialisierung zu antworten. Öffnen Sie den Modembefehle-Dialog auf der Modem-Karteikarte und stellen Sie die Verzögerungen Pre-Init und Post-Init ein. Probieren Sie, ob Sie erfolgreich sind, wenn Sie die Werte drastisch senken und stellen Sie sie dann später genauer ein.

#### Der Verbindungsaufbau funktioniert gut, aber ich kann keine Programme starten.

Sie haben vielleicht die Option "Konfiguriere Hostname automatisch von dieser IP" aktiviert und der X-Server hat Probleme zum neu eingestellten Hostnamen zu verbinden. Falls Sie diese Option wirklich benötigen (wahrscheinlich eher nicht), müssen Sie auf eigene Faust die nötigen Authorisationen einstellen.

Eingabe von "`xhost +`" löst das Problem, aber seien Sie gewarnt vor Sicherheitsrisiken, die sich daraus ergeben, da dann jeder Zugang zu Ihrem X-Server hat.

#### Kppp meldet einen erfolgreichen Verbindungsaufbau, aber Netscape sagt nur "The server does not have a DNS entry"

Versuchen Sie, mit ping einen anderen Server über seine IP-Adresse, zu erreichen, `ping 195.0.254.76`. Wenn das funktioniert, sollten Sie

- prüfen, ob Sie mindestens eine DNS-Adresse angegeben haben.

- den Inhalt von `/etc/host.conf` prüfen. Es sollte eine Zeile vorhanden sein, in der etwas ähnliches wie `order hosts, bind` steht. Der `bind`-Schlüsselbegriff sagt der resolver-Bibliothek, daß sie einen Nameserver einbinden soll, wenn Sie eine Adresse sucht.

#### Wie bringe ich Kppp dazu, ein \n oder ein \r zu senden?

Schicken Sie einfach eine leere Zeichenfolge, so wie im folgenden Skript:

    Send                   # eine leere Zeichenfolge senden
    Expect      ID:
    Send        itsme
    Expect      word:
    Send        forgot
    Expect      granted
    Send        ppp

#### Kppp beschwert sich: ``kann keine Modemsperrung erzeugen''

Das bedeutet, daß Sie keine Berechtigung haben, eine Sperrdatei zu erzeugen. Wenn Sie eine Sperrdatei benutzen wollen, müssen Sie Schreibrechte in dem Verzeichnis haben, indem die Datei erzeugt werden soll (typischerweise /var/lock). Das ist natürlich kein Problem, wenn Sie Kppp SETUID-Berechtigung gegeben haben. Lesen Sie bitte den Abschnitt über die Modem-Sperrdatei.

#### Mein Modem macht beim Wählen großen Lärm!

Klicken Sie auf Einstellungen/Modem Sie können die Lautstärke des Modems hier in drei Schritten einstellen: aus, mittel, groß. Bei den meisten Modems bekommen Sie die gleiche Lautstärke für "mittel" und "groß". Falls das nicht funktioniert, stellen Sie sicher, daß Sie die richtigen Einstellungen in Einstellungen/Modem/Modembefehle eingestellt haben"

#### Ich habe die Modemlautstärke ausgeschaltet und die Modembefehle überprüft, aber ich höre immer noch Wählgeräusche!

Der Lautstärke-Befehl kann verloren gehen, wenn Ihr Modem nicht mit der Geschwindigkeit zurechtkommt, in der es die Befehle von Kppp erhält. Verringern Sie den Wert der "Post-Init Verzögerung" in Einstellungen/Modem/Modembefehle.

#### Kppp meldet ungewöhnliche Modemgeschwindigkeiten, wie 115200, 57600 oder ähnliches

Viele Modems melden standardmäßig nur die Geschwindigkeit der seriellen Schnittstelle und nicht die Geschwindigkeit über die Telefonleitung. Sie müssen diese Modem erst so einstellen, daß Sie die wirkliche Datenübertragungsgeschwindigkeit melden (fügen Sie dies dem Init- oder Wählstring bei). Bei vielen Modems ist der Befehl ATW2. Wenn Sie dies dem Wählstring (typischerweise ATD) beifügen wollen, wäre der neue Wählstring ATW2D.

#### Kppp meldet "Unbekannte Geschwindigkeit"

Neue Modems haben oft komplizierte Verbindungsmeldungen wie "CONNECT LAP.M/V42.bis/115000:RX/31200:TX", und Kppp kann die Nachrichten nicht korrekt behandeln. Schalten Sie Zeige Log-Fenster ein, und Sie werden die Verbindungsgeschwindigkeit sehen. Ich arbeite gerade an einer Lösung dieses Problems, und der Parser ist schon viel besser, aber immer noch nicht perfekt.

#### Langsame Übertragungsgeschwindigkeiten

Wenn Sie mit der Modemgeschwindigkeit nicht zufrieden sind, stellen Sie sicher, daß die Verbindungsgeschwindigkeit (Einstellungen/Gerät/Geschwindigkeit) auf 57600 oder höher eingestellt ist. Stellen Sie sicher, daß Ihre serielle Schnittstelle höhere Geschwindigkeiten unterstützt. Viele auf i486 basierende Systeme arbeiten nicht korrekt, wenn die Geschwindigkeit auf 115200 eingestellt ist. Wenn Sie einen 8250 UART Chip haben, wird es nicht funktionieren. Wenn Sie einen 16550 oder 16550A haben, sollte es problemlos funktionieren.

Schauen Sie zusätzlich in Ihrem Modem-Handbuch nach Init-Strings, die den Hochgeschwindigkeit-Modus aktivieren.

#### SEHR langsame Übertragungsgeschwindigkeiten

Wenn die Datenübertragungsrate nur ein paar Byte pro Minute beträgt, sollten Sie Ihre Hardware-Einstellungen überprüfen. Falls Bewegungen der Maus die Datenübertragung beschleunigen, ist das auf jeden Fall ein Hardwareproblem.

Sie erhalten Informationen über Ihre serielle Schnittstelle mit `setserial -a /dev/ttySx`. Schauen Sie nach Interrupt-Konflikten mit anderen Komponenten Ihres Systems.

#### Meine Telefonleitung benutzt das Impuls- anstatt das Tonwahlverfahren (oder umgekehrt)

Sie müssen den Modem-Wählstring verändern. Fast alle Modems unterstützen die folgenden AT-Befehle:

- ATDT - aktiviert das Tonwahlverfahren

- ATDP - aktiviert das Impulswahlverfahren

#### Kppp macht sehr komische Dinge (was auch immer)

Haben Sie Kppp oder die Bibliotheken mit gcc-2.8 kompiliert? Diese Version des gcc hat ein paar Fehler und arbeitet nicht wie erwartet.

#### Wie schreibe ich eine Telefongebühren-Regel?

Sehen Sie sich die `TEMPLATE`-Regeldatei, die bei Kppp dabei ist, an. Sie sollten eine Kopie davon in `&dollar;KDEDIR/doc/HTML/en/kppp` finden. Benutzen Sie den Kommandozeilen-Parameter `-r` von Kppp, um die Syntax Ihrer Gebührenregel-Datei zu überprüfen.

#### Ich habe eine Gebührenregel-Datei für meine Region geschrieben. Wem kann ich sie schicken, so daß auch andere sie nutzen können?

Ich nehme gerne jegliche geschriebene Regeldatei. Ich mache Sie verfügbar auf meiner Kppp- Webseite. Bevor Sie mir eine neue Regeldatei senden, stellen Sie sicher, daß sie nicht bereits auf der Kppp-Webseite verfügbar ist. Dann senden Sie die neue Regeldatei an mich.

#### Kann meine Telefongebühren-Regeldatei Bruchteile einer Zeiteinheit enthalten, z.B. "(0.17,45.5)"?

Ja, das ist möglich. Aber Sie sollten kein ungewöhnlich kleinen Bruchteile benutzen (unter einer 1/10 Sekunde), da dies in einer höheren CPU-Belastung resultieren würde. (Obwohl ich nicht glaube, daß Sie das bei einer modernen CPU bemerken würden.:-)

#### Mein Land hat außer Ostern noch einen verschiebbaren Feiertag.

In diesem Fall müssen Sie neuen Code schreiben, der Ihnen die Berechnung dieses Feiertags ermöglicht. Sehen Sie in `ruleset.cpp` nach und imitieren Sie das ``easter''-Beispiel. Dann senden Sie mir die Patches.

### Wie man das System-Log interpretiert

#### Serial line is looped back

Kurze Antwort: Sie haben die PPP Software auf dem entfernten System nicht gestartet.

Lesen Sie dazu das Posting von Al Longyear auf http://www.dejanews.com/getdoc.xp?AN=184945314 für eine genauere Beschreibung.

#### Signal 15

Wenn Sie die folgenden Zeilen sehen, haben Sie evtl. gerade einen Fehler wegen Zeitüberschreitung von Kppp erhalten. Kppp hat darauf gewartet, daß das PPP Interface startete, und hat dann nach einer bestimmten Zeit aufgegeben. Dem pppd wurde mit dem Signal 15 (i.A. SIGTERM) signalisiert, abzubrechen.

    pppd[26921]: pppd 2.3.5 started by me, uid 500
    pppd[26921]: Using interface ppp0
    pppd[26921]: Connect: ppp0 <--> /dev/ttyS0
    pppd[26921]: Terminating on signal 15.
    pppd[26921]: Connection terminated.
    pppd[26921]: Exit.

#### Receive serial link is not 8-bit clean

Der PPP Dämon wurde mißtrauisch, da alle empfangenen Daten das Bit 8 auf Null gesetzt hatten. In den meisten Fällen zeigt das an, daß der entfernte PPP Server noch nicht gestartet ist. Es wird dabei vielleicht immer noch ein Anmeldeprompt geben, der alle Daten, die von Ihrem pppd gesendet wurden, zurücksendet.

#### can't locate module ppp-compress

Bekommen Sie folgende Nachrichten?

    modprobe: can't locate module ppp-compress-21
    modprobe: can't locate module ppp-compress-26
    modprobe: can't locate module ppp-compress-24

Fügen Sie einfach diese Zeilen

    alias ppp-compress-21 bsd_comp
    alias ppp-compress-24 ppp_deflate
    alias ppp-compress-26 ppp_deflate

zu Ihrer Datei `/etc/conf.modules` hinzu.

## Kppp und die Sicherheit

Dieses Kapitel ist hauptsächlich für Administratoren(root), Leute mit hohen Sicherheitsansprüchen oder einfach technisch Interessierte. Es ist nicht notwendig, dieses Kapitel zu lesen, wenn Sie nur Linux für sich zu Hause laufen lassen (obwohl Sie vielleicht etwas Neues lernen könnten, wenn Sie es lesen).

### Den Zugang zu Kppp beschränken

Ein Systemadministrator möchte vielleicht Zugang zu Kppp auf diejenigen beschränken, denen es erlaubt ist, es zu benutzen. Es gibt zwei Wege, dies zu tun:

#### Mit Gruppenrechten

Erstellen Sie eine neue Gruppe (Sie können sie z.B. "dialout" oder so ähnlich nennen), nehmen Sie alle Benutzer, die Kppp benutzen dürfen, in die Gruppe auf und geben Sie folgendes ein:

    chown root.dialout $KDEDIR/bin/kppp
    chmod 4750 $KDEDIR/bin/kppp

Dabei wurde angenommen, daß die neue Gruppe "dialout" genannt wurde.

#### Kppp's Weg

Bevor Kppp irgend etwas macht, prüft es nach, ob die Datei `/etc/kppp.allow` existiert. Falls diese Datei existiert, dürfen NUR Benutzer, die in dieser Datei aufgeführt sind, hinauswählen. Die Datei muß für alle Benutzer lesbar (aber natürlich NICHT schreibbar) sein. Es werden nur Login-Namen erkannt, sodaß Sie keine UID's benutzen können. Hier ist ein kurzes Beispiel:

    # /etc/kppp.allow
    # Kommentarzeilen, wie diese werden ignoriert,
    # genau wie leere Zeilen
    fred
    karl

    # Ich füge mich selbst hinzu :-)
    mweilguni

Im obigen Beispiel dürfen nur die Benutzer fred, karl und mweilguni Kppp zum Hinauswählen benutzen, ebenso wie alle Benutzer mit UID 0. Sie müssen also root nicht in der Datei aufführen.

### Kppp hat das SUID Bit gesetzt. Wo bleibt die Sicherheit?

Es ist realistisch gesehen nicht möglich, ein Wählprogramm ohne gesetztes SUID Bit zu schreiben, das sicher und dabei für unerfahrene Benutzer einfach zu benutzen ist. Kppp geht das Sicherheitsproblem mit folgender Strategie an:

- Gleich nach dem Programmstart startet Kppp einen neuen Prozeß.

- Der Masterprozeß (der die GUI, Benutzerinteraktion u.ä. verwaltet) legt den SUID-Status danach ab und läuft dann mit den normalen Benutzerprivilegien.

- Der Slaveprozeß behält seine Privilegien bei und kümmert sich um alles, für das man root-Rechte benötigt. Um diesen Teil sicher zu machen, werden hier keine Funktionen der KDE/QT-Bibliotheken aufgerufen, sondern nur einfache Funktionen der C-Bibliothek. Der Quellcode für diesen Prozeß ist kurz (etwa 500 Zeilen) und gut dokumentiert. Dadurch ist es einfach, Sicherheitslöcher zu entdecken.

- Master- und Slaveprozeß kommunizieren mit standard UNIX IPC.

Vielen Dank an Harri Porten für das Schreiben dieses exzellenten Stück Quellcodes. Ich dachte, es sei unmöglich - er schrieb es in einer Woche.

## Kppp und Rückrufverbindungen

Das folgende Kapitel wurde von Martin Häfner zur Verfügung gestellt.

Dieses Kapitel beschreibt die Konfiguration von Kppp für Rückrufverbindungen. Die folgenden Server werden unterstützt:

### Unix (Linux) Rückruf-Server

Dieser Abschnitt ist eine Einführung in den Ablauf beim Aufbau einer Unix (Linux) Rückrufverbindung und wie Kppp eingestellt werden kann, um eine Verbindung mit einem Unix Rückruf-Server, speziell mit einen Skript-basierten Linux Rückruf-Server, zu erstellen.

Wenn Sie irgendwelche Fragen oder Probleme haben, scheuen Sie sich nicht, den Autor dieses Kapitels zu kontaktieren.

#### Einführung in Rückrufverbindungen

Um die Sicherheit Ihres lokalen Netzes zu verbessern oder die Kosten Ihrer auswärts arbeitenden Mitarbeiter zu senken, könnte ein Rückruf-Server Ihre erste Wahl sein. Machen Sie sich darüber Sorgen, daß jemand die Nummer Ihres Einwählservers wählt, und versucht das Paßwort zu knacken? Warum betreiben Sie dann überhaupt einen Firewall für Ihre Internetverbindungen?

Rückrufsoftware fragt generell nach einem Namen und sucht die dazugehörige Telefonnummer in einer Datenbank. Dazu muß die Nummer auf dem Server gespeichert sein. Nach der Authentifizierung legt der Server auf und ruft Sie unmittelbar danach unter der Nummer aus der Datenbank zurück. Der Client nimmt den Anruf an und fährt mit dem Verbindungsaufbau fort, als wenn nichts gewesen wäre. Der Server wird Sie nach Ihrem Benutzernamen und Paßwort fragen, dann steht die Verbindung und der pppd kann gestartet werden.

Nun, wie kann ich dem Client sagen, daß er den Anruf annehmen soll? Brauche ich dazu ein Programm wie mgetty? Die Antwort ist "NEIN"! Sie brauchen kein spezielles Programm auf Ihrem Client. Allgemein gesagt, können alle Clients für Rückrufverbindungen benutzt werden. Sie können sogar ein gewöhnliches Terminalprogramm wie minicom dazu benutzen, eine Verbindung zu einem Rückruf-Server aufzubauen. Alles was Sie machen müssen, ist, Ihr Modem in den `AutoAnswer`-Modus zu schalten. Dies erreichen Sie durch ein spezielles Modemkommando:

    AT&S0=1

Das heißt, Ihr Modem nimmt einen Anruf nach einem `RING` an. Erinnern Sie sich, dies passiert ohne Mitwirkung einer Software auf Ihrem Rechner.

Wie viele andere Wählprogramme auch, prüft Kppp ob die Verbindung vom Server beendet wurde und beendet dann die Verbindung, wenn ein `NO CARRIER` registriert wurde. Und das ist das nächste Problem:

`NO CARRIER` wird auch registriert, wenn der Rückruf-Server auflegt, nachdem er weiß unter welcher Nummer er zurückrufen soll. Manche Server benutzen dafür ein spezielles Anmeldeprogramm. Wie können Sie dieses Problem lösen? Sagen Sie Ihrem Modem, daß es die ganze Zeit eine offene Leitung zeigen soll (was kein Problem bereitet, wenn der Client auflegt), indem Sie das Modemkommando

    AT&C0

benutzen.

Wenn Sie das testen wollen, können Sie zuerst ein normales Terminalprogramm wie minicom benutzen und Ihren Rückruf-Server anrufen.

#### Die Kppp Einstellungen

Kppp einzustellen, um damit zu einem Linux Rückruf-Server zu verbinden, ist einfach.

1. Sie müssen Ihrem Modem nur mitteilen, daß es Anrufe annehmen soll (siehe oben) und daß es die Leitung nicht schließt, wenn der Rückruf-Server zum ersten Mal auflegt, um Sie zurückzurufen. Beides sind Modemeinstellungen, die auf der Karteikarte "Modem" in den Einstellungen eingestellt werden müssen. Stellen Sie sicher, daß Ihre Einstellungen wie folgt aussehen:

       Wählstring:   AT&C0S0=1DT

   Alle anderen Einstellungen können Sie so belassen wie sie sind. Kppp hat ein paar Probleme beim Initialisieren und Zurücksetzen des Modem. Falls Sie Probleme haben, schauen Sie im Abschnitt Problembeseitigung nach.

2. Machen Sie sich jetzt ein paar Gedanken über Ihren Server. Denken Sie daran, daß Windows und Unix-Betriebssysteme unterschiedlicher Meinung sind, wie Zeilenenden in Textdateien (und Anmeldeprozeduren) aussehen: einfaches CR oder CR/LF oder LF. Falls Sie eine Verbindung zu einem Macintosh-Server aufbauen wollen, benutzen Sie CR als Zeilenende.

3. Der nächste Abschnitt beschreibt die Einstellung von Kppp auf der Basis eines Linux Rückruf-Pakets (siehe unten), das eine gewöhnliche Anmeldeprozedur (kein PAP oder sonstiges) benutzt. Dafür müssen Sie die folgende Art der Authentifizierung auf der Karteikarte "Wählen" in den Zugangseinstellungen auswählen:

       Authentifizierung:   Skript-basiert

   Natürlich können Sie auch zuerst "Terminal-basiert" wählen und Ihre Verbindung testen. Achten Sie darauf, was Sie der Server fragt, damit Sie danach Ihr Login-Skript schreiben können.

4. Nun müssen Sie das Login-Skript schreiben. Auf meinen Server, braucht der Benutzer "xyz" das folgende Skript, um zu Hause zurückgerufen zu werden (der Rückruf-Server hat eine Tabelle mit Namen und Nummern, so daß Sie Ihre Telefonnummer über einen Alias auswählen müssen (Sicherheit!)):

       Expect      ogin:       # denken Sie daran, wir melden uns auf einem Terminal an
       ID          ""          # Kppp sendet den Benutzernamen, den Sie im Hauptfenster
                               # angegeben haben.
       Expect      for xyz:    # Eine Liste verfügbarer Nummern wird gezeigt, von denen
                               # der Benutzer eine auswählen muß
       Send        xyz-home    # Der Benutzer will zurückgerufen werden
       Expect      ogin:       # Der Rückrufprozeß läuft. Eine neue Verbindung, eine neue Anmeldung
       ID
       Expect      assword:
       Password                # Jetzt Ihr Paßwort
       Expect      >           # warte auf die Eingabeaufforderung (das kann variieren)
       Send        start_ppp   # start_ppp startet den pppd

   Ignorieren Sie die Kommentare, die mit "&num;" beginnen. Nachdem die Anmeldeaufforderung erscheint, sendet der Benutzer seinen Benutzernamen und wartet auf die Liste mit verfügbaren Verbindungen. Dann teilt er dem Server mit unter welcher Nummer er zurückgerufen werden will. Kppp kann dafür einen Dialog aufmachen (sehr nützliche Eigenschaft), wenn sich Ihr Aufenthaltsort schnell ändert (z.B. wenn Sie ein Vertreter sind und von Hotel zu Hotel reisen). Danach erwartet der Server Ihren Benutzernamen und die Paßworteingabe. In der Zwischenzeit hängt der Server auf und ruft den Benutzer zurück. Kppp wartet auf die Eingabeaufforderung und startet dann ein kurzes Skript, das den pppd auf dem Server startet. Das Skript könnte etwa folgendermaßen aussehen:

         #!/bin/sh

         stty -echo

         exec /usr/sbin/pppd -detach silent modem

   Natürlich geht die Konfiguration eines Rückruf-Servers etwas über die Intention dieses Kapitel hinaus. Für mehr Informationen lesen Sie die pppd-Manpage. Einen Beispiel für die Konfiguration eines Rückruf-Servers finden Sie hier.

Alle anderen Einstellungen (z.B. pppd Konfiguration oder IP-Einstellungen) sind die gleichen wie sonst auch. Denken Sie daran, daß keine spezielle Software nötig ist, um den Rückruf anzunehmen.

Hinweis: Kppp Rückruf und andere Programme wie mgetty oder andere faxgetty können auf die gleiche serielle Schnittstelle zugreifen. Dabei gibt es beim Einwählen keine Probleme, da Kppp eine Sperrdatei erzeugt, die anderen getty-Programmen anzeigt, daß gerade ein anderes Programm die Leitung benutzt. Wegen genereller Probleme mit mgetty lesen Sie den Abschnitt Problembeseitigung weiter unten.

#### Problembeseitigung

Es gibt ein paar bekannte Probleme mit Kppp im Rückruf-Modus:

- Da Sie das Modem mit `AutoAnswer` initialisieren, müssen Sie es nach dem Verbindungsabbruch zurücksetzen. Wenn Sie das nicht tun, wird das Modem alle Anrufe für Sie annehmen.

- Wie schon im Abschnitt Die Kppp Einstellungen beschrieben, müssen Sie das Modem mit dem Wählstring initialisieren. Der normale Kppp "Init-String" kann solche komplexeren Init-Strings, die für Rückrufverbindungen benötigt werden, nicht aufnehmen.

- Der nächste Punkt ist allgemeiner und nicht beschränkt auf Rückrufverbindungen: Kppp hat leichte Problem, wenn die Modemschnittstelle mit einem anderen Programm wie mgetty gemeinsam benutzt wird. Wenn mgetty die gleiche Schnittstelle benutzt, kann Kppp das Modem nicht korrekt initialisieren. Das klappt erst beim zweiten Versuch.

- Kppp kann während einer Skript-basierten Verbindung nach einer Benutzereingabe fragen. Leider fragt Kppp Sie auch nach dem Benutzernamen, wenn der Server zum zweiten Mal den Benutzernamen wissen will (siehe den Login-Skript Abschnitt oben). Wenn Sie das abstellen wollen, müssen Sie Ihren Benutzernamen direkt in das Login-Skript schreiben (nicht sehr schön, aber es hilft).

#### Serversoftware im Internet

Linux Rückruf-Server Softwarepakete sind überall im Internet erhältlich. Natürlich gehört auch das sehr bekannte und leistungsfähige mgetty dazu, mit dem man auch Rückrufverbindungen erstellen kann. Eine Beschreibung, wie man mgetty dafür konfigurieren muß, gibt es hier. Die Seite wird betreut von Colin Mc Kinnon, also fragen Sie bitte nicht mich, wenn Sie irgendwelche Probleme haben. Aber es ist auch ein fertig benutzbares Paket für Linux Rückruf-Server hier erhältlich. Das Paket wird betreut von Frank B. Brokken. Weil das Paket nicht so leicht einzustellen ist (obwohl die Konfiguration eigentlich unkompliziert ist), habe ich eine kurze Einleitung dafür geschrieben. Schauen Sie dort ebenfalls nach, wenn Sie eine weitergehende allgemeine Einführung in Rückrufverbindungen wollen.

### Windows NT RAS Rückrufverbindungen

Windows NT benutzt einen völlig verschiedenen Ansatz als der hier beschriebene (wie üblich). NT benötigt eine Erweiterung des PPP Protokolls namens CBCP (Call Back Control Protocol). `pppd` unterstützt dieses Protokoll, aber Sie müssen `pppd` dazu neu kompilieren.

Wenn irgend jemand Erfahrungen dazu gesammelt hat, wie man dies mit Kppp macht, teilen Sie mir diese bitte mit.

## Anhang

### Der Hayes-Modem-Befehlssatz

Der Hayes-Befehlssatz könnte nützlich sein, wenn Sie Ihre Modembefehle feineinstellen müssen.

### Dateien in Zusammenhang mit Kppp

Standardmäßig benutzt Kppp folgende Dateien und Verzeichnisse. Die Position mancher von ihnen kann bei der Kompilierung geändert werden.

    &dollar;(KDEDIR)/bin/kppp
    &dollar;(KDEDIR)/share/doc/HTML/.../kppp/*
    &dollar;(KDEDIR)/share/apps/kppp
    &dollar;(KDEDIR)/share/apps/kppp/Rules/*/*.rst
    &dollar;(KDEDIR)/share/apps/kppp/pics/*
    &dollar;(HOMEDIR)/.kde/share/apps/kppp
    &dollar;(HOMEDIR)/.kde/share/apps/kppp/kppp.pid
    &dollar;(HOMEDIR)/.kde/share/apps/kppp/Log/*
    &dollar;(HOMEDIR)/.kde/share/config/kppprc

### Über Probleme mit Kppp berichten

Bevor Sie dem Betreuer von Kppp über ein Problem oder einen potentiellen Fehler berichten, stellen Sie bitte sicher, daß Sie den Abschnitt Häufig gestellte Fragen sorgfältig gelesen haben.

Wenn Sie dann immer noch Probleme haben, sollten Sie Ihrem Bericht folgende Informationen beifügen:

- Die Version von Kppp, die Sie nutzen. `kppp -v` zeigt die Versionsnummer.

- Die Version von pppd, die Sie nutzen. `/usr/sbin/pppd -h` zeigt die Nummer.

- Welches Betriebssystem und -version sie nutzen. `uname -a` gibt Ihnen diese Information bei den meisten UNIX-Systemen.

- Wenn Kppp ``pppd died unexpectedly'', fügen Sie den `debug`-Parameter zu den pppd-Parametern hinzu. Wählen Sie erneut, um den Fehler noch einmal zu erzeugen.

  Jetzt steht in der `/var/log/messages`-Datei (das hängt von Ihrem System und der Konfiguration ab, aber normal installierte Linuxsysteme haben es dort. Natürlich müssen Sie root-Berechtigung besitzen, um die Datei zu lesen) eine Menge Debug-Ausgaben am Ende. Schicken Sie mir nicht die gesamte Datei. Sie hat normalerweise Tausende Zeilen und wir haben weder Zeit noch Lust, eine solche Datei zu bearbeiten. Stattdessen schicken Sie uns nur die letzten Zeilen, die `pppd` enthalten. Stellen Sie sicher, daß diese Datei keine Sicherheitsrelevanten Informationen wie Paßwörter oder Benutzernamen enthält. Ersetzen Sie solche Einträge mit etwas wie `meinbenutzername` und `meinpasswort`.

## Die GNU General Public License

Es folgt der Text in Englisch der GPL (GNU General Public License). Da die Übersetzung der Lizenz nicht rechtskräftig ist, wurde hier die Originalfassung stehen lassen. Eine inoffizielle Übersetzung der GPL finden Sie unter http://www.gnu.de/gpl-ger.html

    		    GNU GENERAL PUBLIC LICENSE
    		       Version 2, June 1991

     Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                              675 Mass Ave, Cambridge, MA 02139, USA
     Everyone is permitted to copy and distribute verbatim copies
     of this license document, but changing it is not allowed.

    			    Preamble

      The licenses for most software are designed to take away your
    freedom to share and change it.  By contrast, the GNU General Public
    License is intended to guarantee your freedom to share and change free
    software--to make sure the software is free for all its users.  This
    General Public License applies to most of the Free Software
    Foundation's software and to any other program whose authors commit to
    using it.  (Some other Free Software Foundation software is covered by
    the GNU Library General Public License instead.)  You can apply it to
    your programs, too.

      When we speak of free software, we are referring to freedom, not
    price.  Our General Public Licenses are designed to make sure that you
    have the freedom to distribute copies of free software (and charge for
    this service if you wish), that you receive source code or can get it
    if you want it, that you can change the software or use pieces of it
    in new free programs; and that you know you can do these things.

      To protect your rights, we need to make restrictions that forbid
    anyone to deny you these rights or to ask you to surrender the rights.
    These restrictions translate to certain responsibilities for you if you
    distribute copies of the software, or if you modify it.

      For example, if you distribute copies of such a program, whether
    gratis or for a fee, you must give the recipients all the rights that
    you have.  You must make sure that they, too, receive or can get the
    source code.  And you must show them these terms so they know their
    rights.

      We protect your rights with two steps: (1) copyright the software, and
    (2) offer you this license which gives you legal permission to copy,
    distribute and/or modify the software.

      Also, for each author's protection and ours, we want to make certain
    that everyone understands that there is no warranty for this free
    software.  If the software is modified by someone else and passed on, we
    want its recipients to know that what they have is not the original, so
    that any problems introduced by others will not reflect on the original
    authors' reputations.

      Finally, any free program is threatened constantly by software
    patents.  We wish to avoid the danger that redistributors of a free
    program will individually obtain patent licenses, in effect making the
    program proprietary.  To prevent this, we have made it clear that any
    patent must be licensed for everyone's free use or not licensed at all.

      The precise terms and conditions for copying, distribution and
    modification follow.

    		    GNU GENERAL PUBLIC LICENSE
       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

      0. This License applies to any program or other work which contains
    a notice placed by the copyright holder saying it may be distributed
    under the terms of this General Public License.  The "Program", below,
    refers to any such program or work, and a "work based on the Program"
    means either the Program or any derivative work under copyright law:
    that is to say, a work containing the Program or a portion of it,
    either verbatim or with modifications and/or translated into another
    language.  (Hereinafter, translation is included without limitation in
    the term "modification".)  Each licensee is addressed as "you".

    Activities other than copying, distribution and modification are not
    covered by this License; they are outside its scope.  The act of
    running the Program is not restricted, and the output from the Program
    is covered only if its contents constitute a work based on the
    Program (independent of having been made by running the Program).
    Whether that is true depends on what the Program does.

      1. You may copy and distribute verbatim copies of the Program's
    source code as you receive it, in any medium, provided that you
    conspicuously and appropriately publish on each copy an appropriate
    copyright notice and disclaimer of warranty; keep intact all the
    notices that refer to this License and to the absence of any warranty;
    and give any other recipients of the Program a copy of this License
    along with the Program.

    You may charge a fee for the physical act of transferring a copy, and
    you may at your option offer warranty protection in exchange for a fee.

      2. You may modify your copy or copies of the Program or any portion
    of it, thus forming a work based on the Program, and copy and
    distribute such modifications or work under the terms of Section 1
    above, provided that you also meet all of these conditions:

        a) You must cause the modified files to carry prominent notices
        stating that you changed the files and the date of any change.

        b) You must cause any work that you distribute or publish, that in
        whole or in part contains or is derived from the Program or any
        part thereof, to be licensed as a whole at no charge to all third
        parties under the terms of this License.

        c) If the modified program normally reads commands interactively
        when run, you must cause it, when started running for such
        interactive use in the most ordinary way, to print or display an
        announcement including an appropriate copyright notice and a
        notice that there is no warranty (or else, saying that you provide
        a warranty) and that users may redistribute the program under
        these conditions, and telling the user how to view a copy of this
        License.  (Exception: if the Program itself is interactive but
        does not normally print such an announcement, your work based on
        the Program is not required to print an announcement.)

    These requirements apply to the modified work as a whole.  If
    identifiable sections of that work are not derived from the Program,
    and can be reasonably considered independent and separate works in
    themselves, then this License, and its terms, do not apply to those
    sections when you distribute them as separate works.  But when you
    distribute the same sections as part of a whole which is a work based
    on the Program, the distribution of the whole must be on the terms of
    this License, whose permissions for other licensees extend to the
    entire whole, and thus to each and every part regardless of who wrote it.

    Thus, it is not the intent of this section to claim rights or contest
    your rights to work written entirely by you; rather, the intent is to
    exercise the right to control the distribution of derivative or
    collective works based on the Program.

    In addition, mere aggregation of another work not based on the Program
    with the Program (or with a work based on the Program) on a volume of
    a storage or distribution medium does not bring the other work under
    the scope of this License.

      3. You may copy and distribute the Program (or a work based on it,
    under Section 2) in object code or executable form under the terms of
    Sections 1 and 2 above provided that you also do one of the following:

        a) Accompany it with the complete corresponding machine-readable
        source code, which must be distributed under the terms of Sections
        1 and 2 above on a medium customarily used for software interchange; or,

        b) Accompany it with a written offer, valid for at least three
        years, to give any third party, for a charge no more than your
        cost of physically performing source distribution, a complete
        machine-readable copy of the corresponding source code, to be
        distributed under the terms of Sections 1 and 2 above on a medium
        customarily used for software interchange; or,

        c) Accompany it with the information you received as to the offer
        to distribute corresponding source code.  (This alternative is
        allowed only for noncommercial distribution and only if you
        received the program in object code or executable form with such
        an offer, in accord with Subsection b above.)

    The source code for a work means the preferred form of the work for
    making modifications to it.  For an executable work, complete source
    code means all the source code for all modules it contains, plus any
    associated interface definition files, plus the scripts used to
    control compilation and installation of the executable.  However, as a
    special exception, the source code distributed need not include
    anything that is normally distributed (in either source or binary
    form) with the major components (compiler, kernel, and so on) of the
    operating system on which the executable runs, unless that component
    itself accompanies the executable.

    If distribution of executable or object code is made by offering
    access to copy from a designated place, then offering equivalent
    access to copy the source code from the same place counts as
    distribution of the source code, even though third parties are not
    compelled to copy the source along with the object code.

      4. You may not copy, modify, sublicense, or distribute the Program
    except as expressly provided under this License.  Any attempt
    otherwise to copy, modify, sublicense or distribute the Program is
    void, and will automatically terminate your rights under this License.
    However, parties who have received copies, or rights, from you under
    this License will not have their licenses terminated so long as such
    parties remain in full compliance.

      5. You are not required to accept this License, since you have not
    signed it.  However, nothing else grants you permission to modify or
    distribute the Program or its derivative works.  These actions are
    prohibited by law if you do not accept this License.  Therefore, by
    modifying or distributing the Program (or any work based on the
    Program), you indicate your acceptance of this License to do so, and
    all its terms and conditions for copying, distributing or modifying
    the Program or works based on it.

      6. Each time you redistribute the Program (or any work based on the
    Program), the recipient automatically receives a license from the
    original licensor to copy, distribute or modify the Program subject to
    these terms and conditions.  You may not impose any further
    restrictions on the recipients' exercise of the rights granted herein.
    You are not responsible for enforcing compliance by third parties to
    this License.

      7. If, as a consequence of a court judgment or allegation of patent
    infringement or for any other reason (not limited to patent issues),
    conditions are imposed on you (whether by court order, agreement or
    otherwise) that contradict the conditions of this License, they do not
    excuse you from the conditions of this License.  If you cannot
    distribute so as to satisfy simultaneously your obligations under this
    License and any other pertinent obligations, then as a consequence you
    may not distribute the Program at all.  For example, if a patent
    license would not permit royalty-free redistribution of the Program by
    all those who receive copies directly or indirectly through you, then
    the only way you could satisfy both it and this License would be to
    refrain entirely from distribution of the Program.

    If any portion of this section is held invalid or unenforceable under
    any particular circumstance, the balance of the section is intended to
    apply and the section as a whole is intended to apply in other
    circumstances.

    It is not the purpose of this section to induce you to infringe any
    patents or other property right claims or to contest validity of any
    such claims; this section has the sole purpose of protecting the
    integrity of the free software distribution system, which is
    implemented by public license practices.  Many people have made
    generous contributions to the wide range of software distributed
    through that system in reliance on consistent application of that
    system; it is up to the author/donor to decide if he or she is willing
    to distribute software through any other system and a licensee cannot
    impose that choice.

    This section is intended to make thoroughly clear what is believed to
    be a consequence of the rest of this License.

      8. If the distribution and/or use of the Program is restricted in
    certain countries either by patents or by copyrighted interfaces, the
    original copyright holder who places the Program under this License
    may add an explicit geographical distribution limitation excluding
    those countries, so that distribution is permitted only in or among
    countries not thus excluded.  In such case, this License incorporates
    the limitation as if written in the body of this License.

      9. The Free Software Foundation may publish revised and/or new versions
    of the General Public License from time to time.  Such new versions will
    be similar in spirit to the present version, but may differ in detail to
    address new problems or concerns.

    Each version is given a distinguishing version number.  If the Program
    specifies a version number of this License which applies to it and "any
    later version", you have the option of following the terms and conditions
    either of that version or of any later version published by the Free
    Software Foundation.  If the Program does not specify a version number of
    this License, you may choose any version ever published by the Free Software
    Foundation.

      10. If you wish to incorporate parts of the Program into other free
    programs whose distribution conditions are different, write to the author
    to ask for permission.  For software which is copyrighted by the Free
    Software Foundation, write to the Free Software Foundation; we sometimes
    make exceptions for this.  Our decision will be guided by the two goals
    of preserving the free status of all derivatives of our free software and
    of promoting the sharing and reuse of software generally.

    			    NO WARRANTY

      11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
    FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
    PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
    OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
    TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
    PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
    REPAIR OR CORRECTION.

      12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
    REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
    INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
    OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
    TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
    YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
    PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
    POSSIBILITY OF SUCH DAMAGES.

    		     END OF TERMS AND CONDITIONS