Next Previous Contents

15. Avtomatizacija povezav - priprava povezovalnih skript

Medtem ko se lahko nadaljujete prijavljati ro�no kot zgoraj, je dosti bolj �edno, da naredite nekaj skript, ki to delo opravijo namesto vas.

Skupina skript avtomatizira prijavljanje in zagon PPP-ja, tako da je vse kar morate narediti (kot root ali �lan PPP skupine) za vzpostavitev povezave, vnos enega samega ukaza

15.1 Skripte za uporabni�ko ime/geslo avtentikacijo

�e va� PIS NE zahteva uporabe PAP/CHAP-a, so to skripte za vas!

�e je ppp paket pravilno name��en, bi morali imeti dve vzor�ni datoteki. Za PPP 2.1.2 sta v /usr/sbin, za PPP 2.2 pa v /etc/ppp/scripts/. Imenujeta se:

za PPP-2.1.2

ppp-on
ppp-off

in za PPP-2.2

ppp-off
ppp-on
ppp-on-dialer

�e uporabljate PPP 2.1.2, vas rotim, da zbri�ete vzor�ni datoteki. Z njima so mo�ne te�ave - in ne govorite mi, da delujeta v redu - tudi jaz sem ju uporabljal dosti �asa (in priporo�al v prvi verziji tega HOWTO-ja)!

Za dobro uporabnikov PPP 2.1.2, sta tu BOLJ�A primera, vzeta iz distribucije PPP 2.2. Priporo�am, da skopirate ti skripti namesto starih skript PPP 2.1.2.

15.2 skripta ppp-on

To je prva izmed PARA skript, ki dejansko vzpostavita povezavo.


#!/bin/sh
#
# Skripta za vzpostavitev PPP povezave. To je prva izmed para skript.
# Te skripte niso varne, ker je geslo vidno z uporabo ukaza ,,ps``.
# Vsekakor pa sta skripti enostavni.
#
# To so parametri. Po potrebi jih spremenite.
TELEPHONE=555-1212      # Telefonska �tevilka
ACCOUNT=janez           # Uporabni�ko ime
PASSWORD=geselce        # Geslo za to uporabni�ko ime
LOCAL_IP=0.0.0.0        # Lokalna IP �tevilka, �e je znana, sicer 0.0.0.0
REMOTE_IP=0.0.0.0       # Oddaljena IP �tevilka. Navadno 0.0.0.0
NETMASK=255.255.255.0   # Pravilen netmask, �e je potreben
#
# Izvozimo jih, da bodo na voljo skripti ,,ppp-on-dialer``
export TELEPHONE ACCOUNT PASSWORD
#
# To je lokacija skripte, ki pokli�e in se prijavi. Prosimo uporabljajte
# absolutne poti, ker spremenljivke $PATH tu ni. (Kaj takega pri ,,root-u``
# bi bila varnostna luknja, zato ne spra�ujte.)
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
# Vzpostavimo povezavo
#
#
exec /usr/sbin/pppd debug /dev/ttySx 38400 \
        $LOCAL_IP:$REMOTE_IP \
        connect $DIALER_SCRIPT

Tu je skripta ppp-on-dialer


#!/bin/sh
#
# To je drugi del povezovalnih skript. Vzpostavil bo povezavo.
#
/usr/sbin/chat -v                                                 \
        TIMEOUT         3                               \
        ABORT           '\nBUSY\r'                      \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
        ''              \rAT                            \
        'OK-+++\c-OK'   ATH0                            \
        TIMEOUT         30                              \
        OK              ATDT$TELEPHONE                  \
        CONNECT         ''                              \
        ogin:--ogin:    $ACCOUNT                        \
        assword:        $PASSWORD

Za PPP-2.2, izgleda skripta ppp-off takole:


#!/bin/sh
######################################################################
#
# Ugotovimo napravo, ki jo je treba ,,pokon�ati``.
#
if [ "$1" = "" ]; then
        DEVICE=ppp0
else
        DEVICE=$1
fi

######################################################################
#
# �e je ppp0 pid datoteka prisotna, program te�e. Ustavimo ga.
if [ -r /var/run/$DEVICE.pid ]; then
        kill -INT `cat /var/run/$DEVICE.pid`
#
# �e ukaz kill ne deluje, na tem pid-u ne te�e noben proces. Lahko pomeni
# tudi, da bo lock datoteka ostala. Dobro bi bilo zbrisati tudi lock datoteko.
        if [ ! "$?" = "0" ]; then
                rm -f /var/run/$DEVICE.pid
                echo "NAPAKA: odstranjena stara pid datoteka"
                exit 1
        fi
