Inhalt

10. Konfiguration eines Einwahldienstes

10.1 Übersicht

Wenn Sie mit Ihrem Modem eine Verbindung zu einem anderen Rechner aufbauen, nutzen Sie damit gleichzeitig einen Einwahldienst auf dem anderen Rechner. Ohne diesen Dienst käme keine Verbindung zustande.

Umgekehrt können Sie es anderen Personen ermöglichen, Ihr Modem anzurufen und Ihren PC zu nutzen. In der Praxis sieht das so aus, dass jemand mit einem Modem Ihre Nummer wählt. Ihr Modem nimmt ab und beide Modems versuchen, eine Verbindung aufzubauen, indem sie sich auf ein Übertragungsprotokoll einigen. Wenn die Verbindung steht, kann Ihr PC z.B. eine Aufforderung zum Einloggen senden. Der Anfrufer kann sich auf Ihrem PC anmelden und dann auf Ihrem PC arbeiten, ganz so, als ob er sich direkt an einer Konsole angemeldet hätte. Das setzt natürlich voraus, dass der Anrufer mit seinem Benutzernamen auf Ihrem PC bekannt ist und für ihn ein entsprechender Benutzer eingerichtet ist. Eine andere Möglichkeit besteht darin, dass der Anrufer mit seinem PC Zugang zum Internet erhält, falls Ihr PC eine Verbindung zum Internet hat. Das Programm, dass diese Dienste zur Verfügung stellt, heisst getty.

Häufig werden nach einem erfolgreichem Login weitere Programme gestartet, z.B. solche Programme, die den Anrufer mittles PPP mit dem Internet verbinden. In diesem HOWTO werden diese Programme nicht behandelt.

Der Login-Vorgang kann auch automatisiert werden, so dass das Terminalprogramm automatisch den Benutzernamen und das Passwort überträgt.

10.2 getty

getty stellt einen Einwahldienst zur Verfügung. Sie brauchen es nicht, wenn Sie mit Ihrem Modem eine andere Nummer anwählen. Neben der Fähigkeit, einen Login-Prompt zu übertragen, kann es auch auf den Telefonanruf reagieren. Ursprünglich wurde getty zum einloggen in einen Computer von einem einfachen Terminal aus verwendet. Es wird jetzt noch verwendet, um sich an einer Linux-Konsole anzumelden. Es gibt einige verschiedene getty-Programme mit leicht unterschiedlichen Namen. Nur bestimmte Programme stellen eine Einwahlmöglichkeit zusammen mit einem Modem zur Verfügung. getty wird normalerweise beim Booten des System gestartet. Es muss von der Datei /etc/initab aufgerufen werden. Eventuell finden Sie in dieser Datei bereits einen Aufruf von getty, den Sie aber wahrscheinlich noch anpassen müssen. Insbesondere haben die verschiedenen getty-Programmtypen unterschiedliche Aufrufparameter.

Sie können aus vier verschiedenen getty-Programmtypen auswählen, die alle für die Konfiguration einer Einwahlmöglichkeit in Verbindung mit einem Modem verwendet werden können: mgetty, uugetty, getty_em und agetty. Einige Details werden in den nächsten Abschnitten behandelt. agetty ist das einfachste der vier Typen, hat allerdings auch nur eine eingeschränkte Funktionalität und wird daher hauptsächlich bei einer direkten Verbindung mit Textterminals verwendet. mgetty unterstützt Fax- und Sprachnachrichten, uugetty dagegen nicht. Angeblich fehlen mgetty dagegen ein paar Leistungsmerkmale von uugetty. getty_em ist eine vereinfachte Variante von uugetty. Wenn Sie sich also nicht ohnehin schon mit uugetty auskennen, sollten Sie mgetty verwenden.

mgetty

mgetty ist der Nachfolger von uugetty. Beide eignen sich für den Einsatz mit Modems. mgetty kann auch für direkt angeschlossene Textterminals verwendet werden. Neben dem Bereitstellen eines Login-Prompts kann mgetty auch mit FAX-Dokumenten umgehen und verfügt über eine automatische PPP Erkennung. Es gibt ein Zusatzprogramm namens vgetty, welches zusammen mit einigen Modems eine Anrufbeantworterfunktion übernehmen kann. Die mgetty-Dokumentation ist ausgezeichnet und nicht Bestandteil dieses HOWTOs. Um PPP automatisch zu starten, muss die Konfigurationsdatei /etc/mgetty/login.conf angepasst werden. Informationen zu mgetty finden Sie im WWW unter:

uugetty

