# Nastavitev &kppp; za povratni klic

To poglavje je zasnovan materialu, ki ga je pripravil Martin Häfner, mh@ap-dec717c.physik.uni-karlsruhe.de

## &UNIX; ali &Linux; strežnik za povratni klic

To poglavje predstavlja povratno klicanje &UNIX; (&Linux;) in postopek nastavljanja &kppp; da se bo lahko povezal na strežnik za povratno klicanje &UNIX; še posebej za na skriptah temelječ strežnik za povratni klic &Linux;.

### Uvod k povratnemu klicanju

Za uporabo povratnega klicanja obstaja kar nakaj razlogov. Ti so:

- Večja varnost vašega krajevnega omrežja

- Zmanjšanje stroškov zunanjih sodelavcev

- Nadzor nad telefonskimi stroški kjer se klici obravnavajo kot poslovni strošek

Pomislite na nekoga, ki kliče številko vašega strežnika na klic in nato ugane geslo. Zakaj bi si delali skrbi s požanim zidom, do vaše Internetnepovezave, ko pa je do vašega omrežja tako lahko dostopati?

Programje za povratni klic v splošnem prosi za vaše ime in nato prekine zvezo. Nato vas pokliče nazaj, ponavadi na številko, ki je shranjena na strežniku v podatkovni zbirki. Odjemnik nato spet nadaljuje s klicanjem, kot da se ni zgodilo nič. Strežnik nato prosi za vaše uporabniško ime in geslo in pri tem ve, da ste kar ste rekli, da ste, ko ste prvič poklicali, ali vsaj da ste kjer ste rekli, da ste. Povezava se vzpostavi kot ponavadi in program pppd se zažene.

Vprašanje je, kako odjemniku dopovedati, da naj dvigne slušalko ko strežnik pokliče nazaj. Potrebujete poseben program kot je mgetty? Odgovor je, ne, ne potrebujete posebnega odjemnega programa. V splošnem lahko za povratno-klicne povezave karteregakoli odjemnika, za povezavo bi lahko uporabili celo navaden terminalski program kot je minicom.

Edino kar je treba storiti je, da modemu naročite, da naj telefonu ob `ZVONENJU` `samodejno odgovori`, če modem zazna klic. To je narejeno z naslednjimi modemskimi ukazi:

    AT&SO=1

To modemu pove, da naj skušalko dvigne po enem zvonenju `RING`.

Kot veliko drugih programov, tudi &kppp; prever ali je strežnik zaprl povezavo in nato prekine trenutno sejo, če zazna signal `NO CARRIER` (ni nosilca). To pri nastavljanju povratnega klica nastane resničen problem. `NO CARRIER` bo seveda zaznan takoj, ko strežnik za povraten klic prekine povezavo. Zato nekateri strežniki uporabljajo posebne programe za prijavo. Kako naj se torej te težave lotite? Modemu naročite naj ves čas prikazuje `CARRIER UP`(kar ne povzroča težav, če odjemniku naročite naj prekine povezavo). To lahko storite z naslednjim ukazom:

    AT&C0

Če želite to preizkusiti, lahko najprej uporabite navaden terminalski program kot na primer minicom, in poklčete strežnik za povratno klicanje, da boste videli kaj se bo zgodilo.

### Nastavitev &kppp;

Sedaj, ko ste videli postopek v teoriji, kako torej &kppp; nastaviti, da bo s takšno povezavo deloval?

Postopek je dokaj enostaven:

1. Najprej modemu povejte naj sprejme povezave in naj pogajanja ne zaustavi,ko strežnik za povratno klicanje prvič povezavo prekine prvič. Obe nastavitvi lahko nastavite na jezičku Modem v nastavitvah &kppp; in sicer tako, da izbiri Klicni niz dodate ukazni niz `AT&C0S0=1DT`

   V nastavitvah &kppp; vam drugih sprememb ni treba delati. Če med pripravo modema na klic in ponastavljanjem pride do težav, si za več informacij oglejte poglavje Odpravljanje težav.

2. Za trenutek pomislite na vaš strežnik. Seveda veste, da imajo operacijski sistemi &UNIX;, &Windows; in Macintosh različna mnenja o tem kako vrstico končati v besedilni datoteki, torej tudi v prijavnih postopkih. Če se povezujete na strežnik &Windows;. uporabite `CR/LF`, če se povezujete na strežnik &UNIX; uporabite `CR`, in če se povezujete na strežnik Macintosh, uporabite`LF`

3. V tem primeru se domneva, da kličete povratno-kličoči paket &Linux;, ki uporablja navadeno prijavo (ne PAP ali podobne).

   Slog identifikacije na jezičkuPokliči v nastavitvah računa nastavite naNa skripti temelječ

