# Kapitel 9 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:

# 9.1 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.

## 9.1.1 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.

## 9.1.2 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 "#" 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.

## 9.1.3 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).

## 9.1.4 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.