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:
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.
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, dass jemand die Nummer Ihres Einwählservers wählt, und versucht das Passwort 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 muss 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 Passwort fragen, dann steht die Verbindung und der pppd kann gestartet werden.
Nun, wie kann ich dem Client sagen, dass 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, dass es die ganze Zeit eine offene Leitung zeigen soll (was kein Problem bereitet, wenn der Client auflegt), indem Sie das Modemkommando
AT&C0 |
Wenn Sie das testen wollen, können Sie zuerst ein normales Terminalprogramm wie minicom benutzen und Ihren Rückruf-Server anrufen.
Kppp einzustellen, um damit zu einem Linux Rückruf-Server zu verbinden, ist einfach.
Sie müssen Ihrem Modem nur mitteilen, dass es Anrufe annehmen soll (siehe oben) und dass 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, dass Ihre Einstellungen wie folgt aussehen:
Wählstring: AT&C0S0=1DT |
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.
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 |
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 dass 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 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: Password # Jetzt Ihr Passwort Expect > # warte auf die Eingabeaufforderung (das kann variieren) Send start_ppp # start_ppp startet den pppd |
#!/bin/sh stty -echo exec /usr/sbin/pppd -detach silent modem |
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.
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. Wegen genereller Probleme mit mgetty lesen Sie den Abschnitt Problembeseitigung weiter unten.
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).
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 muss, 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.