Index: head/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml =================================================================== --- head/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml (revision 48558) +++ head/de_DE.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml (revision 48559) @@ -1,3235 +1,1984 @@ PPP und SLIP JimMockRestrukturiert, neu organisiert und aktualisiert von ThomasSchwarzkopfÜbersetzt von Übersicht PPP SLIP Unter FreeBSD stehen verschiedene Möglichkeiten zur Verfügung, um Computer miteinander zu verbinden. Der Aufbau einer Netzwerk- oder Internetverbindung mit Hilfe eines Einwahlmodems – für den eigenen oder für andere Rechner – - erfordert den Einsatz von PPP oder SLIP. + erfordert den Einsatz von PPP. Nachdem Sie dieses Kapitel gelesen haben, werden Sie wissen: Wie Sie User-PPP einrichten. - Wie Sie Kernel-PPP einrichten (nur für - &os; 7.X relevant). - - Was zu tun ist, um PPPoE (PPP over Ethernet) einzurichten. Wie Sie PPPoA (PPP over ATM) einrichten. - - Wie Sie einen SLIP-Client und -Server einrichten und - konfigurieren ((nur für &os; 7.X relevant) - PPP User-PPP PPP Kernel-PPP PPP over Ethernet Bevor Sie dieses Kapitel lesen, sollten Sie: mit den grundlegenden Begriffen der Netzwerktechnik vertraut sein. die Grundlagen und den Zweck einer Einwahlverbindung sowie - PPP und/oder SLIP kennen. + PPP kennen. - - Sie fragen sich vielleicht, worin denn der Hauptunterschied - zwischen User-PPP und Kernel-PPP liegt. Die Antwort ist einfach: - User-PPP verarbeitet die ein- und ausgehenden Daten im Userland, - statt im Kernel. Dies ist zwar aufwändig, im Hinblick auf - die Daten, die dadurch zwischen Kernel und Userland hin und her - kopiert werden müssen, doch es ermöglicht auch eine - PPP-Implementierung mit weitaus mehr Funktionen. User-PPP verwendet - das Gerät tun, um mit anderen Rechnern - zu kommunizieren, während Kernel-PPP hierfür das - Gerät ppp benutzt. - - - In diesem Kapitel wird durchgängig vom Programm - ppp gesprochen, wenn damit User-PPP - gemeint ist. Ausnahmen werden gemacht, wenn eine - Unterscheidung gegenüber anderer PPP-Software, wie - pppd (nur unter &os; 7.X), - notwendig wird. Soweit nichts - anderes angegeben ist, sollten alle Befehle, die in diesem - Kapitel erklärt werden, als root - ausgeführt werden. - User-PPP TomRhodesAktualisiert und erweitert von BrianSomersUrsprünglich geschrieben von NikClaytonMit Beiträgen von DirkFrömberg PeterChilds User-PPP Voraussetzungen Dieses Dokument geht davon aus, dass Sie Folgendes zur Verfügung haben: Einen Account bei einem Internet Service Provider (ISP)ISP, zu dem Sie mit PPPPPP eine Verbindung aufbauen können. Ein Modem oder ein anderes Gerät, das, richtig konfiguriert und mit Ihrem Rechner verbunden, Ihnen die Herstellung einer Verbindung zu Ihrem ISP erlaubt. Die Einwahlnummer(n) Ihres ISP. Ihren Login-NamenLogin Name und Ihr PasswortPasswort (entweder ein reguläres Login/Passwort-Paar im &unix;-StilUNIX oder ein PAPPAP bzw. CHAPCHAP Login/Passwort-Paar). Die IP-Adresse von einem oder mehreren NameservernNameserver. Üblicherweise werden Ihnen von Ihrem ISP zwei IP-Adressen für diesen Zweck zur Verfügung gestellt. Wenn Sie keine solche IP-Adresse von Ihrem Provider bekommen haben, können Sie das Kommando enable dns in der Datei ppp.conf verwenden, um ppp anzuweisen, den Nameserver für Sie einzutragen. Diese Funktion setzt allerdings voraus, dass Ihr ISP eine PPP-Implementierung verwendet, die das Aushandeln eines Nameservers unterstützt. Die folgenden Informationen werden Ihnen möglicherweise von Ihrem ISP zur Verfügung gestellt, sie sind aber nicht zwingend erforderlich: Die Gateway IP-Adresse Ihres ISP. Als Gateway wird der Computer bezeichnet, zu dem Sie eine Verbindung aufbauen. Die IP-Adresse dieses Rechners wird als default route eingetragen. Wenn Sie diese Information nicht zur Verfügung haben, kann PPP so konfiguriert werden, dass der PPP-Server Ihres ISP während des Verbindungsaufbaus eine gültige Adresse übermittelt. ppp bezieht sich mit HISADDR auf diese IP-Adresse. Die Netzmaske, die Sie verwenden sollten. Falls Ihnen Ihr ISP keine Netzmaske vorgegeben hat, können Sie 255.255.255.255 verwenden. Wenn Ihnen Ihr ISP eine statische IP-Adressefeste IP-Adresse zur Verfügung stellt, können Sie diese eintragen. Andernfalls lassen wir uns einfach von der Gegenstelle eine IP-Adresse zuweisen. Falls Ihnen die erforderlichen Informationen fehlen sollten, nehmen Sie bitte Kontakt mit Ihrem ISP auf. Die Beispieldateien, die in diesem Kapitel dargestellt werden, enthalten Zeilennummern. Die Nummerierung dient lediglich einer leichteren Orientierung und sollte von Ihnen nicht in Ihre Dateien übernommen werden. Richtiges Einrücken, durch Tabulatoren und Leerzeichen, ist ebenfalls wichtig. Automatische Konfiguration von <application>PPP</application> PPP Konfiguration - Sowohl ppp als auch pppd - (die PPP-Implementierung auf Kernelebene, nur unter &os; 7.X) - verwenden die - Konfigurationsdateien im Verzeichnis /etc/ppp. - Beispiele für User-PPP sind in /usr/share/examples/ppp/ + ppp verwendet die + Konfigurationsdateien in /etc/ppp. + Beispiele sind in /usr/share/examples/ppp/ zu finden. Die Konfiguration von ppp erfordert, je nach Ihren besonderen Bedingungen, die Bearbeitung einiger Dateien. Was Sie in diese Dateien eintragen, hängt unter anderem davon ab, ob Ihnen Ihr ISP eine statische IP-Adresse (Sie verwenden immer dieselbe IP-Adresse, die Ihnen einmal zugeteilt wurde) oder eine dynamische IP-Adresse (Ihre IP-Adresse ändert sich bei jeder Verbindung mit dem ISP) zugewiesen hat. PPP und statische IP-Adressen PPP mit fester IP-Adresse Sie müssen die Konfigurationsdatei /etc/ppp/ppp.conf bearbeiten. Sie sollte so aussehen, wie in dem unten angegebenen Beispiel. Zeilen die mit einem : enden, beginnen in der ersten Spalte (am Beginn der Zeile). Alle anderen Zeilen sollten wie dargestellt durch Leerzeichen oder Tabulatoren eingerückt werden. 1 default: 2 set log Phase Chat LCP IPCP CCP tun command 3 ident user-ppp VERSION (built COMPILATIONDATE) 4 set device /dev/cuau0 5 set speed 115200 6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ 7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" 8 set timeout 180 9 enable dns 10 11 provider: 12 set phone "(123) 456 7890" 13 set authname foo 14 set authkey bar 15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp" 16 set timeout 300 17 set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0 18 add default HISADDR Zeile 1: Gibt den Standardeintrag an. Befehle dieses Eintrags werden automatisch ausgeführt, wenn ppp läuft. Zeile 2: Schaltet die Loggingparameter ein. Wenn die Verbindung zufriedenstellend funktioniert, können Sie diese Zeile verkürzen: set log phase tun Dies verhindert ein übermäßiges Anwachsen der Logdateien. Zeile 3: Gibt PPP an, wie es sich gegenüber der Gegenstelle identifizieren soll. PPP identifiziert sich gegenüber der Gegenstelle, wenn es Schwierigkeiten bei der Aushandlung und beim Aufbau der Verbindung gibt. Dabei werden Informationen bereitgestellt, die dem Administrator der Gegenstelle helfen können, die Ursache der Probleme zu finden. Zeile 4: Gibt das Device an, an dem das Modem angeschlossen ist. COM1 entspricht /dev/cuad0 und COM2 entspricht /dev/cuad1. Zeile 5: Legt die Geschwindigkeit fest, mit der Sie die Verbindung betreiben möchten. Falls ein Wert von 115200 nicht funktioniert (was aber bei jedem einigermaßen neuen Modem funktionieren sollte), versuchen Sie es stattdessen mit 38400. Zeilen 6 & 7: Die Zeichenfolge für die Einwahl. User-PPPPPPUser-PPP verwendet eine expect-send Syntax, ähnlich dem &man.chat.8;-Programm. Weitere Informationen zu den Eigenschaften dieser Sprache bietet die Manual-Seite. Beachten Sie, dass dieser Befehl aufgrund der besseren Lesbarkeit auf der nächsten Zeile weitergeht. Das kann für jeden Befehl in ppp.conf gelten, wenn \ das letzte Zeichen in einer Zeile ist. Zeile 8: Legt den Zeitrahmen fest, innerhalb dessen eine Reaktion erfolgen muss. Der Standardwert liegt bei 180 Sekunden, so dass diese Zeile lediglich einen kosmetischen Charakter hat. Zeile 9: Weist PPP an, bei der Gegenstelle eine Bestätigung der lokalen Resolvereinstellungen anzufordern. Wenn Sie einen lokalen Nameserver betreiben, sollte diese Zeile auskommentiert oder gelöscht werden. Zeile 10: Eine leere Zeile zur besseren Lesbarkeit. Leere Zeilen werden von PPP ignoriert. Zeile 11: Bestimmt einen Provider, namens provider. Wenn Sie hier den Namen Ihres ISP einsetzen, können Sie später die Verbindung mit aufbauen. Zeile 12: Gibt die Telefonnummer des Providers an. Mehrere Telefonnummern können angegeben werden, indem Doppelpunkte (:) oder Pipe-Zeichen (|) als Trennzeichen verwendet werden. Der Unterschied zwischen diesen beiden Trennzeichen ist in &man.ppp.8; beschrieben. Zusammenfassend: Wenn Sie die verschiedenen Nummern abwechselnd verwenden möchten, sollten Sie die Nummern durch einen Doppelpunkt trennen. Wenn Sie immer die erste Nummer verwenden möchten und die anderen nur zum Einsatz kommen sollen, wenn eine Einwahl mit der ersten Telefonnummer nicht möglich ist, sollten Sie das Pipe-Zeichen zur Trennung verwenden. Wie im Beispiel, sollten Sie die gesamte Reihe der Telefonnummern in Anführungszeichen setzen. Sie müssen die Telefonnummer in Anführungszeichen (") setzen, wenn Sie Leerzeichen in der Telefonnummer verwenden, ansonsten rufen Sie einen Fehler hervor, der vielleicht schwer zu finden ist. Zeilen 13 & 14: Gibt den Benutzernamen und das Passwort an. Wenn Sie zur Verbindung einen Login-Prompt im UNIX-Stil verwenden, bezieht sich der Befehl set login mit den \U und \P Variablen auf diese Werte. Wenn Sie zum Verbindungsaufbau PAP oder CHAP verwenden, werden diese Werte zum Zeitpunkt der Authentifizierung verwendet. Zeile 15: Wenn Sie PAPPAP oder CHAPCHAP einsetzen, gibt es an dieser Stelle keinen Login-Prompt, weshalb Sie diese Zeile auskommentieren oder löschen sollten. Der Abschnitt Authentifizierung mit PAP und CHAP enthält hierzu weitere Einzelheiten. Der Login-String hat die gleiche chat-ähnliche Syntax, wie der Einwahlstring. Der String in diesem Beispiel funktioniert mit einem ISP, dessen Login-Session folgendermaßen aussieht: J. Random Provider login: foo password: bar protocol: ppp Sie müssen dieses Skript noch an Ihre eigenen Erfordernisse anpassen. Wenn Sie dieses Skript zum ersten Mal schreiben, sollten Sie sicherstellen, dass Sie chat-logging aktiviert haben, damit Sie überprüfen zu können, ob die Konversation zwischen Ihrem Rechner und dem Rechner des Providers wie erwartet abläuft. Zeile 16: Setzt einen ZeitrahmenZeitbeschränkung (in Sekunden), innerhalb dessen eine Reaktion erfolgen muss. In diesem Fall, wird die Verbindung nach 300 Sekunden automatisch geschlossen, wenn keine Aktivität zu verzeichnen ist. Wenn Sie keinen Zeitrahmen festlegen wollen, nach dessen Überschreiten die Verbindung geschlossen wird, können Sie diesen Wert auf 0 setzen oder die Kommandozeilen-Option verwenden. Zeile 17: Gibt die IP-Adresse für das Interface an. Der String x.x.x.x sollte durch die IP-Adresse ersetzt werden, die Ihnen Ihr Provider zugeteilt hat. Der String y.y.y.y sollte durch die IP-Adresse ersetzt werden, die Ihr ISP ISP als Gateway angegeben hat (das ist der Rechner, mit dem Ihr Rechner eine Verbindung aufbaut). Wenn Ihnen Ihr ISP keine Gateway Adresse zur Verfügung gestellt hat, verwenden Sie hier einfach 10.0.0.2/0. Wenn Sie eine erratene IP-Adresse verwenden müssen, sollten Sie in der Datei /etc/ppp/ppp.linkup einen entsprechenden Eintrag machen. Folgen Sie dazu den Anweisungen im Abschnitt PPP und dynamische IP-Adressen. Wenn diese Zeile ausgelassen wird, kann ppp nicht im Modus betrieben werden. Zeile 18: Fügt eine Defaultroute für das Gateway Ihres Providers hinzu. Das Wort HISADDR wird dabei durch die in Zeile 17 angegebene Gateway Adresse ersetzt. Wichtig ist, dass diese Zeile nach Zeile 17 erscheint, da andernfalls HISADDR noch nicht initialisiert ist. Wenn Sie ppp nicht im Modus betreiben, sollte diese Zeile in die Datei ppp.linkup verschoben werden. Wenn Sie eine statische IP-Adresse verwenden und ppp im Modus läuft, ist es nicht notwendig, einen Eintrag in die Datei ppp.linkup hinzuzufügen. In diesem Fall hat ihre Routingtabelle bereits die richtigen Einträge, bevor Sie die Verbindung aufbauen. Sie möchten aber vielleicht einen Eintrag hinzufügen, um ein Programm aufzurufen, nachdem die Verbindung aufgebaut ist. Dies wird weiter unten am Beispiel von Sendmail erklärt. Beispiele für Konfigurationsdateien finden Sie im Verzeichnis /usr/share/examples/ppp/. PPP und dynamische IP-Adressen PPP mit dynamischen IP-Adressen IPCP Wenn Ihnen Ihr ISP keine statische IP-Adresse zuteilt, kann ppp so konfiguriert werden, dass die lokale und die entfernte IP-Adresse beim Verbindungsaufbau ausgehandelt werden. Dies geschieht, indem zunächst eine IP-Adresse erraten wird, die von ppp, unter Verwendung des IP Configuration Protocol (IPCP) durch eine richtige ersetzt wird, wenn die Verbindung aufgebaut ist. Die Konfiguration der Datei ppp.conf entspricht derjenigen, die im Abschnitt PPP und statische IP- Adressen dargestellt wurde, jedoch mit folgender Änderung: 17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0 Auch hier dient die Zeilennummerierung lediglich der besseren Übersichtlichkeit. Einrückungen, von mindestens einem Leerzeichen, sind allerdings erforderlich. Zeile 17: Die Zahl nach dem / Zeichen, gibt die Anzahl der Bits der Adresse an, auf die ppp besteht. Sie möchten vielleicht andere IP-Adressen verwenden, die oben angegebenen werden aber immer funktionieren. Das letzte Argument (0.0.0.0) weist PPP an, den Verbindungsaufbau mit der Adresse 0.0.0.0 zu beginnen, statt 10.0.0.1 zu verwenden. Dies ist bei einigen ISPs notwendig. Verwenden Sie nicht 0.0.0.0 als erstes Argument für set ifaddr, da so verhindert wird, dass PPP im Modus eine initiale Route setzt. Wenn PPP nicht im Modus läuft, müssen Sie die Datei/etc/ppp/ppp.linkup editieren. ppp.linkup kommt zum Einsatz, wenn eine Verbindung aufgebaut worden ist. Zu diesem Zeitpunkt hat ppp die Interface Adressen vergeben und es ist möglich, die Einträge in der Routingtabelle hinzuzufügen: 1 provider: 2 add default HISADDR Zeile 1: Beim Aufbau einer Verbindung sucht ppp in der Datei ppp.linkup nach einem Eintrag. PPP geht dabei nach folgenden Regeln vor: Suche zunächst nach der gleichen Bezeichnung, die wir auch in der Datei ppp.conf verwendet haben. Falls das nicht funktioniert, suche nach einem Eintrag der IP-Adresse unseres Gateways. Dieser Eintrag ist eine Bezeichnung im Stil von IP-Adressen, die sich aus vier Oktetts zusammensetzt. Falls immer noch kein passender Eintrag gefunden wurde, suche nach dem Eintrag MYADDR. Zeile 2: Diese Zeile weist ppp an, eine Defaultroute zu verwenden, die auf HISADDR zeigt. HISADDR wird nach der Aushandlung mit IPCP durch die IP-Adresse des Gateways ersetzt. Die Dateien /usr/share/examples/ppp/ppp.conf.sample und /usr/share/examples/ppp/ppp.linkup.sample bieten detaillierte Beispiele für pmdemand Einträge. Annahme eingehender Anrufe PPP eingehende Anrufe annehmen Wenn Sie ppp auf einem Rechner, der in ein LAN eingebunden ist, so konfigurieren, dass eingehende Anrufe angenommen werden, müssen Sie entscheiden, ob Pakete an das LAN weitergeleitet werden sollen. Wenn Sie das möchten, sollten Sie an die Gegenstelle eine IP-Adresse aus Ihrem lokalen Subnetz vergeben und den Befehl enable proxy in die Datei /etc/ppp/ppp.conf einfügen. Außerdem sollte die Datei /etc/rc.conf Folgendes enthalten: gateway_enable="YES" Welches getty? Der Abschnitt Einwählverbindungen bietet eine gute Beschreibung, wie Einwählverbindungen unter Verwendung von &man.getty.8; genutzt werden können. Eine Alternative zu getty ist mgetty, eine raffiniertere Version von getty, die mit Blick auf Einwählverbindungen entworfen wurde. Sie können dieses Paket über den Port comms/mgetty+sendfax installieren. Der Vorteil von mgetty ist, dass es auf aktive Weise mit Modems spricht, das heißt wenn ein Port in /etc/ttys ausgeschaltet ist, wird Ihr Modem nicht auf Anrufe reagieren. Spätere Versionen von mgetty (von 0.99beta aufwärts) unterstützen auch die automatische Erkennung von PPP-Streams, was Ihren Clients den skriptlosen Zugang zu Ihren Servern erlaubt. Der Abschnitt Mgetty und AutoPPP bietet weitere Informationen zu mgetty. <application>PPP</application> und Rechte Der Befehl ppp muss normalerweise als root ausgeführt werden. Wenn Sie jedoch möchten, dass ppp im Server-Modus auch von einem normalen Benutzer, wie unten beschrieben, durch Aufruf von ppp ausgeführt werden kann, müssen Sie diesem Benutzer die Rechte erteilen, ppp auszuführen, indem Sie ihn in der Datei /etc/group der Gruppe network hinzufügen. Sie werden ihm ebenfalls den Zugriff auf einen oder mehrere Abschnitte der Konfigurationsdatei geben müssen, indem Sie den allow Befehl verwenden: allow users fred mary Wenn dieser Befehl im default Abschnitt verwendet wird, erhalten die angegebenen Benutzer vollständigen Zugriff. PPP-Shells für dynamische IP-Adressen PPP Shells Erzeugen Sie eine Datei mit dem Namen /etc/ppp/ppp-shell, die Folgendes enthält: #!/bin/sh IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'` CALLEDAS="$IDENT" TTY=`tty` if [ x$IDENT = xdialup ]; then IDENT=`basename $TTY` fi echo "PPP for $CALLEDAS on $TTY" echo "Starting PPP for $IDENT" exec /usr/sbin/ppp -direct $IDENT Dieses Skript sollte ausführbar sein. Nun erzeugen Sie einen symbolischen Link ppp-dialup auf dieses Skript mit folgendem Befehl: &prompt.root; ln -s ppp-shell /etc/ppp/ppp-dialup Sie sollten dieses Skript als Shell für alle Benutzer von Einwählverbindungen verwenden. Dies ist ein Beispiel aus der Datei /etc/passwd für einen Benutzer namens pchilds, der PPP für Einwählverbindungen verwenden kann (Denken Sie daran, die Passwortdatei nicht direkt zu editieren, sondern dafür &man.vipw.8; zu verwenden). pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup Erstellen Sie ein Verzeichnis /home/ppp, das von allen Benutzern gelesen werden kann und die folgenden leeren Dateien enthält: -r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin -r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts Dies verhindert, dass /etc/motd angezeigt wird. PPP-Shells für statische IP-Adressen PPP Shells Erstellen Sie die Datei ppp-shell wie oben oben dargestellt. Erzeugen Sie nun für jeden Account mit statischer IP-Adresse einen symbolischen Link auf ppp-shell. Wenn Sie beispielsweise die drei Kunden, fred, sam und mary haben, für die Sie CIDR-/24-Netzwerke routen, schreiben Sie Folgendes: &prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred &prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam &prompt.root; ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary Jeder Einwählzugang dieser Kunden sollte den oben erzeugten symbolischen Link als Shell haben (mary's Shell sollte also /etc/ppp/ppp-mary sein). Einrichten von <filename>ppp.conf</filename> für dynamische IP-Adressen Die Datei /etc/ppp/ppp.conf sollte in etwa wie folgt aussehen: default: set debug phase lcp chat set timeout 0 ttyu0: set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 enable proxy ttyu1: set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 enable proxy Die Einrückungen sind wichtig. Der Abschnitt default: wird für jede Sitzung geladen. Erstellen Sie für jede Einwählverbindung, die Sie in der Datei /etc/ttys ermöglicht haben, einen Eintrag, wie oben für ttyu0: gezeigt. Jede Verbindung sollte eine eigene IP-Adresse aus dem Pool der Adressen bekommen, die sie für diese Benutzergruppe reserviert haben. Einrichten von <filename>ppp.conf</filename> für statische IP-Adressen Zu dem bisher dargestellten Inhalt der Beispieldatei /usr/share/examples/ppp/ppp.conf sollten Sie einen Abschnitt für jeden Benutzer mit statisch zugewiesener IP-Adresse hinzufügen. Wir werden nun unser Beispiel mit den Accounts fred, sam und mary weiterführen. fred: set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255 sam: set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255 mary: set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255 Die Datei /etc/ppp/ppp.linkup sollte, falls erforderlich, ebenfalls Routinginformationen für jeden Benutzer mit statischer IP-Adresse enthalten. Die unten dargestellte Zeile würde dem Netzwerk 203.14.101.0/24 eine Route über die PPP-Verbindung des Client hinzufügen. fred: add 203.14.101.0 netmask 255.255.255.0 HISADDR sam: add 203.14.102.0 netmask 255.255.255.0 HISADDR mary: add 203.14.103.0 netmask 255.255.255.0 HISADDR <command>mgetty</command> und AutoPPP mgetty AutoPPP LCP In der Voreinstellung wird mgetty mit der Option AUTO_PPP konfiguriert und kompiliert. Dadurch kann mgetty die LCP Phase von PPP-Verbindungen erkennen und automatisch eine ppp-Shell starten. Da hierbei jedoch die Login/Passwort-Sequenz nicht durchlaufen wird, ist es notwendig, Benutzer durch PAP oder CHAP zu authentifizieren. In diesem Abschnitt wird davon ausgegangen, dass der Benutzer den Port comms/mgetty+sendfax auf seinem System kompiliert und installiert hat. Stellen Sie sicher, dass die Datei /usr/local/etc/mgetty+sendfax/login.config Folgendes enthält: /AutoPPP/ - - /etc/ppp/ppp-pap-dialup Hierdurch wird mgetty angewiesen, das Skript ppp-pap-dialup für die erkannten PPP-Verbindungen auszuführen. Erstellen Sie nun die Datei /etc/ppp/ppp-pap-dialup mit folgendem Inhalt (die Datei sollte ausführbar sein): #!/bin/sh exec /usr/sbin/ppp -direct pap$IDENT Erstellen Sie bitte für jede Einwählverbindung, die Sie in /etc/ttys ermöglicht haben, einen korrespondierenden Eintrag in der Datei /etc/ppp/ppp.conf. Diese Einträge können problemlos, mit den Definitionen die wir weiter oben gemacht haben, koexistieren. pap: enable pap set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40 enable proxy Jeder Benutzer, der sich auf diese Weise anmeldet, benötigt einen Benutzernamen und ein Passwort in der Datei /etc/ppp/ppp.secret. Sie haben auch die Möglichkeit, Benutzer mit Hilfe von PAP zu authentifizieren, indem Sie der Datei /etc/passwd folgende Option hinzufügen: enable passwdauth Wenn Sie bestimmten Benutzern eine statische IP-Adresse zuweisen möchten, können Sie diese als drittes Argument in der Datei /etc/ppp/ppp.secret angeben. In /usr/share/examples/ppp/ppp.secret.sample finden Sie hierfür Beispiele. MS-Erweiterungen DNS NetBIOS PPP Erweiterungen von Microsoft Es ist möglich PPP so zu konfigurieren, dass bei Bedarf DNS und NetBIOS Nameserveradressen bereitgestellt werden. Um diese Erweiterungen für die PPP Version 1.x zu aktivieren, sollte der entsprechende Abschnitt der Datei /etc/ppp/ppp.conf um folgende Zeilen ergänzt werden: enable msext set ns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5 Für PPP Version 2 und höher: accept dns set dns 203.14.100.1 203.14.100.2 set nbns 203.14.100.5 Damit werden den Clients die primären und sekundären Nameserveradressen sowie ein NetBIOS Nameserver-Host mitgeteilt. In Version 2 und höher verwendet PPP die Werte, die in /etc/resolv.conf zu finden sind, wenn die Zeile set dns weggelassen wird. Authentifizierung durch PAP und CHAP PAP CHAP Einige ISPs haben ihr System so eingerichtet, dass der Authentifizierungsteil eines Verbindungsaufbaus mit Hilfe von PAP oder CHAP-Mechanismen durchgeführt wird. Wenn dies bei Ihnen der Fall sein sollte, wird Ihnen Ihr ISP bei der Verbindung keinen login:-Prompt präsentieren, sondern sofort mit der Aushandlung der PPP-Verbindung beginnen. PAP ist nicht so sicher wie CHAP, doch die Sicherheit ist hierbei normalerweise kein Problem, da Passwörter, obgleich von PAP im Klartext versandt, lediglich über die serielle Verbindung verschickt werden. Es gibt für Cracker wenig Möglichkeiten zu lauschen. Zurückkommend auf die Abschnitte PPP und statische IP-Adressen oder PPP und dynamische IP-Adressen müssen folgende Veränderungen vorgenommen werden: 13 set authname MyUserName 14 set authkey MyPassword 15 set login Zeile 13: Diese Zeile legt Ihren PAP/CHAP Benutzernamen fest. Sie müssen den richtigen Wert für MyUserName eingeben. Zeile 14: Diese Zeile legt Ihr PAP/CHAP PasswortPasswort fest. Sie müssen den richtigen Wert für MyPassword eingeben. Sie können eine zusätzliche Zeile, wie etwa: 16 accept PAP oder 16 accept CHAP verwenden, um deutlich zu machen, dass dies beabsichtigt ist, aber sowohl PAP wie auch CHAP als standardmäßig akzeptiert werden. Zeile 15: Ihr ISP wird normalerweise nicht von Ihnen verlangen, dass Sie sich am Server einloggen, wenn Sie PAP oder CHAP verwenden. Sie müssen deshalb den String set login deaktivieren. Veränderung Ihrer <command>ppp</command> Konfiguration im laufenden Betrieb Es ist möglich, dem Programm ppp Befehle zu erteilen, während es im Hintergrund läuft. Dazu ist jedoch die Einrichtung eines passenden Diagnose-Ports erforderlich. Ergänzen Sie hierzu Ihre Konfigurationsdatei um folgende Zeile: set server /var/run/ppp-tun%d DiagnosticPassword 0177 Damit wird PPP angewiesen, auf den angegebenen UNIX-Domainsocket zu hören und Clients nach dem angegebenen Passwort zu fragen, bevor der Zugang Gewährt wird. Das %d wird durch die Nummer des benutzten tun-Devices ersetzt. Wenn ein Socket eingerichtet ist, kann das Programm &man.pppctl.8; in Skripten verwendet werden, mit denen in das laufende Programm eingegriffen wird. Interne NAT von PPP benutzen PPP NAT PPP kann Network Address Translation (NAT) ohne Hilfe des Kernels durchführen. Wenn Sie diese Funktion benutzen wollen, fügen Sie die folgende Zeile in /etc/ppp/ppp.conf ein: nat enable yes Sie können NAT mit der Option auf der Kommandozeile von PPP aktivieren. Weiterhin kann NAT in /etc/rc.conf mit der Variablen ppp_nat aktiviert werden. Dies ist auch die Voreinstellung. Die nachstehende /etc/ppp/ppp.conf benutzt NAT für bestimmte eingehende Verbindungen: nat port tcp 10.0.0.2:ftp ftp nat port tcp 10.0.0.2:http http Wenn Sie Verbindungen von außen überhaupt nicht trauen, benutzen Sie die folgende Zeile: nat deny_incoming yes Abschließende Systemkonfiguration PPP Konfiguration Sie haben ppp nun konfiguriert, aber bevor PPP eingesetzt werden kann, gibt noch einige weitere Dinge zu erledigen, die alle die Bearbeitung der Datei /etc/rc.conf erfordern. Gehen Sie diese Datei von oben nach unten durch, und stellen Sie als Erstes sicher, dass die Zeile hostname= vorhanden ist: hostname="foo.example.com" Wenn Ihnen Ihr ISP eine statische IP-Adresse und einen Namen zugewiesen hat, ist es wahrscheinlich am besten, wenn Sie diesen Namen als Hostnamen verwenden. Schauen Sie nach der Variable network_interfaces. Wenn Sie Ihr System so konfigurieren möchten, dass bei Bedarf eine Verbindung zu Ihrem ISP aufgebaut wird, sollten Sie das Device tun0 zu der Liste hinzufügen oder es andernfalls entfernen. network_interfaces="lo0 tun0" ifconfig_tun0= Die Variable ifconfig_tun0 sollte leer sein und eine Datei namens /etc/start_if.tun0 sollte erstellt werden. Diese Datei sollte die nachfolgende Zeile enthalten: ppp -auto mysystem Dieses Skript startet Ihren ppp-Dæmon im Automatik-Modus. Es wird bei der Netzwerkkonfiguration ausgeführt. Wenn Ihr Rechner als Gateway für ein LAN fungiert, möchten Sie vielleicht auch die Option verwenden. In der Manual-Seite sind weitere Einzelheiten hierzu zu finden. Stellen Sie sicher, dass der Start eines Routerprogramms in /etc/rc.conf wie folgt deaktiviert ist: router_enable="NO" routed Es ist wichtig, dass der routed Dæmon nicht gestartet wird da routed dazu tendiert, die von ppp erstellten Einträge der Standardroute zu überschreiben. Es ist außerdem sinnvoll, darauf zu achten, dass die Zeile sendmail_flags nicht die Option enthält, da sendmail sonst ab und zu die Netzwerkverbindung prüfen wird, was möglicherweise dazu führt, dass sich Ihr Rechner einwählt. Sie können hier Folgendes angeben: sendmail_flags="-bd" sendmail Der Nachteil dieser Lösung ist, dass Sie sendmail nach jedem Aufbau einer ppp-Verbindung auffordern müssen, die Mailwarteschlange zu überprüfen, indem Sie Folgendes eingeben: &prompt.root; /usr/sbin/sendmail -q Vielleicht möchten Sie den Befehl !bg in der Datei ppp.linkup verwenden, um dies zu automatisieren: 1 provider: 2 delete ALL 3 add 0 0 HISADDR 4 !bg sendmail -bd -q30m SMTP Wenn Sie dies nicht möchten, ist es möglich, einen dfilter einzusetzen, um SMTP-Verkehr zu blockieren. Weitere Einzelheiten hierzu finden Sie in den Beispieldateien. Das Einzige, was nun noch zu tun bleibt, ist Ihren Rechner neu zu starten. Nach dem Neustart können Sie entweder: &prompt.root; ppp und danach dial provider eingeben, um eine PPP-Sitzung zu starten, oder Sie geben: &prompt.root; ppp -auto provider ein, um ppp bei Datenverkehr aus Ihrem Netzwerk heraus, automatisch eine Verbindung herstellen zu lassen (vorausgesetzt Sie haben kein start_if.tun0 Skript erstellt). Zusammenfassung Die folgenden Schritte sind nötig, wenn ppp zum ersten Mal eingerichtet werden soll: Clientseite: Stellen Sie sicher, dass das tun Device in den Kernel eingebaut ist. Vergewissern Sie sich, dass die Gerätedatei tunN im Verzeichnis /dev vorhanden ist. Bearbeiten Sie die Datei /etc/ppp/ppp.conf. Das Beispiel pmdemand sollte für die meisten ISP ausreichen. Wenn Sie eine dynamische IP-Adresse haben, erstellen Sie einen Eintrag in der Datei /etc/ppp/ppp.linkup. Aktualisieren Sie die Datei /etc/rc.conf. Erstellen Sie das Skript start_if.tun0, wenn Sie einen bedarfgesteuerten Einwahlprozess (demand dialing) benötigen. Serverseite: Stellen Sie sicher, dass das tun Device in den Kernel eingebaut ist. Vergewissern Sie sich, dass die Gerätedatei tunN im Verzeichnis /dev vorhanden ist Erstellen Sie einen Eintrag in der Datei /etc/passwd (verwenden Sie dazu das Programm &man.vipw.8;). Erstellen Sie ein Profil im Heimatverzeichnis des Benutzers, das ppp -direct direct-server o.Ä. ausführt. Bearbeiten Sie die Datei /etc/ppp/ppp.conf. Das Beispiel direct-server sollte ausreichen. Erzeugen Sie einen Eintrag in /etc/ppp/ppp.linkup. Aktualisieren Sie die Datei /etc/rc.conf. - - Kernel-PPP - - Gennady B.SorokopudTeile wurden ursprünglich beigetragen von - RobertHuff - - - - - - - Der folgende Abschnitt ist ausschließlich - für &os; 7.X relevant und gültig. - - - - Einrichtung von Kernel-PPP - - PPP - Kernel-PPP - - - Bevor Sie PPP auf Ihrem Computer einrichten, sollten Sie - dafür sorgen, dass pppd im Verzeichnis /usr/sbin vorhanden ist und /etc/ppp existiert. - - pppd kann auf zweierlei Weise arbeiten: - - - - Als Client – Sie möchten - Ihren Rechner mit einem Netz verbinden, indem Sie eine - serielle PPP-Verbindung aufbauen. - - - - Als ServerPPPServer – Ihr Rechner ist in - ein Netzwerk eingebunden und stellt die PPP-Verbindung - für andere Rechner im Netzwerk her. - - - - In beiden Fällen werden Sie eine Datei mit den - benötigten Optionen erstellen müssen - (/etc/ppp/options oder, - wenn mehr als ein Benutzer PPP verwendet, - ~/.ppprc). - - Sie benötigen außerdem eine Software - (vorzugsweise comms/kermit), mit der - Sie seriell per Modem wählen und eine Verbindung zu dem - entfernten Host aufbauen können. - - - - Verwendung von <command>pppd</command> als Client - - TrevRoydhouseBasierend auf Informationen von - - - - - - PPP - Client - - Cisco - - Die folgende Datei /etc/ppp/options - kann für einen Verbindungsaufbau mit PPP zu einem Cisco - Terminalserver verwendet werden. - - crtscts # enable hardware flow control -modem # modem control line -noipdefault # remote PPP server must supply your IP address - # if the remote host does not send your IP during IPCP - # negotiation, remove this option -passive # wait for LCP packets -domain ppp.foo.com # put your domain name here - -:remote_ip # put the IP of remote PPP host here - # it will be used to route packets via PPP link - # if you didn't specified the noipdefault option - # change this line to local_ip:remote_ip - -defaultroute # put this if you want that PPP server will be your - # default router - - Um eine Verbindung herzustellen, sollten Sie: - - Kermit - Modem - - - Mit Kermit (oder einem - anderen Modemprogramm) den entfernten Host anwählen - und Ihren Benutzernamen sowie Ihr Passwort (oder was - sonst nötig ist, um PPP auf dem entfernten Host - zu aktivieren) eingeben. - - - - Kermit beenden - (ohne die Verbindung abzubrechen). - - - - Folgendes eingeben: - - &prompt.root; /usr/sbin/pppd /dev/tty01 19200 - - Achten Sie darauf, dass sie eine geeignete Geschwindigkeit - wählen und das richtige Device verwenden. - - - - Nun ist Ihr Computer mit Hilfe von PPP verbunden. Wenn - die Verbindung nicht funktionieren sollte, können Sie - die Option in die Datei - /etc/ppp/options eintragen und die Ausgaben - auf der Konsole beobachten, um die Fehler zu finden. - - Das folgende Skript /etc/ppp/pppup - führt alle 3 Schritte automatisch aus: - - #!/bin/sh -pgrep -l pppd -pid=`pgrep pppd` -if [ "X${pid}" != "X" ] ; then - echo 'killing pppd, PID=' ${pid} - kill ${pid} -fi -pgrep -l kermit -pid=`pgrep kermit` -if [ "X${pid}" != "X" ] ; then - echo 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi - -ifconfig ppp0 down -ifconfig ppp0 delete - -kermit -y /etc/ppp/kermit.dial -pppd /dev/tty01 19200 - - Kermit - /etc/ppp/kermit.dial ist - ein Kermit-Skript - das den Einwählvorgang und alle notwendigen Autorisationen auf - dem entfernten Host durchführt (ein Beispiel für ein - solches Skript ist im Anhang zu diesem Dokument zu finden). - - Verwenden Sie das folgende Skript - /etc/ppp/pppdown, um die PPP-Verbindung - abzubrechen: - - #!/bin/sh -pid=`pgrep pppd` -if [ X${pid} != "X" ] ; then - echo 'killing pppd, PID=' ${pid} - kill -TERM ${pid} -fi - -pgrep -l kermit -pid=`pgrep kermit` -if [ "X${pid}" != "X" ] ; then - echo 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi - -/sbin/ifconfig ppp0 down -/sbin/ifconfig ppp0 delete -kermit -y /etc/ppp/kermit.hup -/etc/ppp/ppptest - - Prüfen Sie, ob pppd immer - noch läuft, indem Sie - /usr/etc/ppp/ppptest ausführen. - Dieses Skript sollte folgendermaßen aussehen: - - #!/bin/sh -pid=`pgrep pppd` -if [ X${pid} != "X" ] ; then - echo 'pppd running: PID=' ${pid-NONE} -else - echo 'No pppd running.' -fi -set -x -netstat -n -I ppp0 -ifconfig ppp0 - - Um die Modemverbindung abzubrechen, können Sie das Skript - /etc/ppp/kermit.hup verwenden, das Folgendes - enthalten sollte: - - set line /dev/tty01 ; put your modem device here -set speed 19200 -set file type binary -set file names literal -set win 8 -set rec pack 1024 -set send pack 1024 -set block 3 -set term bytesize 8 -set command bytesize 8 -set flow none - -pau 1 -out +++ -inp 5 OK -out ATH0\13 -echo \13 -exit - - Hier ist eine alternative Methode, bei der chat - an Stelle von Kermit eingesetzt wird: - - Die folgenden beiden Dateien reichen aus, um eine - Verbindung über pppd herzustellen. - - /etc/ppp/options: - - /dev/cuad1 115200 - -crtscts # enable hardware flow control -modem # modem control line -connect "/usr/bin/chat -f /etc/ppp/login.chat.script" -noipdefault # remote PPP serve must supply your IP address - # if the remote host doesn't send your IP during - # IPCP negotiation, remove this option -passive # wait for LCP packets -domain <your.domain> # put your domain name here - -: # put the IP of remote PPP host here - # it will be used to route packets via PPP link - # if you didn't specified the noipdefault option - # change this line to local_ip:remote_ip; - -defaultroute # put this if you want that PPP server will be - # your default router - - /etc/ppp/login.chat.script: - - - Die folgenden Angaben sollten in einer Zeile stehen. - - - ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTphone.number - CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id - TIMEOUT 5 sword: password - - Wenn diese Dateien richtig installiert und modifiziert sind, - müssen Sie pppd, nur noch wie folgt - starten: - - &prompt.root; pppd - - - - Verwendung von <command>pppd</command> als Server - - /etc/ppp/options sollte etwa Folgendes - enthalten: - - crtscts # Hardware flow control -netmask 255.255.255.0 # netmask (not required) -192.114.208.20:192.114.208.165 # IP's of local and remote hosts - # local ip must be different from one - # you assigned to the Ethernet (or other) - # interface on your machine. - # remote IP is IP address that will be - # assigned to the remote machine -domain ppp.foo.com # your domain -passive # wait for LCP -modem # modem line - - Das folgende Skript /etc/ppp/pppserv - lässt pppd als Server zu arbeiten: - - #!/bin/sh -pgrep -l pppd -pid=`pgrep pppd` -if [ "X${pid}" != "X" ] ; then - echo 'killing pppd, PID=' ${pid} - kill ${pid} -fi -pgrep -l kermit -pid=`pgrep kermit` -if [ "X${pid}" != "X" ] ; then - echo 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi - -# reset ppp interface -ifconfig ppp0 down -ifconfig ppp0 delete - -# enable autoanswer mode -kermit -y /etc/ppp/kermit.ans - -# run ppp -pppd /dev/tty01 19200 - - Verwenden Sie das Skript/etc/ppp/pppservdown, - um den Server zu beenden: - - #!/bin/sh -pgrep -l pppd -pid=`pgrep pppd` -if [ "X${pid}" != "X" ] ; then - echo 'killing pppd, PID=' ${pid} - kill ${pid} -fi -pgrep -l kermit -pid=`pgrep kermit` -if [ "X${pid}" != "X" ] ; then - echo 'killing kermit, PID=' ${pid} - kill -9 ${pid} -fi -ifconfig ppp0 down -ifconfig ppp0 delete - -kermit -y /etc/ppp/kermit.noans - - Mit dem Kermit-Skript - (/etc/ppp/kermit.ans) lässt sich - die Funktion Ihres Modems, automatisch zu antworten, ein- bzw. - ausschalten. Es sollte folgendermaßen aussehen: - - set line /dev/tty01 -set speed 19200 -set file type binary -set file names literal -set win 8 -set rec pack 1024 -set send pack 1024 -set block 3 -set term bytesize 8 -set command bytesize 8 -set flow none - -pau 1 -out +++ -inp 5 OK -out ATH0\13 -inp 5 OK -echo \13 -out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable - ; autoanswer mode -inp 5 OK -echo \13 -exit - - Ein Skript namens /etc/ppp/kermit.dial wird - für die Einwahl und Authentifizierung am entfernten Host verwendet. - Sie müssen es noch an Ihre lokalen Gegebenheiten anpassen. - Geben Sie in diesem Skript Ihren Benutzernamen und Ihr Passwort ein. - In Abhängigkeit von der Reaktion Ihres Modems und des - entfernten Hosts, werden Sie auch noch die input - Anweisungen verändern müssen. - - ; -; put the com line attached to the modem here: -; -set line /dev/tty01 -; -; put the modem speed here: -; -set speed 19200 -set file type binary ; full 8 bit file xfer -set file names literal -set win 8 -set rec pack 1024 -set send pack 1024 -set block 3 -set term bytesize 8 -set command bytesize 8 -set flow none -set modem hayes -set dial hangup off -set carrier auto ; Then SET CARRIER if necessary, -set dial display on ; Then SET DIAL if necessary, -set input echo on -set input timeout proceed -set input case ignore -def \%x 0 ; login prompt counter -goto slhup - -:slcmd ; put the modem in command mode -echo Put the modem in command mode. -clear ; Clear unread characters from input buffer -pause 1 -output +++ ; hayes escape sequence -input 1 OK\13\10 ; wait for OK -if success goto slhup -output \13 -pause 1 -output at\13 -input 1 OK\13\10 -if fail goto slcmd ; if modem doesn't answer OK, try again - -:slhup ; hang up the phone -clear ; Clear unread characters from input buffer -pause 1 -echo Hanging up the phone. -output ath0\13 ; hayes command for on hook -input 2 OK\13\10 -if fail goto slcmd ; if no OK answer, put modem in command mode - -:sldial ; dial the number -pause 1 -echo Dialing. -output atdt9,550311\13\10 ; put phone number here -assign \%x 0 ; zero the time counter - -:look -clear ; Clear unread characters from input buffer -increment \%x ; Count the seconds -input 1 {CONNECT } -if success goto sllogin -reinput 1 {NO CARRIER\13\10} -if success goto sldial -reinput 1 {NO DIALTONE\13\10} -if success goto slnodial -reinput 1 {\255} -if success goto slhup -reinput 1 {\127} -if success goto slhup -if < \%x 60 goto look -else goto slhup - -:sllogin ; login -assign \%x 0 ; zero the time counter -pause 1 -echo Looking for login prompt. - -:slloop -increment \%x ; Count the seconds -clear ; Clear unread characters from input buffer -output \13 -; -; put your expected login prompt here: -; -input 1 {Username: } -if success goto sluid -reinput 1 {\255} -if success goto slhup -reinput 1 {\127} -if success goto slhup -if < \%x 10 goto slloop ; try 10 times to get a login prompt -else goto slhup ; hang up and start again if 10 failures - -:sluid -; -; put your userid here: -; -output ppp-login\13 -input 1 {Password: } -; -; put your password here: -; -output ppp-password\13 -input 1 {Entering SLIP mode.} -echo -quit - -:slnodial -echo \7No dialtone. Check the telephone line!\7 -exit 1 - -; local variables: -; mode: csh -; comment-start: "; " -; comment-start-skip: "; " -; end: - - - Probleme bei <acronym>PPP</acronym>-Verbindungen TomRhodesBeigetragen von PPP Fehlersuche Dieser Abschnitt behandelt Probleme, die auftauchen können, wenn PPP über ein Modem verwendet wird. Sie müssen beispielsweise genau die Eingabeaufforderung des Systems kennen, in das Sie sich einwählen. Einige ISPs verwenden ssword andere verwenden password; wenn das Einwahlskript falsch ist, scheitert die Anmeldung. Üblicherweise suchen Sie nach Fehlern der PPP-Verbindung indem Sie sich manuell verbinden. Wie das genau geht, wird im Folgenden gezeigt. Gerätedateien überprüfen Wenn Sie einen eigenen Kernel verwenden, stellen Sie sicher, dass die folgende Zeile in der Kernelkonfigurationsdatei vorhanden ist: device uart Das uart-Gerät ist bereits im GENERIC-Kernel vorhanden, deshalb sind in diesem Fall keine zusätzlichen Schritte vonnöten. Kontrollieren Sie die Ausgabe von dmesg: &prompt.root; dmesg | grep uart In der Ausgabe sollten die entsprechenden uart-Geräte, beispielsweise uart1 (COM2), angezeigt werden. Wird ein passendes Gerät angezeigt, brauchen Sie keinen neuen Kernel zu erstellen. Wenn Ihr Modem an uart1 angeschlossen ist (in DOS ist dieser Anschluss als COM2 bekannt), ist /dev/cuau1 die dazugehörende Gerätedatei. Manuelle Verbindungen Ein Verbindungsaufbau zum Internet durch manuelle Steuerung von ppp geht schnell, ist einfach und stellt einen guten Weg dar, eine Verbindung auf Fehler hin zu überprüfen oder einfach Informationen darüber zu sammeln, wie Ihr ISP Verbindungen handhabt. Lassen Sie uns PPP von der Kommandozeile aus starten. Beachten Sie, dass in allen Beispielen example der Hostname der Maschine ist, auf der PPP läuft. Sie starten ppp, indem Sie einfach ppp eingeben: &prompt.root; ppp Wir haben ppp nun gestartet. ppp ON example> set device /dev/cuau1 Wir geben das Device an, an das unser Modem angeschlossen ist. In diesem Fall ist es cuau1. ppp ON example> set speed 115200 Wir geben die Verbindungsgeschwindigkeit an. Im Beispiel verwenden wir 115200 kbps ppp ON example> enable dns Wir weisen ppp an, unseren Resolver zu konfigurieren und in der Datei /etc/resolv.conf Einträge für den Nameserver hinzuzufügen. Falls ppp unseren Hostnamen nicht bestimmen kann, geben wir diesen später manuell an. ppp ON example> term Wir wechseln in den Terminal-Modus, um das Modem manuell kontrollieren zu können. deflink: Entering terminal mode on /dev/cuau1 type '~h' for help at OK atdt123456789 Sie verwenden at zur Initialisierung Ihres Modems und dann atdt sowie die Nummer Ihres ISP, um den Einwählprozess zu starten. CONNECT Dies ist die Bestätigung, dass eine Verbindung aufgebaut wurde. Falls wir Verbindungsprobleme bekommen, die nicht mit der Hardware zusammenhängen, werden wir an dieser Stelle ansetzen müssen, um eine Lösung zu finden. ISP Login:myusername Hier werden Sie nach einem Benutzernamen gefragt. Geben Sie am Prompt den Namen ein, den Ihnen Ihr ISP zur Verfügung gestellt hat. ISP Pass:mypassword An dieser Stelle müssen Sie das Passwort angeben, das Ihnen von Ihrem ISP vorgegeben wurde. Das Passwort wird, analog dem normalen Anmeldevorgang, nicht angezeigt. Shell or PPP:ppp Abhängig von Ihrem ISP, kann es sein, dass dieser Prompt bei Ihnen gar nicht erscheint. Wir werden hier gefragt, ob wir eine Shell beim Provider verwenden oder ppp starten wollen. Weil wir eine Internetverbindung aufbauen wollen, haben wir uns in diesem Beispiel für ppp entschieden. Ppp ON example> Beachten Sie, dass sich in diesem Beispiel das erste in einen Großbuchstaben verwandelt hat. Dies zeigt, dass wir erfolgreich eine Verbindung zu unserem ISP hergestellt haben. PPp ON example> An dieser Stelle haben wir uns erfolgreich bei unserem ISP authentifiziert und warten darauf, dass uns eine IP-Adresse zugewiesen wird. PPP ON example> Wir haben uns mit der Gegenstelle auf eine IP-Adresse geeinigt und den Verbindungsaufbau erfolgreich abgeschlossen PPP ON example> add default HISADDR Hier geben wir unsere Standardroute an. Weil zu diesem Zeitpunkt unsere einzige Verbindung zu unserer Gegenstelle besteht, müssen wir dies tun, bevor wir Kontakt zu unserer Umwelt aufnehmen können. Falls dies aufgrund bestehender Routen nicht funktionieren sollte, können Sie ein Ausrufungszeichen ! vor setzen. Sie können diese Standardroute aber auch vor dem eigentlichen Verbindungsaufbau angeben und PPP wird entsprechend eine neue Route aushandeln. Wenn alles gut ging, sollten wir nun eine aktive Internetverbindung haben, die wir mit Ctrl z in den Hintergrund schicken können Wenn sie feststellen, dass PPP wieder zu ppp wird, ist die Verbindung abgebrochen. Es ist gut dies zu wissen, weil dadurch der Verbindungsstatus angezeigt wird. Große Ps zeigen an, dass wir eine Verbindung zum ISP haben und kleine ps zeigen an, dass wir aus irgendeinem Grund die Verbindung verloren haben. ppp hat nur diese beiden Zustände. Fehlersuche Wenn sie einen Direktanschluss haben und keine Verbindung aufbauen können, schalten Sie die Hardware-Flusssteuerung CTS/RTS aus, indem Sie die Option verwenden. Dies ist zumeist dann der Fall, wenn Sie mit einem PPP-fähigen Terminalserver verbunden sind. Hier bleibt PPP bei dem Versuch hängen, Daten über Ihre Nachrichtenverbindung zu schicken, weil auf ein CTS-Signal (Clear-to-Send) gewartet wird, das nie kommt. Wenn Sie diese Option jedoch gebrauchen, sollten Sie auch die Option verwenden, die erforderlich sein kann, um bestimmte Hardware zu kontrollieren, die auf die Übertragung bestimmter Zeichen zwischen den Kommunikations-Endpunkten (zumeist XON/XOFF) angewiesen ist. Die Manual-Seite &man.ppp.8; bietet mehr Informationen zu dieser Option und ihrer Verwendung. Wenn Sie ein älteres Modem haben, benötigen Sie vielleicht die Option . Standardmäßig wird keine Parität vorausgesetzt, sie ist aber für die Fehlerprüfung bei älteren Modems und bei bestimmten ISPs erforderlich. Sie könnten diese Option für den ISP Compuserve benötigen. PPP kehrt möglicherweise nicht in den Befehlsmodus zurück, was normalerweise auf einen Fehler bei der Aushandlung hinweist, wobei der ISP wartet, dass Ihre Seite den Aushandlungsprozess beginnt. Die Option ~p erzwingt in diesem Fall den Beginn des Aushandlungsprozesses. Wenn Sie nie einen Login-Prompt erhalten, müssen Sie statt des im Beispiel gezeigten UNIX-Stils höchst wahrscheinlich PAP oder CHAP für die Authentifizierung verwenden. Um PAP oder CHAP zu verwenden, ergänzen Sie PPP einfach um folgende Optionen, bevor Sie in den Terminalmodus wechseln: ppp ON example> set authname myusername Hierbei sollte myusername durch den Benutzernamen ersetzt werden, den Sie von Ihrem ISP bekommen haben. ppp ON example> set authkey mypassword mypassword sollten Sie durch das Passwort ersetzen, das Ihnen Ihr ISP gegeben hat. Wenn die Verbindung aufgebaut wird, Sie aber keine Rechner unter ihrem Domänen-Namen erreichen können, versuchen Sie, einen Rechner mit &man.ping.8; und seiner IP-Adresse zu erreichen. Wenn 100% der Pakete verloren gehen, ist es sehr wahrscheinlich, dass Ihnen keine Standardroute zugewiesen wurde. Überprüfen Sie, ob während des Verbindungsaufbaus die Option gesetzt war. Wenn Sie zu einer entfernten IP-Adresse eine Verbindung aufbauen können, ist es möglich, dass die Adresse eines Nameservers nicht in die Datei /etc/resolv.conf eingetragen wurde. Diese Datei sollte folgendermaßen aussehen: domain example.com nameserver x.x.x.x nameserver y.y.y.y Dabei sollten x.x.x.x und y.y.y.y durch die IP-Adressen der DNS-Server Ihres ISPs ersetzt werden. Diese Information ist Ihnen bei Vertragsabschluss mitgeteilt worden. Wenn nicht, sollte ein Anruf bei Ihrem ISP Abhilfe schaffen. Mit &man.syslog.3; können Sie Ihre PPP-Verbindung protokollieren. Fügen Sie einfach die folgende Zeile in /etc/syslog.conf ein: !ppp *.* /var/log/ppp.log In den meisten Fällen existiert diese Funktionalität bereits. PPP over Ethernet (PPPoE) JimMockBeigetragen (durch http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) von PPP over Ethernet PPPoE PPP, over Ethernet Dieser Abschnitt beschreibt, wie Sie PPP over Ethernet (PPPoE) einrichten. Konfiguration des Kernels Eine besondere Kernelkonfiguration ist für PPPoE nicht mehr erforderlich. Sofern die notwendige NetGraph-Unterstützung nicht in den Kernel eingebaut wurde, wird diese von ppp dynamisch geladen. Einrichtung von <filename>ppp.conf</filename> Dies hier ist ein Beispiel einer funktionierenden ppp.conf: default: set log Phase tun command # you can add more detailed logging if you wish set ifaddr 10.0.0.1/0 10.0.0.2/0 name_of_service_provider: set device PPPoE:xl1 # replace xl1 with your Ethernet device set authname YOURLOGINNAME set authkey YOURPASSWORD set dial set login add default HISADDR <application>ppp</application> ausführen Als root, geben Sie ein: &prompt.root; ppp -ddial name_of_service_provider <application>ppp</application> beim Systemstart ausführen Fügen Sie Folgendes in Ihre Datei /etc/rc.conf ein: ppp_enable="YES" ppp_mode="ddial" ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO ppp_profile="name_of_service_provider" Verwendung einer PPPoE-Dienstbezeichnung (service tag) Manchmal kann es notwendig sein, eine Dienstbezeichnung (service tag) zu verwenden, um eine Verbindung aufzubauen. Dienstbezeichnungen werden eingesetzt, um zwischen verschiedenen PPPoE-Servern unterscheiden zu können, die einem bestehenden Netzwerk zugeteilt sind. Die erforderlichen Dienstbezeichnungen sollten in der Dokumentation, zu finden sein, die Ihnen Ihr ISP zur Verfügung gestellt hat. Wenn Sie diese Informationen dort nicht finden, fragen Sie beim technischen Kundendienst Ihres ISP danach. Als letzte Möglichkeit, bleibt die Methode, die von dem Programm Roaring Penguin PPPoE vorgeschlagen wird, das in der Ports-Sammlung zu finden ist. Bedenken Sie aber, dass dadurch Daten Ihres Modems gelöscht werden können, so dass es nicht mehr benutzt werden kann. Überlegen Sie also genau, ob Sie dies machen wollen. Installieren Sie einfach das Programm, das Ihnen Ihr Provider zusammen mit dem Modem geliefert hat. Gehen Sie dann in das Menü System dieses Programms. Der Name Ihres Profils, sollte in der Liste aufgeführt sein. Normalerweise ist dies ISP. Der Name des Profils (service tag) wird im Eintrag für die PPPoE-Konfiguration in der Datei ppp.conf verwendet, als der Teil des Befehls set device (die manpage &man.ppp.8; enthält Einzelheiten hierzu), der den Provider angibt. Dieser Eintrag sollte folgendermaßen aussehen: set device PPPoE:xl1:ISP Vergessen Sie nicht, statt xl1 das richtige Device Ihrer Netzwerkkarte anzugeben. Denken sie auch daran, ISP durch das Profil, das Sie oben gefunden haben zu ersetzen. Weitere Informationen bieten: Cheaper Broadband with FreeBSD on DSL von Renaud Waldura. PPPoE mit einem &tm.3com; <trademark class="registered">HomeConnect</trademark> ADSL Modem Dual Link Dieses Modem folgt nicht dem RFC 2516 (A Method for transmitting PPP over Ethernet (PPPoE), verfasst von L. Mamakos, K. Lidl, J. Evarts, D. Carrel, D. Simone, und R. Wheeler). Stattdessen wurden andere Pakettyp-Codes für die Ethernet Frames verwendet. Bitte beschweren Sie sich unter 3Com, wenn Sie der Ansicht sind, dass dieses Modem die PPPoE-Spezifikation einhalten sollte. Um FreeBSD in die Lage zu versetzen, mit diesem Gerät zu kommunizieren, muss ein sysctl Befehl angegeben werden. Dies kann beim Systemstart automatisch geschehen, indem die Datei /etc/sysctl.conf angepasst wird: net.graph.nonstandard_pppoe=1 oder, wenn der Befehl unmittelbar wirksam werden soll, durch: &prompt.root; sysctl net.graph.nonstandard_pppoe=1 Da hiermit eine systemweit gültige Einstellung vorgenommen wird, ist es nicht möglich, gleichzeitig mit einem normalen PPPoE-Client oder Server und einem &tm.3com; HomeConnect ADSL Modem zu kommunizieren. <application>PPP</application> over ATM (PPPoA) PPP over ATM PPPoA PPP, over ATM Nachfolgend wird beschrieben, wie PPP over ATM (PPPoA) eingerichtet wird. PPPoA ist vor allem unter europäischen DSL-Providern populär. Der Einsatz von PPPoA mit dem Alcatel &speedtouch; USB PPPoA-Unterstützung für dieses Gerät ist unter FreeBSD als Port verfügbar, da die Firmware unter Alcatels Lizenzvereinbarung vertrieben wird und deshalb nicht mit dem FreeBSD-Basissystem frei verteilt werden kann. Um die Software zu installieren, verwenden Sie einfach die Ports-Sammlung. Installieren Sie den Port net/pppoa und folgen Sie den dabei angegebenen Instruktionen. Für den ordnungsgemäßen Betrieb muss das Alcatel &speedtouch; USB, wie viele USB-Geräte, Firmware auf den Gastrechner laden. FreeBSD kann die Firmware automatisch laden, wenn das Gerät mit dem USB-Anschluss verbunden wird. Dazu fügen Sie als Benutzer root die nachstehenden Zeilen in /etc/usbd.conf ein: device "Alcatel SpeedTouch USB" devname "ugen[0-9]+" vendor 0x06b9 product 0x4061 attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o" Den USB-Dæmon aktivieren Sie mit der folgenden Zeile in /etc/rc.conf: usbd_enable="YES" Wenn die Verbindung beim Start von ppp aufgebaut werden soll, fügen Sie die nachstehenden Zeilen als Benutzer root in /etc/rc.conf ein: ppp_enable="YES" ppp_mode="ddial" ppp_profile="adsl" Verwenden Sie bitte diese Einstellungen zusammen mit der Beispielkonfiguration in ppp.conf des Ports net/pppoa. Die Verwendung von mpd Sie können mpd verwenden, um zu einer Reihe von Diensten, insbesondere PPTP-Diensten eine Verbindung herzustellen. Sie finden mpd in der Ports-Sammlung unter net/mpd. Viele ADSL Modems, wie das Alcatel &speedtouch; Home, sind auf einen PPTP-Tunnel zwischen dem Modem und dem Rechner angewiesen. Zuerst müssen Sie den Port installieren, um danach mpd entsprechend Ihren Anforderungen und den Vorgaben Ihres Providers konfigurieren zu können. Der Port installiert auch einige gut dokumentierte Beispielkonfigurationsdateien in PREFIX/etc/mpd/. Beachten Sie, dass PREFIX hier das Verzeichnis angibt, in das Ihre Ports installiert werden. Standardmäßig ist dies das Verzeichnis /usr/local/. Ein kompletter Leitfaden zur Konfiguration von mpd ist im HTML-Format verfügbar, sobald der Port installiert ist. Dieser ist in PREFIX/share/doc/mpd/ zu finden. Hier ist eine Beispielkonfiguration, um mit mpd eine Verbindung zu einem ADSL-Dienst aufzubauen. Die Konfiguration ist auf zwei Dateien verteilt. Zunächst die Datei mpd.conf: Dieses Beispiel für mpd.conf funktioniert nur mit mpd 4.x. default: load adsl adsl: new -i ng0 adsl adsl set bundle authname username set bundle password password set bundle disable multilink set link no pap acfcomp protocomp set link disable chap set link accept chap set link keep-alive 30 10 set ipcp no vjcomp set ipcp ranges 0.0.0.0/0 0.0.0.0/0 set iface route default set iface disable on-demand set iface enable proxy-arp set iface idle 0 open Der Benutzername, den Sie zur Authentifizierung bei Ihrem ISP verwenden. Das Passwort, das Sie zur Authentifizierung bei Ihrem ISP verwenden. Die Datei mpd.links enthält Informationen über die Verbindung(en), die Sie aufbauen möchten. Eine Beispieldatei mpd.links, die das vorige Beispiel ergänzt, wird unten angegeben: adsl: set link type pptp set pptp mode active set pptp enable originate outcall set pptp self 10.0.0.1 set pptp peer 10.0.0.138 Die IP-Adresse des &os;-Rechners von dem aus Sie mpd verwenden. Die IP-Adresse des ADSL-Modems. Das Alcatel &speedtouch; Home hat die Adresse 10.0.0.138 voreingestellt. Ein Verbindungsaufbau kann einfach durch Eingabe des folgenden Befehls als root gestartet werden: &prompt.root; mpd -b adsl Sie können sich den Status der Verbindung durch folgenden Befehl anzeigen lassen: &prompt.user; ifconfig ng0 ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500 inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff Die Verwendung von mpd ist der empfehlenswerteste Weg, um mit &os; eine Verbindung zu einem ADSL-Dienst aufzubauen. Die Verwendung von pptpclient Es ist außerdem möglich, mit FreeBSD eine Verbindung zu anderen PPPoA-Diensten aufzubauen. Dazu wird net/pptpclient verwendet. Um mit net/pptpclient eine eine Verbindung zu einem DSL-Dienst aufbauen zu können, müssen Sie den entsprechenden Port bzw. das Paket installieren und die Datei /etc/ppp/ppp.conf bearbeiten. Sie müssen root sein, um diese Schritte durchführen zu können. Eine Beispieldatei für ppp.conf ist weiter unten angegeben. Weitere Informationen zu den Optionen von ppp.conf bietet die Manual-Seite ppp &man.ppp.8;: adsl: set log phase chat lcp ipcp ccp tun command set timeout 0 enable dns set authname username set authkey password set ifaddr 0 0 add default HISADDR Der Benutzername für den Zugang zu den Diensten Ihres ISP. Das Passwort für Ihren Account. Weil Sie Ihr Passwort in der Datei ppp.conf in Klartext angeben müssen, sollten Sie sicherstellen, dass niemand den Inhalt dieser Datei lesen kann. Die folgende Reihe von Befehlen stellt sicher, dass die Datei nur von root lesbar ist. Zusätzliche Informationen bieten die Manual-Seiten &man.chmod.1; und &man.chown.8;: &prompt.root; chown root:wheel /etc/ppp/ppp.conf &prompt.root; chmod 600 /etc/ppp/ppp.conf Dies wird einen Tunnel für eine PPP-Session zu Ihrem DSL-Router öffnen. Ethernet-DSL-Modems haben eine vorkonfigurierte LAN-IP-Adresse, mit der Sie eine Verbindung aufbauen. Im Falle des Alcatel &speedtouch; Home handelt es sich dabei um die Adresse 10.0.0.138. In der Dokumentation Ihres Routers sollte angegeben sein, welche Adresse Ihr Gerät verwendet. Um den Tunnel zu öffnen und eine PPP-Session zu starten, führen Sie bitte folgenden Befehl aus: &prompt.root; pptp address adsl Vielleicht möchten Sie ein kaufmännisches Und (&) an das Ende oben angegebenen Kommandos anfügen, da pptp sonst den Prompt nicht zurückgibt. Ein virtuelles Tunnel-Device tun wird für das Zusammenspiel der Prozesse pptp und ppp geschaffen. Wenn Sie den Prompt zurückerhalten haben oder der pptp-Prozess das Vorliegen einer Verbindung bestätigt, können Sie den Tunnel folgendermaßen überprüfen: &prompt.user; ifconfig tun0 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500 inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00 Opened by PID 918 Wenn Sie nicht in der Lage sein sollten, eine Verbindung aufzubauen, überprüfen Sie die Konfiguration Ihres Routers, den Sie normalerweise per telnet oder mit einem Web-Browser erreichen können. Falls dennoch keine Verbindung zustande kommt, sollten Sie die Ausgabe des Befehls pptp und die Logdatei /var/log/ppp.log von ppp nach Hinweisen auf die Ursache durchsuchen. - - - - - - SLIP - - SatoshiAsamiUrsprünglich beigetragen von - - - GuyHelmerMit Beiträgen von - PieroSerini - - - - - SLIP - - - Der folgende Abschnitt ist ausschließlich - für &os; 7.X relevant und gültig. - - - - Einrichtung eines SLIP-Clients - - SLIP - Client - - - Im Folgenden wird ein Weg beschrieben, SLIP auf einer - FreeBSD-Maschine für ein Netzwerk mit festen Hostnamen - einzurichten. Bei einer dynamischen Zuweisung des Hostnamens - (das heißt wenn sich Ihre Adresse bei jeder Einwahl ändert) - wird die Einrichtung wahrscheinlich etwas komplexer aussehen. - - Bestimmen Sie zuerst, an welcher seriellen Schnittstelle Ihr Modem - angeschlossen ist. Viele Leute erzeugen einen symbolischen Link, - wie etwa /dev/modem, der auf den wirklichen - Gerätenamen /dev/cuadN verweist. Damit ist es Ihnen - möglich, vom eigentlichen Gerätenamen zu abstrahieren, - sollten Sie das Modem einmal an eine andere Schnittstelle - anschließen müssen. Es kann ziemlich umständlich sein, - wenn Sie eine viele Dateien in /etc und - .kermrc-Dateien, die über das ganze System - verstreut sind, anpassen müssen! - - - /dev/cuau0 ist - COM1, /dev/cuau1 - ist COM2, etc. - - - Stellen Sie sicher, dass Folgendes in Ihrer - Kernelkonfigurationsdatei steht: - - device sl 1 - - Dieses pseudo-device ist im GENERIC Kernel - enthalten. Falls es von Ihnen nicht gelöscht wurde, sollten - Sie hier kein Problem haben. - - - Dinge, die Sie nur einmal erledigen müssen - - - - Tragen Sie Ihren lokalen Rechner, das Gateway, sowie - die Nameserver in Ihre Datei /etc/hosts - ein. Diese Datei sieht bei mir so aus: - - 127.0.0.1 localhost loghost -136.152.64.181 water.CS.Example.EDU water.CS water -136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway -128.32.136.9 ns1.Example.EDU ns1 -128.32.136.12 ns2.Example.EDU ns2 - - - - Vergewissern Sie sich, dass in der Datei - /etc/host.conf im Abschnitt - hosts: files vor - dns steht. Ohne diese Reihenfolge - könnten lustige Dinge passieren. - - - - Editieren Sie die Datei - /etc/rc.conf. - - - - Ihren Hostnamen geben Sie an, indem Sie folgende Zeile - bearbeiten: - - hostname="myname.my.domain" - - Hier sollte der vollständige Internethostname - Ihres Rechners angegeben werden. - - - - Den DefaultrouterDefaultroute geben Sie durch die Modifikation - folgender Zeile an: - - defaultrouter="NO" - - wird zu: - - defaultrouter="slip-gateway" - - - - - - Erstellen Sie die Datei - /etc/resolv.conf, die Folgendes - enthält: - - domain CS.Example.EDU -nameserver 128.32.136.9 -nameserver 128.32.136.12 - - Nameserver - Domain Name - Wie Sie sehen, werden hiermit die Nameserver angegeben. - Natürlich hängen die tatsächlichen Domainnamen - und Adressen von Ihren Gegebenheiten ab. - - - - Legen Sie ein Passwort für root und - toor (sowie für alle anderen Accounts - die kein Passwort haben) fest. - - - - Starten Sie Ihren Rechner neu und überprüfen - Sie, ob er mir dem richtigen Hostnamen startet. - - - - - - Aufbau einer SLIP-Verbindung - - SLIP - Verbindungsaufbau - - - - Wählen Sie sich ein, geben Sie - slip und am Prompt den Namen Ihres - Rechners sowie Ihr Passwort ein. Was Sie eingeben müssen, - hängt von Ihren Gegebenheiten ab. Wenn Sie - Kermit verwenden, können Sie - ein Skript ähnlich dem Folgenden verwenden: - - # kermit setup -set modem hayes -set line /dev/modem -set speed 115200 -set parity none -set flow rts/cts -set terminal bytesize 8 -set file type binary -# The next macro will dial up and login -define slip dial 643-9600, input 10 =>, if failure stop, - -output slip\x0d, input 10 Username:, if failure stop, - -output silvia\x0d, input 10 Password:, if failure stop, - -output ***\x0d, echo \x0aCONNECTED\x0a - - Natürlich müssen Sie hier Ihren Benutzernamen - und Ihr Passwort eintragen. Wenn Sie das getan haben, - können Sie am Kermit-Prompt - einfach slip eingeben, um sich zu - verbinden. - - - Es ist generell eine schlechte - Idee, Ihr Passwort in einer unverschlüsselten - Textdatei irgendwo im Dateisystem zu speichern. - Tun Sie dies auf Ihr eigenes Risiko. - - - - - Belassen Sie Kermit so (Sie - können es mit - - Ctrl - z - unterbrechen) und geben Sie als - root ein: - - &prompt.root; slattach -h -c -s 115200 /dev/modem - - Wenn Sie mit ping Hosts auf der anderen - Seite des Routers erreichen können, sind Sie verbunden! - Wenn es nicht funktionieren sollte, können Sie versuchen - statt als Argument - für slattach zu verwenden. - - - - - - Beenden der Verbindung - - Um slattach zu beenden, geben Sie - Folgendes ein: - - &prompt.root; kill -INT `cat /var/run/slattach.modem.pid` - - Beachten Sie, dass Sie - root sein müssen, um dies - durchführen zu können. Kehren Sie zu kermit - zurück (mit Hilfe von fg, wenn Sie es - unterbrochen haben) und beenden Sie dieses Programm - (q). - - &man.slattach.8; gibt an, - dass ifconfig sl0 down verwendet werden - soll, um das Interface zu deaktivieren, doch das - scheint keinen Unterschied zu machen. - (ifconfig sl0 gibt dasselbe aus). - - Es kann vorkommen, dass Ihr Modem sich weigert, das - Trägersignal zu beenden. In diesem Fall starten Sie - kermit einfach neu und beenden es wieder. - Beim zweiten Versuch geht es meist aus. - - - - Lösungen bei Problemen - - Wenn es nicht funktionieren sollte, können Sie - an die Mailingliste &a.net.name; schreiben. Über - diese Dinge sind Benutzer bisher gestolpert: - - - - Nicht oder in - slattach verwenden (Das sollte - nicht entscheidend sein, aber einige Benutzer haben - berichtet, dass dies ihre Probleme löst). - - - - Verwendung von statt - (bei einigen Schriftarten kann der - Unterschied schwer zu erkennen sein). - - - - Probieren Sie ifconfig sl0, - um den Status Ihrer Schnittstelle abzufragen. Das Ergebnis - könnte beispielsweise so aussehen: - - &prompt.root; ifconfig sl0 -sl0: flags=10<POINTOPOINT> - inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00 - - - - Wenn &man.ping.8; die Fehlermeldung - no route to host ausgibt, kann - die Routingtabelle falsch sein. Die Routen können Sie - sich mit dem Kommando netstat -r - ansehen: - - &prompt.root; netstat -r -Routing tables -Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: - -(root node) -(root node) - -Route Tree for Protocol Family inet: -(root node) => -default inr-3.Example.EDU UG 8 224515 sl0 - - -localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438 -inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - - -water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438 -(root node) - - Die Zahlen im Beispiel stammen von einer recht - ausgelasteten Maschine. Die Zahlen auf Ihrem System werden, - je nach Netzaktivität, von den gezeigten - abweichen. - - - - - - - Einrichtung eines SLIP-Servers - - SLIP - Server - - - Dieses Dokument bietet Empfehlungen, wie Sie Ihr FreeBSD-System als - SLIP-Server einrichten. Typischerweise bedeutet dies, Ihr System so zu, - konfigurieren, dass beim Login automatisch eine Verbindung für - entfernte SLIP-Clients aufgebaut wird. - - - - - Voraussetzungen - TCP/IP Netze - Dieser Abschnitt ist ausgesprochen technischer Natur, weshalb - Hintergrundwissen erforderlich ist. Wir gehen davon aus, dass Sie - mit dem TCP/IP Protokoll, insbesondere mit - Netzwerk- und Rechneradressierung, Netzwerkmasken, Subnetzen, - Routing und Routingprotokollen, wie RIP, vertraut sind. - Die Konfiguration von SLIP-Diensten - auf einem Einwählserver erfordert die Kenntnis dieser Konzepte. - Wenn Sie damit nicht vertraut sein sollten, lesen Sie bitte - Craig Hunt's TCP/IP Network Administration - publiziert von O'Reilly & Associates, Inc. (ISBN Nummer - 0-937175-82-X) oder die Bücher von Douglas Comer über - das TCP/IP Protokoll. - - Modem - Wir gehen außerdem davon aus, dass Sie Ihr(e) Modem(s) - eingerichtet haben und die entsprechenden Systemdateien so - konfiguriert haben, dass Logins durch Ihr Modem zugelassen sind. - Wenn Sie Ihr System dafür noch nicht vorbereitet haben, - lesen Sie bitte , um Ihre - Einwahlverbindung zu konfigurieren. Hilfreich sind auch die - Manualpages &man.sio.4; mit Informationen zum Gerätetreiber - der seriellen Schnittstelle &man.ttys.5;, sowie &man.gettytab.5;, - &man.getty.8; und &man.init.8; für Informationen zur - Konfiguration von Logins über ein Modem. &man.stty.1; bietet - Informationen zur Einstellung der Parameter der seriellen - Schnittstelle (etwa von clocal für - direkt angeschlossene serielle Geräte). - - - - Ein kurzer Überblick - - Mit der normal verwendeten Konfiguration funktioniert der - FreeBSD-SLIP-Server folgendermaßen: Ein SLIP-Benutzer - wählt einen FreeBSD-SLIP-Server an und meldet sich mit einer - speziellen SLIP-Login-ID ein, wobei - /usr/sbin/sliplogin als Shell dieses - besonderen Accounts dient. Das Programm - sliplogin durchsucht die Datei - /etc/sliphome/slip.hosts nach einer - passenden Zeile für diesen Account. Falls ein - Treffer erzielt wird, verbindet es den seriellen Anschluss mit - einem verfügbaren SLIP-Interface und führt das - Shellskript /etc/sliphome/slip.login - aus, um das SLIP-Interface zu konfigurieren. - - - Ein Beispiel für ein Login eines SLIP-Servers - - Wenn beispielsweise die Kennung eines SLIP-Benutzers, - Shelmerg wäre, könnte der Eintrag des - Benutzers Shelmerg in der Datei - /etc/master.passwd etwa so aussehen: - - Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin - - Wenn sich Shelmerg anmeldet, - wird sliplogin die Datei - /etc/sliphome/slip.hosts nach einer - übereinstimmenden Benutzerkennung durchsuchen. So - könnte etwa folgende Zeile in - /etc/sliphome/slip.hosts stehen: - - Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp - - sliplogin wird die passende Zeile finden, - den seriellen Anschluss mit dem nächsten verfügbaren - SLIP-Interface verbinden und dann - /etc/sliphome/slip.login wie hier - dargestellt ausführen: - - /etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp - - Wenn alles gut läuft, wird - /etc/sliphome/slip.login ein - ifconfig für das SLIP-Interface - durchführen, mit dem sich sliplogin - verbunden hat (in obigem Beispiel ist das slip 0, der als - erster Parameter in der Liste an slip.login - übergeben wurde), um die lokale IP-Adresse - (dc-slip), die entfernte IP-Adresse - (sl-helmer), die Netzmaske - des SLIP-Interface (0xfffffc00) und - alle zusätzlichen Optionen (autocomp) - festzulegen. Wenn etwas schief laufen sollte, bietet, - sliplogin normalerweise informative - Meldungen durch den syslogd-Daemon, - der die Meldungen standardmäßig nach - /var/log/messages schreibt (sehen Sie - hierzu auch in den Manual-Seiten für &man.syslogd.8; - und &man.syslog.conf.5; nach). Überprüfen Sie - auch /etc/syslog.conf, - um zu sehen, was syslogd aufzeichnet und - wo es aufgezeichnet wird. - - - - - Kernelkonfiguration - - Kernel - Konfiguration - - - Der Standardkernel von &os; (GENERIC) - bietet bereits SLIP-Unterstützung (&man.sl.4;). Falls - Sie einen angepassten Kernel verwenden, müssen Sie - sicherstellen, dass Ihre Kernelkonfigurationsdatei folgende - Zeile enthält: - - device sl - - In der Voreinstellung leitet Ihr &os;-Rechner keine - Pakete weiter. Wenn Sie Ihren FreeBSD-SLIP-Server als - Router einsetzen möchten, müssen Sie die Datei - /etc/rc.conf bearbeiten und den Wert - der Variable gateway_enable auf - setzen. Dadurch ist sichergestellt, dass - die Routingoptionen auch nach einem Neustart erhalten bleiben. - - Um die Einstellungen sofort anzuwenden, führen Sie den - folgenden Befehl als root-Benutzer aus: - - &prompt.root; service routing start - - Weitere Informationen zur Konfiguration Ihres Kernels, - finden Sie in dieses Handbuches. - - - - Konfiguration des Sliplogin - - Wie bereits erwähnt, gibt es im Verzeichnis /etc/sliphome drei Dateien, die Teil der - Konfiguration für /usr/sbin/sliplogin - sind (sliplogin ist in &man.sliplogin.8; - beschrieben): slip.hosts, - definiert die SLIP-Benutzer sowie deren IP-Adresse; - slip.login, womit normalerweise nur das - SLIP-Interface konfiguriert wird und (optional) - slip.logout, womit die Auswirkungen von - slip.login rückgängig gemacht - werden, wenn die serielle Verbindung beendet wird. - - - Konfiguration der Datei - <filename>slip.hosts</filename> - - /etc/sliphome/slip.hosts enthält - Zeilen, die mindestens vier durch Leerzeichen getrennte Elemente - enthalten: - - - - Login-Kennung des SLIP-Benutzers - - - - Lokale Adresse (lokal für den SLIP-Server) - der SLIP-Verbindung - - - - Entfernte Adresse der SLIP-Verbindung - - - - Netzwerkmaske - - - - Die lokalen und entfernten Adressen können - Hostnamen sein, deren zugehörige IP-Adresse durch die - Datei /etc/hosts oder mithilfe des - Domain Name Service aufgelöst wird. Wie die Adressen - aufgelöst werden, hängt von den Einstellungen in - /etc/nsswitch.conf ab. Die Netzwerkmaske - kann ein Name sein, der durch - eine Suche in /etc/networks aufgelöst - werden kann. Auf einem Beispielsystem, würde die Datei - /etc/sliphome/slip.hosts - folgendermaßen aussehen: - - # -# login local-addr remote-addr mask opt1 opt2 -# (normal,compress,noicmp) -# -Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp - - Am Ende der Zeile stehen eine oder mehrere der folgenden - Optionen. - - - - – keine - Header-Kompression - - - - – Header werden - komprimiert - - - - – Header werden - komprimiert, sofern die Gegenstelle es erlaubt - - - - – ICMP-Pakete werden - deaktiviert (ping Pakete werden - unterdrückt, statt die Ihnen zur Verfügung - stehende Bandbreite aufzubrauchen) - - - - SLIP - TCP/IP Netze - Die Auswahl von lokalen und entfernten Adressen für Ihre - SLIP-Verbindung, hängt davon ab, ob Sie ein TCP/IP-Subnetz - reservieren oder ob Sie proxy ARP auf Ihrem - SLIP-Server verwenden (es handelt sich nicht um - echtes proxy ARP, aber dieser Begriff wird - in diesem Abschnitt verwendet, um diesen Sachverhalt zu - beschreiben). Wenn Sie nicht sicher sind, welche Methode - Sie wählen sollen oder wie IP-Adressen zugewiesen werden, - lesen Sie bitte in den Büchern - zum Thema TCP/IP nach, die als Voraussetzungen für SLIP - () angegeben worden sind - oder fragen Sie Ihren IP-Netzwerkadministrator. - - Wenn Sie für Ihre SLIP-Clients ein eigenes Subnetz - verwenden, werden Sie die Nummer des Subnetzes aus der Ihnen - zugewiesenen IP-Netzwerknummer zuteilen und die IP-Adressen - Ihrer SLIP-Clients aus diesem Subnetz verwenden müssen. - Dann können Sie eine statische Route zu Ihrem - SLIP-Subnetz über Ihren SLIP-Server auf Ihren - nächsten IP-Router konfigurieren. - - Ethernet - Wenn Sie aber andererseits die proxy ARP - Methode verwenden möchten, werden Sie die IP-Adressen Ihrer - SLIP-Clients aus dem Subnetz Ihres SLIP-Server nehmen und die - Skripte /etc/sliphome/slip.login - /etc/sliphome/slip.logout anpassen - müssen, damit diese &man.arp.8; zur Verwaltung der - proxy ARP-Einträge in der ARP-Tabelle Ihres - SLIP-Servers verwenden. - - - - Konfiguration von <filename>slip.login</filename> - - Eine typische Datei - /etc/sliphome/slip.login sieht - folgendermaßen aus: - - #!/bin/sh - -# -# @(#)slip.login 5.1 (Berkeley) 7/1/90 - -# -# generic login file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 inet $4 $5 netmask $6 - - Diese slip.login Datei führt - lediglich ifconfig für das entsprechende - SLIP-Interface mit den lokalen und entfernten Adressen und der - Netzwerkmaske des SLIP-Interface aus. - - Wenn Sie sich dafür entschieden haben, die - proxy ARP Methode zu verwenden (statt eines - separaten Subnetzes für Ihre SLIP-Clients) - sollte Ihre Datei /etc/sliphome/slip.login - etwa folgendermaßen aussehen: - - #!/bin/sh - -# -# @(#)slip.login 5.1 (Berkeley) 7/1/90 - -# -# generic login file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 inet $4 $5 netmask $6 -# Answer ARP requests for the SLIP client with our Ethernet addr -/usr/sbin/arp -s $5 00:11:22:33:44:55 pub - - Die zusätzliche Zeile arp -s - $5 00:11:22:33:44:55 pub in der Datei - slip.login erzeugt einen ARP-Eintrag - in der ARP-Tabelle des SLIP-Servers. Dieser ARP-Eintrag - veranlasst den SLIP-Server mit seiner Ethernet MAC-Adresse - zu antworten, sobald ein anderer IP-Knoten im Ethernet mit - der IP-Adresse des SLIP-Clients Kontakt aufnehmen - möchte. - - - Ethernet - MAC Adresse - - Wenn Sie das Beispiel von oben verwenden, achten Sie darauf - die Ethernet MAC-Adresse (00:11:22:33:44:55) durch die MAC-Adresse der - Ethernetkarte Ihres Systems zu ersetzen. Sonst wird Ihr - proxy ARP sicher nicht funktionieren! Sie - können die MAC-Adresse Ihres SLIP-Servers herausfinden, - indem Sie sich die Ausgabe von netstat -i - ansehen. Die zweite Zeile der Ausgabe sollte ungefähr - aussehen wie diese hier: - - ed0 1500 <Link>0.2.c1.28.5f.4a 191923 0 129457 0 116 - - Dies zeigt an, dass die Ethernet MAC-Adresse dieses - Systems 00:02:c1:28:5f:4a lautet. - Die Punkte in der Ethernet MAC-Adresse, die von - netstat -i ausgegeben wird, müssen - durch Doppelpunkte ersetzt werden. Bei jeder einstelligen - Hexadezimalzahl sollten außerdem führende Nullen - hinzugefügt werden, um die Adresse in die Form zu bringen, - die von &man.arp.8; verlangt wird. - Die Manual-Seite von &man.arp.8; bietet hierzu eine - vollständige Übersicht. - - - Wenn Sie die Dateien - /etc/sliphome/slip.login und - /etc/sliphome/slip.logout erstellen, - müssen diese ausführbar gemacht werden - (chmod 755 /etc/sliphome/slip.login - /etc/sliphome/slip.logout), - da sliplogin auf deren Ausführbarkeit - angewiesen ist. - - - - - Konfiguration von <filename>slip.logout</filename> - - Die Datei/etc/sliphome/slip.logout ist - nicht zwingend erforderlich (außer Sie verwenden proxy - ARP), aber falls Sie diese Datei erzeugen möchten, - ist hier ein Beispiel für ein grundlegendes - slip.logout Skript: - - #!/bin/sh - -# -# slip.logout - -# -# logout file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 down - - Wenn Sie proxy ARP einsetzen, muss - /etc/sliphome/slip.logout den - ARP-Eintrag für den SLIP-Client löschen: - - #!/bin/sh - -# -# @(#)slip.logout - -# -# logout file for a slip line. sliplogin invokes this with -# the parameters: -# 1 2 3 4 5 6 7-n -# slipunit ttyspeed loginname local-addr remote-addr mask opt-args -# -/sbin/ifconfig sl$1 down -# Quit answering ARP requests for the SLIP client -/usr/sbin/arp -d $5 - - arp -d $5 löscht den ARP-Eintrag, - den die proxy ARP slip.login - hinzufügte, als der SLIP-Client sich eingeloggt hatte. - - Es soll nochmals darauf hingewiesen werden, dass für die - Datei /etc/sliphome/slip.logout das - Ausführungs-Bit gesetzt werden muss, nachdem die Datei - erstellt worden ist (z.B. chmod 755 - /etc/sliphome/slip.logout). - - - - - Überlegungen zum Routing - - SLIP - Routing - - - Wenn Sie nicht die proxy ARP Methode benutzen, - um Datenpakete zwischen Ihren SLIP-Clients und dem Rest Ihres - Netzwerkes (oder vielleicht dem Internet) zu routen, werden Sie - wahrscheinlich statische Routen zu Ihrem nächsten - Standardrouter hinzufügen müssen, um Pakete aus dem - Subnetz Ihres SLIP-Clients über Ihren SLIP-Server - weiterzuleiten. - - - Statische Routen - statische Routen - Das Hinzufügen von statischen Routen zu Ihrem - nächsten Standardrouter kann problematisch sein - (oder unmöglich, wenn Sie nicht die erforderliche - Berechtigung haben...). Wenn Sie in Ihrer Organisation ein - Netzwerk mit mehreren Routern haben, müssen einige Router, - wie etwa die von Cisco und Proteon hergestellten, nicht nur mit - der statischen Route zum SLIP-Subnetz konfiguriert werden, sondern - es muss ihnen auch mitgeteilt werden, über welche statischen - Routen sie andere Router informieren sollen. Daher ist einiges - an Fachwissen und Problemlösungskompetenz erforderlich, um auf - statischen Routen basierendes Routing erfolgreich - einzurichten. - -