De PPP deamon ``pppd'' zorgt voor de eigenlijke verbinding. TCP/IP is niet het enige protocol wat over een PPP verbinding kan gaan maar in dit document bespreken we alleen een TCP/IP PPP verbinding.
Start een editor op en maak de ``/etc/ppp/pap-secrets'' file aan (of gebruik de scripts en pas deze dan aan) :
# Secrets for authentication using PAP # client server secret jouwloginname * geheimpassword
Verander in deze file de `jouwloginname'' en `geheimpassword''. Het sterretje (*) tussen de twee moet blijven staan. Voor de rest moet niets aangepast worden in deze file.
`jouwloginname'' en `geheimpassord'' zijn dezelfde die je gebruikt onder bijvoorbeeld het Windows95 dialup gebeuren. Deze gegevens moet je van de provider hebben gekregen.
Heel belangrijk is dat je deze file alleen leesbaar maakt voor de `root'' user, er staat immers zeer gevoelige infomatie in !
[root@koala ~]# cd /etc/ppp [root@koala /etc/ppp]# chmod 600 pap-secrets
Jan Platvoet <pa3fzx@dds.nl>, stuurde mij een mailtje over problemen met passwords waar een hekje ``#'' in voorkomt.
Ikzelf denk dat de PPPdeamon dat als dan commentaar ziet en het password zal afbreken bij het hekje. Totdat deze bug in pppd gefixt is, is een ander wachtwoord gebruiken (zonder hekje) een mogelijk oplossing.
We gebruiken het chat programma alleen om de modem te laten bellen. ``pppd'' roept dit script aan om te laten bellen naar de provider. De login en password wordt door ``pppd'' zelf geregeld. Ik heb alleen een ``AT'' commando erin gezet. Mocht je modem nog speciale installingen nodig hebben dan kun je ze op dezelfde manier toevoegen als de regel met `` 'OK-+++\c-OK' ATH0 ''.
Start de editor op en maak de ``/etc/ppp/ppp-on-dialer-PAP'' file aan.
#!/bin/bash exec /usr/sbin/chat \ TIMEOUT 30 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' AT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 100 \ OK ATDT$TELEPHONE \ CONNECT ''
Ik laat nog een keer dezelfde file zien maar dan met een ``verbose'' optie. Dit script kun je gebruiken als je problemen hebt met het bellen zelf. Zo kun je vaak nagaan wat er dan wel of niet goed gaat met de modem.
#!/bin/bash exec /usr/sbin/chat -V \ TIMEOUT 30 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nRINGING\r\n\r\nRINGING\r' \ '' AT \ 'OK-+++\c-OK' ATH0 \ TIMEOUT 100 \ OK ATDT$TELEPHONE \ CONNECT ''
Vervolgens deze alleen executable voor root maken.
[root@koala ~]# cd /etc/ppp [root@koala /etc/ppp]# chmod 700 ppp-on-dialer-PAP
Het programma ``chat'' werkt met een send-expect sequence... De rechterkant verzenden wij naar de modem en de linkerzijde verwachten we terug van de modem.
Met dit script kunnen we straks verbinding maken met de provider door ``ppp-on'' in te typen als root user.
Start een editor op en maak de ``/usr/local/sbin/ppp-on'' file aan: Lees het commentaar in deze file en vergeet niet je eigen gegevens in te vullen! Pas in ieder geval TELEPHONE, ACCOUNT en MODEM aan.
#!/bin/bash # Pas deze gegevens aan aan je eigen situatie. export TELEPHONE=010-8800805 # De account naam moet *precies* dezelfde zijn als in de # ``/etc/ppp/pap-secrets'' file. ACCOUNT=jouwloginname MODEM=/dev/ttyS1 # Hierna hoef je niet speciaal iets aan te passen... SPEED=115200 DIALER_SCRIPT=/etc/ppp/ppp-on-dialer-PAP NETMASK=255.255.255.0 # Vul hier EXTRA=debug in als je uitgebreide informatie wilt hebben # over het opbouwen van de verbinding. EXTRA= /usr/sbin/pppd modem lock crtscts \ $MODEM $SPEED \ 0.0.0.0:0.0.0.0 \ user $ACCOUNT noipdefault \ $EXTRA \ netmask $NETMASK defaultroute \ connect $DIALER_SCRIPT &
Dit scipt staat meestal op je systeem, kijk in /usr/doc/ppp-(versie) voor het script.
Het script hoort te staan in ``/usr/local/sbin/ppp-off''
#!/bin/bash # Determine the device to be terminated. # if [ "$1" = "" ]; then DEVICE=ppp0 else DEVICE=$1 fi # If the ppp0 pid file is present then the program is running. Stop it. if [ -r /var/run/$DEVICE.pid ]; then kill -INT `cat /var/run/$DEVICE.pid` # If the kill did not work then there is no process running for this # pid. It may also mean that the lock file will be left. You may wish # to delete the lock file at the same time. if [ ! "$?" = "0" ]; then rm -f /var/run/$DEVICE.pid echo "ERROR: Removed stale pid file" exit 1 fi # Success. Let pppd clean up its own junk. echo "PPP link to $DEVICE terminated." echo "Done" exit 0 fi # The ppp process is not running for ppp0 echo "ERROR: PPP link is not active on $DEVICE" exit 1
Na het aanmaken van de ``/usr/local/sbin/ppp-on'' en ``/usr/local/sbin/ppp-off'' file moeten deze nog executable gemaakt worden:
[root@koala ~]# cd /usr/local/sbin/ [root@koala /usr/local/sbin]# chmod 700 ppp-on ppp-off
Deze file bepaald hoe Internet namen omgezet worden naar IP addressen (naast andere dingen zoals hostname naar IP en Mailexchanger records etc...). De ``order'' regel geeft aan hoe met welke volgorde de ``resolver'' libraries de namen moeten opvragen. Wij stellen het zo in dat eerst de ``/etc/hosts'' geraadpleegt wordt en dan pas de nameservers van de provider. Zo kun je dus voorkomen dat voor namen op het lokale netwerk de DNS van de provider geraadpleegt wordt.
Pas de ``/etc/resolv.conf'' file aan.
order hosts named search demon.nl nl.demon.net nameserver 194.159.73.135 nameserver 194.159.73.136
De nameserver IP addressen moet je aanpassen aan die van je eigen provider (primary en secondary DNS IP addressen). Deze gegevens moet je gekregen hebben bij de account gegevens.
De regel met ``search'' zorgt ervoor dat je niet de complete hostname hoeft in te typen van hosts welke in je domein zitten. Stel dat ik smaal.demon.nl moet gebruiken. Dan kan ik gewoon ``telnet smaal'' als hostname gebruiken in plaats van de hostname helemaal compleet in te typen. Als je dit niet nodig vind kun je de search regel gewoon helemaal weghalen!
``search demon.nl nl.demon.net'' Zou je kunnen aanpassen aan die van je eigen provider. Bijvoorbeeld ``search xs4all.nl''.