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
�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.
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
Ker so nove skripte v dveh delih, jih bomo urejali posebej.
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!
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!
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
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
.
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.
�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 '' \
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 \