Die Server-Variante erfüllt folgende Anforderungen:
Es wird der unter Linux übliche ppp-Deamon (pppd) verwendet; dieser ist weitgehend über Kommandozeilenparameter und Konfigurationsdateien parametrierbar; die Konfigurationsdateien liegen durch Dateizgriffsrechte vor den Usern geschützt im system-globalen Konfigurationsverzeichnis /etc/ppp/. Der pppd ruft bei den Ereignissen (engl. Events) "Verbindungsaufbau" bzw. "Verbindungsabbau" sogenannte Event-Scripts auf; damit lassen sich die diversen Dienste darüber informieren und z.B. der Mailversand und -Abholung automatisieren. Das Hoch- und Herunterfahren der IP-Verbindung (zum ISP, hier: FEN) erfolgt per Kommandozeilen-Befehl; Wer Lust hat, kann sich mit TCL/Tk eine graphische Oberfläche dafür klöppeln...
Anmerkung: die folgenden Beschreibungen beziehen sich auf ein Linux-System, das durch eine Distribution SuSE Linux 7.2 (Mai 2001) installiert wurde; da es im Linux-Bereich derzeit größere Bestrebungen gibt, die verschiedenen Systeme zueinander noch kompatibler zu machen, sollten die Beschreibungen auf andere Distributionen übertragbar sein. Des weiteren beziehen sich manche Beschreibungen auf RPM-basierte Distributionen (RPM: Red Hat Packetmanager, das Paketmanagement-Werkzeug vieler Linux-Distributionen); daneben gibt es noch Debian- (*.deb-Pakete, Paketmanager APT, Advanced Pakage Tool) und .tar.gz-Pakete (die entsprechenden Befehle würden mich in diesem Zusammenhang interessieren, damit ich sie hier aufnehmen kann; falls sie jemand herausfinden kann, bitte melden.).
Die folgenden Pakete müssen installiert sein (die Versionsnummern sind nicht sehr ausschlaggebend):
Diese Liste läßt sich erzeugen mit dem Befehl (rpm-basierte Distributionen):
$ rpm -q --requires ppp | xargs rpm -q --whatprovides | sort -u
Ob die drei Pakete installiert sind, bekommt man heraus über den Befehl:
$ rpm -qa | grep -e glibc -e pam -e ppp
Falls nicht, diese bitte erst über das distributions-spezifische Paketmanagement-Werkzeug nachinstallieren.
Die folgende Anleitung wurde damals auf SuSE-7.* verwendet und funktionierte jahrelang einwandfrei. Mit den neuesten SuSE-Distributionen (SuSE-8.0 ff.) wird ein ähnliches Konzept fertig mitgeliefert. Deswegen ist die folgende Beschreibung (zumindest was SuSE-Installationen angeht) obsolet. Ich halte sie jedoch für den interessierten Leser online.
Folgende Dateien sind vonnöten bzw. werden im Folgenden beschrieben und erstellt:
/etc/ppp/ /etc/ppp/connect-errors /etc/ppp/peers/ /etc/ppp/peers/in/ # Konfigurationen eingehender IP-Verbindungen /etc/ppp/peers/in/options /etc/ppp/peers/out/ # Konfigurationen ausgehender IP-Verbindungen /etc/ppp/peers/out/ISPs/ /etc/ppp/peers/out/ISPs/FEN/ /etc/ppp/peers/out/ISPs/FEN/Erlangen/ /etc/ppp/peers/out/ISPs/FEN/Erlangen/alt/ /etc/ppp/peers/out/ISPs/FEN/Erlangen/alt/chat # chat-Skript fuer Modem /etc/ppp/peers/out/ISPs/FEN/Erlangen/alt/README /etc/ppp/peers/out/ISPs/FEN/Erlangen/alt/options # Einstellungen fuer pppd /etc/ppp/peers/out/ISPs/FEN/Erlangen/neu/ /etc/ppp/peers/out/ISPs/FEN/Erlangen/neu/chat # chat-Skript fuer Modem /etc/ppp/peers/out/ISPs/FEN/Erlangen/neu/README /etc/ppp/peers/out/ISPs/FEN/Erlangen/neu/options # Einstellungen fuer pppd /etc/ppp/peers/out/ISPs/default # -> FEN/Erlangen/neu/options /etc/ppp/ip-up # Event-Skript /etc/ppp/ip-up.local # Event-Skript, selbst erstellt /etc/ppp/ip-down # Event-Skript /etc/ppp/ip-down.local # Event-Skript, selbst erstellt /etc/ppp/options # globale Einstellungen fuer pppd /etc/ppp/pap-secrets # Authentikationsinformationen /etc/ppp/chap-secrets # Authentikationsinformationen (nicht bei FEN) /usr/bin/ppp-on # Befehl zum Hochfahren der Verbindung /usr/bin/ppp-up # -> /usr/bin/ppp-on /usr/bin/ppp-off # Befehl zum Herunterfahren der Verbindung /usr/bin/ppp-down # -> /usr/bin/ppp-off
Wir holen uns einen Kommandozeilen-Prompt (an der Textkonsole oder xterm), wechseln unsere Identität zum Systemverwalter root (Minus nicht vergessen!) und erstellen die Verzeichnisse:
$ su - root
Password: hier geheimes Passwort reindrücken
# # Sind wir root?
# id
uid=0(root) gid=0(root) groups=0(root),1(bin),14(uucp),15(shadow),16(dialout),17(audio),65534(nogroup)
#
# # Also, dann geht's los:
# # Alle Verzeichnisse unter /etc/ppp/peers/ in einem Rutsch anlegen:
#
# mkdir -p /etc/ppp/peers/{in,out/ISPs/FEN/Erlangen/{alt,neu}}
#
# # Erfolgskontrolle:
# find /etc/ppp/peers/ -type d
/etc/ppp/peers/
/etc/ppp/peers/in
/etc/ppp/peers/out
/etc/ppp/peers/out/ISPs
/etc/ppp/peers/out/ISPs/FEN
/etc/ppp/peers/out/ISPs/FEN/Erlangen
/etc/ppp/peers/out/ISPs/FEN/Erlangen/alt
/etc/ppp/peers/out/ISPs/FEN/Erlangen/neu
#
# # Benutzer- und Gruppen-Eigentümerschaft festlegen:
#
# chown -R root.dialout /etc/ppp/peers/{in,out}/
#
# # Benutzer- und Gruppen-Rechte festlegen:
# # Die Gruppe others (o= Rest der Welt) geht das hier gar nichts an:
#
# chmod o-rwx /etc/ppp/peers/{in,out}/
#
# # Die Gruppe dialout muß manche Dateien lesen können
# # (und evtl. in die Verzeichnisse wechseln können),
# # braucht aber dort nichts schreiben können:
#
# chmod g+rx,g-w /etc/ppp/peers/{in,out}/
#
Konfigurationsdateien anlegen:
# cat <<EOT >>/etc/ppp/peers/out/ISPs/FEN/Erlangen/neu/options
# RWF Sun Apr 1 22:02:32 MEST 2001:
# Vorlage: /usr/share/doc/packages/ppp/SETUP
# modem is connected to /dev/ttyS1
#/dev/modem
/dev/ttyS1
# run the serial port at this baud rate:
115200
# damit pppd in /etc/ppp/{pap,chap}-secrets den richtigen
# Account-Namen findet:
user ea1370
# Wir nehmen fuer unser Ende NICHT die lokale IP-Adresse,
# sondern lassen uns eine vom Provider zuweisen:
noipdefault
# use the ISP as our default route
defaultroute
# Ich will sehen, welches user/secret-Paar pppd aus pap-secrets popelt:
# Achtung: nur zu Debugging-Zwecken einschalten!
#show-password
# Das connect-Skript (wickelt die Wahl des Modems und
# Behandlung eventueller Login-Prozeduren ab):
connect '/usr/sbin/chat -v -f /etc/ppp/peers/out/ISPs/FEN/Erlangen/neu/chat'
# EOF
EOT
Das Chat-Skript für FEN:
# cat <<EO_CHAT >> /etc/ppp/peers/out/ISPs/FEN/Erlangen/neu/chat TIMEOUT 60 ABORT "NO CARRIER" ABORT BUSY ABORT "NO DIALTONE" ABORT ERROR "" +++ATZL3 OK ATH0 OK ATX3 OK ATDT0,0193703 CONNECT "" EO_CHAT
ATX3 und ATDT0, wird gebraucht, um meine Haustelephonanlage auf Amtsebene durchzuschalten.
© 2001 ich Created: Don Jul 19 15:09:37 MEST 2001 Last updated: Mon Apr 21 21:05:04 CEST 2003 EOF