Das FreeBSD-Handbuch
Zurück | Kapitel 28. PPP und SLIP | Weiter

# 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/cuad`N`` wurde zu `/dev/cuau`N``, `/dev/ttyd`N`` zu `/dev/ttyu`N``. 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 `tun`N`` 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 `tun`N`` 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`.

Zurück | Zum Anfang | Weiter
PPP und SLIP | Nach oben | Kernel-PPP

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.