getty_ps besteht aus zwei Programmen: getty wird für Textkonsolen und Terminalgeräte verwendet und uugetty für Modems. Greg Hankins (früher Autor des Serial HOWTO) verwendete uugetty, daher sind seine Erfahrungen mit diesem Programm im Abschnitt Uugetty-Konfiguration enthalten.

getty_em

getty_em ist eine vereinfachte Version von uugetty. Es wurde von Vern Hoxie geschrieben, weil er die komplexen Konfigurationsdateien für getty_ps und uugetty verwirrend fand.

Es ist Teil einer Sammlung von mehreren Dienstprogrammen und Informationsschriften für die serielle Schnittstelle von Vern Hoxie. Sie ist via FTP erhältlich unter:

ftp://scicom.alphacdc.com/pub/linux
Der Name der Datei ist serial_suite.tgz.

agetty und mingetty

agetty ist eine einfache, aber vollständige Implementierung von getty, die sich besser für virtuelle Konsolen oder Terminals als für Modems eignet. Unter günstigen Umständen kann es aber auch mit Modems verwendet werden (allerdings können Sie keinen abgehenden Anruf initiieren, wenn agetty aktiv ist und auf einen Anruf wartet). In der Debian-Distribution heisst agetty einfach getty.

mingetty ist eine kleine Version von getty, die nur für Konsolen (bzw. Monitore) funktioniert, mit Modems kann sie nicht verwendet werden.

10.3 Was passiert, wenn sich jemand einwählt?

Der Anrufer verwendet ein beliebiges Terminalprogramm, das Ihre Nummer wählt und Ihr Telefon läutet. Es gibt zwei Möglichkeiten, wie Ihr PC den Anruf entgegennehmen kann. Einmal kann das Modem den Anruf automatisch annehmen. Die andere Möglichkeit besteht darin, dass getty merkt, dass es läutet, und daraufhin einen Befehl an das Modem sendet, den Anruf entgegenzunehmen. Wenn das Modem abgenommen hat, sendet das Modem Töne zum anderen Modem (und umgekehrt). Beide Modems einigen sich auf ein Übertragungsprotokoll, und wenn das erfolgreich ist, sendet ihr Modem eine »CONNECTed«-Nachricht an getty. Wenn getty diese Nachricht erhält, sendet es den Login Prompt über den seriellen Port. Manchmal ruft getty auch ein Programm namens login auf, um den Login-Vorgang abzuwickeln. getty startet üblicherweise beim Booten des Systems, aber es wartet mit dem Senden des Login Prompts, bis eine Verbindung aufgebaut ist.

Nun noch einige Informationen über die beiden Möglichkeiten, den Anruf anzunehmen.

Der Wert des S0-Registers im Modem bestimmt, ob und wann ein eingehender Anruf beantwortet wird. Mit einem Terminalprogramm kann der Wert des S0-Registers mit dem Befehl »ATS0?« abgefragt werden. Mit dem Befehl »ATS0=3« wird das S0-Register des Modems auf den Wert 3 gesetzt, das Modem nimmt den Anruf nach dem 3. mal läuten entgegen. Steht das S0-Register auf 0, wird das Modem den Anruf nicht automatisch entgegennehmen, sondern erst, wenn es von getty oder einem Terminalprogramm den Befehl »ATA« (=Antwort) erhalten hat, während es läutet. Diese Möglichkeit sollte bevorzugt werden. Wenn das Modem den Anruf nicht automatisch entgegennimmt, spricht man von manueller Rufannahme, obwohl die Rufannahme von getty automatisch durchgeführt wird.

Bei »manueller« Rufannahme öffnet getty den seriellen Port zum Zeitpunkt des Systemstarts und hört auf die serielle Schnittstelle. Kommt ein Anruf herein, sendet das Modem eine »RING«-Nachricht an getty. Wenn der Anruf entgegengenommen werden soll, sendet getty einen »ATA«-Befehl an das Modem. Das Modem baut dann die Verbindung auf und sendet eine »CONNECT..«-Nachricht, sobald die Verbindung steht. getty kann dann den Login-Prompt zum Anrufer übertragen.