#
# Uspeh. Pustimo pppd-ju po�istit lastno svinjarijo.
        echo "PPP povezava na $DEVICE kon�ana."
        exit 0
fi
#
# na ppp0 ne te�e ppp proces
echo "NAPAKA: na $DEVICE ni PPP povezave"
exit 1

15.3 Urejanje priskrbljenih PPP zagonskih skript

Ker so nove skripte v dveh delih, jih bomo urejali posebej.

Skripta ppp-on

Skripto boste morali urediti, da bo odra�ala VA�E uporabni�ko ime pri va�em PIS-u, VA�E geslo pri va�em PIS-u in telefonsko �tevilko va�ega PIS-a.

Vsaka od vrst kot TELEPHONE= dejansko ustvari lupinsko spremenljivko, ki vsebuje podatek desno od znaka ,=` (Seveda brez komentarjev). Uredite vsako od teh vrst, da bo pravilna za va�ega PIS-a in povezavo.

Ker IP �tevilko (�e je potrebno) nastavite v /etc/ppp/options/, IZBRI�ITE vrstico


$LOCAL_IP:$REMOTE_IP \

Preverite tudi , da spremenljivka DIALER_SCRIPT ka�e na polno pot in ime skripte, ki jo boste dejansko uporabljali. �e ste jo torej premaknili ali preimenovali, popravite ppp-on skripto!

ppp-on-dialer skripta

To je druga od skript, ki dejansko vzpostavijo na�o ppp povezavo.

Opomba: chat skripta je navadno v eni vrstici. Leve po�evnice so uporabljene za nadaljevanje vrstice �ez ve� fizi�nih vrst (za �love�ko branje) in ne tvorijo same skripte.

Vseeno pa jo je dobro podrobno pogledati, da razumemo kaj naj bi dejansko po�ela!

15.4 Kaj Chat skripta pomeni...

Chat skripta je zaporedje parov ,,pri�akovani niz``, ,,poslani niz``. Zapomnite si, da ZMERAJ nekaj pri�akujemo, preden nekaj po�ljemo.

�e moramo nekaj poslati, ne da bi nekaj prejeli, moramo uporabiti prazen pri�akovan niz (viden kot '') in podobno, ko nekaj pri�akujemo brez po�iljanja! �e niz sestoji iz ve� besed (npr. NO CARRIER), moramo niz dati v narekovaje, da ga chat vidi kot celoto.

chat vrstica v na�i skripti je:


exec /usr/sbin/chat -v

Ta pokli�e chat, -v mu pove, naj ves svoj V/I (vhod/izhod) vpi�e v sistemski dnevnik (navadno /var/log/messages). Ko skripta chat deluje zanesljivo, zbri�ite -v, da ne boste imeli nepotrebnega smetja v va�em dnevniku.


TIMEOUT         3

To nastavi, koliko �asa chat �aka na niz, ki ga pri�akuje (v sekundah). Mogo�e boste morali to pove�ati na 5 ali 10 sekund, �e imate res po�asen modem!


ABORT           '\nBUSY\r'

�e sprejme niz BUSY, prekine operacijo.


ABORT           '\nNO ANSWER\r'

Podobno.


ABORT           '\nRINGING\r\n\r\nRINGING\r'

�e chat ve�krat sprejme niz RINGING, prekine operacijo. To je zato, ker vas po telefonu nekdo kli�e!


''              \rAT

Chat ne pri�akuje ni�esar, in po�lje niz AT.


OK-+++\c-OK   ATH0

Ta niz je nekoliko bolj kompliciran, ker uporablja nekatere chatove mo�nosti odpravljanja napak.

Pravi pa tole... pri�akuj OK, �e ga NE sprejme� (ker modem ni v ukaznem na�inu), po�lji +++ (standardni Hayes kompatibilni ukaz, ki modem vrne v ukazni na�in) in pri�akuj OK. Potem po�lji ATH0 (niz za prekinitev linije). To omogo�a, da je skripta kos situaciji, ko modem obti�i na liniji!


TIMEOUT         30

Nastavi �as na 30 sekund za preostanek skripte. �e imate te�ave z zaklju�evanjem chat skripte zaradi timeouta, pove�ajte vrednost na 45 sekund ali ve�.


OK              ATDT$TELEPHONE

Pri�akuj OK (modemov odgovor na ukaz ATH0) in kli�i �tevilko, ki jo �elimo klicati.


CONNECT         ''

Pri�akuj CONNECT (kar modem po�lje, ko se oddaljeni modem oglasi) in ne po�lji ni�esar.


ogin:--ogin:    $ACCOUNT

Znova vgrajenega nekaj okrevanja po napakah. Pri�akuj login poziv (...ogin:), �e pa ga ne dobi� do timeouta, po�lji return in zopet �akaj na poziv. Ko poziv prejme�, po�lji uporabni�ko ime (shranjeno v lupinski spremenljivki $ACCOUNT).


assword:        $PASSWORD

Pri�akuj poziv za geslo in po�lji svoje geslo (znova, shranjeno v lupinski spremenljivki).

Ta chat skripta vsebuje nekaj sposobnosti okrevanja po napakah. Chat ima �e mnogo mo�nosti, ki tukaj niso prikazane. Za podrobnosti si oglejte man 8 chat.

Zagon PPP-ja na stre�niku

Medtem ko je ppp-on-dialer skripta dobra za stre�nike, ki samodejno za�enejo pppd na stre�niku, ko se prijavite, nekateri stre�niki zahtevajo ekspliciten zagon PPP-ja na stre�niku.

�e morate vnesti ukaz za zagon PPP-ja na stre�niku, MORATE popraviti ppp-on-dialer skripto.

Na koncu skripte (po vrstici z geslom) dodajte �e en pri�akovano poslano par - Ta naj �aka na va� ukazni poziv (pazite na znake, ki imajo v Bourneovi lupini poseben pomen - kot so $ in [ ali ] (odprt in zaprt oglati oklepaj).

Ko chat sprejme lupinski poziv, mora poslati ukaz za zagon ppp-ja, potreben na PPP stre�niku va�ega PIS-a.

V mojem primeru, ima PPP stre�nik standarden Linux Bash poziv


[hartr@kepler hartr]$

in zahteva naj vpi�em


ppp

za zagon PPP-ja na stre�niku.

Tu je dobro dovoliti nekaj okrevanja po napakah, tako da v mojem primeru uporabim


        hartr--hartr    ppp

to pravi naj, �e pred dolo�enim �asom ne dobi poziva, chat po�lje return in znova �aka na poziv.

Ko ga sprejme, po�lje niz ppp.

Opomba: ne pozabite dodati \ na konec prej�nje vrste, da chat misli, da je celotna skripta v eni vrsti!

Na �alost nekateri stre�niki producirajo razli�ne pozive! Mogo�e se boste morali ro�no povezati ve�krat, da boste vedeli, kaj se dogaja in izbrali prave pri�akovane nize.

15.5 Chat skripta za PAP/CHAP povezave

�e va� PIS uporablaj PAP/CHAP, je chat skripta mnogo bolj enostavna. Vse kar mora narediti je, da pokli�e �tevilko, po�aka na povezavo in prepusti prijavljanje pppd-ju!


#!/bin/sh
#
# To je drugi del ppp-on skripte. Izvedel bo povezovanje za �eleno povezavo.
#
exec /usr/sbin/chat -v                                  \
        TIMEOUT         3                               \
        ABORT           '\nBUSY\r'                      \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
        ''              \rAT                            \
        'OK-+++\c-OK'   ATH0                            \
        TIMEOUT         30                              \
        OK              ATDT$TELEPHONE                  \
        CONNECT         ''                              \

15.6 Pppd opciji debug in file option_file

Kot smo �e videli, lahko vklju�ite izpis razhro��evalnih informacij z opcijo -d pppd-ju. Opcija ,debug` je enakovredna.

Ker vzpostavljamo novo povezavo z novo skripto, to opcijo zaenkrat pustimo. (pozor: �e imate malo prostora na disku, lahko ta izpis hitro pove�a va� sistemski dnevnik in vas spravi v te�ave - toda za kaj takega se morate poskusiti povezati kar nekajkrat).

Ko enkrat vse deluje v redu, lahko to opcijo umaknete.

�e ste va�o datoteko z mo�nostmi imenovali druga�e kot /etc/ppp/options ali /etc/ppp/options.ttySx, imenujte datoteko z uporabo opcije file pppd-ju - naprimer:


exec /usr/sbin/pppd debug file options.mojpis /dev/ttyS0 38400 \


Next Previous Contents