Linux PPP HOWTO Robert Hart , prevedel Borut Mrak v3.0, 31. marec 1997, prevod 7. avgust 1998 Ta dokument opisuje, kako se z vašim osebnim računalnikom, na katerem teče Linux, povezati s PPP strežnikom, kako uporabiti PPP za povezavo dveh lokalnih omrežij in podaja eno metodo uporabe vašega računalnika kot PPP strežnik. Poleg tega dokument ponuja tudi pomoč pri usposab­ ljanju nedelujočih PPP povezav. ______________________________________________________________________ Kazalo 1. Predstavitev 1.1 Odjemalci in strežniki 1.2 Razlike med distribucijami Linuxa 1.3 Distribucijam specifična orodja za konfiguracijo PPP-ja 2. Številke za IP 3. Cilji tega dokumenta 3.1 Postavljanje PPP odjemalca 3.2 Povezovanje dveh omrežij ali omrežja in Interneta s PPP-jem 3.3 Postavljanje PPP strežnika 3.4 Uporaba PPP-ja preko neposredne kabelske (,,null modem``) povezave 3.5 Ta dokument NE pokriva... 4. Pokrite verzije programja 5. Ostali uporabni/pomembni viri 5.1 Uporabni poštni seznami o Linuxu 6. Pregled kaj mora biti storjeno za delovanje PPP-ja kot odjemalca 6.1 Pridobivanje/nameščanje programja 6.2 Vključevanje podpore za PPP v jedro 6.3 Pridobivanje podatkov od vašega PIS-a 6.4 Konfiguracija modema in zaporednih vrat 6.5 Konfiguriranje DNS-a 6.6 PPP in administratorske pravice 6.7 Preverjanje PPP datotek vaše distribucije in prilagajanje PPP opcij 6.8 Če vaš PPP strežnik uporablja PAP (Password Authentication Protocol) 6.9 Ročno povezovanje s PPP strežnikom 6.10 Avtomatizacija PPP povezave 6.11 Prekinitev povezave 6.12 Če imate težave 6.13 Ko se povezava vzpostavi 6.14 Težave s standardnimi IP servisi na PPP povezavi z dinamično dodeljenimi IP številkami 7. Konfiguriranje jedra vašega Linuxa 7.1 Namestitev izvorne kode jedra 7.2 Poznavanje vaše strojne opreme 7.3 Prevajanje jedra - jedro Linux 1.2.13 7.4 Prevajanje jedra - jedra Linux 1.3.x in 2.0.x 7.5 Opomba o PPP-2.2 in /proc/net/dev 7.6 Na kaj moramo paziti pri konfiguraciji PPP v jedru 8. Pridobivanje podatkov o PPP strežniku 9. Konfiguriranje modema in serijskih vrat 9.1 Opomba o serijskih vratih in hitrostih 9.2 Imena serijskih vrat 9.3 Nastavljanje modema 9.4 Opomba o nadzoru pretoka 9.5 Preizkušanje modema za klicanje 10. Vzpostavljanje razreševanja imen v naslove (DNS) 10.1 Datoteka /etc/resolv.conf 10.2 Datoteka /etc/host.conf 11. Uporaba PPP-ja in root pravice 12. Priprava datotek za PPP povezavo 12.1 Datoteka options.tpl 12.2 Katere možnosti naj uporabim? (Brez PAP/CHAP) 13. Če vaš PPP strežnik uporablja PAP (Password Authentication Protocol) 13.1 Uporaba MSCHAP-a 13.2 PAP/CHAP secrets datoteka 13.3 Datoteka PAP secrets 13.4 Datoteka CHAP secrets 13.5 Več povezav s PAP avtentikacijo 14. Ročna vzpostavitev PPP povezave 15. Avtomatizacija povezav - priprava povezovalnih skript 15.1 Skripte za uporabniško ime/geslo avtentikacijo 15.2 skripta ppp-on 15.3 Urejanje priskrbljenih PPP zagonskih skript 15.3.1 Skripta ppp-on 15.3.2 ppp-on-dialer skripta 15.4 Kaj Chat skripta pomeni... 15.4.1 Zagon PPP-ja na strežniku 15.5 Chat skripta za PAP/CHAP povezave 15.6 Pppd opciji debug in file option_file 16. Preizkus vaše povezovalne skripte 17. Prekinitev PPP povezave 18. Odpravljanje težav 18.1 V jedro sem vključil PPP podporo vendar... 18.1.1 Ali ste zagnali računalnik s pravim jedrom? 18.1.2 Ali ste vključili ppp podporo kot modul? 18.1.3 Ali uporabljate pravo verzijo PPP-ja za vaše jedro? 18.1.4 Ali poganjate pppd kot root? 18.2 Moj modem se poveže, toda ppp se nikoli ne zažene 18.3 Sistemski dnevnik pravi: ,,serial line is not 8 bit clean...`` 18.3.1 Na strežnik se ne prijavljate pravilno 18.3.2 Na strežniku ne zaganjate PPP-ja 18.3.3 Oddaljeni PPP proces se počasi zažene 18.4 Privzeta pot ni nastavljena 18.5 Ostale težave 19. Kam po pomoč, ko se popolnoma zatakne 20. Pogoste težave, ko povezava deluje 20.1 Ne vidim dlje kot do PPP strežnika 20.2 Lahko pošiljam elektronsko pošto, toda ne morem je sprejemati 20.3 Zakaj ljudje ne morejo uporabljati finger, WWW, gopher, talk ipd. na mojem računalniku? 21. Uporaba storitev Interneta z dinamičnimi IP številkami 21.1 Nastavljanje elektronske pošte 21.2 Postavljanje lokalnega imenskega strežnika 22. Povezava dveh omrežij z uporabo PPP-ja 22.1 Nastavljanje IP številk 22.2 Nastavitev usmerjanja 22.3 Omrežna varnost 23. Ko se povezava vzpostavi - /etc/ppp/ip-up skripta 23.1 Posebno usmerjanje 23.2 Ravnanje s poštnimi vrstami 23.3 Vzorčna /etc/ppp/ip-up skripta 23.4 Ravnanje z elektronsko pošto 24. Uporaba /etc/ppp/ip-down 25. Usmerjevalne zadeve na lokalnem omrežju 25.1 Opomba o varnosti 26. Postavitev PPP strežnika 26.1 Prevajanje jedra 26.2 Pregled strežniškega sistema 26.3 Zbiranje programja 26.4 postavitev standardnega (lupinskega) klicnega dostopa 26.5 Priprava PPP options datotek 26.6 nastavitev pppd-ja, da ga lahko uporabniki (uspešno) zaženejo 26.7 Nastavitev drugega imena za pppd 27. Uporaba PPP-ja preko null modem (direktne serijske) povezave 28. Administrativne zadeve 28.1 Licenca 28.2 Razširjanje 28.3 Obvestila ______________________________________________________________________ 1. Predstavitev PPP (Point to Point Protocol - protokol od točke do točke) je protokol za ustvarjanje in poganjanje IP (Internet Protocol) in drugih omrežnih protokolov na serijskih povezavah - naj bo to direktna serijska povezava (z uporabo null-modem kabla), zveza vzpostavljena preko telneta ali povezava z modemi in telefonskimi linijami (in seveda digitalnimi linijami kot je ISDN). Z uporabo PPP-ja lahko povežete vaš Linux PC s PPP strežnikom in uporabljate vire na omrežju na katerega je priključen strežnik skoraj kot da bi bili direktno povezani s tem omrežjem. Svoj Linux PC lahko uporabite tudi kot PPP strežnik, s katerim lahko zvezo vzpostavijo drugi računalniki in uporabljajo vire na vašem računalniku in/ali mreži. Ker je PPP istoležen sistem (tipa enak-z-enakim), lahko uporabite dva računalnika z Linuxom za povezavo dveh omrežij ali lokalnega omrežja z Internetom. Tako se ustvari WAN (Wide Area Network - omrežje širokega dosega). Največja razlika med PPP in povezavo Ethernet je seveda v hitrosti. Standardni ethernet deluje na 10 Mbps (mega - milijonov bitov na sekundo) maksimalnega teoretičnega pretoka, medtem ko analogni modemi dosežejo hitrosti do 56 kbps (kilo - tisoč bitov na sekundo). Glede na tip povezave PPP lahko obstajajo tudi nekatere omejitve v uporabi nekaterih aplikacij in servisov. 1.1. Odjemalci in strežniki PPP je strogo istoležen protokol (tipa enak-z-enakim). Tehnično gledano ni nobene razlike med računalnikom, ki vzpostavlja zvezo in računalnikom, s katerim jo vzpostavlja. Zavoljo jasnosti pa je dobro razmišljati o strežnikih in odjemalcih. Kadar vi vzpostavljate povezavo PPP (kličete), ste odjemalec. Računalnik s katerim se povezujete je strežnik. Kadar pripravljate računalnik z Linuxom za sprejem povezav PPP, pripravljate strežnik za PPP. Vsak računalnik z Linuxom je lahko tako PPP strežnik kot odjemalec - celo istočasno, če imate več serijskih vrat (in po potrebi modemov). Ko je povezava sklenjena, ni nobene razlike med odjemalcem in strežnikom, vsaj kar se PPP-ja tiče. Ta dokument govori o računalniku, ki zvezo vzpostavlja, kot ODJEMALCU, medtem ko je računalnik, ki odgovori na klic, preveri identiteto klicatelja (z uporabo uporabniških imen, gesel in drugih mehanizmov) STREŽNIK. Uporaba PPP-ja za povezavo enega ali več računalnikov z Internetom verjetno zanima največ ljudi - to je uporaba njihovega računalnika z Linuxom kot odjemalca. Postopek opisan v tem dokumentu vam bo pomagal vzpostaviti in avtomatizirati vzpostavljanje povezave z Internetom. Ta dokument vas bo tudi vodil pri postavljanju vašega računalnika z Linuxom kot strežnika za PPP in pri povezavi dveh lokalnih omrežij (s popolnim usmerjanjem) z uporabo PPP-ja (tako ustvarimo WAN - omrežje širokega dosega). 1.2. Razlike med distribucijami Linuxa Med mnogimi distribucijami Linuxa ima vsaka svoje kaprice in načine za opravljanje stvari. Natančneje, obstajata dva načina, kako se računalnik z Linuxom (ali Unixom) zažene, konfigurira itd. To sta inicializacija sistema po BSD in inicializacija sistema po System V. Če se poglobite v nekatere Unixovske novičarske skupine, boste občasno naleteli na ,,svete vojne`` med zagovorniki teh dveh sistemov. Če vas tovrstne stvari zabavajo, uživajte pri kurjenju omrežnega pretoka in se pridružite. Verjetno najpogostejše distribucije so: * Slackware ki uporablja BSD-jevsko inicializacijo sistema * Red Hat (in njegov bivši družabnik Caldera) ki uporabljata inicializacijo SysV (čeprav v rahlo spremenjeni obliki) * Debian ki uporablja inicializacijo sistema po SysV BSD stil inicializacije običajno hrani svoje inicializacijske datoteke v imeniku /etc/... in te so: ______________________________________________________________________ /etc/rc /etc/rc.local /etc/rc.serial (in mogoče še druge datoteke) ______________________________________________________________________ Od nedavnega nekatere BSD inicializacijske sheme uporabljajo imenik /etc/rc.d/... za shranjevanje zagonskih datotek raje kot da bi vse postavili v /etc. System V inicializacija hrani svoje inicializacijske datoteke v imenikih pod /etc/... ali /etc/rc.d/... in v številnih podimenikih: ______________________________________________________________________ drwxr-xr-x 2 root root 1024 Jul 6 15:12 init.d -rwxr-xr-x 1 root root 1776 Feb 9 05:01 rc -rwxr-xr-x 1 root root 820 Jan 2 1996 rc.local -rwxr-xr-x 1 root root 2567 Jul 5 20:30 rc.sysinit drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc0.d drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc1.d drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc2.d drwxr-xr-x 2 root root 1024 Jul 18 18:07 rc3.d drwxr-xr-x 2 root root 1024 May 27 1995 rc4.d drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc5.d drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc6.d ______________________________________________________________________ Če poskušate odkriti kje so dejansko konfigurirani vaš vmesnik Ethernet in pripadajoče omrežne poti, morate pregledati te datoteke in najti ukaze, ki to naredijo. 1.3. Distribucijam specifična orodja za konfiguracijo PPP-ja Na nekaterih distribucijah (na primer Red Hat in Caldera) obstajajo orodja v X window za konfiguracijo PPP-ja. Ta HOWTO ne pokriva teh orodij, specifičnih distribucijam. Če imate težave z njimi, stopite v stik z distributerji! Za uporabnike Red Hat 4.x je na voljo Red Hat PPP-TIP v območju ,,Linux resources`` in Red Hat Software v ,,Support area``. 2. Številke za IP Vsaka naprava, ki se poveže z Internetom, mora imeti svojo lastno številko za IP. Le-te dodeljuje pooblaščena organizacija za vsako državo. Če povezujete lokalno omrežje (LAN) z Internetom, MORATE uporabiti IP številko iz vašega dodeljenega območja naslovnega prostora za vse računalnike in naprave na vašem omrežju. IP številk NE SMETE privleči kar za lase in jih uporabiti pri povezavi z drugim omrežjem (kaj šele z Internetom). V najslabšem primeru bo to povzročilo popolno opustošenje, saj se bojo vaše ,,ukradene`` IP številke začele vmešavati v komunikacijo drugega računalnika, ki že uporablja IP številko, ki ste si jo izmislili. Zapomnite si, da so številke za IP, uporabljene v tem dokumentu (z redkimi izjemami), iz serije ,,nepovezanih omrežnih številk``, ki so rezervirane za uporabo na omrežjih ki niso (nikoli) povezana z Internetom. Obstajajo IP številke, ki so namenjene lokalnim omrežjem, ki se ne povezujejo z Internetom. Nizi teh IP številk so: * One A Class Network Address 10.0.0.0 (netmask 255.0.0.0) * 16 B Class Network Addresses 172.16.0.0 - 172.31.0.0 (netmask 255.255.0.0) * 256 C Class Network Addresses 192.168.0.0 - 192.168.255.0 (netmask 255.255.255.0) Če imate lokalno omrežje, za katerega vam pooblaščena organizacija v vaši deželi ni dodelila IP številk, za vaše računalnike uporabite številke iz zgornjih nizov. Te številke ne bi smele biti nikoli uporabljene na Internetu. Kljub temu jih lahko uporabljate za lokalni Ethetnet na računalniku, ki je povezan z Internetom. To je možno zato, ker se IP številke dodelijo omrežnemu vmesniku, ne računalniku. Medtem ko vaš Ethernet vmesnik uporablja npr. 10.0.0.1, se lahko povežete z Internetom z uporabo PPP-ja in vašemu PPP vmesniku bo strežnik dodelil drugo (veljavno) IP številko. Vaš PC bo povezan z Internetom, ostale naprave na mreži pa ne. Vseeno pa lahko z uporabo Linuxa, njegove sposobnosti IP Masquerade (znane tudi kot NAT - Network Address Translation) in programja ipfwadm povežete vaše omrežje z Internetom (z omejitvijo uporabe nekaterih storitev), čeprav nimate veljavnih IP številk za računalnike na vaši mreži. Za več informacij o tem si oglejte Linux IP Masquerade mini HOWTO . Za večino uporabnikov, ki povezujejo en računalnik z Internetom preko ponudnika dostopa s PPP-jem, pridobivanje IP številke ne bo potrebno. Če želite povezati manjše omrežje z Internetom, vam bo mnogo ponudnikov Internet storitev oskrbelo namenski ,,subnet`` (določen niz IP številk) iz njihovega obstoječega omrežnega obsega. Alternativa: IP Masquerading Za uporabnike, ki povezujejo en računalnik z Internetom, večina PIS-ov (ponudnikov internetnih storitev) uporablja dinamično dodeljevanje IP številk. Kot del povezovanja vam bo PPP strežnik posredoval IP številko, ki bo dodeljena PPP vmesniku med trenutno povezavo. Ta številka ne bo ob vsaki povezavi ista. Z dinamičnimi IP številkami nimate enake številke vsakič, ko se povežete. To pomeni zaplete za strežniške programe, ki jih poganjate na vašem računalniku z Linuxom. To so naprimer sendmail, ftpd, httpd itd. Te storitve so zasnovane na predpostavki, da je računalnik, ki ponuja storitev, ves čas dosegljiv na isti IP številki (ali vsaj na istem polnem imenu domene - fully qualified domain name - in da je prevedba imena z DNS v številko za IP). Omejitve storitev zaradi dinamičnega dodeljevanja IP številk (in načini za odpravo težav, kjer je to možno) so opisane pozneje v tem dokumentu. 3. Cilji tega dokumenta 3.1. Postavljanje PPP odjemalca Ta dokument ponuja vodstvo ljudem, ki želijo uporabljati Linux in PPP za klicanje PPP strežnika in vzpostavitev IP povezave s PPP-jem. Domneva, da je PPP že preveden in nameščen na vašem računalniku z Linuxom (toda bežno pokriva tudi konfiguracijo/prevajanje vašega jedra za vključitev PPP podpore). Medtem ko je DIP (standarden način za vzpostavljanje SLIP povezave) lahko uporabljen za vzpostavitev PPP povezave, so DIP skripte zelo kompleksne. Zaradi tega ta dokument NE pokriva uporabe DIP-a za vzpostavljanje PPP povezave. Namesto tega ta dokument opisuje standardno Linux programje (chat/pppd). 3.2. Povezovanje dveh omrežij ali omrežja in Interneta s PPP-jem Ta dokument ponuja (osnovne) informacije o povezovanju dveh lokalnih omrežij ali lokalnega omrežja in Interneta z uporabo PPP-ja. 3.3. Postavljanje PPP strežnika Ta dokument ponuja vodstvo pri konfiguraciji vašega računalnika z Linuxom kot PPP strežnika (da lahko drugi ljudje kličejo vaš Linux PC in vzpostavijo PPP povezavo). Zapomniti si morate, da je (skoraj) nešteto možnosti postavitve Linuxa kot strežnika za PPP. Ta dokument ponuja eno izmed metod, ki jo uporablja avtor za več majhnih PPP strežnikov (vsak s po 16 modemi). Ta metoda deluje dobro. Vseeno pa ni nujno najboljša. 3.4. Uporaba PPP-ja preko neposredne kabelske (,,null modem``) povezave Ta dokument ponuja kratek pregled uporabe PPP-ja za povezavo dveh računalnikov z Linuxom preko ,,null modem`` kabla. Na ta način je mogoče Linux povezati tudi z drugimi operacijskimi sistemi. Za kaj takega boste morali pregledati navodila sistema, ki vas zanima. 3.5. Ta dokument NE pokriva... * Prevajanja PPP daemon programja Poglejte dokumentacijo, ki je priložena verziji pppd-ja, ki ga uporabljate. * Povezovanja in konfiguriranja modema z Linux-om (natančno) Oglejte si Serial-HOWTO, in Modem Setup Information za informacije, ki vam lahko pomagajo konfigurirati vaš modem. * Uporabe DIP-a za vzpostavljanje PPP povezave Raje uporabite chat. * Uporabe socks-ov ali IP Masquerade Ta dva paketa že pokrivajo drugi odlični dokumenti. * Uporabe diald-ja za avtomatsko povezovanje Za to si oglejte diald dokumentacijo. * Uporabe EQL-ja za združitev dveh modemov v eno PPP povezavo. * Distribucijam specifičnih metod PPP povezovanja (kot npr. Red Hat 4.x network configuration tool). Glejte dokumetnacijo distribucije za uporabljene metode. * naraščajočega števila orodij za avtomatizacijo postavljanja PPP-ja Glejte primerno dokumentacijo. 4. Pokrite verzije programja Ta HOWTO domneva, da uporabljate Linux z jedrom 1.2.x in programjem PPP 2.1.2 ali Linux 1.3.x/2.0.x in PPP 2.2. Ob času pisanja je bila zadnja uradna verzija PPP za Linux ppp-2.2f. Nova verzija (ppp-2.3) je še beta (o. p.: v juliju 1998 je že na voljo ppp-2.3.5). PPP 2.2.0 je možno uporabljati z jedrom 1.2.13. Za to potrebujete popravke jedra. Priporočljivo je, da uporabniki jedra 1.2.13 nadgradijo PPP na ppp-2.2, saj ta vsebuje veliko popravkov in izboljšav. Vedeti morate tudi, da ne morete uporabljati programja PPP 2.1.2 z jedri verzij 2.0.x. Zapomnite si, da ta dokument NE pokriva problemov nastalih z uporabo nalagalnih modulov v jedrih 2.0.x. Oglejte si kerneld mini-HOWTO in kernel/module 2.0.x dokumentacijo (v izvorni kodi Linuxa 2.0.x so v imenikih /usr/src/linux/Documentation/...). Ta dokument je namenjen za pomoč novim uporabnikom. Močno priporočljivo je, da uporabite verzijo Linuxovega jedra in primerno verzijo PPP-ja, ki sta skupaj stabilni. 5. Ostali uporabni/pomembni viri Uporabnikom svetujem, da preberejo : * dokumentacijo PPP paketa; * pppd in chat man strani; (uporabite man chat in man pppd za ogled) * Linux Network Administration Guide (NAG); glejte The Network Administrators' Guide * Net-2/3 HOWTO; glejte Linux NET-2/3-HOWTO * Dokumentacijo Linux-ovega jedra, ki je v /usr/src/linux/Documentation kadar namestite Linux-ovo izvorno kodo; * Spletno stran o nastavitvi modemov - glejte Modem Setup Information . * Odlične knjige o Unixu/Linuxu, ki jih izdaja založba O'Reilly and Associates. Glejte O'Reilly and Associates On-Line Catalogue < http://www.ora.com/>. Če nimate izkušenj z Unixom/Linuxom, ne hodite ampak tecite do vaše najbližje knjigarne z računalniško literaturo in jih nemudoma nekaj kupite! * PPP-FAQ, ki ga vzdržuje Al Longyear, dostopen na Linux PPP-FAQ . Ta vsebuje veliko koristnih informacij v obliki vprašanje/odgovor, ki je zelo uporaben kadar ugotavljate zakaj PPP ne deluje (pravilno). * Naraščajoče število knjig o Linuxu raznih avtorjev in založb; Prosim vas, da preverite kvaliteto teh knjig. Linux in distribucije se hitro razvijajo, medtem ko so popravki knjig (navadno) dosti počasnejši. Nakup odlične knjige (in takih je dosti), ki je zastarela, bo novim uporabnikom povzročil veliko zmede in razočaranja. Najboljša izhodiščna točka za Linuxovo dokumentacijo je The Linux Documentation Project Home Page . HOWTO- ji se precej redno popravljajo. Medtem ko lahko uporabite ta dokument za vzpostavitev vaše PPP povezave brez branja kateregakoli teh dokumentov, boste z branjem dosegli veliko boljše razumevanje dogajanja! Tako boste tudi samo sposobni najti probleme (ali vsaj zastavljati bolj inteligentna vprašanja v novičarskih skupinah comp.os.linux... ali poštnih seznamih). Ti dokumenti (kot tudi razni drugi, vključujoč pomembne RFC-je) ponujajo dodatno in bolj podrobno razlago kot je možna v tem HOWTO-ju. Če povezujete LAN z Internetom z uporabo PPP-ja, boste morali vedeti dosti o TCP/IP omrežjih. Poleg zgornjih dokumentov vam bosta zelo koristili O'Reilly-jevi knjigi ,,TCP/IP Network Administration`` in ,,Building Internet Firewalls``! 5.1. Uporabni poštni seznami o Linuxu Obstaja veliko poštnih seznamov o Linuxu, ki delujejo kot sredstvo komunikacije med uporabniki različnih sposobnosti. Vsekakor se naročite na tiste, ki vas zanimajo in prispevajte svoje strokovno znanje in poglede. Nasvet začetnikom: Nekateri seznami so namenjeni izkušenim uporabnikom ali določenim predmetom. Čeprav se ne bo nihče pritoževal če boste le ,,prežali`` (boste naročeni na seznam a ne boste pošiljali sporočil), je zelo verjetno , da boste prejeli žolčne kritike (če ne celo izbruhe jeze - ,,flames``), če boste pošiljali ,,začetniška`` vprašanja na neprimerne sezname. To se ne dogaja zato, ker bi ,,guruji`` sovražili nove uporabnike, temveč zato ker so ti seznami namenjeni obravnavi specifičnih vprašanj na posebnih težavnostnih stopnjah. Vsekakor se prijavite na sezname ki ponujajo prijave, vendar se držite predmeta razprave. Dobra izhodiščna točka za poštne sezname o Linuxu je Linux Mailing List Directory . V Sloveniji imamo poštne sezname Društva uporabnikov Linuxa Slovenije. Kako se naročite na njih, zveste, če pošljete na naslov majordomo@lugos.si v telesu sporočila help, ali, če pogledate na spletno stran . 6. Pregled kaj mora biti storjeno za delovanje PPP-ja kot odjemalca Ta dokument vsebuje veliko informacij - njihovo število se z vsako izdajo veča! Ta razdelek podaja jedrnat pregled stvari, ki jih boste morali narediti, da bi svoj Linux povezali s PPP strežnikom. 6.1. Pridobivanje/nameščanje programja Če vaša distribucija ne vsebuje PPP programja, ga boste morali dobiti: the Linux PPP daemon . To je zadnje uradna verzija ob času pisanja. Vsekakor pa izberite zadnjo stabilno verzijo s tega mesta (ppp-2.3 je sedaj v beta stanju in bo kmalu dostopen). PPP paket vsebuje navodila za prevajanje in nameščanje programja zato jih ta HOWTO ne! 6.2. Vključevanje podpore za PPP v jedro Linuxov PPP je sestavljen iz dveh delov * zgoraj omenjenega PPP daemona * podpore za PPP v jedru Mnogo distibucij ponuja podporo za PPP v privzetem namestitvenem jedru, a nekatere je ne. Če ob zaganjanju jedro izpiše nekaj takega kot ______________________________________________________________________ PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered. ______________________________________________________________________ vaše jedro vsebuje PPP podporo. Kljub temu boste verjetno želeli prevesti svoje jedro, katerokoli distribucijo že imate, da bi čimbolje porabili svoje sistemske vire in strojno opremo. Vredno si je zapomniti, da se delujočega jedra ne da prenesti na disk in ima majhno jedro prednosti na računalniku z malo spomina. Ta dokument ponuja kratka navodila za ponovno prevajanje jedra v razdelku ,,Konfiguriranje jedra vašega Linuxa``. Za podrobnosti si oglejte prevod spisa Kernel HOWTO . 6.3. Pridobivanje podatkov od vašega PIS-a Obstaja majhno morje možnosti konfiguriracije PPP strežnika. Da bi se povezali z vašim PIS-om (ali službenim PPP strežnikom za dostop do intraneta), boste morali dobiti nekaj informacij o tem, kako ta PPP strežnik deluje. Ker uporabljate Linux, boste morda imeli težave z nekaterimi PIS-i (ali službenimi PPP strežniki), ki poznajo samo odjemalce za MS Windows. Kljub temu pa vedno več PIS-ov uporablja Linux za njihove storitve. Linux prodira tudi v velika podjetja, zato boste mogoče vseeno imeli srečo, tudi če naletite na težave. Razdelek ,,Pridobivanje podatkov o PPP strežniku`` vam pove, kaj morate vedeti o PPP strežniku s katerim se nameravate povezati in kako najti podatke, ki jih potrebujete. 6.4. Konfiguracija modema in zaporednih vrat Da bi se povezali s PPP strežnikom in imeli čimboljšo hitrost prenosa podatkov, morate pravilno konfigurirati vaš modem. Ravno tako morajo biti pravilno konfigurirana serijska vrata na modemu in računalniku. Navodila za to daje razdelek ,,Konfiguriranje modema in serijskih vrat``. 6.5. Konfiguriranje DNS-a Poleg datotek, ki poženejo PPP in skrbijo za samodejno prijavo na PPP strežnik, je potrebno preveriti še nekaj datotek, da bi bilo možno prevajanje imen kot www.interveft.com.au v IP naslove, ki jih dejansko uporabljamo za vzpostavitev stika s tem računalnikom. Ti dve datoteki sta: * /etc/resolv.conf * /etc/host.conf Za podrobnosti o tem glejte razdelek ,,Vzpostavljanje razreševanja imen v naslove (DNS)``. Na vašem Linux računalniku vam NI treba poganjati DNS strežnika, da bi se povezali z Internetom (čeprav bi to mogoče želeli). Vse kar morate vedeti, je IP številka vsaj enega takega strežnika (Po nožnosti pri vašem PIS-u). 6.6. PPP in administratorske pravice Ker vzpostavljanje PPP povezave med vašim Linux računalnikom in PPP strežnikom zahteva upravljanje z mrežnimi sredstvi (PPP vmesnik je mrežno sredstvo) in usmerjevalno tabelo, PPP potrebuje administratorske (root) pravice. Za podrobnosti o temu glejte razdelek ,,Uporaba PPP-ja in root pravice``. 6.7. Preverjanje PPP datotek vaše distribucije in prilagajanje PPP opcij Da bi usposobili PPP, je treba preveriti nekaj konfiguracijskih datotek. V PPP paketu so primeri le-teh. Imeti bi morali te datoteke: ______________________________________________________________________ /etc/ppp/options /etc/ppp/scripts/ppp-on /etc/ppp/scripts/ppp-on-dialer /etc/ppp/options.tpl ______________________________________________________________________ Glede na vaše želje, kaj točno želite doseči s PPP-jem, boste morda morali ustvariti dodatne datoteke: ______________________________________________________________________ /etc/ppp/options.ttyXX /etc/ppp/ip-up /etc/ppp/pap-secrets /etc/ppp/chap-secrets ______________________________________________________________________ Poleg tega lahko PPP daemon uporabi veliko opcij iz ukazne vrstice. Pomembno je, da uporabite prave. Ta razdelek vam pojasni pomen standardnih PPP opcij in vam pomaga pri odločitvi, katere uporabiti. Oglejte si razdelek ,,Priprava datotek za PPP povezavo``. 6.8. Če vaš PPP strežnik uporablja PAP (Password Authentication Protocol) Dosti PIS-ov uporablja PAP. Če vaš strežnik ne zahteva njegove uporabe (če vas strežnik tekstovno vpraša za uporabniško ime in geslo), lahko ta razdelek mirno preskočite. PPP strežnik, ki uporablja PAP, ne zahteva tekstovne prijave. Namesto tega se informacije o istovetnosti uporabnika izmenjajo kot del LCP-ja (link control protocol - protokol za kontrolo povezave), ki je prvi del vzpostavitve PPP povezave. Razdelek ,,Če vaš PPP strežnik uporablja PAP (Password Authentication Protocol)`` podaja informacije o datotekah ki jih morate nastaviti za vzpostavitev PPP povezave s PAP-om. 6.9. Ročno povezovanje s PPP strežnikom Ko ste uredili osnovne datoteke, bi bilo dobro, da bi jih preverili s povezavo (z uporabo minicom-a ali seyon-a) in ročno pognali PPP na vašem Linux računalniku. Oglejte si razdelek ,,Ročna vzpostavitev PPP povezave`` za podrobnosti o tem. 6.10. Avtomatizacija PPP povezave Ko ste se sposobni ročno povezati, lahko nastavite nekaj skript, ki bodo avtomatizirale vzpostavitev PPP povezave. Razdelek ,,Avtomatizacija povezav - priprava povezovalnih skript`` pokriva pripravo potrebnih skript. Posebno pozornost posveča chat-u in avtomatizaciji prijave na PPP strežnik. Ta razdelek razpravlja tako o skriptah za ime/geslo avtentikacijo, kot tudi o skriptah za PAP/CHAP avtentikacijo. 6.11. Prekinitev povezave Ko povezava deluje, jo morate biti sposobni prekiniti. Za to skrbi razdelek ,,Prekinitev PPP povezave``. 6.12. Če imate težave Mnogo ljudi ima na začetku težave pri vzpostavljanju PPP povezave. Razlike med PPP strežniki in načini avtentikacije so ogromne. Ravno tako ima PPP ogromno opcij. Nekatere od kombinacij pač ne delujejo skupaj. Nikoli. Ne samo s prijavljanjem in začetkom storitev PPP, tudi z modemi in resničnimi telefonskimi linijami so težave! Razdelek ,,Odpravljanje težav`` podaja nekaj osnovnih informacij o pogostih napakah, navodila za odkritje in popravljanje. Razdelek NI namenjen več kot osnovam. Al Longyear skrbi za PPP-FAQ, ki vsebuje dosti več informacij o tej temi. 6.13. Ko se povezava vzpostavi Ko je PPP povezava uporabna (natančneje, ko je uporaben IP sloj), lahko pppd samodejno (kot uporabnik root) zažene skripto, ki opravi katerokoli funkcijo, ki jo skripta zmore. Razdelek ,,Ko se povezava vzpostavi`` pove več o /etc/ppp/ip-up skripti, parametrih ki jih sprejme od pppd-ja in kako jo uporabiti za stvari kot pobiranje pošte iz vašega računa pri PIS-u, pošiljanje pošte, ki čaka na prenos na vašem računalniku itd. 6.14. Težave s standardnimi IP servisi na PPP povezavi z dinamično dodeljenimi IP številkami Kot je že bilo omenjeno v uvodu, dinamične IP številke omejujejo sposobnost vašega PC-ja z Linuxom, da deluje kot strežnik na Internetu. Razdelek ,,Uporaba servisov Interneta z dinamičnimi IP številkami`` ponuja informacije o (glavnih) prizadetih servisih in kaj lahko storite (če sploh kaj) za premaganje težav. 7. Konfiguriranje jedra vašega Linuxa Da bi uporabljali PPP, mora vaše jedro vsebovati podporo za PPP. Če je še nimate, morate dobiti izvorno kodo jedra. Na standardnem Linux sistemu je v /usr/src/linux. Preverite ta imenik. Mnogo distribucij Linuxa namesti izvorno drevo (datoteke in poddirektorije) kot del namestitvenega procesa. Ob zagonu vaše jedro izpiše veliko podatkov. Med temi so tudi podatki o PPP podpori, če je vključena v jedro. Da bi jih pregledali, si oglejte syslog datoteko ali uporabite dmesg | more. Če je PPP podpora v jedru, boste videli nekaj takega: ______________________________________________________________________ PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered. ______________________________________________________________________ (Za jedra Linuxa serije 2.0.x). Izvorno kodo jedra Linuxa lahko dobite s ftp-jem na sunsite.unc.edu ali njegovih zrcalnih mestih. 7.1. Namestitev izvorne kode jedra To so kratka navodila za pridobitev in namestitev izvorne kode jedra Linuxa. Popolna navodila lahko dobite v prevodu spisa Kernel HOWTO ali angleškem izvirniku Da bi namestili in prevedli jedro, morate biti prijavljeni kot root. 1. Premaknite se v imenik /usr/src cd /usr/src 2. Preverite /usr/src/linux če imate izvorno kodo že nameščeno. 3. Če je nimate, jo dobite na imeniku izvorne kode jedra za Linux ali na najbližjem zrcalnem strežniku. Če potrebujete starejšo izdajo jedra (kot npr. 1.2.x), jo najdete na imeniku izvorne kode starih jeder . 4. Izberite primerno jedro - navadno iščete najnovejše. Snemite ga in premaknite tar datoteko z izvorno kodo v /usr/src. Opomba: datoteka tar je arhiv - po možnosti skrčen (kot so datoteke tar z izvorno kodo Linuxa), ki vsebuje mnogo datotek in imenikov. Je Linuxov ekvivalent DOS-ove datoteke zip z več imeniki. 5. Če imate jedro že nameščeno in ga nadgrajujete, morate najprej odstraniti staro izvorno kodo. Uporabite ukaz rm -rf /usr/src/linux 6. Sedaj razširite in izvlecite izvorno kodo z ukazom tar xzf linux-2.0.XX.tar.gz 7. Sedaj cd /usr/src/linux in preberite datoteko README, ki vsebuje odlično razlago o konfiguriranju in prevajanju jedra. Dobro bi bilo tudi, da si jo natisnete in jo imate pri roki, dokler se pri prevajanju ne znajdete brez nje. 7.2. Poznavanje vaše strojne opreme Če nameravate prevajati vaše jedro, MORATE vedeti katere kartice/naprave imate v vašem računalniku!!! Za nekatere naprave (npr. zvočne kartice) boste morali vedeti tudi razne nastavitve (kot so IRQ- ji, I/O naslovi in podobno). 7.3. Prevajanje jedra - jedro Linux 1.2.13 Da bi začeli konfiguriranje, sledite navodilom v datoteki README, da boste pravilno namestili izvorno kodo. Konfiguracijo začnete z make config Za uporabo PPP-ja morate v jedro vključiti podporo za PPP (PPP potrebuje OBOJE - pppd IN podporo za PPP v jedru). ______________________________________________________________________ PPP (point-to-point) support (CONFIG_PPP) [n] y ______________________________________________________________________ Na druga vprašanja odgovorite glede na ,,železnino``, ki jo imate v računalniku, in lastnosti operacijskega sistema Linux, ki jih potrebujete. Potem nadaljujte z branjem datoteke README za prevajanje in namestitev novega jedra. Jedro 1.2.13 ustvari le 4 naprave za PPP. Za večvratne serijske kartice (ki potrebujejo več vrat) boste morali popraviti izvorno kodo jedra. (Oglejte si datoteko README.linux, ki je priložena distribuciji PPP 2.1.2 za navodila o enostavnih popravkih, ki jih morate narediti). Opomba: konfiguracijska skripta za jedro 1.2.13 NE dovoli popravljanja - če naredite napako pri odgovarjanju na eno od vprašanj v make config, pritisnite CTRL C in začnite znova. 7.4. Prevajanje jedra - jedra Linux 1.3.x in 2.0.x Za Linux 1.3.x in 2.0.x lahko uporabite podobno pot kot za Linux 1.2.13. Sledite navodilom v datoteki README za pravilno namestitev izvorne kode. Konfiguracijo poženite z make config Poleg tega imate na izbiro tudi make menuconfig Ta ukaz ponuja konfiguracijski sistem z menuji in sprotno pomočjo, poleg tega pa vam dovoli popravljanje napak. Obstaja tudi zelo priporočan konfiguracijski vmesnik baziran na sistemu X window: make xconfig PPP podporo lahko vključite naravnost v jedro ali kot nalagalni modul. Če uporabljate PPP le občasno, je priporočena uporaba podpore za PPP kot nalagalni modul. Z uporabo ,kerneld` bo vaše jedro samodejno naložilo module, potrebne za PPP podporo, ko boste začeli povezovanje. To bo prihranili dragoceni pomnilniški prostor. Noben del jedra ne more biti prenečen na disk, nalagalni moduli pa so samodejno odstranjeni, če jih ne potrebujemo. Za to morate omogočiti podporo za nalagalne module: ______________________________________________________________________ Enable loadable module support (CONFIG_MODULES) [Y/n/?] y ______________________________________________________________________ Za PPP podporo odgovorite na naslednje vprašanje: ______________________________________________________________________ PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?] ______________________________________________________________________ Za uporabo nalagalnih modulov za PPP odgovorite M, sicer pa Y. Za razliko od jedra 1.2.13, ustvarja jedro PPP naprave po potrebi. Za povečanje števila PPP naprav ni potrebno popravljati jedra. 7.5. Opomba o PPP-2.2 in /proc/net/dev Če uporabljate PPP-2.2, boste ugotovili, da je stranski učinek ustvarjanja PPP naprav ,,po potrebi`` ta, da v /proc/net ni videti nobenih PPP naprav, dokler jih ne ustvarimo z zagonom pppd-ja: ______________________________________________________________________ [hartr@archenland hartr]$ cat /proc/net/dev Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 92792 0 0 0 0 92792 0 0 0 0 0 eth0: 621737 13 13 0 23 501621 0 0 0 1309 0 ______________________________________________________________________ Ko imate pognan en (ali več) ppp servis, boste videli vnose kot je ta (na ppp strežniku): ______________________________________________________________________ [root@kepler /root]# cat /proc/net/dev Inter-| Receive | Transmit face |packets errs drop fifo frame|packets errs drop fifo colls carrier lo: 428021 0 0 0 0 428021 0 0 0 0 0 eth0:4788257 648 648 319 650 1423836 0 0 0 4623 5 ppp0: 2103 3 3 0 0 2017 0 0 0 0 0 ppp1: 10008 0 0 0 0 8782 0 0 0 0 0 ppp2: 305 0 0 0 0 297 0 0 0 0 0 ppp3: 6720 7 7 0 0 7498 0 0 0 0 0 ppp4: 118231 725 725 0 0 117791 0 0 0 0 0 ppp5: 38915 5 5 0 0 28309 0 0 0 0 0 ______________________________________________________________________ 7.6. Na kaj moramo paziti pri konfiguraciji PPP v jedru Če postavljate vaš računalnik kot PPP strežnik, morate vključiti podporo za IP forwarding. To je potrebno tudi, če ga boste uporabili za povezavo dveh omrežij ali omrežja in Interneta. Če povezujete omrežje z Internetom (ali dve omrežji), morate paziti na varnost. Vključitev podpore za požarni zid (IP firewalls) je skoraj NUJNA! To boste potrebovali tudi za uporabo IP masquerade za povezavo omrežja, ki uporablja katero od zgoraj navedenih ,,nepovezanih`` IP številk. Za IP Masquerade in IP firewalling MORATE odgovoriti yes na prvo vprašanje v make config : ______________________________________________________________________ Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)? ______________________________________________________________________ Medtem, ko se zdi to novim uporabnikom nekoliko zaskrbljujoče, mnogo uporabnikov brez težav uporablja lastnosti IP Masquerade in IP firewalling jedra Linux 2.0.XX. Ko ste namestili novo jedro in znova pognali računalnik, lahko začnete konfigurirati in preizkušati PPP povezavo(e). 8. Pridobivanje podatkov o PPP strežniku Preden lahko vzpostavite PPP povezavo s strežnikom, morate dobiti nekaj podatkov (ima jih administrator ali služba za podporo pri PPP strežniku): * Telefonsko številko(e), na kateri je strežnik Če imate avtomatsko hišno centralo, potrebujete tudi številko, ki vam da dostop do zunanjega telefonskega omrežja. To sta pogosto številki 0 ali 9. * Ali strežnik uporablja DINAMIČNE ali STATIČNE IP številke? Če strežnik uporablja statične IP številke, morate mogoče vedeti, katero številko uporabiti za vaš konec PPP povezave. Če vas PIS oskrbi s ,,subnetom`` veljavnih IP številk, boste morali vedeti IP številke, ki jih lahko uporabite in omrežno masko (netmask). Večina PIS-ov uporablja DINAMIČNE IP številke. Kot je omenjeno zgoraj, ima to nekatere posledice na servise, ki jih lahko uporabljate. Čeprav uporabljate STATIČNE IP številke, vam večina PPP strežnikov kot odjemalcu nikoli ne bo pustila določiti IP številko, ker to predstavlja varnostno tveganje. Vseeno pa morate vedeti ta podatek! * Katere so IP številke PIS-ovih DNS strežnikov? Morali bi biti vsaj dve, čeprav je ena dovolj. To bi znal biti problem. MS Windows 95 dovoljujejo, da so DNS naslovi posredovani odjemalcu kot del povezovalnega procesa. Torej vam bo PIS mogoče povedal, da tega podatka ne potrebujete. Za Linux POTREBUJETE naslov vsaj enega DNS strežnika. Linux izvedba PPP-ja ne dovoli nastavitve IP številk DNS strežnikov dinamično ob povezavi - in verjetno tudi nikoli ne bo. Opomba: medtem ko Linux (kot PPP odjemalec) ne more sprejeti DNS naslova od strežnika, zna (kot strežnik) poslati ta podatek odjemalcem z uporabo dns-addr pppd opcije. * Ali strežnik zahteva uporabo PAP/CHAP? V tem primeru morate vedeti ,,id`` in ,,secret``, ki ju potrebujete za povezavo. (To sta verjetno vaše uporabniško ime in geslo). * Ali strežnik avtomatsko zažene PPP ali morate uporabiti kakšen ukaz za zagon PPP-ja na strežniku, ko se prijavite? Kateri je ta ukaz? * Ali na strežniku tečejo Microsoft Windows NT? Če je tako, ali strežnik uporablja MS PAP/CHAP? Mnogo službenih omrežij uporablja MS Windows NT na tak način za povečano varnost. Zapišite si te podatke, ker jih boste potrebovali! 9. Konfiguriranje modema in serijskih vrat Prepričajte se, da je modem pravilno nameščen in da veste na katerih serijskih vratih je nameščen. Pomnite: * DOS com1: = Linux /dev/cua0 (in /dev/ttyS0) * DOS com2: = Linux /dev/cua1 (in /dev/ttyS1) in tako dalje Dobro si je tudi zapomniti, da če imate 4 serijska vrata, je navadno PC nastavljen tako, da si com1 in com3 delita IRQ4, com2 in com4 pa IRQ3. Če imate na standardnih serijskih vratih naprave, ki si delijo IRQ z vašim modemom, boste imeli probleme. Modem mora imeti svoj nedeljen IRQ. Mnogo modernih serijskih kartic (in kvalitetnejših osnovnih plošč) vam omogoča spreminjanje IRQ-jev. Če uporabljate jedro Linux 2.0.x, lahko preverite IRQ-je v uporabi z cat /proc/interrupts, ki bo pokazal nekaj takega: ______________________________________________________________________ 0: 6766283 timer 1: 91545 keyboard 2: 0 cascade 4: 156944 + serial 7: 101764 WD8013 10: 134365 + BusLogic BT-958 13: 1 math error 15: 3671702 + serial ______________________________________________________________________ Tukaj so serijska vrata na IRQ4 (miška) in serijska vrata na IRQ15 (trajne modemska povezava z Internetom). Na računalniku so tudi serijska vrata com2 na IRQ3 in com4 na IRQ14, vendar nista v uporabi, zato nista prikazana. Pozor - vedeti morate kaj počnete, če se boste igrali z IRQ-ji! Ne samo da morate odpreti računalnik, izvleči kartice in premikati mostičke, vedeti morate tudi kaj je na katerem IRQ-ju. V mojem primeru imam v računalniku samo SCSI diske, zato lahko onemogočim IDE vmesnik na osnovni plošči, ki navadno uporablja IRQ14 in 15! Zapomnite si tudi, da če imate na računalniku druge operacijske sisteme, se ti mogoče ne bodo pravilno zagnali - če sploh! Če premaknete zaporedna vrata na nestandardne IRQ-je, morate Linuxu povedati, katere IRQ-je uporabljajo. To naredite s setserial, najraje kot del zagona sistema v rc.local ali rc.serial, ki je klican iz rc.local ali kot del SysV inicializacije. Za zgornji računalnik so uporabljeni ukazi ______________________________________________________________________ /bin/setserial -b /dev/ttyS2 IRQ 14 /bin/setserial -b /dev/ttyS3 IRQ 15 ______________________________________________________________________ Če uporabljate zaporedno podporo kot nalagalne module in jih dinamično nalagate z uporabo kerneld-ja, IRQ-jev ne morete nastaviti ob zagonu in pozabiti nanje. To se zgodi zaradi tega, ker Linux ob izključitvi modula iz jedra pozabi posebne nastavitve. Tako boste morali ob uporabi nalagalnih modulov popraviti IRQ-je vsakič, ko bo modul naložen. 9.1. Opomba o serijskih vratih in hitrostih Če uporabljate hiter (zunanji) modem (14.400 bps ali hitrejši), morajo vaša zaporedna vrata biti sposobna spustiti skozi promet, ki ga naredi tak modem, še posebej ko modem stiska podatke. Za to morajo vaša serijska vrata uporabljati moderen UART (Universal Asynchronous Receiver Transmitter - univerzalni asinhroni sprejemnik/oddajnik) kot je 16550(A). Če uporabljate star računalnik /ali staro serijsko kartico), je vaš UART mogoče 8250 UART, ki vam bo povzročil precejšnje težave pri uporabi hitrih modemov. Uporabite ukaz setserial -a /dev/ttySx da vam Linux sporoči, kakšen UART imate. Če vaš UART ni tipa 16550A, si preskrbite novo serijsko kartico (stane le kakšnega tisočaka). Pred nakupom se prepričajte, da na njej lahko nastavljate IRQ-je! Opomba: prve verzije čipov UART 16550 so imele napake. To je bilo hitro odkrito in na trg je prišla nove različica - UART 16550A. Sorazmerno majhno število pokvarjenih čipov pa je vseeno prišlo v obtok. Verjetnost, da bi naleteli na tak čip, je zelo majhna, kljub temu pa bi vam zgornji ukaz moral vrniti 16550A, še posebej na karticah z ,,rodovnikom``. 9.2. Imena serijskih vrat Linux je uporabljal naprave cuaX za klicanje in naprave ttySx za sprejemanje klicev. Koda v jedru, ki je to zahtevala, se je v jedrih 2.0.x spremenila in zdaj bi morali uporabljati ttySx za oboje. Slišati je, da bodo naprave cuaX v bodočih izdajah jedra izginile. 9.3. Nastavljanje modema Vaš modem boste morali pravilno nastaviti za PPP - PREBERITE NAVODILA VAŠEGA MODEMA! Večina modemov ima normalno tovarniško nastavitev, ki izbere opcije, potrebne za PPP. Minimalna nastavitev je: * Strojni nadzor pretoka (Hardware flow control - RTS/CTS) (&K3 na mnogo modemih Hayes) Ostale nastavitve (v standardnih ukazih Hayes), ki jih morate preveriti: * E1 Command Echo ON (potrebna za delovanje chat-a) * Q0 Report result codes (potrebna za delovanje chat-a) * S0=0 Auto Answer OFF (razen če hočete, da modem ob klicu odgovori) * &C1 Carrier Detect ON samo po povezavi * &S0 Data Set Ready (DSR) vedno ON * (različno) Data Terminal Ready Podatke za vedno več različnih modemov in izdelovalcev najdete na Modem setup information . Vredno je tudi raziskati, kako deluje zaporedni vmesnik med modemom in vašim računalnikom. Večina sodobnih modemov vam dovoli poganjati zaporedni vmesnik pri FIKSNI hitrosti, medtem ko se hitrost telefonske linije spreminja glede na to kaj zmoreta modema. To je znano kot delovanje pri različnih hitrostih (split speed operation). Če ga vaš modem podpira, nastavite serijski vmesnik na najvišjo možno hitrost (navadno 115.200 bps, toda mogoče 38.400 bps za 14.400 bps modeme). Uporabite vaše komunikacijsko programje (npr. minicom ali seyon), da ugotovite nastavitve vašega modema in ga nastavite za PPP. Mnogo modemov sporoči svoje trenutne nastavitve v odgovor na AT&V, toda poglejte v vaša navodila. Če popolnoma zamešate nastavitve, jih (navadno) lahko povrnete z AT&F - vrnitev na tovarniške nastavitve. (Za večino modemov tovarniške nastavitve vsebujejo vse potrebno za PPP, vendar vseeno preverite). Ko enkrat odkrijete potreben nastavitveni ukaz, ga zapišite. Sedaj imate na izbiro: te nastavitve lahko shranite v modemov obstojni pomnilnik, tako da jih naslednjič prikličete s primernim ukazom AT. Lahko pa jih posredujete modemu kot del klicnega procesa. Če modem uporabljate samo za klicanje vašega PIS-a ali službenega PPP strežnika, bi bilo najbolje shraniti nastavitve v modemov obstojni pomnilnik. Po drugi strani pa modem uporabljajo drugi programi in operacijski sistemi, zato je najbolje posredovati nastavitve modemu ob vsakem klicu, tako da bo modem gotovo v dobrem stanju. (Druga dobra stran tega je, da imamo nekje zapisan nastavitveni ukaz, če modem zgubi vsebino svojega NVRAM-a, kar se lahko res zgodi). 9.4. Opomba o nadzoru pretoka Ko podatki potujejo po zaporednih linijah, se lahko zgodi, da podatki prihajajo hitreje, kot jih računalnik lahko sprejema (računalnik lahko dela kaj drugega - Linux je večuporabniški in večopravilni operacijski sistem). Da se podatki ne bi izgubili (podatki se ne zapišejo v vmesni pomnilnik in se tako izgubijo), je potrebna neka vrsta kontrole pretoka. Na zaporednih linijah sta dve vrsti kontrole pretoka: * Uporaba strojnih signalov (Clear To Send/Request to Send - CTS/RTS) * Uporaba programskih signalov (control-S in control-Q, znana tudi kot XON/XOFF). Medtem ko je zadnja uporabna za terminalsko (tekstovno) povezavo, potrebujejo podatki na PPP liniji 8 bitov - in kaj verjetno je, da bo med podatki nekaj, kar se bo prevedlo kot control S in control Q. Če torej modem uporablja programsko kontrolo pretoka, lahko stvari hitro ponorijo! Za hitre povezave z uporabo PPP-ja (ki uporablja vseh 8 bitov podatkov), je strojni nadzor pretoka življenjskega pomena in ga je zato treba uporabljati. 9.5. Preizkušanje modema za klicanje Sedaj ko ste uredili nastavitve zaporednih vrat in modema bi se bilo s klicanjem vašega PIS-a dobro prepričati, da te nastavitve zares delujejo in videti, če se lahko povežete. Z uporabo vašega komunikacijskega paketa (npr. minicoma), nastavite inicializacijo modema, potrebno za PPP, in pokličite PPP strežnik, s katerim se želite povezati. (Opomba: na tej stopnji NE poskušamo vzpostaviti PPP povezave - prepričujemo se, če imamo pravo telefonsko številko in kaj točno nam strežnik pošilja, da bi se povezali in pognali PPP). Med tem procesom ulovite (shranite v datoteko) celoten proces prijave ali si pazljivo (zelo pazljivo) zapišite točno kakšen poziv vam da strežnik za vpis uporabniškega imena in gesla (in drugih ukazov za zagom PPP-ja). Če vaš strežnik uporablja PAP, ne bi smeli videti poziva za prijavo, ampak (tekstovno predstavitev) protokola za nadzor povezave (link control protocol) (ki izgleda kot smeti) na vašem zaslonu. Nekaj opozoril: * nekateri strežniki so dokaj inteligentni: lahko se prijavite z uporabniškim imenom in geslom, ALI s PAP-om. Če torej vaš PIS ali službeni PPP strežnik uporablja PAP in smeti ne vidite takoj, niste nujno naredili napake. * nekateri strežniki zahtevajo, da najprej nekaj vpišete in šele nato začnejo PAP zaporedje. * Nekateri PPP strežniki so pasivni - preprosto čakajo in nič ne pošljejo, dokler jim odjemalec ne pošlje lcp paketa. Če PPP strežnik, s katerim se povezujete, deluje tako, ne boste nikoli videli smeti! * Nekateri PPP strežniki ne zaženejo PPP-ja, dokler ne pritisnete ENTER - vredno je poskusiti, če se pravilno prijavite in ne vidite smeti! Splača se klicati vsaj dvakrat. Nekateri strežniki spreminjajo njihove pozive (naprimer glede na čas!) vsakič ko se prijavite. Dva pomembna poziva, ki jih Linux potrebuje sta: * poziv za vpis vašega uporabniškega imena; * poziv za vpis vašega gesla; Če morate vnesti ukaz za zagon PPP-ja na strežniku, boste morali ugotoviti tudi obliko poziva za vnos tega ukaza. Če vaš strežnik samodejno zažene PPP, ko ste enkrat prijavljeni, boste zagledali na zaslonu smeti. To je PPP strežnik, ki pošilja vašemu računalniku podatke za zagon in konfiguracijo PPP povezave. To bi moralo izgledati nekako takole: ______________________________________________________________________ ~y}#.!}!}!} }8}!}$}%U}"}&} } } } }%}& ...}'}"}(}"} .~~y} ______________________________________________________________________ (in še kar prihaja!!!) Na nekaterih sistemih mora biti PPP ročno zagnan na strežniku. To je ponavadi zaradi tega, ker je strežnik nastavljen za PPP in tekstovne prijave z uporabo istega uporabniškega imena/gesla. Če je tako, po prijavi vnesite ta ukaz. Znova boste videli smeti, ko se na strežniku zažene PPP. Če tega ne vidite takoj po povezavi (in prijavi in po potrebi zagonu PPP-ja), pritisnite Enter, da bi videli, če to zažene PPP strežnik... Sedaj lahko prekinete povezavo (navadno hitro vtipkate +++ in nato, ko modem odvrne OK, vtipkate še ukaz ATH0). Če vašega modema ne morete pripraviti do dela, preberite modemov uporabniški priročnik, man strani komunikacijskega programa in Serial HOWTO! Ko razrešite to, nadaljujte kot zgoraj. 10. Vzpostavljanje razreševanja imen v naslove (DNS) Medtem ko ljudje radi dajemo stvarem imena, imajo računalniki raje številke. Na TCP/IP mreži (kar Internet je), imenujemo računalnike po določenih imenih in vsak računalnik živi v določeni ,,domeni``. Moja delovna postaja z Linuxom se imenuje archenland in prebiva v domeni interweft.com.au. Njegov ,,človeški`` naslov je torej archenland.interweft.com.au (kar je znano kot FQDN - fully qualified domain name - polno ime domene). Da pa bi ga našli drugi računalniki na Internetu, je znan tudi po svoji IP številki, ki jo uporablja za komunikacijo z drugimi računalniki na Internetu. Prevajanje (tolmačenje) imen računalnikov (in domen) v številke, ki so v uporabi na Internetu je delo računalnikov, ki ponujajo Domain Name Service (DNS). Zgodi se to: * vaš računalnik rabi IP številko določenega računalnika. Program, ki potrebuje ta podatek, zanj povpraša ,tolmača` (resolver) na vašem računalniku z Linuxom; * tolmač pregleda lokalno host datoteko /etc/hosts in/ali DNS strežnike, katere pozna (točno vedenje tolmača je določeno v datoteki /etc/host.conf); * če je odgovor v datoteki host, ga tolmač vrne programu; * če je določen strežnik DNS, ga vaš PC povpraša: * Če strežnik DNS že pozna IP številko, jo vrne. Če je ne, povpraša druge strežnike DNS na Internetu. Strežnik nato vrne ta podatek tolmaču, ki ga posreduje programu. Ko ustvarite PPP povezavo, morate vašemu računalniku z Linuxom povedati, kje lahko najde podatke o imenih računalnikov in IP številkah (prevajanje naslovov), da lahko vi uporabljate imena računalnikov, vaš računalnik pa jih lahko pretvori v IP številke, ki jih potrebuje za delovanje. En način je, da vpišete vse gostitelje s katerimi želite govoriti v datoteko /etc/hosts (kar je povsem nemogoče, če se povezujete z Internetom); drugi je, da uporabljate namesto imen IP številke (nemogoča spominska naloga za vse mreže, razen najmanjših). Najboljši način je, da poveste Linuxu, kam naj gre iskat te podatke - avtomatsko. To storitev ponuja sistem imenskih strežnikov (DNS). Vse, kar je potrebno je, da vpišete IP številko imenskih strežnikov v datoteko /etc/resolv.conf. 10.1. Datoteka /etc/resolv.conf Administrator vašega PPP strežnika (oz. služba za podporo uporabnikov) bi vam morali dati dve IP številki DNS strežnikov (potrebna je samo ena, vendar sta navadno dve zaradi možnosti okvar). Kot rečeno, Linux ne more nastaviti IP številk DNS strežnikov kot MS Windows 95. Torej morate (vljudno) vztrajati, da vam PIS da ti številki! Vaša datoteka /etc/resolv.conf bi morala izgledati nekako takole: ______________________________________________________________________ domain domena.vašega.pis-a.si nameserver 10.25.0.1 nameserver 10.25.1.2 ______________________________________________________________________ Uredite to datoteko (po potrebi jo ustvarite) da bo odražala podatke, ki vam jih je posredoval vaš PIS. Morala bi imeti sledeče lastništvo in dovoljenja: -rw-r--r-- 1 root root 73 Feb 19 01:46 /etc/resolv.conf Če ste že uredili /etc/resolv.conf, ker ste na mreži, enostavno dodajte IP številke DNS strežnikov za PPP. 10.2. Datoteka /etc/host.conf Preveriti bi morali tudi datoteko /etc/host.conf. Izgledati bi morala nekako takole ______________________________________________________________________ order hosts,bind multi on ______________________________________________________________________ To pove tolmaču, naj uporabi podatke iz datoteke hosts preden pošlje poizvedbo DNS strežniku, 11. Uporaba PPP-ja in root pravice Ker mora PPP postaviti mrežne naprave, spremeniti usmerjevalno tabelo v jedru in tako naprej, potrebuje pravice administratorja (root). Če bodo PPP povezavo vzpostavljali tudi drugi uporabniki, bi moral biti program pppd ,,setuid root``: -rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd Če /usr/sbin/pppd ni tako nastavljen, potem kot root vnesite ukaz: chmod u+s /usr/sbin/pppd To povzroči, da bo pppd imel administratorske pravice, četudi ga bo pognal navaden uporabnik. To dovoljuje navadnemu uporabniku, da zažene pppd s potrebnimi pravicami za nastavitev omrežnih vmesnikov in usmerjevalne tabele v jedru. Programi, ki so pognani ,set uid root` so potencialne varnostne luknje in morali bi biti zelo previdni pri nastavljanju programov ,suid root`. Nekaj programov (med njimi pppd) je bilo skrbno napisanih, da bi zmanjšali nevarnost takega poganjanja, zato bi morali biti s tem varni (toda brez kakršnegakoli jamstva). Glede na to kako hočete, da sistem deluje - natančneje če hočete, da bo lahko KATERIKOLI uporabnik vzpostavil PPP povezavo, bi morali nastaviti skripti ppp-on/off na javno branje/izvrševanje. (To je verjetno v redu, če vaš PC uporabljate SAMO vi). Če pa tega NOČETE (če imajo naprimer vaši otroci dostop do računalnika in nočete, da bi se povezali z Internetom brez vaše vednosti), boste morali narediti skupino PPP (kot root uredite datoteko /etc/group) in: * Naredite pppd ,suid root`, last uporabnika root in skupine PPP, z ,ostalimi` pravicami praznimi. Datoteka bi morala izgledati takole: -rwsr-x--- 1 root PPP 95225 Jul 11 00:27 /usr/sbin/pppd * Naredite skripti ppp-on/off last uporabnika root in skupine PPP * Naredite skripti ppp-on/off berljivi/izvršljivi za skupino PPP -rwxr-x--- 1 root PPP 587 Mar 14 1995 /usr/sbin/ppp-on -rwxr-x--- 1 root PPP 631 Mar 14 1995 /usr/sbin/ppp-off * Naredite ostale pravice za ppp-on/off ,prazne`. * dodajte uporabnike, ki bodo uporabljali PPP, v skupino PPP v datoteki /etc/group Četudi to naredite, navadni uporabniki še vedno ne bodo mogli programsko prekiniti povezave! Poganjanje ppp-off skripte zahteva pravice root-a. Kljub temu lahko enostavno izključijo modem ali telefonski kabel. Alternativna (in boljša) metoda je uporaba programa sudo. Ta ponuja odlično varnost in vam omogoča urediti stvari tako, da lahko vsak (pooblaščen) uporabnik vzpostavi/prekine ppp povezavo z uporabo skript. Uporaba programa sudo bo dovolila pooblaščenemu uporabniku vzpostavitev/prekinitev PPP povezave čisto in varno. 12. Priprava datotek za PPP povezavo Sedaj morate biti prijavljeni kot root, da bi ustvarili imenike in uredili datoteke potrebne za postavitev PPP-ja, četudi hočete, da bo PPP dostopen vsem uporabnikom. PPP uporablja veliko datotek za povezavo in vzpostavitev PPP povezave. Te se med PPP 2.1.2 in PPP 2.2 razlikujejo po imenih in položaju. Za PPP 2.1.2 so to datoteke: ______________________________________________________________________ /usr/sbin/pppd # PPP program /usr/sbin/ppp-on # skripta za klicanje/povezavo /usr/sbin/ppp-off # skripta za prekinitev povezave /etc/ppp/options # možnosti, ki jih uporablja pppd za vse povezave /etc/ppp/options.ttyXX # možnosti posebej za povezavo na določenih vratih ______________________________________________________________________ Za PPP 2.2 so to: ______________________________________________________________________ /usr/sbin/pppd # PPP program /etc/ppp/scripts/ppp-on # skripta za klicanje/povezavo /etc/ppp/scripts/ppp-on-dialer # prvi del skripte za klicanje (chat skripta) /etc/ppp/scripts/ppp-off # skripta za prekinitev povezave /etc/ppp/options # splošne možnosti /etc/ppp/options.ttyXX # možnosti za določena vrata ______________________________________________________________________ Uporabnikom Red Hat Linuxa standardna Red Hat 4.X namestitev namesti te skripte v /usr/doc/ppp-2.2.0f-2/scripts. V vašem imeniku /etc bi moral bit imenik ppp: drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp Če ne obstaja, ga ustvarite s temi lastniki in pravicami. Če direktorij že obstaja, bi moral vsebovati šablono za datoteko z možnostmi imenovano options.tpl. Če je ni, je vključena spodaj. Natisnite si jo, ker vsebuje razlago skoraj vseh PPP možnosti (to je zelo uporabno branje v povezavi s pppd man stranmi). Medtem ko jo lahko uporabite kot osnovo za vašo /etc/ppp/options datoteko, je verjetno bolje, če si ustvarite lastno datoteko z možnostmi, ki ne vsebuje vseh opomb iz šablone. Tako bo mnogo krajša in bolj jasna. Če imate več zaporednih linij/modemov (navadno pri PPP strežnikih), ustvarite splošno datoteko /etc/ppp/options, ki vsebuje le možnosti skupne vsem serijskim vratom, na katerih uporabljate klicanje/sprejemanje klicev, in posamezne datoteke za vsako zaporedno linijo z nastavitvami za vsaka vrata. Te posamezne datoteke se imenujejo options.ttyx1, options.ttyx2 in tako naprej (kjer je x primerna črka za vaša serijska vrata). Za eno samo PPP povezavo lahko veselo uporabite datoteko /etc/ppp/options. Vse možnosti lahko podate tudi kot argumente pppd- ju. Lažje je vzdrževati postavitev, ki uporablja datoteke /etc/ppp/options.ttySx. Če uporabljate PPP za povezavo z različnimi mesti, lahko pripravite datoteko z možnostmi za vsako mesto v /etc/ppp/options.mesto in potem posredujete ime datoteke kot parameter pppd-ju ko se povezujete (uporabite parameter file option-file v ukazni vrstici). 12.1. Datoteka options.tpl Nekatere distribucije PPP-ja so očitno izgubile datoteko options.tpl, zato je tu v celoti. Predlagam, da je NE urejate, da bi dobili svojo datoteko /etc/ppp/options. Raje si to datoteko skopirajte v novo datoteko in urejajte tisto. Če boste zmešali vaše popravke, lahko začnete znova z originalom. ______________________________________________________________________ # /etc/ppp/options -*- sh -*- splošne opcije za pppd # created 13-Jul-1995 jmk # autodate: 01-Aug-1995 # autotime: 19:45 # Uporabi izvršilno datoteko ali lupinsko skripto za nastavitev serijske # linije. Ta skripta navadno uporabi ,,chat`` za klicanje z modemom in zagon # PPP-ja na oddaljenem računalniku. #connect "echo Nastaviti morate ukaz za povezovanje." # Požene izvršilno datoteko ali lupinsko skripto, kadar pppd prekine # povezavo. Ta skripta bi lahko modemu poslala ukaz za prekinitev, če # strojna kontrola modema ni na voljo. #disconnect "chat -- \d+++\d\c OK ath0 OK" # async character map -- 32-bit hex; vsak bit je znak, ki mora biti # ,ubežan`, da ga pppd lahko sprejme. 0x00000001 predstavlja ,\x01`, # 0x80000000 pa ,\x1f`. #asyncmap 0 # Zahteva, da se drugi konec predstavi, preden se paketi lahko začnejo # sprejemati ali oddajati. #auth # Uporabljaj strojno kontrolo pretoka (RTS/CTS) za kontrolo pretoka podatkov # na serijskih vratih. #crtscts # Uporabljaj programsko kontrolo pretoka (XON/XOFF) za kontrolo pretoka # podatkov na serijskih vratih. #xonxoff # Dodaj privzeto pot v sistemske usmerjevalne tabele z uporabo drugega konca # povezave kot vozla, ko je IPCP dogovarjanje uspešno končano. Ta vnos bo # umaknjen, ko se povezava prekine. #defaultroute # Določa, da bojo nekateri znaki pri prenosu ,ubežani` (ne glede na to, če # drugi konec to zahteva z async control tabelo znakov). Znaki so določeni # kot niz šestnajstiških številk, ločenih z vejico. Pomnite, da je lahko tu # določen skoraj vsak znak, ne kot pri opciji asyncmap, ki dovoljuje le # kontrolne znake. Znaki, ki ne morejo biti ubežani so tisti z vrednostmi # 0x20 - 0x3f ali 0x5e. #escape 11,13,ff # Ne uporabljaj linij za nadzor modema. #local # Določa, naj pppd zaklene serijsko napravo z ključem UUCP stila za # ekskluziven dostop do naprave. #lock # Uporabi linije za nadzor modema. Na Ultrixu ta opcija vključuje strojno # kontrolo pretoka, kot opcija crtscst. (Ta opcija ni popolnoma # implementirana.) #modem # Nastavi vrednost MRU [Maximum Receive Unit] za pogajanje na . Pppd bo # od drugega konca zahteval, da ne pošilja večjih paketov. Najmanjša # vrednost je 128. Privzeta vrednost je 1500. Za počasne povezave je # priporočena vrednost 296 (40 bytov za TCP/IP glavo in 256 bytov # podatkov). #mru 542 # Nastavi vmesnikovo omrežno masko na , ki je 32-bitna maska v zapisu # ,,decimal dot`` (npr. 255.255.255.0) #netmask 255.255.255.0 # Razveljavi privzeto obnašanje, ko ni določen noben lokalni IP naslov, ki # je, da ga poskuša (če je mogoče) dobiti iz gostiteljskega imena. S to opcijo # bo drugi konec moral podati lokalni IP naslov med IPCP pogajanjem (razen če # je določen v ukazni vrstici ali v datoteki options). #noipdefault # Omogoči ,pasivno` opcijo v LCP. S to opcijo bo pppd poskušal ustvariti # povezavo. Če ne bo prejel nobenega odgovora, bo čakal na veljaven LCP # paket od drugega konca, namesto da bi se (brez te opcije) prekinil. #passive # S to opcijo pppd ne bo oddal nobenega LCP paketa, dokler ne bo dobil # veljavnega LCP paketa od drugega konca (kot ,passive` opcija pri starejših # verzijah pppd-ja). #silent # Ne zahtevaj ali dovoli pogajanja o kakršnihkoli LCP in IPCP opcijah # (uporabi privzete vrednosti). #-all # Onemogoči pogajanje o Address/Control stiskanju (uporabi privzete # vrednosti, t.j. brez address/control polja). #-ac # Onemogoči pogajanje asyncmap-a (uporabi privzetega, t.j. ubeg vseh # kontrolnoh znakov). #-am # Ne razcepi se in pojdi v ozadje (sicer bo pppd naredil tako, če je # določena serijska naprava). #-detach # Onemogoči pogajanje o IP naslovu (s to opcijo mora biti oddaljen IP naslov # podan v ukazni vrstici ali datoteki options). #-ip # Onemogoči dogovarjanje magične številke. S to opcijo pppd ne more zaznati, # če je linija zanka. #-mn # Onemogoči dogovarjanje MRU [Maximum Receive Unit] (uporabi privzeto, 1500). #-mru # Onemogoči kompresijo protokolnega polja. (uporabi privzeto, brez # kompresije) #-pc # Zahtevaj od drugega konca, da se predstavi z uporabo PAP-a. To zahteva # DVOSMERNO avtentikacijo - NE uporabljajte tega, ko se povezujete s PIS-om, # ker bo zahtevalo od PIS-ovega računalnika, da se vam predstavi (in tega ne # bo mogel). #+pap # Ne pristani na PAP avtentikacijo. #-pap # Zahtevaj od drugega konca, da se predstavi s CHAP-om. [Cryptographic # Handshake Authentication Protocol]. # To zahteva DVOSMERNO avtentikacijo - NE uporabljajte tega pri povezovanju # s PIS-om, ker bo zahtevalo od njegovega računalnika, da se predstavi vam. #+chap # Ne pristani na CHAP avtentikacijo. #-chap # Onemogoči pogajanje o Van Jacobsonovem kompresiranju IP glave (uporabi # privzeto, brez kompresije). #-vj # Povečaj razhroščevalni nivo (isto kot -d). Če je ta opcija podana, bo pppd # zapisal vsebino vseh kontrolnih paketov, ki jih sprejme, v berljivi # obliki. Paketi bodo zapisani v sistemski dnevnik. Te informacije lahko # spravite določeno v datoteko, preberite man 5 syslog.conf. #debug # Pripni ime domene lokalnemu gostiteljskemu imenu zaradi avtentikacije. # Če vam, naprimer, funkcija gethostname() vrne porsche, polno ime domene pa # je porsche.Quotron.COM, uporabite to opcijo s parametrom Quotron.COM. #domain # Omogoči razhroščevalno kodo v PPP gonilniku v jedru. Parameter n je # številka, sestavljena iz vsote sledečih vrednosti: # 1 - splošna razhroščevalna sporočila # 2 - izpisala se bo vsebina prispelih paketov # 4 - izpisala se bo vsebina oddanih paketov #kdebug n # Nastavi vrednost MTU [Maximum Transfer Unit] na . Razen če drugi konec # zahteva manjše pakete med MRU pogajanjem, bo pppd zahteval, da jedro # pošilja največ n-bajtne pakete čez ppp vmesnik. #mtu # Nastavi ime lokalnega sistema za avtentikacijo na . Za PAP/CHAP bo to # moralo verjetno biti nastavljeno na vaše uporabniško ime. #name # Nastavi uporabniško ime za avtentikacijo s PAP-om na . # NE uporabljajte tega, če uporabljate name. #user # Prisili uporabo lokalnega gostiteljskega imena kot imena za avtentikacijo # (povozi opcijo name). #usehostname # Nastavi ime oddaljenega sistema za avtentikacijo na #remotename # dodaj vnos IP številko drugega konca in lokalnim Ethernet naslovom v ARP # [Address Resolution Protocol] tabelo tega sistema. #proxyarp # Uporabi sistemsko bazo gesel za PAP avtentikacijo. #login # S to opcijo bo pppd poslal LCP zahtevo ,echo` vsakih n sekund. Pod Linuxom # je zahteva echo poslana, ko drugi konec n sekund ne pošlje ničesar. Normalno # mora oddaljeni konec poslati odgovor ,echo`. Ta opcija se lahko uporabi v # povezavi z lcp-echo-failure opcijo za zaznavanje, da drugi konec ni več # povezan. #lcp-echo-interval # S to opcijo bo pppd predvideval, da je drugi konec mrtev, če po n echo # zahtevah ni dobil LCP echo odgovora. Če se to zgodi, bo prekinil povezavo. # Uporaba te opcije zahteva neničelni parameter lcp-echo-interval. Ta opcija # se lahko uporabi za prekinitev povezave, ko je bila fizično prekinjena # (naprimer ko modem prekine linijo) v primerih, ko strojni nadzor modema ni # možen. #lcp-echo-failure # Nastavi LCP restart interval (čas po katerem se paket znova pošlje) na # sekund. (privzeto 3) #lcp-restart # Nastavi največje število LCP terminate zahtev na (privzeto 3). #lcp-max-terminate # Nastavi največje število LCP configure zahtev na (privzeto 10). # Nekateri PPP strežniki se počasi zaženejo. Mogoče boste morali to vrednost # povečati, če dobivate sporočila ,serial line looped back` in ste # PREPRIČANI, da ste se pravilno prijavili na PPP strežnik. #lcp-max-configure # Nastavi največje število vrnjenih LCP configure-NAK-ov preden začneš # pošiljati configure-Reject na (privzeto 10) #lcp-max-failure # Nastavi IPCP restart interval na sekund (privzeto 3). #ipcp-restart # Nastavi največje število IPCP terminate zahtev na (privzeto 3). #ipcp-max-terminate # Nastavi največje število IPCP cobfigure zahtev na (privzeto 10). #ipcp-max-configure # Nastavi največje število vrnjenih IPCP configure-NAK-ov preden začneš # pošiljati configure-Rejecte na (privzeto 10). #ipcp-max-failure # Nastavi PAP restart interval na sekund (privzeto 3). #pap-restart # Nastavi največje število PAP authenticate zahtev na (privzeto 10). #pap-max-authreq # Nastavi CHAP restart interval na sekund (privzeto 3). #chap-restart # Nastavi največje število CHAP zahtev na (privzeto 10). #chap-max-challenge # S to opcijo bo pppd zahteval CHAP avtentikacijo vsakih sekund. #chap-interval # S to opcijo bo pppd sprejel idejo oddaljenega konca o lokalni IP številki, # čeprav je bila lokalna številka podana kot opcija. #ipcp-accept-local # S to opcijo bo pppd sprejel oddaljeno IP številko, ki jo bo podal # oddaljeni konec, čeprav je bila ta podana kot opcija. #ipcp-accept-remote ______________________________________________________________________ 12.2. Katere možnosti naj uporabim? (Brez PAP/CHAP) Kot vedno je to odvisno :-]. Navedene možnosti bi morale delovati z večino strežnikov. Če to NE deluje, preberite datoteko s šablono (/etc/ppp/options.tpl) in man strani za pppd in se pogovorite z administratorjem/službo za podporo uporabnikov ki skrbijo za strežnik, s katerim se povezujete. Vedeti morate tudi, da te skripte za povezovanje uporabljajo nekatere možnosti v ukazni vrstici, da bi bile stvari bolj jasne in enostavne za spreminjanje. ______________________________________________________________________ # /etc/ppp/options (BREZ PAP/CHAP) # # Prepreči pppd-ju, da bi se podvojil v ozadje -detach # # uporabljaj linije za nadzor modema modem # uporabi uucp zaklepanje za izključen dostop do serijske naprave lock # uporabi strojni nadzor pretoka crtscts # ustvari privzeto pot v usmerjevalni tabeli defaultroute # NE nastavi nobenih ,ubežnih` kontrolnih sekvenc asyncmap 0 # pošiljaj pakete z največ 552 bajti mtu 552 # sprejemaj pakete z največ 552 bajti mru 552 # #-------KONEC VZORČNE DATOTEKE /etc/ppp/options (brez PAP/CHAP) ______________________________________________________________________ 13. Če vaš PPP strežnik uporablja PAP (Password Authentication Protocol) Če strežnik, s katerim se povezujete, zahteva avtentikacijo PAP ali CHAP, imate malenkost več dela. Zgornji datoteki z možnostmi dodajte sledeče vrstice ______________________________________________________________________ # # prisili pppd, da uporabi uporabniško pri PIS-u kot ,gostiteljsko ime` med # avtentikacijo name # to vrstico morate spremeniti # # Če imate PPP strežnik in morate prisiliti uporabo PAP/CHAP, odstranite # znak ,#` pred pravo opcijo. NE uporabljajte tega, če se povezujete s PPP # strežnikom. #+chap #+pap # # Če uporabljate ŠIFRIRANA gesla v datoteki /etc/ppp/pap-secrets, odstranite # znak ,#` na začetku sledeče vrste. # Opomba: to NI isto kot MS šifrirana gesla, ki se jih da nastaviti v MS # RAS-u na Windows NT. #+papcrypt ______________________________________________________________________ 13.1. Uporaba MSCHAP-a Microsoft Windows NT RAS lahko uporablja variacijo CHAP-a (Challenge/Handshake Authentication Protocol). V datoteki tar z izvorno kodo PPP-ja boste našli datoteko README.MSCHAP80, ki obravnava to. Ali strežnik zahteva avtentikacijo s tem protokolom boste ugotovili z omogočenjem odkrivanja napak (,,razhroščevanje``) v pppd-ju. Če strežnik zahteva tako avtentikacijo, boste videli take vrstice ______________________________________________________________________ rcvd [LCP ConfReq id=0x2 ] ______________________________________________________________________ Pomemben podatek je auth chap 80. Da bi uporabljali MS CHAP, morate prevesti pppd, da bo to podpiral. Oglejte si datoteko README.MSCHAP80 za navodila za prevajanje in uporabo te variacije. Trenutno to omogoča le povezavo Linux PPP odjemalca z MS Windows NT strežnikom. NE podpira uporabe MSCHAP80 avtentikacije na Linux strežniku. 13.2. PAP/CHAP secrets datoteka Če uporabljate pap ali chap avtentikacijo, morate ustvariti datoteki s ,,skrivnostmi``. To sta: ______________________________________________________________________ /etc/ppp/pap-secrets /etc/ppp/chap-secrets ______________________________________________________________________ Biti morata last uporabnika root, skupine root in imeti pravice 740 zaradi varnosti. Najprej morate o PAP-u in CHAP-u vedeti to, da sta zasnovana za avtentikacijo računalniških sistemov, ne uporabnikov. ,,Huh? Kakšna je razlika?`` vas slišim spraševati. Ko je vaš računalnik ustvaril PPP povezavo s strežnikom, jo lahko uporablja VSAK uporabnik na vašem sistemu, ne samo vi. Zato lahko z uporabo PPP-ja ustvarite povezavo dveh lokalnih omrežij v omrežje širokega dosega (WAN). PAP lahko (in CHAP to tudi NAREDI) zahteva dvosmerno avtentikacijo - veljavno ime in geslo je potrebno na obeh vpletenih straneh. Kljub temu pa to NI način na katerega večina PPP strežnikov ponuja klicne povezave s PAP avtentikacijo. Vaš PIS vam bo verjetno dal uporabniško ime in geslo da bi se povezali z njegovim sistemom. Vašega PIS-a sploh ne zanima ime vašega računalnika, zato boste verjetno morali uporabiti vaše uporabniško ime kot ime vašega računalnika. To boste dosegli z uporabo pppd opcije name uporabniško ime. Da bi uporabili uporabniško ime, katerega vam je dodelil vaš PIS, dodajte vrstico ______________________________________________________________________ name vaše_uporabniško_ime_pri_PISu ______________________________________________________________________ v vašo datoteko /etc/ppp/options. Načeloma bi morali za PAP uporabiti opcijo user vaše_uporabniško_ime_pri_PISu, vendar je pppd dovolj pameten, da uporabi name kot user, kadar mora uporabiti PAP. Prednost uporabe name je v tem, da je na voljo tudi za CHAP. Ker se PAP uporablja za avtentikacijo računalnikov, bi morali določiti tudi ime računalnika na drugi strani linije. Ker pa ima večina ljudi samo enega PIS-a, lahko uporabite zvezdico (*) za ime oddaljenega računalnika v datoteki secrets. Potrebno je tudi omeniti, da mnogo PIS-ov upravlja več terminalskih strežnikov, na katere so priključeni modemi - vsakega z drugim imenom, toda dosegljivih prek ISTE telefonske številke. V takih primerih je zelo težko vnaprej vedeti, kako bo ime računalniku, na katerega se bomo priključili. 13.3. Datoteka PAP secrets Datoteka /etc/ppp/pap-secrets izgleda takole ______________________________________________________________________ # Gesla za avtentikacijo z uporabo PAP-a # odjem. strežn. geslo sprejemljivi lokalni IP naslovi ______________________________________________________________________ Štiri polja so ločena s tabulatorjem, zadnje je lahko prazno (kar hočete za povezavo z dinamičnimi in verjetno tudi statičnimi IP številkami). Recimo da vam je PIS dodelil uporabniško ime fred in geslo flintstone. V datoteki /etc/ppp/options[.ttySx] nastavite opcijo name fred in nastavite datoteko /etc/ppp/pap-secrets: ______________________________________________________________________ # Gesla za avtentikacijo z uporabo PAP-a # odjem. strežn. geslo sprejemljivi lokalni IP naslovi fred * flintstone ______________________________________________________________________ To pove pppd-ju, naj za ime računalnika uporabi fred (čeprav ni pravo ime računalnika) in za VSAK strežnik uporabi geslo flintstone. Ni vam treba vpisati lokalnega IP naslova, razen če morate VSILITI določen lokalni statični IP naslov. Četudi to poskušate, verjetno ne bo delovalo, ker večina PPP strežnikov (iz varnostnih razlogov) ne dovoli oddaljenemu sistemu nastaviti IP številke. 13.4. Datoteka CHAP secrets To zahteva da imate vzajemne avtentikacijske metode - kar pomeni da morate dovoliti da se vaš računalnik predstavi strežniku IN da se strežnik predstavi vašemu računalniku. Če je vaš računalnik fred in oddaljeni barney, bi vaš računalnik imel name fred remotename barney, oddaljeni pa name barney remotename fred v datoteki /etc/ppp/options.ttySx. Fredova datoteka /etc/chap-secrets bi izgledala takole, ______________________________________________________________________ # gesla za avtentikacijo z uporabo CHAP-a # odjem. strežn. geslo sprejemljivi lokalni IP naslovi fred barney flintstone barney fred wilma ______________________________________________________________________ takole pa barneyeva ______________________________________________________________________ # gesla za avtentikacijo z uporabo CHAP-a # odjem. strežn. geslo sprejemljivi lokalni IP naslovi barney fred flintstone fred barney wilma ______________________________________________________________________ Zapomnite si, da morata oba računalnika imeti vnose za dvosmerno avtentikacijo. To dovoli, da se lokalni računalnik predstavi oddaljenemu IN oddaljeni lokalnemu. 13.5. Več povezav s PAP avtentikacijo Nekateri uporabniki se povezujejo z več kot enim strežnikom z uporabo PAP-a. Če imajo na vsakem drugo uporabniško ime, to sploh ni problem. Nekateri uporabniki pa imajo na dveh (ali celo več) strežnikih enako uporabniško ime. To ustvari problem izbire pravilne vrstice iz datoteke /etc/ppp/pap-secrets. Kot verjetno pričakujete, PPP ponuja mehanizem za premaganje te težave. PPP vam dovoli, da nastavite ,,domnevno ime`` za oddaljeni računalnik z uporabo pppd opcije remotename. Recimo da imate uporabniško ime fred na dveh strežnikih. V datoteko /etc/ppp/pap-secrets vpišete nekaj takega: ______________________________________________________________________ fred pppserver1 barney fred pppserver2 wilma ______________________________________________________________________ Za povezavo s strežnikom pppserver1 uporabite name fred remotename pppserver1 v vaši datoteki options, za strežnik pppserver2 name fred remotename pppserver2. Ker lahko izberete datoteko s ppp opcijami z uporabo opcije file filename, lahko napišete skripto za povezavo z vsakim vašim PPP strežnikom, ki bo izbrala pravilno remotename opcijo. 14. Ročna vzpostavitev PPP povezave Ko ste uredili datoteki /etc/ppp/options in /etc/resolv.conf (in po potrebi tudi /etc/ppp/pap|chap-secrets), lahko preizkusite nastavitve z ročno vzpostavitvijo PPP povezave. (Ko bo PPP povezava delovala, bomo proces avtomatizirali). Za ta preizkus mora biti vaš komunikacijski program sposoben izhoda BREZ resetiranja modema. Minicom to lahko naredi - ALT Q (ali v starejših verzijah CTRL A Q) Prepričajte se, da ste prijavljeni kot root. Zaženite komunikacijski program (naprimer minicom), pokličite PPP strežnik in se prijavite kot navadno. Če morate za zagon PPP-ja na strežniku vpisati ukaz, ga vpišite. Sedaj boste kot prej videli smeti. Če uporabljate pap ali chap, bi morali takoj po povezavi - brez prijavljanja - z oddaljenim računalnikom videti smeti (čeprav se to na nekaterih strežnikih ne zgodi. Poskusite pritisniti Enter in poglejte če se začnejo nabirati smeti). Sedaj zapustite komunikacijski program brez resetiranja modema (ALT Q ali CTRL A Q v minicomu) in na Linuxovem pozivu (kot root) vtipkajte ______________________________________________________________________ pppd -d -detach /dev/ttySx 38400 & ______________________________________________________________________ Opcija -d vključi razhroščevanje - pogovor za vzpostavitev ppp povezave se bo vpisal v sistemski dnevnik - kar je uporabno, če boste imeli težave. Lučke na vašem modemu bi morale utripati medtem ko se vzpostavlja povezava PPP. Da se vzpostavi bo trajalo nekaj časa. Na tej točki lahko pogledate vmesnik za PPP z ukazom ______________________________________________________________________ ifconfig ______________________________________________________________________ Kot dodatek k Ethernet in loop back napravam, ki jih imate, bi morali videti nekaj takega: ______________________________________________________________________ ppp0 Link encap:Point-Point Protocol inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:552 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 ______________________________________________________________________ Kjer je * inet addr:10.144.153.10 IP številka na vaši strani povezave, * P-t-P:10.144.153.5 STREŽNIKOVA IP številka. (Seveda ifconfig ne bo izpisal teh številk, ampak tiste, ki jih uporablja vaš PPP strežnik.) Opomba: ifconfig vam pove tudi, da je povezava VZPOSTAVLJENA in TEČE! Če ne dobite nobenih ppp naprav ali nekaj takega ______________________________________________________________________ ppp0 Link encap:Point-Point Protocol inet addr:0.0.0.0 P-t-P:0.0.0.0 Mask:0.0.0.0 POINTOPOINT MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0 ______________________________________________________________________ Vaša PPP povezava ni bila vzpostavljena... oglejte si poznejši razdelek za razhroščevanje! Morali bi videti tudi pot do oddaljenega gostitelja (in naprej). Za to uporabite ukaz ______________________________________________________________________ route -n ______________________________________________________________________ Morali bi videti nekaj takega: ______________________________________________________________________ Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface 10.144.153.3 * 255.255.255.255 UH 1500 0 1 ppp0 127.0.0.0 * 255.0.0.0 U 3584 0 11 lo 10.0.0.0 * 255.0.0.0 U 1500 0 35 eth0 default 10.144.153.3 * UG 1500 0 5 ppp0 ______________________________________________________________________ Posebno pomembno je, da vidite DVA vnosa, ki kažeta na naš ppp vmesnik. Prvi je pot do GOSTITELJA (na katero opozarja zastavica H) in nam omogoča videti gostitelja, na katerega smo priključeni - toda nič dlje. Druga je privzeta pot (ustvarjena z uporabo izbire pppd-ja defaultroute). To je pot, ki pove našemu računalniku z Linuxom, naj pošlje vse pakete, ki NISO namenjeni na lokalni Ethernet(-e) - za katere imamo specifične omrežne poti - PPP strežniku samemu. Nato je PPP strežnik odgovoren za usmerjanje paketov v Interet in usmerjanje povratnih paketov nazaj k nam. Če ne vidite usmerjevalne tabele z dvema vnosoma, je nekaj narobe. Če vaš sistemski dnevnik pokaže sporočilo, da pppd ni zamenjal obstoječe privzete poti, potem privzeta pot kaže na vaš Ethernet vmesnik - ki MORA biti zamenjana z specifično omrežno potjo: IMATE LAHKO SAMO ENO PRIVZETO POT!!! Morali boste preiskati vaše inicializacijske datoteke, da najdete mesto, kjer je nastavljena privzeta pot (uporabljen bo ukaz route add default...). Spremenite to v nekaj takega kot route add net.... Sedaj preizkusite povezavo s ,,pinganjem`` strežnika na njegovi IP številki, kot jo poroča ifconfig, npr. ______________________________________________________________________ ping 10.144.153.51 ______________________________________________________________________ Prejeti bi morali nekaj takega: ______________________________________________________________________ PING 10.144.153.51 (10.144.153.51): 56 data bytes 64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms 64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms 64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms 64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms ______________________________________________________________________ Ta izpis se bo nadaljeval v neskončnost - za ustavitev pritisnite CTRL C, takrat boste dobili nekaj informacij: ______________________________________________________________________ --- 10.144.153.51 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 170.7/219.2/328.3 ms ______________________________________________________________________ Zaenkrat vse dobro. Sedaj poskušajte ,,pingat`` gostitelja po imenu (ne ime samega PPP strežnika, ampak nekega drugega strežnika, za katerega veste, da bo verjetno tekel...). Naprimer: ______________________________________________________________________ ping sunsite.unc.edu ______________________________________________________________________ Tokrat bo nekaj presledka, ko bo Linux iskal IP številko za polno ime domene, katero ,,pingate``, od DNS-a, ki ste ga vpisali v /etc/resolv.conf - torej ne skrbite (videli pa boste utripanje modemovih lučk). Kmalu boste videli podoben izpis: ______________________________________________________________________ PING sunsite.unc.edu (152.2.254.81): 56 data bytes 64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms 64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms 64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms 64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms 64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms ______________________________________________________________________ Znova ustavite itpis s CTRL C in poglejte statistiko... ______________________________________________________________________ --- sunsite.unc.edu ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 169.8/176.3/190.1 ms ______________________________________________________________________ Če ne dobite odgovora, poskusite pingati IP naslov DNS strežnika pri vašem PIS-u. Če dobite odgovor, imate očitno težavo z /etc/resolv.conf. Če to ne deluje, imate usmerjevalni problem, ali pa ima vaš PIS probleme z usmerjanjem paketov k vam. Preverite vašo usmerjevalno tabelo, kot je opisano zgoraj, in če je ta v redu pokličite vašega PIS-a. Dober test PIS-a je uporaba drugega operacijskega sistema za povezavo. Če lahko pridete mimo PIS-a s tem, potem je napaka na vašem koncu. Če vse deluje, prekinite povezavo z ukazom ______________________________________________________________________ ppp-off ______________________________________________________________________ Po kratkem premoru, bi moral modem sprostiti linijo. Če to ne deluje, izklopite modem ali zaženite komunikacijski program in prekinite modem z +++ in nato odložite z ATH0 ko dobite odziv OK. Mogoče boste morali tudi odstraniti datoteko lock, ki jo ustvari pppd: ______________________________________________________________________ rm -f /var/lock/LCK..ttySx ______________________________________________________________________ 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. 15.3.1. 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! 15.3.2. 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 sekun­ dah). 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. 15.4.1. 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 \ ______________________________________________________________________ 16. Preizkus vaše povezovalne skripte Odprite nov Xterm (če ste v X-ih) ali odprite novo navidezno konzolo in se prijavite kot root. Tukaj vnesite ukaz tail -f /var/log/messages (ali kakorkoli se imenuje vaš sistemski dnevnik). V prvem oknu (ali navidezni konzoli) vnesite ukaz ppp-on & (ali kakorkoli ste imenovali popravljeno verzijo /usr/sbin/ppp-on). Če skripte ne poženete v ozadju z & na koncu ukaza, ne boste dobili nazaj poziva, dokler povezava ne bo prekinjena. Sedaj preklopite nazaj v okno, kjer se izpisuje vaš sistemski dnevnik. Videli boste nekaj takega kot sledi (če ste seveda uporabili opciji -v za chat in -d za pppd)....tu so chat skripta in odgovori vpisani v dnevnik, sledijo jim zagonski podatki pppd-ja: ______________________________________________________________________ Oct 21 16:09:58 hwin chat[19868]: abort on (NO CARRIER) Oct 21 16:09:59 hwin chat[19868]: abort on (BUSY) Oct 21 16:09:59 hwin chat[19868]: send (ATZ^M) Oct 21 16:09:59 hwin chat[19868]: expect (OK) Oct 21 16:10:00 hwin chat[19868]: ATZ^M^M Oct 21 16:10:00 hwin chat[19868]: OK -- got it Oct 21 16:10:00 hwin chat[19868]: send (ATDT722298^M) Oct 21 16:10:00 hwin chat[19868]: expect (CONNECT) Oct 21 16:10:00 hwin chat[19868]: ^M Oct 21 16:10:22 hwin chat[19868]: ATDT722298^M^M Oct 21 16:10:22 hwin chat[19868]: CONNECT -- got it Oct 21 16:10:22 hwin chat[19868]: send (^M) Oct 21 16:10:22 hwin chat[19868]: expect (ogin:) Oct 21 16:10:23 hwin chat[19868]: kepler login: -- got it Oct 21 16:10:23 hwin chat[19868]: send (hartr^M) Oct 21 16:10:23 hwin chat[19868]: expect (ssword:) Oct 21 16:10:23 hwin chat[19868]: hartr^M Oct 21 16:10:23 hwin chat[19868]: Password: -- got it Oct 21 16:10:23 hwin chat[19868]: send (??????^M) Oct 21 16:10:23 hwin chat[19868]: expect (hartr) Oct 21 16:10:24 hwin chat[19868]: [hartr -- got it Oct 21 16:10:24 hwin chat[19868]: send (ppp^M) Oct 21 16:10:27 hwin pppd[19872]: pppd 2.1.2 started by root, uid 0 Oct 21 16:10:27 hwin pppd[19873]: Using interface ppp0 Oct 21 16:10:27 hwin pppd[19873]: Connect: ppp0 <--> /dev/cua1 Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 1, id 1. Oct 21 16:10:27 hwin pppd[19873]: LCP: sending Configure-Request, id 1 Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(LCP): Rcvd id 1. Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MRU Oct 21 16:10:27 hwin pppd[19873]: (1500) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ASYNCMAP Oct 21 16:10:27 hwin pppd[19873]: (0) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MAGICNUMBER Oct 21 16:10:27 hwin pppd[19873]: (a098b898) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd PCOMPRESSION Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ACCOMPRESSION Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: returning CONFACK. Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 2, id 1. Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfack(LCP): Rcvd id 1. Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1. Oct 21 16:10:27 hwin pppd[19873]: IPCP: sending Configure-Request, id 1 Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 1. Oct 21 16:10:27 hwin pppd[19873]: ipcp: received ADDR Oct 21 16:10:27 hwin pppd[19873]: (10.144.153.51) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: ipcp: received COMPRESSTYPE Oct 21 16:10:27 hwin pppd[19873]: (45) Oct 21 16:10:27 hwin pppd[19873]: (ACK) Oct 21 16:10:27 hwin pppd[19873]: ipcp: returning Configure-ACK Oct 21 16:10:28 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 1. Oct 21 16:10:30 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1. Oct 21 16:10:30 hwin pppd[19873]: IPCP: sending Configure-Request, id 1 Oct 21 16:10:30 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 255. Oct 21 16:10:31 hwin pppd[19873]: ipcp: received ADDR Oct 21 16:10:31 hwin pppd[19873]: (10.144.153.51) Oct 21 16:10:31 hwin pppd[19873]: (ACK) Oct 21 16:10:31 hwin pppd[19873]: ipcp: received COMPRESSTYPE Oct 21 16:10:31 hwin pppd[19873]: (45) Oct 21 16:10:31 hwin pppd[19873]: (ACK) Oct 21 16:10:31 hwin pppd[19873]: ipcp: returning Configure-ACK Oct 21 16:10:31 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 255. Oct 21 16:10:31 hwin pppd[19873]: fsm_rconfack(IPCP): Rcvd id 1. Oct 21 16:10:31 hwin pppd[19873]: ipcp: up Oct 21 16:10:31 hwin pppd[19873]: local IP address 10.144.153.104 Oct 21 16:10:31 hwin pppd[19873]: remote IP address 10.144.153.51 ______________________________________________________________________ (Opomba: jaz uporabljam statične IP številke, zato je moj računalnik poslal te PPP strežniku. Če uporabljate dinamične IP številke, tega ne boste videli.) Ta strežnik tudi potrebuje poseben ukaz za zagon ppp-ja na njegovem koncu. To izgleda v redu - kot prej testirajte s ,,pinganjem`` IP številk in imen. Zaženite vaš spletni brskalnik in surfajte - povezani ste! 17. Prekinitev PPP povezave Ko ste končali z PPP povezavo, uporabite standardni ppp-off ukaz za prekinitev. (pomnite - biti morate root ali član skupine PPP!). V sistemskem dnevniku bo nekaj takega: ______________________________________________________________________ Oct 21 16:10:45 hwin pppd[19873]: Interrupt received: terminating link Oct 21 16:10:45 hwin pppd[19873]: ipcp: down Oct 21 16:10:45 hwin pppd[19873]: default route ioctl(SIOCDELRT): Bad address Oct 21 16:10:45 hwin pppd[19873]: fsm_sdata(LCP): Sent code 5, id 2. Oct 21 16:10:46 hwin pppd[19873]: fsm_rtermack(LCP). Oct 21 16:10:46 hwin pppd[19873]: Connection terminated. Oct 21 16:10:46 hwin pppd[19873]: Exit. ______________________________________________________________________ Ne skrbite zaradi SIOCDELRT - to je le pppd, ki umira, in ni vam treba skrbeti. 18. Odpravljanje težav Obstaja morje razlogov, zakaj vaša povezava ne deluje - chat ni uspel pravilno dokončati svojega dela, imate motnje na liniji itd. Preglejte sistemski dnevnik za namige. 18.1. V jedro sem vključil PPP podporo vendar... Zelo pogosta težava je, da ljudje vključijo PPP podporo v jedro, in ko poskušajo pognati pppd, se jedro pritoži da ne podpira ppp-ja! Za takšno obnašanje obstajajo različni razlogi. 18.1.1. Ali ste zagnali računalnik s pravim jedrom? Medtem ko ste prevedli jedro s posporo za ppp, ne poganjate pravega jedra. To se lahko zgodi, če ne osvežite datoteke /etc/lilo.conf in poženete lilota. Dober test jedra lahko dobite z ukazom uname -a, ki bi moral izpisati takšno vrstico ______________________________________________________________________ Linux archenland 2.0.28 #2 Thu Feb 13 12:31:37 EST 1997 i586 ______________________________________________________________________ To izpiše verzijo jedra ter datum, ko je bilo jedro prevedeno - kar bi vam moralo dati kar dober namig, kaj se dogaja. 18.1.2. Ali ste vključili ppp podporo kot modul? Če ste prevedli podporo za ppp v jedru kot modul, toda niste prevedli modulov in jih namestili, lahko dobite tako napako. Preberite Kernel- HOWTO in datoteko README v /usr/src/linux! Še ena možnost v povezavi z moduli je, da pričakujete, da bodo potrebni moduli avtomatsko naloženi, vendar ne poganjate kerneld-ja. (ki avtomatsko nalaga in odstranjuje module po potrebi). Preverite kerneld mini-HOWTO za navodila za namestitev kerneld-ja. 18.1.3. Ali uporabljate pravo verzijo PPP-ja za vaše jedro? Z jedrom 2.0.x morate uporabljati ppp-2.2. Ppp-2.2 lahko uporabljate z jedri 1.2.x (če popravite jedro), sicer morate uporabljati ppp 2.1.2. 18.1.4. Ali poganjate pppd kot root? Če pppd-ja ne poganjate kot root (in pppd ni suid root), lahko prejmete to sporočilo. 18.2. Moj modem se poveže, toda ppp se nikoli ne zažene Na to temo obstajajo brezštevilne variacije (poglejte v comp.os.linux...). ZELO pogosta napaka je, da ste nekaj zatipkali v vaših skriptah. Edina stvar, ki jo lahko naredite je, da zapisujete chatov pogovor med vašim računalnikom z Linuxom in strežnikom v sistemski dnevnik (/var/log/messages) in greste skozi ta izpis vrsto po vrsto. Mogoče se boste morali ročno prijaviti na strežnik, da stvari spet preverite. Dnevnik morate zelo pazljivo primerjati z dejanskimi pozivi in ves čas misliti, da imamo ljudje navado, da preberemo kar mislimo, da smo napisali, ne pa kar je dejansko napisano! 18.3. Sistemski dnevnik pravi: ,,serial line is not 8 bit clean ...`` Tudi na to obstajajo variacije - kot naprimer serial line looped back ipd., razlog pa je lahko ena (ali zaporedje) od številnih stvari. Za razumevanje kaj se dogaja, je nujno nekoliko doumeti, kaj se dogaja ,,za odrom``, kjer nastopa pppd. Ko se pppd zažene, pošlje LCP (link control protocol) pakete oddaljenemu računalniku. Če sprejme veljaven odgovor, gre na naslednjo stopnjo (uporabi IPCP - kontrolne pakete za IP) in šele ko se to pogajanje konča, se zažene dejanski sloj IP, tako da lahko uporabljate PPP povezavo. Če na drugem koncu ni ppp strežnika ko vaš PC pošlje lcp pakete, se ti zrcalijo na prijavnem procesu na oddaljenem koncu. Ker ti paketki uporabljajo 8 bitov, odbijanje olupi 8. bit (ASCII je 7-bitna koda). PPP to vidi in se potemtakem pritoži. Obstaja več razlogov, da se pripeti to odbijanje. 18.3.1. Na strežnik se ne prijavljate pravilno Ko se vaša chat skripta zaključi, se na vašem računalniku zažene pppd. Če niste končali prijavnega procesa na strežniku (vključno s pošiljanjem ukaza za zagon PPP-ja na strežniku), se PPP ne bo zagnal. Torej se lcp paketi odbijejo in dobite to napako. Skrbno morate preveriti ni popraviti (po potrebi) vašo chat skripto (glejte zgoraj). 18.3.2. Na strežniku ne zaganjate PPP-ja Nekateri PPP strežniki zahtevajo, da vpišete ukaz in/ali RETURN po zaključku prijave, preden oddaljeni računalnik zažene ppp. Preverite chat skripto (glejte zgoraj). Če se prijavite ročno in ugotovite, da morate po tem poslati RETURN za zagon PPP-ja, enostavno dodajte prazen pričakuj/pošlji par na konec vaše chat skripte (prazen niz dejnsko pošlje RETURN). 18.3.3. Oddaljeni PPP proces se počasi zažene Ta problem je nekoliko bolj prebrisan! Po privzeti vrednosti vaš računalnik z Linuxom pošlje največ 10 lcp konfiguracijskih zahtevkov. Če je strežnik nekoliko počasen, je lahko vseh 10 poslanih preden je oddaljeni PPP pripravljen za njihov sprejem. Na vašem računalniku vidi pppd vseh 10 zahtev vrnjenih (z osmim bitom odtrganim) in odneha. Obstajata dve rešitvi: Dodajte lcp-max-configure 30 vašim ppp možnostim. To poveča največje število lcp konfiguracijskih paketov, ki jih pppd pošlje preden odneha. Za res počasen strežnik jih boste morda potrebovali še več. Lahko pa ste prebrisani tudi vi! Mogoče ste opazili, da ko se prijavite na PPP strežnik in poženete PPP, je prvi znak od ppp smetja vedno tilda (~). Z uporabo tega podatka lahko dodamo nov pričakuj/pošlji par na konec chat skripte, ki bo pričakoval tildo ali kaj podobnega. To bi izgledalo takole: ______________________________________________________________________ \~ '' ______________________________________________________________________ Opomba: ker ima tilda v ukazni lupini poseben pomen, ji moramo dodati ubežni znak (leva poševnica) 18.4. Privzeta pot ni nastavljena Če pppd noče nastaviti privzete poti, je to zato, ker (dokaj pravilno) noče odstraniti oz. zamenjati že obstoječe privzete omrežne poti. Običajni razlog za to napako je, da v nekaterih distribucijah privzeta pot kaže na Ethernet kartico namesto da bi bila to specifična omrežna pot. Glejte Linux NAG (Network Administrators Guide) in NET2/3 HOWTO-je za informacije o pravilni nastavitvi Ethernet kartice in pripadajočih poti. Možno je tudi, da vaša mreža že uporablja ,vozel` (gateway) ali usmerjevalnik in je vaša usmerjevalna tabela nastavljena, da kaže privzeta pot na to. Urejanje te situacije zahteva kar precej znanja o IP omrežjih in presega namen tega HOWTO-ja. Priporočljivo je, da dobite nekaj strokovnih nasvetov (v novičarskih skupinah ali če koga poznate). 18.5. Ostale težave Poleg naštetih je še precej drugih razlogov, da se ppp ne poveže oz. deluje pravilno. Poglejte v PPP-FAQ (ki je niz vprašanj in odgovorov). To je zelo obširen dokument, in odgovori SO v njem! Iz mojih (žalostnih) izkušenj lahko povem, da če odgovora ni tam, težava ni na strani PPP-ja! V mojem primeru sem uporabljal ELF jedro, programja za module pa nisem nadgradil. Zapravil sem samo 2 dni (in skoraj celo noč) preklinjajoč tisto, kar je bil predtem odličen PPP strežnik! 19. Kam po pomoč, ko se popolnoma zatakne Če vaše PPP povezave ne morete pripraviti do delovanja, še enkrat preberite ta dokument in vse preverite - v povezavi s tistim, kar vam povesta ,,chat -v...`` in ,,pppd -d``. Preglejte tudi dokumentacijo PPP-ja in FAQ ter ostale omenjene dokumente! Če še vedno niste rešili težav, poskusite v novičarskih skupinah comp.os.linux.misc in comp.os.linux.networking, katere dokaj redno pregledujejo ljudje, ki vam lahko pomagajo pri PPP-ju, prav tako kot comp.protocols.ppp. Lahko mi pošljete elektronsko pošto, toda imam službo (in življenje), zato ne zagotavljam hitrega odgovora (če sploh). ker je to odvisno od moje obremenitve in zasebnega življenja! Še posebej pomembno je da NE POŠILJATE RAZHROŠČEVALNEGA IZHODA V NOVIČARSKE SKUPINE, NITI MENI OSEBNO - prvo zapravlja velike količine omrežnega pretoka, drugo pa bo romalo v /dev/null (razen, če sem vas prosil za tak izpis). 20. Pogoste težave, ko povezava deluje Ena je, da boste našli mnogo PIS-ov, ki podpirajo samo povezovalno programje, ki ga sami razdeljujejo novim uporabnikom, to pa je (navadno) za Microsoft Windows :-( - in mnogo služb za pomoč uporabnikom ne ve nič o Unixu (ali Linuxu). Zatorej bodite od njih pripravljeni na zelo omejeno pomoč! Lahko pa boste tem ljudem seveda naredili uslugo in jih izobrazili o Linuxu (vsak zaposleni pri PIS-ovi službi za pomoč uporabnikom bi moral biti dokaj seznanjen z Internetnimi termini in to pomeni, da bi moral imeti doma računalnik z Linuxom - seveda)! 20.1. Ne vidim dlje kot do PPP strežnika Vaša PPP povezava je pokonci in deluje in lahko ,,pingate`` PPP strežnik z njegovo IP številko (drugo ali ,,remote`` IP številko, ki jo izpiše ifconfig ppp0), toda ne morete nikamor dlje. Najprej poskusite ,,pingat`` IP številko, ki ste jo vpisali v /etc/resolv.conf kot imenski strežnik. Če to deluje, lahko pridete mimo PPP strežnika (razen če imata isto PPP številko). Zato sedaj ,,pingajte`` polno ime vašega ponudnika: ping moj.ponudnik.si Če to NE deluje, imate problem z razreševanjem imen. Verjetno ste se zatipkali pri vnosu v /etc/resolv.conf. To datoteko natančno preglejte in primerjajte s podatki, ki vam jih je posredoval vaš PIS. Če povezava ŠE VEDNO ne deluje (in je vaš ponudnik potrdil, da njegovi imenski strežniki delujejo), imate težavo nekje drugje. Priporočam, da pregledate svojo namestitev Linuxa (posebej pazite na dovoljenja datotek). Če ŠE VEDNO ne morete ,,pingat`` imenskega strežnika vašega ponudnika z IP številko, je imenski strežnik ustavljen (pokličite ponudnika in preverite) ali pa ima ponudnik problem z usmerjanjem. Znova ga pokličite in preverite. Ena možnost je, da je ,,oddaljeni konec`` Linux PPP strežnik, ki v jedru nima opcije IP forwarding! Dober splošni test je, da se poskusite povezati s ponudnikovim PPP strežnikom z uporabo (gulp) Microsoft Windows. Če v drugem operacijskem sistemu vse deluje z istim uporabniškim imenom, potem je problem v Linuxu in NE pri vašem ponudniku. 20.2. Lahko pošiljam elektronsko pošto, toda ne morem je sprejemati Če uporabljate dinamične IP številke, je to popolnoma normalno. Oglejte si razdelek ,,Uporaba storitev Interneta z dinamičnimi IP številkami``. 20.3. Zakaj ljudje ne morejo uporabljati finger, WWW, gopher, talk ipd. na mojem računalniku? Znova, če uporabljate dinamične IP številke, je to popolnoma normalno. Oglejte si razdelek ,,Uporaba storitev Interneta z dinamičnimi IP številkami``. 21. Uporaba storitev Interneta z dinamičnimi IP številkami Če uporabljate dinamične IP številke (in mnogo ponudnikov vam bo dodelilo le dinamično številko, razen če boste plačali bistveno več), boste morali spoznati omejitve, ki jih to postavlja. Najprej, zunanji servisi bodo delovali čisto normalno. Lahko boste pošiljali elektronsko pošto s sendmailom (če ste ga seveda pravilno nastavili), prenašali datoteke z oddaljenih mest, uporabljali finger na uporabnikih drugje, uporabljali splet itd. Na elektronsko pošto boste lahko odgovarjali, ko ne boste povezani. Pošta bo čakala v vrsti, dokler se ne boste znova povezali. Vaš računalnik pa NI povezan 24 ur na dan, niti nima iste IP številke vsakič, ko se povežete. Zato ne morete sprejemati elektronske pošte naravnost na vaš računalnik, zelo težko je tudi nastaviti ftp ali spletni strežnik, ki bi ga vaši prijatelji lahko uporabljali! Kar se tiče Interneta, vaš računalnik ne obstaja kot en stalno povezan računalnik, ker nima svoje stalne IP številke (pomnite, drugi računalniki bodo lahko uporabljali isto IP številko, ko se bodo povezali). Če postavite spletni (ali kakšen drug) strežnik, je popolnoma neznan ostalim uporabnikom na internetu, razen če vejo da je priključen IN njegovo trenutno IP številko. Obstaja mnogo načinov, da dobijo te podatke, od tega da jim telefonirate, pošljete elektronsko sporočilo do zvite uporabe datoteke .plan na lupinskem računu pri vašem PIS-u (če vam le-ta dovoli uporabo finger-ja in lupinski dostop). Za večino uporabnikov to ni problem. Vse, kar želi večina ljudi, je pošiljanje in prejemanje elektronske pošte (z uporabo računa pri njihovem ponudniku), uporaba izhodnih povezav z WWW, ftp in drugimi strežniki na Internetu. Če morate imeti vhodne povezave, bi res morali dobiti statično IP številko. Lahko pa poizkusite tudi z zgornjimi namigi... 21.1. Nastavljanje elektronske pošte Celo z dinamičnimi IP številkami lahko nastavite sendmail, da bo poslal vsa sporočila, ki jih boste napisali. Nastavljanje sendmaila je lahko nejasno in težko, zato se ga ta dokument ne loteva. Sendmail bi verjetno morali nastaviti, da bi pošiljal pošto preko poštnega strežnika pri vašem PIS-u (DS opcija v sendmail.cf). Za več podatkov si oglejte sendmailovo dokumentacijo in m4 konfiguracije, ki so mu dodane. Skoraj gotovo bo tam ena, ki bo ustrezala vašim potrebam. O sendmailu obstaja tudi nekaj dobrih knjig (še posebej O'Reillyjeva ,biblija`), vendar so te skoraj gotovo prezahtevne za večino uporabnikov! Ko imate sendmail konfiguriran, boste verjetno hoteli, da sendmail pošlje vsa sporočila, ki čakajo v izhodni vrsti takoj, ko se vzpostavi povezava. Dodajte ukaz sendmail -q & v vašo skripto /etc/ppp/ip-up (glejte spodaj). Vhodna pošta je pri dinamičnih IP številkah problem. Lahko jo sposobite takole: * konfigurirajte poštni program, da ima vsa poslana pošta header ,,Reply-To``, ki kaže na vaš naslov pri PIS-u. Če je možno, tako nastavite tudi header ,,From``. * uporabite popclient ali fetchmail za prenos pošte od vašega ponudnika. Če vaš PIS uporablja IMAP, uporabite poštni program, ki podpira IMAP (naprimer Pine). Ta proces lahko avtomatizirate z uporabo skripte /etc/ppp/ip-up (glejte spodaj). 21.2. Postavljanje lokalnega imenskega strežnika Medtem ko lahko dokaj veselo uporabljate imenske strežnike pri vašem ponudniku, lahko postavite tudi lokalni predpomnilni (sekundarni) imenski strežnik, ki ga zaženete preko skripte ip-up. Prednost pri poganjanju takšnega strežnika je, da vam bo pri dolgem priklopu prihranil čas, če pogosto uporabljate iste strežnike. DNS konfiguracija za predpomnilni imenski strežnik (ki uporablja vrstico ,,forwarders`` v datoteki named.bootin kaže na imenski strežnik pri vašem PIS-u) je preprosta. O'Reillyjeva knjiga DNS and Bind vam razloži vse, kar morate vedeti o tem. Na voljo je tudi DNS-HOWTO. Če upravljate majhno omrežje, ki dostopa do Interneta preko vašega računalnika z Linuxom (naprimer z uporabo IP Masquerade), je verjetno dobro, da imate lokalni imenski strežnik. Medtem ko je povezava vzpostavljena, vam bo to prihranilo dosti pretoka in zmanjšalo zastoje povezane z razreševanjem imen. Pravilo omrežnega bontona: vprašajte vašega PIS-a za dovoljenje preden začnete uporabljati sekundarni, predpomnilni imenski strežnik v njegovi domeni. Pravilno konfiguriran imenski strežnik ne bo povzročal težav, toda če ga konfigurirate narobe, jih lahko. 22. Povezava dveh omrežij z uporabo PPP-ja V osnovi ni nobene razlike med povezavo enega samega Linuxa s strežnikom za PPP in povezavo dveh omrežij z uporabo PPP-ja na računalniku na obeh mrežah. Zapomnite si, PPP je istoležni protokol. DEFINITIVNO pa morate vedeti, kako se ureja usmerjanje. Preberite NET-2 howto in NAG. Zelo uporabna je tudi knjiga ,,TCP/IP Network Administration`` (izdana pri založbi O'Reilley - ISBN 0-937175-82-X). Če boste razdelili IP mrežno številko na obe strani povezave (subnetworking), vam bo pomagal osnutek Linux Sub networking mini- HOWTOja . Da bi povezali dve mreži, morate uporabiti drugačne IP mrežne številke (ali dva subneta na isti omrežni številki). Morali boste tudi uporabljati statične IP številke ali IP masquerade. Za slednje poglejte navodila v IP masquerade mini-howto. 22.1. Nastavljanje IP številk Z administratorjem omrežja na drugi strani se dogovorite za IP številke, ki jih boste uporabljali za vsak konec vmesnika PPP. Če uporabljate statične IP številke, boste verjetno morali klicati na posebno telefonsko številko. Sedaj uredite primerno datoteko /etc/ppp/options[.ttyXX]. Dobro je, da imate na vašem koncu določen modem in vrata za to povezavo. Mogoče boste morali spremeniti tudi datoteko /etc/ppp/options in ustvariti primerne datoteke options.ttyXX za ostale povezave. Določite IP številke za vaš konec PPP povezave v primerni options datoteki ravno tako kot je prikazano zgoraj za statične IP številke. 22.2. Nastavitev usmerjanja Vaš računalnik morate prirediti, da bodo paketi na vašem omrežju usmerjeni čez vmesnik, ki ga ustvari PPP povezava. To je dvostopenjski proces. Najprej morate ustvariti pot od računalnika, na katerem teče povezava, do omrežja(-ij) za oddaljenim koncem povezave. Če je to povezava z Internetom, lahok to uredite z privzeto potjo, ki jo ustvari pppd z opcijo ,defaultroute`. Če pa je povezava le med dvema omrežjema, morate ustvariti specifično omrežno pot za vsako omrežje, ki je dosegljivo čez povezavo. To naredite z ukazom ,route` za vsako mrežo v skripti /etc/ppp/ip-up (za navodila glejte razdelek ,,Ko se povezava vzpostavi``). Druga stvar je, da računalnikom na vaši mreži poveste, da je vaš računalnik z Linuxom ,,vozel`` (gateway) za omrežja na drugem koncu PPP povezave. Seveda mora vse to narediti tudi upravitelj omrežja na drugi strani! Ker pa bo on usmerjal pakete v vaše specifične mreže, bo moral ustvariti specifično omrežno pot, ne pa privzeto pot (razen če bo preko vas povezan v Internet). 22.3. Omrežna varnost Če povezujete vaše omrežje z Internetom z uporabo PPP-ja (ali le s ,tujim` omrežjem), morate razmišljati o varnosti. Spodbujam vas, da postavite požarni zid! Morali bi tudi govoriti s skrbnikom vašega omrežja PREDEN se začnete na ta način povezovati z drugimi omrežji ali Internetom. Če tega ne storite, se morda ne bo zgodilo nič, lahko pa si naprtite velike težave! 23. Ko se povezava vzpostavi - /etc/ppp/ip-up skripta Ko se povezava vzpostavi, pppd poišče datoteko /etc/ppp/ip-up. Če ta obstaja in je izvršilna, jo pppd izvrši. To vam omogoča, da avtomatizirate vse posebne usmerjevalne ukaze, ki so morda potrebni, in ostale stvari, katere hočete izvršiti vsakič, ko se povezava vzpostavi. To je le lupinska skripta in lahko naredi karkoli, kar lahko taka skripta naredi (praktično karkoli). Sendmail lahko naprimer odpremi vsa sporočila, ki čakajo v izhodni vrsti. Podobno lahko v to skripto dodate ukaze za prenos pošte, ki čaka pri vašem PIS-u, k vam. Za /etc/ppp/ip-up pa obstajajo nekatere omejitve: * Zaradi povečane varnosti teče v premišljeno omejenem okolju. To pomeni, da morate podati polne poti do datotek ipd. * Tehnično gledano je /etc/ppp/ip-up program, ne skripta. To pomeni, da je lahko direktno izvršena in zato potrebuje na začetku prve vrste (#!/bin/bash) in mora imeti prava dovoljenja (branje in izvrševanje od roota). 23.1. Posebno usmerjanje Če povezujete dve omrežji, boste morali urediti specifične poti do ,tujih` omrežij. To je enostavno narediti z uporabo skripte /etc/ppp/ip-up. Edina težava nastane, če mora vaš računalnik obvladovati več PPP povezav. To je zato, ker je skripta /etc/ppp/ip-up izvršena za VSAKO ppp povezavo, ki se vzpostavi, zato morate previdno izvršiti prave usmerjevalne ukaze za vsako povezavo in ne ko se vzpostavi kakšna druga povezava! 23.2. Ravnanje s poštnimi vrstami Ko se vzpostavi povezava med dvema omrežjema, se hočete verjetno prepričati, da je vsa čakajoča pošta izplaknjena - poslana na svojo pot. To naredite s primernim klicem sendmaila. Z uporabo basheve izjave ,case` na primernem parametru, ki ga pppd poda skripti, se da to urediti. To je skripta /etc/ppp/ip-up, ki jo uporabljam za naše WAN povezave in povezavo z mojim domačim Ethernetom (na istem ppp strežniku). 23.3. Vzorčna /etc/ppp/ip-up skripta Spodnji primer podaja različne primere uporabe. ______________________________________________________________________ #!/bin/bash # # Skripta, ki poskrbi za pppd-jeve usmerjevalne potrebe. # Potrebuje jo le povezava z Newmanom. # # Ko se povezava vzpostavi, se ta skripta zažene s sledečimi parametri # $1 ime vmesnika (npr. ppp3) # $2 ime naprave tty # $3 hitrost naprave tty # $4 lokalni IP naslov za vmesnik # $5 oddaljeni IP naslov # $6 parameter doloŘen z ,ipparam opcijo pppd-ju. # case "$5" in # Poskrbi za usmerjanje do strežnika Newman Campus 202.12.126.1) /sbin/route add -net 202.12.126.0 gw 202.12.126.1 # in izplakni poštno vrsto, da pride pošta čimprej tja! /usr/sbin/sendmail -q & ;; 139.130.177.2) # Naša povezava v Internet # Ko se vzpostavi, zaženi časovni strežnik in sinhroniziraj uro. if [ ! -f /var/lock/subsys/xntpd ]; then /etc/rc.d/init.d/xntpd.init start & fi # Zaženi novičarski strežnik if [ ! -f /var/lock/subsys/news ]; then /etc/rc.d/init.d/news start & fi ;; 203.18.8.104) # Pošlji pošto na moj domači računalnik takoj ko se povezava vzpostavi. # Ne potrebujemo nobenega usmerjanja, ker za moj domači Ethernet skrbi # IP Masquerade in proxyarp. /usr/sbin/sendmail -q & ;; *) esac exit 0 ______________________________________________________________________ Kot rezultat vzpostavitve povezave z našim Newman Campusom in te skripte, imamo sledečo usmerjevalno tabelo (ta računalnik je naš vstopni PPP strežnik IN skrbi za našo povezavo z Internetom). V izhod sem dodal komentarje za boljše razumevanje. ______________________________________________________________________ [root@kepler /root]# route -n Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface # GOSTITELJSKA (HOST) pot do našega oddaljenega internetnega ,vozla` 139.130.177.2 * 255.255.255.255 UH 1500 0 134 ppp4 # GOSTITELJSKA pot do Newman campus strežnika 202.12.126.1 * 255.255.255.255 UH 1500 0 82 ppp5 # GOSTITELJSKA pot do mojega domačega etherneta 203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp3 # dve naši dostopni liniji 203.18.8.64 * 255.255.255.255 UH 552 0 0 ppp2 203.18.8.62 * 255.255.255.255 UH 552 0 1 ppp1 # specifična omrežna pot do omrežja v Newman campusu 202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp5 # pot do lokalnega Etherneta 203.18.8.0 * 255.255.254.0 U 1500 0 1683 eth0 # pot do loopback naprave 127.0.0.0 * 255.0.0.0 U 3584 0 483 lo # privzeta pot v Internet default 139.130.177.2 * UG 1500 0 3633 ppp4 ______________________________________________________________________ 23.4. Ravnanje z elektronsko pošto Prejšnji razdelek je pokazal kako ravnati z izhodno pošto - enostavno z izplakovanjem izhodne vrste ko se vzpostavi povezava. Če imate WAN povezavo, se lahko z skrbnikom oddaljenega omrežja dogovorite, da naredi popolnoma isto stvar. V Newman campusu, na drugem koncu povezave, je /etc/ppp/ip-up skripta taka: ______________________________________________________________________ #!/bin/bash # # Skripta, ki obvladuje usmerjevalne zadeve. # Potrebuje jo le povezava s Hedlandom. # # Ko se povezava vzpostavi, se ta skripta zažene s sledečimi parametri # $1 ime vmesnika (npr. ppp3) # $2 ime naprave tty # $3 hitrost naprave tty # $4 lokalni IP naslov za vmesnik # $5 oddaljeni IP naslov # $6 parameter določen z ,ipparam` opcijo pppd-ju. # case "$5" in 203.18.8.4) /usr/sbin/sendmail -q ;; *) esac exit 0 ______________________________________________________________________ Če pa imate samo dinamično povezavo z vašim PIS-om, morate dobiti vašo pošto z uporabo POP (Post Office Protocola). To lahko uredite s programom popclient, ip-up skripta pa vam lahko to avtomatizira! (op.prev.: uporabite lahko tudi novejši program fetchmail) Enostavno ustvarite /etc/ppp/ip-up skripto, ki vsebuje primeren klic popclienta. Za moj prenosnik, na katerem teče Red Hat Linux (in ga nosim na vsa potovanja), je to ______________________________________________________________________ popclient -3 -c -u hartr -p kepler.hedland.edu.au |formail -s procmail ______________________________________________________________________ Za novice bi lahko uporabili slurp ali kaj drugega, itd. Pomnite, ip- up je le standardna bash skripta in jo lahko uporabite za VSAKO stvar, ki jo hočete narediti vsakič, ko vzpostavite PPP povezavo. 24. Uporaba /etc/ppp/ip-down Ustvarite lahko tudi skripto, ki se bo izvršila, ko se povezava prekine. Imenuje se /etc/ppp/ip-down. Z njo lahko razveljavite vse posebne stvari, ki ste jih naredili v skripti /etc/ppp/ip-up. 25. Usmerjevalne zadeve na lokalnem omrežju Če ste povezani v omrežje, toda bi še vedno radi uporabljali PPP na vašem Linux računalniku, morate urediti nekaj stvari v zvezi s potmi, ki jih morajo paketi ubrati, da bi prišli z vašega računalnika na lokalno omrežje (čez Ethernet vmesnik) in tudi na PPP strežnik in naprej. Ta razdelek vas NE namerava naučiti o usmerjanju. Ukvarja se le z enostavnim, posebnim primerom (statičnega) usmerjanja! Toplo vam priporočam, da preberete Linux Network Administrators Guide (NAG), če NISTE seznanjeni z usmerjanjem. O'Reilleyeva knjiga ,,TCP/IP Network Administration`` pokriva to temo v zelo razumljivi obliki. Osnovno pravilo statičnega usmerjanja je, da naj bo PRIVZETA pot tista, ki kaže na kar NAJVEČ omrežnih naslovov. Za druga omrežja dodajte specifične poti v usmerjevalno tabelo. EDINA situacija, ki jo tukaj pokrivam je ta, kjer je vaš Linux računalnik na lokalnem omrežju, ki ni povezano v Internet, vi pa se hočete povezati z Interentom za vašo osebno rabo medtem ko ste še vedno povezani z omrežjem. Najprej se prepričajte, da je vaša Ethernet pot nastavljena na specifične omrežne naslova, ki so na voljo na vašem lokalnem omrežju - Ne kot privzeta pot! To preverite z ukazom route in videti bi morali nekaj takega: [root@hwin /root]# route -n Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface loopback * 255.255.255.0 U 1936 0 50 lo 10.0.0.0 * 255.255.255.0 U 1436 0 565 eth0 Če vaš Ethernet vmesnik (eth0) kaže na privzeto pot (v prvem stolpcu vrstice eth0 bo pisalo ,,default``), morate spremeniti vaše inicializacijske skripte za Ethernet, da bodo kazale na specifične mrežne številke namesto na privzeto pot (glejte Net2 HOWTO in NAG). To bo dovolilo pppd-ju nastaviti privzeto pot, kot je prikazano: [root@hwin /root]# route -n Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface 10.144.153.51 * 255.255.255.255 UH 488 0 0 ppp0 127.0.0.0 * 255.255.255.0 U 1936 0 50 lo 10.1.0.0 * 255.255.255.0 U 1436 0 569 eth0 default 10.144.153.51 * UG 488 0 3 ppp0 Kot vidite, imamo gostiteljsko pot do PPP strežnika (10.144.153.51) čez ppp0 in tudi privzeto omrežno pot, ki uporablja PPP strežnik kot svoj vozel. Če so vaše usmerjevalne potrebe bolj kompleksne, preberite že omenjene dokumente in se posvetujte s strokovnjakom pri vas. Če vaše lokalno omrežje že ima usmerjevalnike, boste že imeli narejene vozle za širša omrežja dostopna na vašem mestu. ŠE VEDNO bi morala vaša privzeta pot kazati na PPP vmesnik, ostale poti pa bi morale biti za specifična omrežja, katerim služijo. 25.1. Opomba o varnosti Ko nastavite Linux računalnik na vašem lokalnem omrežju za povezavo z Internetom, ste celotno omrežje potencialno odprli Internetu - in tam zunaj živijo crackerji. Preden to storite, preučite NAG in vašo varnostno politiko. Če bo vaša PPP povezava z Internetom uporabljena za uspešen napad na vaše omrežje, si boste prislužili najmanj hudo jezo drugih uporabnikov, mrežnih in sistemskih skrbnikov. Lahko se boste znašli tudi v mnogo hujših težavah! Preden povežete omrežje z Internetom, morate preučiti možne varnostne težave celo DINAMIČNE povezave, zato prejšnji sklic na O'Reilleyevo knjigo ,,Building Internet Firewalls``. 26. Postavitev PPP strežnika Kot je bilo že omenjeno, obstaja mnogo poti za to. Kar je tukaj predstavljeno, je način, kako to dosežem jaz. (z uporabo Cyclades večvratne serijske kartice) in ,,krožnih`` vhodnih telefonskih številk - oglasi se prvi prosti modem) Če vam ta način ni všeč, naredite to po svoje. Vesel pa bi bil, če bi v naslednjih izdajah tega HOWTOja lahko vključil druge metode. Zato mi, prosim, pošljite vaše komentarje in ,recepte`! Prosim pomnite, da ta razdelek skrbi samo za nastavitev Linuxa kot PPP strežnika. Nikoli ne nameravam vključiti napotkov za postavitev posebnih terminalskih in podobnih strežnikov. Poleg tega moram šele eksperimentirati s shadow gesli (ampak bom to enkrat počel). Trenutni napotki torej NE vključujejo kakršnihkoli dodatkov, ki so potrebni za shadow gesla. 26.1. Prevajanje jedra Vsa prejšnja navodila glede prevajanja jedra in verzij jedra ter pppd- ja veljajo tudi tukaj! Ta razdelek predvideva, da ste dokument brali od začetka! Za PPP strežnik MORATE v jedro vključiti IP forwarding. Mogoče želite vključiti tudi druge zmožnosti (kot so IP firewalls, accounting ipd.). Če uporabljate večvratno serijsko kartico, morate seveda vključiti primerne gonilnike zanjo! 26.2. Pregled strežniškega sistema Ponujamo klicne PPP (in SLIP) račune ter lupinske račune z uporabo istega uporabniškega imena in gesla. Za nas to predstavlja prednost, ker uporabnik lahko uporablja en račun za vse vrste povezovanja. Ker smo izobraževalna organizacija, našemu osebju in študentom ne zaračunavamo dostopa, zato nam ni treba skrbeti za obračun stroškov. Med nami in Internetom imamo požarni zid, kar nekaterim uporabnikom omejuje dostop, ker so klicne linije za našim požarnim zidom. (zaradi očitnih razlogov podrobnosti o naših ostalih požarnih zidovih tukaj niso predstavljeni in so nepomembni). Kaj mora uporabnik narediti za vzpostavitev PPP povezave (seveda ko ima račun): * Klicati na našo številko (to je ena sama številka, ki kliče v serijo modemov - prvi prosti modem se oglasi), * Se prijaviti z uporabniškim imenom in geslom, * Na lupinskem pozivu mora vnesti ukaz ppp za zagon PPPja na strežniku, * Pognati PPP na njihovem računalniku (na katerem teče Linux, Windows, MAC OS ali karkoli drugega - to je njihov problem). Strežnik uporablja posamezne datoteke /etc/ppp/options.ttyXX za vsaka vhodna vrata, ki nastavijo IP številko za dinamično dodeljevanje. Strežnik uporablja proxyarp usmerjanje k oddaljenim odjemalcem (nastavljeno z uporabo opcije pppd-ju). To obide potrebo po routed ali gated daemonih. Ko uporabnik prekine povezavo, pppd to zazna in modemu ukaže naj odloži, s tem pa istočasno prekine PPP povezavo. 26.3. Zbiranje programja Potrebovali boste naslednje programje: * Linux, primerno preveden z vključenimi potrebnimi možnostmi, * Jedru primerno verzijo pppd-ja, * ,getty` program za inteligentno ravnanje z modemom, mi uporabljamo getty_ps2.0.7h, toda razmišljamo o mgettyju. Kot sem razumel, mgetty lahko zazna klic, ki uporablja pap/chap (pap je standard za windows 95) in avtomatično zažene pppd, toda to moram šele raziskati. * Delujoč imenski strežnik (DNS), ki je dosegljiv vašim uporabnikom. Res bi morali imeti svoj DNS strežnik, če je mogoče... 26.4. postavitev standardnega (lupinskega) klicnega dostopa Preden lahko postavite PPP strežnik, mora biti vaš računalnik sposoben obvladovanja standardnega klicnega dostopa. Ta HOWTO tega NE pokriva! Oglejte si dokumentacijo gettyja in Serial- HOWTO. 26.5. Priprava PPP options datotek Nastaviti boste morali skupno datoteko /etc/ppp/options, z možnostmi, ki veljajo za vsa klicna vrata. Možnosti, ki jih uporabljamo mi so: ______________________________________________________________________ asyncmap 0 netmask 255.255.254.0 proxyarp lock crtscts modem ______________________________________________________________________ Opomba: mi NE uporabljamo nobenega (očitnega) usmerjanja - še posebej nimamo defaultroute možnosti. Razlog za to je, da je vse kar morate (kot PPP strežnik) narediti to, da usmerjate pakete od ppp odjemalca na vaše omrežje in naprej in jih usmerjate k odjemalcu iz vašega omrežja. Za to je potrebna le gostiteljaska pot do odjemalčevega računalnika in uporaba ,proxyarp` možnosti pppd-ju. Možnost ,proxyarp` nastavi (presenetljivo!) proxy ARP vnos v strežnikovo ARP tabelo, ki v bistvu govori ,,pošlji vse pakete za PPP odjemalca k meni``. To je najlažja pot za usmerjanje k enemu samemu PPP odjemalcu, vendar je ne morete uporabiti za usmerjanje med dvema omrežjema. Za to morate dodati pravilne omrežne poti, ki ne morejo uporabljati proxy ARP-ja. Skoraj gotovo boste želeli ponuditi dinamično dodeljevanje IP številk vašim uporabnikom. To lahko dosežete z dodelitvijo IP številke vsakim vratom. Sedaj ustvarite datoteko /etc/ppp/options.ttyXX za vsaka vrata. V to enostavno vstavite lokalno (strežnikovo) IP številko in IP številko, ki naj se uporabi za ta vrata. Naprimer: ______________________________________________________________________ kepler:slip01 ______________________________________________________________________ zapomnite si, da lahko v tej datoteki uporabljate veljavna imena (ugotovil sem, da si zapomnim samo IP številke najbolj pomembnih računalnikov na mreži - imena so bolj pomenljiva)! 26.6. nastavitev pppd-ja, da ga lahko uporabniki (uspešno) zaženejo Ker postavitev PPP povezave obsega nastavitev jedrne naprave (omrežnega vmesnika) in manipulacijo usmerjevalnih tabel, so potrebne posebne pravice - pravzaprav popolne root pravice. Na srečo je bil pppd ,varno` oblikovan - navaden uporabnik ga lahko poganja z root pravicami. Torej boste morali ______________________________________________________________________ chmod u+s /usr/sbin/pppd ______________________________________________________________________ Ko uporabite ls, bi morala ta datoteka izgledati takole: ______________________________________________________________________ -rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd ______________________________________________________________________ Če tega ne naredite, uporabniki ne bojo sposobni postaviti PPP povezave. 26.7. Nastavitev drugega imena za pppd Da bi poenostavili stvari za naše klicoče PPP uporabnike, smo ustvarili globalni alias (v /etc/bashrc), da en enostaven ukaz požene pppd na strežniku, ko je uporabnik prijavljen. To izgleda kot ______________________________________________________________________ alias ppp="exec /usr/sbin/pppd -detach" ______________________________________________________________________ Kaj to naredi? * exec : to pomeni, da nadomesti delujoči program (v tem primeru lupino) z programom, ki bo pognan. * pppd -detach : zažene pppd in ga NE pošlje v ozadje. To zagotavlja, da ko bo pppd končal z delovanjem ne bo ostal noben proces. Ko se uporabnik tako prijavi, ga bo ,w` zaznal kot ______________________________________________________________________ 6:24pm up 3 days, 7:00, 4 users, load average: 0.05, 0.03, 0.00 User tty login@ idle JCPU PCPU what hartr ttyC0 3:05am 9:14 - ______________________________________________________________________ To je to...Povedal sem vam, da je to preprost, osnoven PPP strežniški sistem! 27. Uporaba PPP-ja preko null modem (direktne serijske) povezave To je zelo enostavno - vmes ni modema, zato so stvari mnogo enostavnejše. Najprej izberite enega od računalnikov za ,strežnik`, nastavite getty na serijskih vratih, tako da lahko preverite povezljivost z minicomom na ,odjemalcu`. Ko to deluje, lahko getty odstranite, RAZEN če želite, da je povezava avtenticirana z uporabo uporabniškega imena in gesla kot zaklicne povezave. Ker imate fizični dostop do obeh računalnikov, bom predvideval, da tega NE potrebujete. Sedaj na strežniku odstranite getty in se prepričajte, da imate serijska vrata na obeh računalnikih pravilno konfigurirana z uporabo ,setserial`. Vse kar morate narediti je, da na obeh računalnikih zaženete pppd. Predvideval bom, da povezava na obeh računalnikih uporablja vrata /dev/ttyS3. Na obeh računalnikih torej vnesemu ukaz: ______________________________________________________________________ pppd -detach crtscts lock : /dev/ttyS3 38400 & ______________________________________________________________________ To bo postavilo povezavo, toda zaenkrat nimate nobenega usmerjanja. Povezavo lahko preverite s ,,pinganjem`` drug drugega. Če to deluje, prekinite povezavo z ,,ubijanjem`` enega od pppd-jev. Usmerjanje, ki ga boste morali urediti je odvisno od tega, kaj hočete. Navadno bo eden od računalnikov povezan z Ethernetom (in naprej), torej bo usmerjanje popolnoma enako kot za PPP strežnik in odjemalec. Na računalniku z Ethernetom bi ukaz pppd izgledal takole: ______________________________________________________________________ pppd -detach crtscts lock proxyarp : /dev/ttyS3 38400 & ______________________________________________________________________ na drugem pa: ______________________________________________________________________ pppd -detach crtscts lock defaultroute : /dev/ttyS3 38400 & ______________________________________________________________________ Če povezujete dve omrežji (s serijsko povezavo!) ali imate bolj zapletene usmerjevalne potrebe, lahko uprabite skripto /etc/ppp/ip-up ravno tako, kot je že bilo omenjeno. 28. Administrativne zadeve 28.1. Licenca Ta dokument se lahko razširja pod pogoji GPL (GNU Public License). 28.2. Razširjanje Ta dokument bo poslan v novičarsko skupino comp-os-linux.answers, kadar bojo na voljo nove verzije. Dostopen je tudi v HTML formatu na: * Linux Howto Index * PPP-HOWTO Prevod PPP-HOWTO-ja v formatu HTML lahko dobite na . Ostali formati (SGML, ASCII, postscript, DVI) so na voljo na Howtoji - ostali formati . Ker je sunsite.unc.edu zelo obremenjen prosimo da uporabljate zrcalni strežnik v vaši bližini (naprimer sunsite.fri.uni-lj.si) 28.3. Obvestila Zmeraj več ljudi mi pomaga pri pripravljanju tega dokumenta. Posebna zahvala Alu Longyearu za razlago PPP-ja samega (če so na tem področju napake, sem jih napravil jaz, ne on), Gregu Hankinsu (vzdrževalec sistema Linux HOWTO) in Debi Tackett (iz MaximumAccess.com) za mnogo predlogov o stilu, vsebini, vrstnem redu in jasnosti razlag. In končno, mnogim ljudem, ki so mi poslali e-pošto s komentarji - hvala. Kot pri vseh avtorjih HOWTO-jev je zadovoljstvo pri pomoči vse plačilo, ki ga prejmemo in je dovolj. S pisanjem tega HOWTO-ja v majhni meri odplačujem dolg, ki ga jaz - in vsi drugi uporabniki Linuxa - dolgujemo ljudem, ki ustvarjajo in vzdržujejo operacijski sistem, katerega smo izbrali. Prevajalec se zahvaljuje ,,razhroščevalcu`` slovenskega prevoda, Romanu Maurerju. Brez njegove pomoči ta prevod ne bi bil to, kar je. Robert Hart Port Hedland, Western Australia Melbourne, Victoria, Australia avgust/oktober 1996 januar/marec 1997 prevedel: Borut Mrak 7. avgust 1998 zadnji popravek: 15. avgust 1998