28.2. User-PPP

Aktualisiert und erweitert von Tom Rhodes. Ursprünglich geschrieben von Brian Somers. Mit Beiträgen von Nik Clayton, Dirk Frömberg und Peter Childs.

Warnung: Mit FreeBSD 8.0 wurden die Gerätedateien für serielle Ports umbenannt: /dev/cuadN wurde zu /dev/cuauN, /dev/ttydN zu /dev/ttyuN. Verwenden Sie noch FreeBSD 7.X, müssen Sie dies beim Lesen der folgenden Abschnitte berücksichtigen.

28.2.1. User-PPP

28.2.1.1. Voraussetzungen

Dieses Dokument geht davon aus, dass Sie Folgendes zur Verfügung haben:

  • Einen Account bei einem Internet Service Provider (ISP), zu dem Sie mit PPP 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-Namen und Ihr Passwort (entweder ein reguläres Login/Passwort-Paar im UNIX®-Stil oder ein PAP bzw. CHAP Login/Passwort-Paar).

  • Die IP-Adresse von einem oder mehreren Nameservern. Ü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-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.

Anmerkung: 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.

28.2.1.2. Automatische Konfiguration von PPP

Sowohl ppp als auch pppd (die PPP-Implementierung auf Kernelebene, nur unter FreeBSD 7.X) verwenden die Konfigurationsdateien im Verzeichnis /etc/ppp. Beispiele für User-PPP 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.

28.2.1.2.1. PPP und statische IP-Adressen

Sie müssen die Konfigurationsdatei /etc/ppp/ppp.conf bearbeiten. Sie sollte so aussehen, wie in dem unten angegebenen Beispiel.

Anmerkung: 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-PPP verwendet eine expect-send Syntax, ähnlich dem 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 load ISP 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 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 PAP oder CHAP 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 Zeitrahmen (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 -ddial 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 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 -auto 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 -auto Modus betreiben, sollte diese Zeile in die Datei ppp.linkup verschoben werden.

Wenn Sie eine statische IP-Adresse verwenden und ppp im -auto 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/.

28.2.1.2.2. PPP und dynamische IP-Adressen

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 -auto Modus eine initiale Route setzt.

Wenn PPP nicht im -auto 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.

28.2.1.2.3. Annahme eingehender Anrufe

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"

28.2.1.2.4. Welches getty?

Der Abschnitt Einwählverbindungen bietet eine gute Beschreibung, wie Einwählverbindungen unter Verwendung von 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.

28.2.1.2.5. PPP 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.

28.2.1.2.6. PPP-Shells für dynamische IP-Adressen

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:

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

28.2.1.2.7. PPP-Shells für statische IP-Adressen

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:

# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
# 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).

28.2.1.2.8. Einrichten von ppp.conf 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

Anmerkung: 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.

28.2.1.2.9. Einrichten von ppp.conf 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

28.2.1.2.10. mgetty und AutoPPP

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.

28.2.1.2.11. MS-Erweiterungen

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.

28.2.1.2.12. Authentifizierung durch PAP und 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 Passwort 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.

28.2.1.2.13. Veränderung Ihrer ppp 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 pppctl(8) in Skripten verwendet werden, mit denen in das laufende Programm eingegriffen wird.

28.2.1.3. Interne NAT von PPP benutzen

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 -nat 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

28.2.1.4. Abschließende Systemkonfiguration

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=

Anmerkung: 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 -alias 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"

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 -q 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"

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:

# /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

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:

# ppp

und danach dial provider eingeben, um eine PPP-Sitzung zu starten, oder Sie geben:

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

28.2.1.5. Zusammenfassung

Die folgenden Schritte sind nötig, wenn ppp zum ersten Mal eingerichtet werden soll:

Clientseite:

  1. Stellen Sie sicher, dass das tun Device in den Kernel eingebaut ist.

  2. Vergewissern Sie sich, dass die Gerätedatei tunN im Verzeichnis /dev vorhanden ist.

  3. Bearbeiten Sie die Datei /etc/ppp/ppp.conf. Das Beispiel pmdemand sollte für die meisten ISP ausreichen.

  4. Wenn Sie eine dynamische IP-Adresse haben, erstellen Sie einen Eintrag in der Datei /etc/ppp/ppp.linkup.

  5. Aktualisieren Sie die Datei /etc/rc.conf.

  6. Erstellen Sie das Skript start_if.tun0, wenn Sie einen bedarfgesteuerten Einwahlprozess (demand dialing) benötigen.

Serverseite:

  1. Stellen Sie sicher, dass das tun Device in den Kernel eingebaut ist.

  2. Vergewissern Sie sich, dass die Gerätedatei tunN im Verzeichnis /dev vorhanden ist

  3. Erstellen Sie einen Eintrag in der Datei /etc/passwd (verwenden Sie dazu das Programm vipw(8)).

  4. Erstellen Sie ein Profil im Heimatverzeichnis des Benutzers, das ppp -direct direct-server o.Ä. ausführt.

  5. Bearbeiten Sie die Datei /etc/ppp/ppp.conf. Das Beispiel direct-server sollte ausreichen.

  6. Erzeugen Sie einen Eintrag in /etc/ppp/ppp.linkup.

  7. Aktualisieren Sie die Datei /etc/rc.conf.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.