Bei automatischer Annahme des Anrufs durch das Modem wird das DCD-Signal (Data Carrier Detect, d.h. es ist ein Trägersignal zur Übermittlung von Daten vorhanden) der seriellen Schnittstelle verwendet, um zu signalisieren, dass eine Verbindung aufgebaut wurde. Zum Zeitpunkt des Systemstarts versucht getty, den seriellen Port zu öffnen, aber dieser Versuch schlägt im Allgemeinen fehl, da noch kein DCD-Signal des Modems anliegt. getty wartet daraufhin an dieser Stelle im Programm, bis ein DCD-Signal auftritt. Wenn das der Fall ist (u.U. viele Stunden später), wird ein Interrupt ausgelöst, getty wird aktiv, der Port kann nun geöffnet werden und getty sendet den Login Prompt. Während getty auf das DCD-Signal wartet, können andere Prozesse ohne Beeinträchtigung aktiv sein, da Linux ein Multitasking-Betriebssystem ist.

Vielleicht fragen Sie sich, wie getty im »manuellen« Rufannahmemodus den seriellen Port öffnen kann, schiesslich gibt es ja zu diesem Zeitpunkt noch kein DCD-Signal. Nun, es gibt eine programmiertechnische Möglichkeit, das Öffnen des Ports zu erzwingen, selbst wenn kein DCD-Signal anliegt.

10.4 Warum die manuelle Rufannahme bevorzugt werden sollte

Der Unterschied zwischen beiden Möglichkeiten der Rufannahme zeigt sich dann, wenn der PC abgeschaltet ist, das Modem aber noch arbeitet. Im manuellen Fall wird die »RING«-Nachricht an getty gesendet, aber da der PC nicht läuft, gibt es auch keinen getty-Prozess, und der Anruf wird nicht entgegengenommen. Es fallen daher auch keine Telefongebühren an. Im Fall der automatischen Rufannahme hebt das Modem ab, aber es wird nie ein Login-Prompt gesendet, da der PC nicht läuft. Je länger der Anrufer auf den Login wartet, umso teurer wird seine Telefonrechnung. Zudem ist es frustrierend, auf einen Login zu warten, der niemals kommt. mgetty verwendet den manuellen Annahmemodus. uugetty kann dies ebenfalls, wenn ein Konfigurationsskript verwendet wird.

10.5 Rückruf

Es gibt auch die Möglichkeit eines automatischen Rückrufs. Zuerst ruft jemand Ihr Modem an. Sie erhalten dadurch ein paar Informationen über den Anrufer wie z.B. seine Telefonnummer. Der Anrufer legt aber wieder auf und wird unmittelbar danach von Ihrem Modem zurückgerufen. Welche Gründe gibt es, dieses Verfahren einzusetzen? Ein Grund ist z.B., um Telefonkosten zu sparen, falls Sie den Anrufer günstiger anrufen können als er Sie. Ein anderer Grund ist eine höhere Systemsicherheit. Mit dem Rückruf kann sichergestellt werden, dass der Anrufer wirklich der ist, für den er sich ausgibt.

Es gibt für Linux ein Programm namens callback (engl. Callback = Rückruf), das mit mgetty zusammenarbeitet. Es ist zu finden unter

ftp://ftp.icce.rug.nl/pub/unix.
Eine Schrittweise Anleitung zur Installation von callback (und PPP) ist zu finden unter
http://www.stokely.com/unix.serial.port.resources/callback.html

10.6 Sprachnachrichten

Die Verarbeitung von Sprachnachrichten ermöglicht dem PC, als Anrufbeantworter zu fungieren. Dazu benötigen Sie ein entsprechendes Modem (»Voice-Modem«) und die passende Software. Anstatt die Sprachnachrichten auf Band zu aufzuzeichnen, werden sie in digitaler Form auf der Festplatte gespeichert. Wenn Sie einen Anruf erhalten, hört der Anrufer eine Begrüßungsansage und kann dann eine Nachricht hinterlassen. Die etwas besseren Systeme erlauben je nach Anrufer individuelle Begrüßungstexte und die Sortierung der Nachrichten in verschiedene Mailboxen. Für Linux gibt es bisher nur frei verfügbare Software für einfache Anrufbeantwortersysteme.

Zwei Anrufbeantworter-Programme sind allgemein bekannt. Das eine implementiert nur sehr einfache Funktionen (siehe Anrufbeantworter-Software). Das andere Programmpaket ist vgetty, es besitzt zwar einen größeren Funktionsumfang, ist aber nicht so ausführlich dokumentiert. Es ist eine optionale Erweiterung zum gut dokumentierten und weit verbreiteten mgetty-Programm. Es unterstützt ZyXEL-ähnliche Modembefehle. Es sieht so aus, als ob vgetty im Moment nicht sehr stabil läuft, aber es wird erfolgreich eingesetzt und seine Entwicklung geht weiter. Falls jemand mehr über vgetty weiss, wäre ich für Hinweise bzgl. des aktuellen Entwicklungsstands sehr dankbar.


Inhalt