Kapitel 9. Konfigurieren von KPPP für Rückrufverbindungen

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

UNIX® oder 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.

Einführung in Rückrufverbindungen

Es gibt verschiedene Gründe für die Benutzung von Rückrufverbindungen. Einige davon sind:

  • Die Sicherheit Ihres lokalen Netzwerkes erhöhen.

  • Die Kosten von auswärtigen Mitarbeitern senken.

  • Telefonkosten kontrollieren, die als Geschäftsausgaben deklariert wurden.

Machen Sie sich Sorgen, dass jemand Ihren Einwahl-Server anwählt und versucht ein Passwort zu entschlüsseln? Warum betreiben Sie dann überhaupt einen Firewall für Ihre Internetverbindungen?

Rückrufverbindungs-Software fragt normalerweise nach Ihrem Namen und unterbricht dann die Verbindung. Dann ruft sie Sie zurück, meistens unter einer Nummer die auf dem Server in einer Datenbank gespeichert ist.Der Client nimmt den Anruf an und fährt mit dem Verbindungsaufbau fort, als wenn nichts gewesen wäre. Der Server fragt Sie nun nach Ihrem Benutzernamen und Passwort, wohlwissend das Sie die Person sind, deren Namen bei der ersten Einwahl angegeben wurde. Die Verbindung wird normal aufgebaut und pppd wird gestartet.

Die Frage ist, wie sage ich dem Client er soll den Anruf annehmen, wenn der Server zurückruft? Brauchen Sie dazu ein Programm wie mgetty? Die Antwort ist Nein! Sie brauchen kein spezielles Client-Programm.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.

Das einzige was Sie tun müssen ist Ihrem Modem zu sagen AutoAnswer den Anruf, wenn ein RING aufgetreten ist durch das Modem. Dieses erreichen Sie durch den folgenden Modem-Befehl:

AT&SO=1

Dieser Befehl sagt dem Modem, nimm ab nach einem RING.

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, dass es die ganze Zeit eine offene Leitung zeigen soll (was kein Problem bereitet, wenn der Client auflegt), indem Sie den Modembefehl benutzen:

AT&C0

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

Die KPPP Einstellungen

Jetzt, wo Sie die Theorie in Aktion gesehen haben, wie müssen Sie KPPP einstellen, um damit zu einem Rückruf-Server zu verbinden?

Die folgende Prozedur ist sehr einfach.

  1. Zuerst müssen Sie Ihrem Modem mitteilen, dass es Anrufe annehmen soll und die Leitung nicht schließt, wenn der Rückruf-Server auflegt, um zurückzurufen. Beide Einstellungen können Sie auf der Modem Karte der KPPP Konfiguration vornehmen durch hinzufügen von AT&C0S0=1DT zu der Option Wähl-Zeichenfolge.

    Alle anderen Einstellungen für KPPP können Sie belassen. Falls Sie auf Probleme beim Modem Initialisieren und Zurücksetzen treffen, lesen Sie im Abschnitt Problembeseitigung nach.

  2. Machen Sie sich jetzt ein paar Gedanken über Ihren Server. Denken Sie daran, dass 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.

    Setzen Sie die Art der Authentifizierung auf der Wählen Karte der Zugangseinstellung auf Skript-basiert

  4. Nun müssen Sie das Anmeldeskript schreiben. Sie finden es auf der Karteikarte Anmeldeskript des Dialogs Zugang bearbeiten.

    In diesem Beispiel braucht der Benutzer Benutzer xyz das folgende Skript, um zu Hause zurückgerufen zu werden (der Rückruf-Server hat eine Tabelle mit Namen und Nummern, sodass Sie Ihre Telefonnummer aus Sicherheitsgründen über einen Alias auswählen müssen ).

    Für jede Zeile wählen Sie das Kriterium von der Auswahlliste auf der linken Seite des Dialoges aus und schreiben in das Textfeld auf der rechten Seite. Wählen Sie Hinzufügen um die einzelnen Zeilen zum Skript hinzuzufügen. Sie können die Option Einfügen benutzen, um eine Zeile inmitten des Skripts einzufügen und Löschen, um eine Zeile zu löschen, falls Sie einen Fehler gemacht haben.

    Das Skript könnte etwa folgendermaßen aussehen ( ohne die Kommentare, beginnend mit #):

    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 muss 
    Send         xyz-home    # Der Benutzer will zurückgerufen werden
    Expect       ogin:           # Der Rückrufprozess läuft. Eine neue Verbindung, eine neue Anmeldung
    ID
    Expect       assword:        # Jetzt Ihr Passwort
    Expect       >            # warte auf die Eingabeaufforderung (das kann variieren)
    Send         start_ppp       # start_ppp startet den pppd
    

    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 öffnen, falls sich Ihr Aufenthaltsort oft ändert (z. B. wenn Sie ein Vertreter sind und von Hotel zu H otel reisen). Danach erwartet der Server Ihren Benutzernamen und die Passworteingabe. 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 (hier genannt start_ppp), welches den pppd auf dem Server startet.

    Das start_ppp Skript könnte etwa folgendermaßen aussehen:

    #!/bin/sh
    stty -echo
    exec /usr/sbin/pppd -detach silent modem
    

    Natürlich geht die Konfiguration eines PPP-Servers etwas über die Intention dieses Kapitel hinaus. Für mehr Informationen lesen Sie die pppd-Manpage.

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

Anmerkung

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, dass gerade ein anderes Programm die Leitung benutzt.

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.

  • 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.

  • 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. Wenn Sie das abstellen wollen, müssen Sie Ihren Benutzernamen direkt in das Anmeldeskript schreiben (nicht sehr schön, aber es hilft).