<chapter id="callback"> <title >Podešavanje <application >KPPP‑a</application > za povratni poziv</title> <para >Ovo poglavlje zasniva se na materijalu koji je obezbedio <personname ><firstname >Martin</firstname > <surname >Hefner</surname ></personname >, <email >mh@ap-dec717c.physik.uni-karlsruhe.de</email >.</para> <sect1 id="unix-callback-server"> <title >Server povratnih poziva pod Unixom (Linuxom)</title> <para >Ova sekcija pruža uvod u povratne pozive pod Unixom, i kako se <application >KPPP</application > može podesiti za povezivanje na server povratnih poziva, naročito na <link linkend="callback-resources" >server povratnih poziva</link > zasnovan na skripti pod Linuxom.</para> <sect2> <title >Uvod u povratne pozive</title> <para >Povratni pozivi vam mogu odgovarati iz nekoliko razloga. Neki od njih su:</para> <itemizedlist> <listitem> <para >povećanje bezbednosti lokalne mreže</para> </listitem> <listitem> <para >smanjenje troškova spoljnih saradnika</para> </listitem> <listitem> <para >upravljanje telefonskim troškovima gde pozivi spadaju u troškove poslovanja</para> </listitem> </itemizedlist> <para >Zamislite da neko pozove broj vašeg servera za primanje poziva, a zatim razbije lozinku. Zašto se mučiti oko održavanja zaštitnog zida za internet vezu, ako se ovako lako može pristupiti vašoj mreži?</para> <para >Softver za povratne pozive obično vas pita za ime, pa prekine vezu. Zatim vas pozove nazad, obično na broj uskladišten u bazi podataka <emphasis >na serveru</emphasis >. Zatim klijent prihvata telefonsku vezu i nastavlja sa biranjem broja kao da se ništa nije dogodilo. Server sada zahteva vaše korisničko ime i lozinku, znajući da ste ko ste se predstavili po prvom pozivu, ili barem da ste tamo gde ste rekli da jeste. Veza se uspostavlja normalno i pokreće se <command >pppd</command >.</para> <para >Glavno pitanje je kako naterati klijent da podigne slušalicu kad server pozove. Treba li vam specijalni klijentski program, kao što je <command >mgetty</command >? Odgovor je — ne treba vam. Uopšteno, bilo koji klijent se može koristiti za veze preko povratnog poziva, čak i običan terminalski program poput Minicoma.</para> <para >Jedino što treba da uradite je da zadate modemu da automatski odgovori kad otkrije signal <literal >RING</literal >. Ovo zadaje sledeća modemska naredba:</para> <screen ><userinput ><command >AT&SO=1</command ></userinput > </screen> <para >Ovim se modemu kaže da podigne slušalicu posle prvog <literal >RING</literal >.</para> <para >Kao mnogi drugi klijentski programi, <application >KPPP</application > proverava da vidi da li je server prekinuo vezu, a onda prekida tekuću sesiju ako se otkrije <literal >NO CARRIER</literal >. Ovde leži pravi problem za postavljanje povratnih poziva. <literal >NO CARRIER</literal > će, naravno, stići u trenutku kad server povratnih poziva prekine vezu. Zato neki serveri koriste specijalni program za prijavljivanje. Kako rešiti ovaj problem? Tako što zadate modemu da stalno prikazuje <literal >CARRIER UP</literal > (ovo neće izazvati problem kada klijentu kažete da prekine vezu). Ovo se postiže sledećom modemskom naredbom:</para> <screen ><userinput ><command >AT&C0</command ></userinput > </screen> <para >Ako želite ovo da isprobate, možete prvo pozvati server povratnih poziva običnim terminalskim programom, kao što je Minicom, i videti šta se događa.</para> </sect2> <sect2> <title >Podešavanje <application >KPPP‑a</application ></title> <para >Pošto ste videli teoriju na delu, kako sada da podesite <application >KPPP</application > da rukuje vezom? </para> <para >Postupak je prilično jednostavan, kao što sledi.</para> <procedure> <step> <para >Prvo zadajte modemu da prihvata veze, i da ne prekida pregovaranje kad server povratnih poziva prvi put prekine vezu. Obe ove opcije možete dodati pod jezičkom <guilabel >Modem</guilabel > u postavi <application >KPPP‑a</application >, dodavanjem niske <command >AT&C0S0=1DT</command > u polje <guilabel >Niska za pozivanje:</guilabel >.</para> <para >Nikakve druge promene u postavi <application >KPPP‑a</application > nisu potrebne. Ako iskusite teškoće sa pripremanjem i resetovanjem modema, za više informacija pogledajte sekciju <link linkend="callback-troubleshooting" >o pretresanju problema</link >.</para> </step> <step> <para >Razmislite malo o vašem serveru. Setite se da operativni sistemi Unix, Windows i MacOS imaju različite stavove o tome kako se završava red u tekstualnom fajlu, pa zato i različite postupke prijavljivanja. Ako se povezujete na server pod Windowsom, koristite <literal >CR/LF</literal >; ako je server pod Unixom koristite <literal >CR</literal >, a za server pod MacOS‑om <literal >LF</literal >. </para> </step> <step> <para >U narednim instrukcija pretpostavljamo da pozivate server povratnih poziva pod Linuxom, uz jednostavno prijavljivanje (ne preko PAP‑a ili tako nečeg).</para> <para >Pod jezičkom <guilabel >Pozovi</guilabel > u postavi naloga, u polju <guilabel >Autentifikacija:</guilabel > postavite <guilabel >skriptom</guilabel >.</para> </step> <step> <para >Sada treba da sastavite prijavnu skriptu. Uređivanje prijavnih skripti je jedna od finih mogućnosti <application >KPPP‑a</application >. Nalazi se pod jezičkom <guilabel >Prijavna skripta</guilabel > u dijalogu za uređivanje naloga.</para> <para >U ovom primeru, korisnik <systemitem >pperic</systemitem > zahteva pokretanje sledeće skripte. Server povratnih poziva već ima tabelu imena i pridruženih brojeva telefona, tako da, iz bezbednosnih razloga, birate telefonski broj koji će se koristiti sa alijasom.</para> <para >Za svaki red, iz padajućeg spiska levo u dijalogu izaberite kriterijum, pa upišite radnju u polje desno. Kliknite na <guibutton >Dodaj</guibutton > za dodavanje reda u skriptu. Dugmetom <guibutton >Umetni</guibutton > dodajte red negde u sredinu skripte, a dugmetom <guibutton >Ukloni</guibutton > uklanjate red kad nešto pogrešite.</para> <para >Cela skripta trebalo bi da izgleda otprilike ovako (bez ovde prikazanih komentara, koji počinju sa #):</para> <screen >Expect ogin: <lineannotation ># setite se, koristimo obično terminalsko prijavljivanje</lineannotation> ID "" <lineannotation ># KPPP šalje ID koji ste podesili u glavnom dijalogu</lineannotation> Expect for pperic: <lineannotation ># prikazuje se spisak dostupnih brojeva; korisnik treba da izabere jedan</lineannotation > Send pperic-home <lineannotation ># korisnik želi povratni poziv na svoj kućni broj</lineannotation> Expect ogin: <lineannotation ># povratni poziv je započet, sledi nova veza, te i novo prijavljivanje</lineannotation> ID Expect assword: <lineannotation ># šaljete svoju lozinku</lineannotation> Expect > <lineannotation ># čeka na komandni odzivnik (koji može da varira)</lineannotation> Send start_ppp <lineannotation ># ova naredba pokreće pppd</lineannotation > </screen> <para >Posle čekanja na zahtev za prijavu, korisnik šalje svoj ID i čeka na spisak dostupnih brojeva telefona za to korisničko ime. Zatim saopštava serveru na koji bi od ponuđenih brojeva hteo da bude pozvan. <application >KPPP</application > može da otvori dijalog za ovo ako često menjate lokaciju, npr. ako ste trgovački putnik i krećete se od hotela do hotela. Sad server očekuje korisničko ime i lozinku za autentifikaciju, ali u međuvremenu prekida vezu i zove vas nazad. Šalju se podaci za autentifikaciju i <application >KPPP</application > čeka na komandni odzivnik, a zatim pokreće malu skriptu (ovde po imenu <filename >start_ppp</filename >) koja izvršava <command >pppd</command > na serveru.</para> <para >Skripta <filename >start_ppp</filename > mogla bi izgledati ovako:</para> <programlisting >#!/bin/sh stty -echo exec /usr/sbin/pppd -detach silent modem </programlisting> <para >Postavljanje PPP servera naravno ne spada u opseg ovog dokumenta. Za detaljnije informacije pogledajte uputnu stranicu za <command >pppd</command >. Izvrstan opis servera povratnih poziva može se naći na <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback" >http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback</ulink >.</para> </step> </procedure> <para >Sva ostala pitanja oko podešavanja, kao što je postava za <command >pppd</command > ili IP postavke, rade kao i obično, i nije potreban nikakav poseban softver za prihvatanje linije.</para> <note> <para ><application >KPPP</application > s povratnim pozivom i drugi programi poput <command >mgetty</command > mogu se izvršavati na istom serijskom portu. Nema problema sa pozivanjem modemom, pošto <application >KPPP</application > stvara fajl za zaključavanje koji drugim programima kaže da trenutno <application >KPPP</application > koristi liniju.</para> </note> </sect2> <sect2 id="callback-troubleshooting"> <title >Pretresanje problema</title> <para >Postoje neki poznati problemi s <application >KPPP‑om</application > u režimu povratnog poziva:</para> <itemizedlist> <listitem> <para >Kao što pripremite modem za automatsko odgovaranje, tako treba i da ga resetujete kad se veza prekine. U suprotnom će modem nastaviti da prihvata vezu mesto vas, što nije dobra ideja ako vam je ta veza glavna telefonska linija.</para> </listitem> <listitem> <para ><application >KPPP</application > ima sitnih problema pri deljenju linije sa drugim programima, kao što je <command >mgetty</command >. Ako se <command >mgetty</command > izvršava na istoj modemskoj liniji, <application >KPPP</application > ne može pravilno da pripremi modem. </para> </listitem> <listitem> <para ><application >KPPP</application > ne može da traži ulaz od korisnika tokom prijavljivanja zasnovanog na skripti. Nažalost, kad koristite skriptu po prethodnom primeru, <application >KPPP</application > pita za korisničko ime i drugi put kad ga server povratnog poziva zatraži. Ovog se možete otarasiti neposrednim upisivanjem korisničkog imena u skriptu, što nije ni mnogo prenosivo ni fino, ali radi.</para> </listitem> </itemizedlist> </sect2> <sect2 id="callback-resources"> <title >Internet resursi za serverski softver</title> <para >Softverski paketi za server povratnih poziva pod Linuxom dostupni su na mnogim mestima.</para> <para >Dobro poznati <command >mgetty</command > je moćan program, i može da rukuje vezama preko povratnih poziva. Instrukcije kako postaviti <command >mgetty</command > u ovu svrhu održava <personname ><firstname >Kolin</firstname > <surname >Makinon</surname ></personname > <email >colin@wew.co.uk</email > na <ulink url="http://www.dyer.demon.co.uk/slug/tipscrip.htm" >http://www.dyer.demon.co.uk/slug/tipscrip.htm</ulink >.</para> <para >Postoji i gotov paket za Linux na <ulink url="http://www.icce.rug.nl/docs/programs/callback/callback.html" >http://www.icce.rug.nl/docs/programs/callback/callback.html</ulink >, koji održava <personname ><firstname >Frank</firstname > <othername >B.</othername > <surname >Broken</surname ></personname > <email >frank@icce.rug.nl</email >. Pošto postavljanje ovog paketa nije baš lako (iako je neproblematično) napisao sam kratak uvod na <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback" >http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/</ulink > (takođe daje opštiji uvod u povratne pozive).</para> </sect2> </sect1> <sect1 id="nt-callback"> <title >RAS povratni pozivi pod Windowsom NT</title> <para >Windows NT koristi potpuno drugačiji prilaz od prethodno opisanog. NT zahteva proširenje samog protokola PPP, zvano CBCP. <command >pppd</command > nazivno ima podršku za ovaj protokol, ali se mora uključiti pri kompilovanju. Ako neko uspe da se poveže na server povratnih poziva pod NT‑om, molimo da nas obavesti.</para> </sect1> </chapter>