FreeBSD enthält ppp(8), um Einwählverbindungen über
PPP zu verwalten. Der FreeBSD-Kernel enthält
Unterstützung für die tun
-Schnittstelle,
die benutzt wird um mit einem Modem zu interagieren. Für die
Konfiguration muss mindestens eine Datei bearbeitet werden.
Beispiele sind in den Konfigurationsdateien ebenfalls enthalten.
Schlussendlich wird ppp
benutzt, um die
Verbindungen zu starten und zu verwalten.
Für eine PPP-Verbindung sind folgende Dinge erforderlich:
Ein Account bei einem Internet Service Provider (ISP).
Ein Modem.
Die Einwahlnummer(n) des ISPs.
Den Login-Namen und das Passwort, welches vom ISP zugewiesen wurde.
Die IP-Adresse von einem oder mehreren DNSServern. Üblicherweise werden diese Daten vom ISP zur Verfügung gestellt. Falls dies nicht der Fall ist, können Sie FreeBSD so konfigurieren, das es die DNS-Daten automatisch aushandeln kann.
Sollte eine dieser Informationen fehlen, kontaktieren Sie den ISP!
Die folgenden Informationen werden möglicherweise durch den ISP zur Verfügung gestellt, sie sind aber nicht zwingend erforderlich:
Die IP-Adresse des Standard-Gateways.
Steht diese Information nicht zur Verfügung, wird der
PPP-Server des ISPs
beim Verbindungsaufbau eine gültige Adresse übermitteln.
Diese Adresse wird in der Konfiguration von
PPP unter FreeBSD als
HISADDR
bezeichnet.
Die Netzmaske. Falls der ISP keine
Netzmaske vorgegeben hat, können Sie in der
Konfigurationsdatei von ppp(8) 255.255.255.255
verwenden.
Wenn der ISP eine statische IP-Adresse und einen Rechnernamen zugewiesen hat, sollten diese Informationen in die Konfigurationsdatei eingetragen werden. Andernfalls werden diese Informationen automatisch beim Verbindungsaufbau zur Verfügung gestellt.
Der Rest dieses Abschnitts beschreibt, wie FreeBSD für
gebräuchliche PPP-Verbindungsszenarien
konfiguriert wird. Die erforderliche Konfigurationsdatei
ist /etc/ppp/ppp.conf
. Zusätzliche
Dateien und Beispiele sind in
/usr/share/examples/ppp/
verfügbar.
Die Beispieldateien, die in diesem Kapitel dargestellt werden, enthalten Zeilennummern. Die Nummerierung dient lediglich einer leichteren Orientierung und sollte nicht in die Dateien übernommen werden.
Achten Sie auf die richtige Einrückung, wenn Sie eine
Konfigurationsdatei bearbeiten. 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.
Um eine PPP-Verbindung zu
konfigurieren, tragen Sie zuerst die Zugangsdaten des
ISPs in
/etc/ppp/ppp.conf
ein. Diese Datei wird
wie folgt beschrieben:
1 default: 2 set log Phase Chat LCP IPCP CCP tun command 3 ident user-ppp VERSION 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 timeout 300 16 set ifaddrx.x.x.x
/0y.y.y.y
/0 255.255.255.255 0.0.0.0 17 add default HISADDR
Gibt den Standardeintrag an. Befehle dieses
Eintrags (Zeile 2 bis 9) werden automatisch ausgeführt,
wenn ppp
läuft.
Schaltet die ausführliche Protokollierung ein. Sobald die Verbindung zufriedenstellend funktioniert, können Sie diese Zeile verkürzen:
set log phase tun
Dies verhindert ein übermäßiges Anwachsen der Logdateien.
Übermittelt die Version von ppp(8) an die PPP-Software der Gegenstelle.
Gibt das Device an, an dem das Modem angeschlossen
ist. COM1
entspricht
/dev/cuad0
und
COM2
entspricht
/dev/cuad1
.
Legt die Verbindungsgeschwindigkeit fest. Falls ein
Wert von 115200
bei älteren Modems
nicht funktioniert, versuchen Sie es stattdessen mit
38400
.
Die Zeichenfolge für die Einwahl in einer expect-send Syntax. Weitere Informationen finden Sie in chat(8).
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.
Legt den Zeitrahmen in Sekunden fest, innerhalb dessen eine Reaktion erfolgen muss.
Weist die Gegenstelle an, die DNS-Einstellungen zu bestätigen. Wenn es im lokalen Netzwerk einen DNS-Server gibt, sollte diese Zeile auskommentiert oder gelöscht werden.
Eine leere Zeile zur besseren Lesbarkeit. Leere Zeilen werden von ppp(8) ignoriert.
Bestimmt einen Provider, namens
provider
. Wenn Sie hier den Namen
des ISP einsetzen, können Sie später
die Verbindung mit
load
aufbauen.ISP
Gibt die Telefonnummer des Providers an. Mehrere
Telefonnummern können angegeben werden, indem
Doppelpunkte (:
) oder Pipe-Zeichen
(|
) als Trennzeichen verwendet
werden. 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. Sie sollten immer die gesamte Reihe
der Telefonnummern in Anführungszeichen
("
) setzen, um Wählfehler zu
vermeiden.
Gibt den Benutzernamen und das Passwort für den ISP an.
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.
Legt die Adresse für die Schnittstelle fest. Die verwendeten Werte hängen davon ab, ob Sie vom ISP eine statische IP-Adresse zugeteilt bekommen haben, oder ob beim Verbindungsaufbau eine dynamische Adresse ausgehandelt wird.
Wenn Ihnen der ISP keine statische IP-Adresse zugeteilt hat, ändern Sie diese Zeile auf den folgenden Wert. Dadurch weiß ppp(8), dass es das IP Configuration Protocol (IPCP) benutzen soll um die dynamische IP-Adresse auszuhandeln.
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0
Fügt eine Defaultroute für das Gateway hinzu.
Belassen Sie die Zeile so wie sie ist.
HISADDR
wird dabei durch die in
Zeile 16 angegebene Gateway-Adresse ersetzt.
Wichtig ist, dass diese Zeile nach Zeile 16
erscheint.
Je nachdem, ob ppp(8) manuell oder automatisch
gestartet wird, muss vielleicht auch
/etc/ppp/ppp.linkup
mit dem folgenden
Inhalt erstellt werden. Diese Datei ist erforderlich, falls
ppp
im -auto
-Modus
ausgefürht wird. Die Datei wird verwendet, nachdem die
Verbindung hergestellt wurde. An diesem Punkt wird die
IP-Adresse zugewiesen und es sollte nun
möglich sein, Einträge in die Routingtabelle hinzuzufügen.
Stellen Sie bei der Bearbeitung der Datei sicher, dass der
Eintrag für provider
mit dem Wert
aus Zeile 11 in ppp.conf
übereinstimmt.
provider: add default HISADDR
Diese Datei wird ebenfalls benötigt, wenn bei einer
Konfiguration mit statischer IP-Adresse die
Adresse des Standard-Gateways „erraten“ wird. In
solchen Fällen entfernen Sie Zeile 17 aus
ppp.conf
und erstellen Sie
/etc/ppp/ppp.linkup
mit den oben
genannten Zeilen. Weitere Beispiele für diese Datei finden
Sie in /usr/share/examples/ppp/
.
In der Voreinstellung muss ppp
als
root
ausgeführt
werden. Um diesen Standard zu ändern, muss das Konto eines
Benutzers, der ppp
ausführen soll, zur
Gruppe network
in
/etc/group
hinzugefügt werden.
Danach geben Sie dem Benutzer ebenfalls Zugriff auf einen
oder mehrere Abschnitte der Konfigurationsdatei
/etc/ppp/ppp.conf
geben müssen, indem Sie
den allow
Befehl verwenden. Um
beispielsweise den Benutzern fred
und mary
die Berechtigung für den
Eintrag provider:
zu geben, fügen Sie in
der Sektion provider
folgende Zeile
ein:
allow users fred mary
Wenn dieser Befehl stattdessen in der Sektion
default
verwendet wird, erhalten die
angegebenen Benutzer vollständigen Zugriff.
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.
Einige ISPs haben ihr System so
eingerichtet, dass der Authentifizierungsteil eines
Verbindungsaufbaus mit Hilfe von PAP oder CHAP-Mechanismen
durchgeführt wird. Wenn das der Fall sein sollte, wird der
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 Angreifer wenig Möglichkeiten zu „lauschen“.
Die folgenden Veränderungen müssen vorgenommen werden:
13 set authnameMyUserName
14 set authkeyMyPassword
15 set login
Diese Zeile legt den PAP/CHAP Benutzernamen fest.
Sie müssen den richtigen Wert für
MyUserName
eingeben.
Diese Zeile legt das 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.
Der ISP wird normalerweise keine Anmeldung am Server verlangen, wenn PAP oder CHAP verwendet wird. Sie müssen deshalb den String „set login“ deaktivieren.
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
NAT kann mit der Option
-nat
auf der Kommandozeile aktiviert
werden. 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
Obwohl ppp
nun konfiguriert ist,
müssen noch einige Änderungen in
/etc/rc.conf
vorgenommen werden.
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 der ISP eine statische IP-Adresse und einen Namen zugewiesen hat, verwenden Sie diesen Namen als Hostnamen.
Schauen Sie nach der Variable
network_interfaces
. Wenn Sie das System
so konfigurieren möchten, dass es bei Bedarf eine Verbindung
zum ISP aufbaut, sollten Sie das Gerät
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 den ppp-Daemon im
Automatik-Modus. Es wird bei der Netzwerkkonfiguration
ausgeführt. Wenn der Rechner als Gateway für ein
LAN fungiert, möchten Sie vielleicht
auch die Option -alias
verwenden. In der
Manualpage sind weitere Einzelheiten 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
-Daemon 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 der 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. Verwenden Sie den Befehl
!bg
in ppp.linkup
,
um dies zu automatisieren:
1 provider: 2 delete ALL 3 add 0 0 HISADDR 4 !bg sendmail -bd -q30m
Alternativ 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 den 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
dem Netzwerk heraus, automatisch eine Verbindung herstellen
zu lassen (vorausgesetzt Sie haben kein
start_if.tun0
Skript erstellt).
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 die 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.
Abschnitt 26.4, „Einwählverbindungen“ bietet eine gute Beschreibung, wie Einwählverbindungen unter Verwendung von getty(8) genutzt werden können.
Eine Alternative zu getty
ist
comms/mgetty+sendfax, eine raffiniertere
Version von getty
, die mit Blick auf
Einwählverbindungen entworfen wurde.
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 das 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 Clients
den skriptlosen Zugang zum Server erlaubt.
http://mgetty.greenie.net/doc/mgetty_toc.html
enthält weitere Informationen zu
mgetty
.
In der Voreinstellung wird
comms/mgetty+sendfax 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
/usr/local/etc/mgetty+sendfax/login.config
Folgendes enthält:
/AutoPPP/ - - /etc/ppp/ppp-pap-dialup
Hierdurch wird mgetty
angewiesen,
ppp-pap-dialup
für die erkannten
PPP-Verbindungen auszuführen.
Erstellen Sie eine ausführbare Datei namens
/etc/ppp/ppp-pap-dialup
mit folgendem
Inhalt:
#!/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 weiter oben gemacht wurden, 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 in
/etc/passwd
folgende Option
hinzufügen:
enable passwdauth
Um bestimmten Benutzern eine statische
IP-Adresse zuzuweisen, können
Sie die Adresse als drittes Argument in
/etc/ppp/ppp.secret
angeben.
Beispiele finden Sie in
/usr/share/examples/ppp/ppp.secret.sample
.
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>.