IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Unix - Server/Internet/Netzwerk - pppd Verbindungen und deren Anwendung



pppd Verbindungen und deren Anwendung

pppd, chat, kppp und wvdial werden kurz vorgestellt.


Autor: Franz Schaefer (mond)
Datum: 23-01-2002, 19:39:15
Referenzen: man pppd
man chat
Schwierigkeit: Anfänger
Ansichten: 3055x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Untitled Document

Übersicht

PPP steht fuer "point to point protokoll" und dient dazu netzwerkpackete
ueber serielle leitungen zu transportieren. in den anfangstagen hat man
dazu SLIP (serial line IP) verwendet, doch PPP ist wesentlich
leistungsfaehiger: es erlaubt die authentisierung ueber das protokoll und
kann verschiedenste netzwerkprotokolle ueber die selbe verbindung
uebertragen. weiters koennen sich die 2 stationen die eine verbindung
machen verschiedene verbindungsparameter "aushandeln".

das funktioniert so: die eine station macht vorschlaege ueber bestimmte
parameter und die andere kann diese vorschlaege entweder akzeptieren oder
ablehnen.

im unix wird das PPP zur einen haelfte von kernel unterstuetzt und zur
anderen haelfte user programm namens "pppd". pppd dient dabei sowohl als
programm mit dem anderen computer auf usneren "einwaehlen" koennen als auch
zum aufbau von PPP verbindungen zu anderen einwahlservern.

will man schnell mal eine PPP verbindung aufbauen ohne sich lang gedanken
zu machen kann man das bei den meisten distributionen relativ bequem.

das KDE programm

kppp &

erlaubt z.b. die PPP einrichtung und einwahl unter X11. eine andere quick
& dirty loesung ist das console programm "wvdial". als root:

wvdialconf /etc/wvdial.conf
joe /etc/wvdial.conf
wvdial

und schon sollte man online sein. (in beiden faellen sollte man in
/etc/resolv.conf auch einen nameserver eingetragen haben).

hier wollen wir aber lernen wie wir die ppp verbindung haendisch aufbauen.
dabei

/usr/sbin/pppd debug connect '/usr/sbin/chat -v -f blabla.chat' ttyS1 38400 \
crtscts modem defaultroute

wuerde versuchen eine ppp verbindung ueber die serielle leitung ttyS1 mit
38400 baud aufbauen dabei hardware hanshake verwenden (certscts) und
annehmen dass auf der seriellen leitung ein modem haengt. nach
erfolgreicher einwahl die default route des rechners zur gegenstelle
setzte. alle internet packete wuerden dann ueber diese leitung laufen.

debug gibt an dass wir genauere logfiles haben wollen. diese landen je
nach distribution (d.h. je nach konfiguration von syslog) entweder in
/var/log/messages oder /var/log/syslog oder /var/log/debug ... mit tail -f
koennen wir die ausgaben dort beobachten.

besonders wichtig ist der paramter "connect". dahinter wird ein programm
angegeben das den aufbau der verbindung uebernimmt bevor wir ueberhaupt
mit dem gegenstellen PPP verbunden sind.

dafuer kann man verschiedenste programme verwenden. meist nimmt man dazu
aber das program "chat". hier sagen wir dem chat programm es soll seine
instruktionen zum aufbau der verbindung aus dem file blabla.chat nehmen.
das file koennte z.b. so aussehen:

ABORT BUSY ABORT DIALTONE ABORT ERROR
- AT&F1 OK ATL1M1S0=0 OK ATDT07189160560
ogin: maxmeier@sil word: strenggeheim

die erste zeile enthaelt strings die, falls sie vom chat programm
"gesehen" werden zu einem sofortigen abbruch fuehren.

ab dann gibt es jeweils paare von "expect" und "send" strings. der eine
string wird erwarte. d.h. chat wartet solange bis es die zeichenkette OK
sieht bevor es den string ATL1M1S0=0 sendet um dann wieder auf das OK zu
warten etc.. chat uebernimmt also das was man sonst "haendisch" eintippen
wuerde. das erste "-" zeichen am anfang besagt dass chat hier auf nichts
warten soll sondern gleich das erste AT&F1 losschicken soll. (welche AT
befehle man wirklich schickt haengt natuerlich vom modem ab..)

