Verder Terug Inhoud

3. De PPP daemon

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.

3.1 Aanmaken van de PAP secrets file

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.

3.2 Aanmaken van het chat script

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.

3.3 Aanmaken van het ppp-on script

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 &

3.4 Aanmaken van het ppp-off 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

3.5 De resolv.conf file

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''.


Verder Terug Inhoud