4. Sedaj morate izdelati skripto za prijavo. Urejanje prjavnih skript je ena od odlik &kppp; To lahko najdete na jezičkuPrijavna skripta v pogovornem oknu Uredi račun.

   V tem primeru mora uporabnik uporabnikčžš poklicati naslednjo skripto. Strežnik za povraten klic že pozna seznam imen in pripadajočih telefonskih številk, zato telefonsko številko iz varnostnih razlogov izberete s pomočjo nadomestnega imena.

   Za vsako vrstico iz padajoćega seznama na levi strani pogovornega okna izberite kriterij, in v vnosno polje na desni vnesite dejanje. Da bi dejanje skripti dodali, izberite gumb Dodaj Da bi vrstico dodali na sredini skripte uporabite gumbVstavi, da pa bi vrstico, če ste naredili napako izbrisali, uporabite gumb Odstrani.

   Celotna skripta naj bi izgledala nekako takole (brez komentarjev, ki se začenjajo z #)

       Expect       ogin:           # remember, we do ordinary terminal login
       ID           ""              # kppp sends the id you configured in
       the main dialog
       Expect       for userxyz:    # a list of available numbers is
       shown, the user should choose one
       Send         userxyz-home    # the user wants to be called back
       on their home number
       Expect       ogin:           # The callback process is now
       running, a new connection, and so a new login.
       ID
       Expect       assword:        # Now send your password
       Expect       >            # Wait for the command prompt (the
       prompt may vary)
       Send         start_ppp       # this command starts the pppd

   Po čakanju na zahtevo za prijavo, uporabnik pošlje svojo ID in počaka na seznam telefonskih številk, ki so na voljo za to uporabniško ime. Nato strežniku pove na katere od ponujenih številk bi se rad odzival. &kppp; lahko za to odpre pogovorno okno, če se vaša lokacija pogosto spreminja &npr; ste potnik in se selite iz hotela v hotel. Sedaj strežnik pričakuje uporabniško ime in geslo za identifikacijo, vendar medtem strežnik povezavo prekine in uporabnika pokliče nazaj. Nato pošlje podatke o identifikaciji in &kppp; počaka na poziv in požene majhno skripto (ki se tu imenuje`start_ppp`), ki na strežniku požene program pppd.

   Skripta `start_ppp` je lahko na primer takšna:

       #!/bin/sh
       stty -echo
       exec /usr/sbin/pppd -detach silent modem

   Seveda nastavljanje strežnika PPP ta dokument ne obsega. Za podrobne informacije si oglejte priročnik man programa pppd. Odličen opis strežnika za povraten klic lahko najdete na http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback

Vse druge težave pri nastavljanju kot na primer nastavljanje pppd ali nastavitve IP delujejo kot ponavadi in za vzpostavitev povezave niso potrebni nobeni dodatni programi.

Povratno klicanje &kppp; in druge programe kot na primer mgetty ali katerikoli drug program faxgetty lahko poganjate na istih zaporednih vratih. S klicanjem ni nobenih težav, saj &kppp; ustvari datotečno ključavnico, ki bo programu getty povedala, linijo trenutno uporablja nek drug program (v tem primeru je to seveda &kppp;).

### Odpravljanje težav

V načinu povratnega klicanja so s &kppp; znane naslednje težave:

- Ko modem nastavite za samodejno odgovarjanje, morate po prekinitvi povezave modem ponastaviti. V nasprotnem primeru bo modem ponovno hotel vzpostaviti povezavo, kar ni dobra ideja, če je linija o kateri govorimo vaša glavna telefonska linija.

- &kppp; ima nekaj manjših težav z deljenjem linije z nekim drugim programom kot na primer mgetty. Če mgetty teče na isti modemski liniji, &kppp; modema ne bo mogel pravilno nastaviti.

- &kppp; med na skripti temelječim prijavljanjem včasih ne more prositi za vnos s strani uporabnika. Na žalost pri uporabi zgornje skripte, &kppp; za uporabniško ime prosi tudi, ko ga strežnik za povraten klic zahteva drugič. Tega se lahko znebite tako, da v prijavno skripto vpišete vaš id uporabnika (ni ravno lepo in prenosljivo, vendar deluje).

### Spletne strani za strežniško programje

Paketi s strežnikom za povratno klicanje za &Linux; so na voljo na več mestih.

Dobro znan mgetty je zelo močan program in pravtako lahko upravlja s povratno-klicnimi povezavami. Opis kako za ta namenmgetty je vzdrževan na http://www.dyer.demon.co.uk/slug/tipscrip.htm, stran pa vzdržuje Colin McKinnon, colin@wew.co.uk.

Za &Linux; je na voljo tudi paket na http://www.icce.rug.nl/docs/programs/callback/callback.html. Ta paket vzdržuje Frank B. Brokken, frank@icce.rug.nl. Čeprav je nastavljanje dokaj očitno, pa ni enostavno. Zato sem na http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/ napisal kratko predstavitev, ki vključuje tudi splošno predstavirtev povratnega klicanja.

## Povratno klicanje &Windows; NT RAS

&Windows; NT uporablja popolnoma drugačen postopek od zgoraj opisanega. NT zahteva razširitev protokola PPP samega, ki se imenuje CBCP (Call Back Control Protocol). pppd vsebuje podporo za ta protokol,vendar morate pppd ponovno prevesti. Če ima kdorkoli z uspešnim povezovanjem na strežnik za povratni klic NT izkušnje, naj nam prosim pove o tem.