nach dem ATDT verbindungsaufbau warten wir auf den string "login:" (das
erste l lassen wir am besten weg damit spielt es keine rolle ob es gross
oder kleingeschrieben ist.) (achtung: manche dialinserver schicken als
prompt nicht "login: " sondern "username: " hier wuerde man dann an diese
stelle "name: " schreiben - am besten man versucht ein login zuerst mal
haendisch mit minicom bevor man sein chat script schreibt)

der letzte teil ist das passwort.

manche dial in server geben gar keinen login prompt sondern erwarten dass
das passwort und der username ueber das PPP protokoll selbst (also nicht
schon wie hier vorher via chat programm) ueberprueft werden. PPP kennt
dabei verschieden protokolle zum ueberpruefen des passwortes:

PAP ... einfachstes protokoll. das passwort wird im klartext uebertragen.
CHAP .. protokoll bei dem das passwort via challenge/response ueberprueft
wird. es muss dabei nie im klartext uebertragen werden.


will man z.b. die authentisierung via PAP machen so traegt man sich das
passwort ins file /etc/ppp/pap-secrets ein:

maxmeier@sil sil strenggeheim

"maxmeier@sil" waere hier der username. der mittlere eintrag ist dabei der
name des remotesystems. hat man mehrere provider so kann man die mit
diesem eintrag unterscheiden.

als paramter beim aufruf von pppd gibt man welchen namen das system mit
dem man sich verbindet haben soll. z.b.:

remotename sil

macht man die authentisierung via PAP so bruacht man diese nicht im chat
script machen. man warte nach dem ATDT einfach auf "CONNECT" und
ueberlaesst den rest der arbeit dem pppd programm.

da die kommandozeilen fuer pppd aufrufe oft sehr lang werden gibt es (neben
der moeglichkeit sich ein kurzes script zu schreiben) die option dass man
alle ueblicherweise verwendeten einstellungen in das file:

/etc/ppp/options

schreibt. (es schadet uebrigens nicht sich das file mal anzuschaun. manche
distributionen schreiben dort schon werte rein... und die sind nicht immer
ideal).

neuere pppd programme haben auch die moeglicheit mehrer default files fuer
jeden provider zu verwalten:

hat man z.b. ein file:

/etc/ppp/peers/sil

(das aufgebaut ist wie der options files ) dann kann man mit dem aufruf:

pppd call sil

bewirken dass alle optionen fuer diesen aufuruf von /etc/ppp/peers/sil
gelesen werden. (achtung: die optionen aus /etc/ppp/options werden AUCH
beruecksichtigt)

ist eine ppp verbindung erfolgreich aufgebaut so gibt es ein
netzerkinterface namens "ppp0" (hat man mehrere ppp verbindungen dann
natuerlich ppp1 oder ppp2 usw..)

mit

ifconfig

kann man sich die einstellungen anschaun. die peer addresse die man aus
dem ifconfig ersieht sollte man aufjeden fall pingen koennen)

klappt die einwal nicht gleich so empfiehlt sich methodisches debugen:

zuerst schaun ob das chat funktioniert. (mit der otion -v schreibt das
chat immer ins logfile worauf es gerade warte und was es geschickt hat).

nach dem chat begint die PPP verhandlungsphase. mit der "debug" option
sieht man hier auch was die beiden pppd so miteinander aushandeln wollen..

will man befehle ausfuehren die nach dem erfolgreichen verbindungsaufabau
abgearbeitet werden (z.b. fetchmail oder aehnliches) so kann man diese in
das script /etc/ppp/ip-up eintragen. das wird (mit den eigenschaften der
verbindung als parameter) nach dem verbindungsaufbau von pppd als root
user aufgerufen.

zum beenden der verbindung killt man den pppd wieder. hat man ohnehin nur
einen kann man auch ganz brutal:

killall pppd

verwenden.

selbst einwahl server mit pppd aufzubauen ist uebrigens auch nicht schwer.
man kann entweder den pppd ins file /etc/inittab eintragen oder ihn von
programmen wie mgetty starten lassen. die configuration ist ziemlich
aehnlich wie bei der einwahl..

EXERCISES:

* versuche eine dialinverbindung zu deinem provider aufzauben. (zuerst mit
minicom haendisch einwaehlen. dann ein chat script entwerfen. dann pppd
mit den richtigen parametern aufrufen.)


_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06245
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1150
Comments: 0