Sunteți pe pagina 1din 25

Cap. 1.

Introducere n reele;
Cuprins
Reele TCP/IP
Codul de Networking
Intreinerea sistemului
Privire general peste capitolele urmtoare
Reele TCP/IP
Alte tipuri de hardware
In retelele mari, cum este cea a Universitatii Grouco !ar", de o#icei nu se $olosesc numai
ecipamente %ternet& 'a Grouco !ark" Universit(, ')N*ul $iecarui departament este legat
la magistrala campusului, care este un ca#lu de $i#ra optica pe care rulea+a ,--I .,i#er
-istri#uted -ata Inter$ace/& ,--I $oloseste o a#ordare cu totul di$erita de transmitere a
datelor care presupune in esenta trimiterea unui numar de tokenuri, iar o statie de lucru poate
trimite un $rame numai daca capturea+a un token& Principalul avanta0 al ,--I este vite+a de
pina la 122*!#ps si lungimea ma"ima a ca#lului de 322 km&
Pentru legaturile la distante $oarte mari, ecipamentele $olosite cel mai $recvent se #a+ea+a pe
standardul 4&35& !ulte retele pu#lice numite Pu#lic -ata Networks o$era acest serviciu, cum
sunt T(mnet in 6U), sau -ate"*P in Germania& 4&35 necesita un ecipament special, un
Packet )ssem#ler/-isassem#ler sau P)-& 4&35 de$ineste un set de protocoale proprii, dar in
general este $olosit la legarea retelelor TCP/IP sau a altor tipuri de retele& -in moment ce
pacetele IP nu pot $i trimise ca atare prin 4&35 .si viceversa/, pacetele IP sunt intii
incapsulate in pacete 4&35 si de*a#ia apoi trimise prin retea
-e o#icei radio amatorii isi $olosesc ecipamentele si la legarea in retea a calculatoarelor7
ecipamantele se numesc packet radio sau am radio& Protocolul $olosit este )4&35, si are la
origine 4&35&
8 alta modalitate este $olosirea liniilor seriale pentru dial*up, linii care, desi lente, sunt ie$tine&
Pentru transmiterea pacetelor se $olosesc protocoalele 6'IP sau PPP, care vor $i descrise
putin mai incolo&
Protocolul Internet
9ine*nteles, nu este de dorit ca o retea sa $ie limitata la o singura retea %ternet& Ideal ar $i ca
o retea sa $unctione+e la $el indi$erent de ardware, si de asemenea sa nu conte+e din cite
su#unitati este constituita& -e e"emplu, in retelele mari cum este cea de la Grouco !ar"
Universit(, e"ista de o#icei mai multe retele %ternet separate care tre#uie conectate& 'a
G!U, departamentul de matematica $oloseste doua retele %ternet separate: o retea de
calculatoare rapide pentru pro$esori si a#solventi, si o retea de calculatoare lente pentru
studenti& )m#ele sunt legate la magistrala ,--I a campusului&
)ceasta legatura este controlata de un ost special destinat, asa*numitul gatewa(, care
gestionea+a tra$icul pacetelor intre cele doua retele %ternet si magistrala& -e e"emplu, daca
sunteti la departamentul de matematica si vreti sa accesati ostul ;uark din reteaua
departamentului de $i+ica, so$tware*ul de retea nu poate trimite pacetele direct catre ;uark
deoarece este intr*o alta retea& -e aceea, gatewa(*ul tre#uie sa indeplineasca $unctia de
$orwarding .trimiterea mai departe a pacetelor destinate altei retele/& Gatewa(*ul .numit
sopus/ trimite pacetele catre gatewa(*ul perece niels prin intermediul magistralei, iar niels
le depune la destinatie& ,lu"ul datelor intre erdos si ;uark este ilustrat in $igura ,ig& 1*1
Fig. 1-1. Cei trei pasi ai triiterii unei datagrae de la erdos la !uar".
)ceasta scema de redirectare a datelor catre remote ost se numeste routing, iar pacetele
sunt numite in acest conte"t datagrame& Pentru simpli$icare, tra$icul de datagrame este
guvernat de un singur singur protocol, independent de ardware*ul $olosit: IP, sau Internet
Protocol& In capitolul Cap& 3, vom a#orda mai in detaliu protocolul IP si routarea&
Principalul avanta0 al IP*ului este ca trans$orma retele di$erite din punct de vedere al
ardware*ului intr*o retea aparent omogena, de tip internet& Tre#uie o#servata di$erenta su#tila
dintre o retea internet and Internet& <Internet< este numele o$icial al unei anumite retele
glo#ale de tip internet&
9ine*nteles, IP necesita o scema de adresare independenta de ardware& )ceasta se
reali+ea+a prin alocarea unui numar de =3 de #iti $iecarui ost, numar numit adresa IP&
)dresele IP se scriu de o#icei ca un set de patru numere de cite > #iti, separate prin puncte& -e
e"amplu, ;uark ar putea avea adresa IP 2"?5@C2C2@, care se poate scrie 1@?&AB&13&@& )cest
$ormat este numit <dotted ;uad notation<&
Ceti o#serva ca acum avem trei tipuri di$erite de adrese: ostname*urile . cum e ;uark /, apoi
adresele IP, si in $inal adresele ardware .cum sunt adresele %ternet de B #(tes/& Toate
tre#uie sa se potriveasca, ast$el incit daca introduceti rlogin ;uark, so$tware*ul de retea sa
poata o#tine adresa IP a lui ;uark7 iar cind datele a0ung in reteaua departamentului de $i+ica,
tre#uie cumva determinata adresa %ternet care corespunde adresei IP& )ceasta poate produce
o oarecare con$u+ie&
Nu vom intra in detalii ciar acum, ci un pic mai incolo, in capitolul Cap& 3& -eocamdata este
su$icient sa retineti ca e"ista doi pasi ai regasirii adreselor : hostname resolution
.determinarea adresei IP corespun+atoare unui ostname/ si address resolution .gasirea
adresei ardware care corespunde adresei IP/&
Protocolul IP peste liniile seriale
In ca+ul liniilor seriale cel mai adesea se $oloseste standardul 6'IP .6erial 'ine IP/& 8
varianta a 6'IP*ului este C6'IP .compressed 6'IP/ care reali+ea+a o compresie a eaderelor
IP pentru a $olosi cit mai e$icient liniile seriale cu o latime de #anda relativ mica& Un alt
protocol serial este PPP, sau Point*to*Point Protocol& PPP are multe optiuni in plus $ata de
6'IP, legatura inclu+ind si o $a+a de negociere& Principalul avanta0 $ata de 6'IP este acela ca
nu este limitat la transportul datagramelor IP, ci a $ost proiectat sa permita transmiterea si a
altor tipuri de datagrame&
Protocolul de Control al Transisiei #TCP$
Trimiterea datagramelor de la un ost la altul nu este singura pro#lema& -aca va logati la
;uark, doriti #ine*nteles ca legatura sa $ie sigura intre procesul rlogin de pe erdos si sell*ul de
pe ;uark& In$ormatiile trans$erate tre#uie sa $ie impartite in pacete de catre e"peditor si
reasam#late la loc la destinatie& -e*ti pare #anal, aceasta presupune o serie de operatii
stu$oase&
%ste important de stiut ca IP nu este, prin conceptie, un protocol sigur& 6a +icem ca +ece useri
de pe reteaua locala incep sa*si copie+e de pe serevrul ,TP de la G!U ultima versiune de
4,ree>B& Tra$icul ast$el generat s*ar putea sa $ie prea mare pentru gatewa(, deoarece acesta
poate sa $ie prea lent sau sa nu ai#a memorie su$icienta& -aca in aceste conditii trimiteti un
pacet catre ;uark, sopus poate sa nu ai#a in acel moment spatiu in #u$$er si sa nu poata
retransmite pacetul& IP re+olva acesta pro#lema simplu: leapada pacetul, care este
iremedia#il pierdut& Responsa#ilitatea de a veri$ica integritatea datelor si de a le retransmite in
ca+ de eroare cade tot in sarcina so$tware*ului de retea&
)cesta $unctie este indeplinita de un alt protocol : TCP, sau Transmission Control Protocol,
care reali+ea+a un serviciu sigur pe #a+a lui IP& Caracteristica esentiala a TCP este aceea ca
$oloseste IP pentru a crea ilu+ia unei cone"iuni simple intre procesul local si cel de pe remote
ost, ast$el ca nu mai tre#uie sa va intre#ati cum si pe unde trec datele& 8 cone"iune TCP este
in esenta ca o conducta .pipe/ #idirectionala la care procesele scriu si de la care citesc& 6e
aseamana cu o convor#ire tele$onica&
Protocolul TCP identi$ica cele doua capete ale cone"iunii cu a0utorul adreselor IP ale celor
doua ost*uri si al asa*numitelor port*uri $olosite pe $iecare ost& 8rice cone"iune de retea se
leaga la un ost prin intermediul unui port& -aca vom continua analogia cu convor#irea
tele$onica, putem compara adresele IP cu pre$i"ele tele$onice si porturile cu numerele de
tele$on&
In e"emplul cu rlogin, aplicatia client .rlogin/ descide un port la erdos si se conectea+a la
;uark $olosind portul 51= pe care <asculta< serverul rlogind& )st$el se reali+ea+a o cone"iune
TCP& Pe #a+a acestei cone"iuni rlogind veri$ica mai intii numele si parola, iar apoi lansea+a in
e"ecutie sell*ul& Intrarea si iesirea standard a sell*ului sunt redirectate prin cone"iunea TCP,
ast$el ca orice se introduce de la ostul local se transmite prin cone"iune si a0unge ca intrare
standard pentru sell&
Protocolul %atagrae &tili'ator #&%P$
TCP nu este singurul protocol $olosit in retelele TCP/IP -esi este potrivit pentru aplicatii ca
rlogin, pentru altele . de e"emplu N,6/ se dovedeste a $i ine$icient& In aceste ca+uri este
$olosit un protocol perece al TCP*ului, numit U-P, .de la User -atagram Protocol/& 'a $el ca
TCP, U-P permite unei aplicatii sa contacte+e un serviciu de pe un anumit port al remote
ostului, insa nu crea+a o legatura permanenta, ci permite trimiterea unui singur pacet catre
serviciul destinatie ** de unde si numele sau&
6a +icem ca ati montat ieraria de directoare ale lui Te4 de pe serverul N,6 central al
departamentului, galois, si ca vreti sa cititi un document care descrie cum se $oloseste 'aTe4&
Intrati intr*un editor care initial incarca tot $isierul& 6ta#ilirea unei cone"iuni TCP cu galois,
trimiterea $isierului, si terminarea cone"iunii ar dura prea mult timp, si atunci se trimite o
cerere catre galois care trimite $isierul intr*un set de pacete U-P * ceea ce durea+a mult mai
putin& U-P nu a $ost gindit sa veri$ice pierderea sau coruperea pacetelor, asa ca aplicatia .in
ca+ul acesta N,6/ tre#uie si se descurce singura&
(ai ulte despre porturi
Porturile pot $i vi+uali+ate ca puncte de atasare ale cone"iunilor de retea& -aca o aplicatie
o$era un anumit serviciu, se atasea+a la un port si asteapta clienti .asta se numeste <ascultarea<
portului * listening/& Un client care vrea sa $olosesca serviciul aloca un port de pe local ost si
se conectea+a la portul serverului de pe remote ost&
8 proprietate importanta a porturilor este ca odata ce s*a $acut cone"iunea dintre client si
server, o alta copie a serverului se poate atasa la port si poate primi noi clienti& )ceasta
permite de pilda mai multe rlogin*uri la acelasi ost, toate $olosind portul 51=& TCP poate
distinge aceste cone"iuni dupa ost*ul de la care provin& -e e"emplu, daca se $ac doua
conectari la ;uark de la erdos, primul client rlogin $oloseste, sa +icem, portul local 123= iar al
doilea portul 1233& )m#ele se vor conecta insa la acelasi port 51= de pe ;uark&
)cest e"emplu arata $olosirea porturilor ca puncte de intilnire unde clientul contactea+a un
anumit port pentru a o#tine un anumit serviciu& Pentru ca un client sa stie portul corect, este
nevoie de o intelegere intre administratorii am#elor sisteme& Pentru serviciile $olosite pe scara
larga, ca rlogin, numerele porturilor tre#uie administrate central& )cest lucru il $ace I%T,
.Internet %ngineering Task ,orce/, care lansea+a periodic un R,C intitulat )ssigned Num#ers
in care sunt descrise, printre altele, porturile alocate serviciilor $olosite $recvent& 'inu"
$oloseste un $isier de mapare a serviciilor cu numerele porturilor : /etc/services& )cest $isier
este descris in sectiunea
-esi atit cone"iunile TCP cit si cele U-P de #a+ea+a pe aceleasi porturi, nu se crea+a nici un
con$lict intre ele& )st$el, de e"emplu portul TCP 51= este di$erit de portul U-P 51= si
corespund unor servicii di$erite : rlogin .51=/TCP/ si rwo .51=/U-P/&
)i*lioteca +oc"et
'a cele mai multe sisteme de operare, so$tware*ul care reali+ea+a toate $unctiile legate de
retea este inclus in kernel, si la $el se intimpla si in ca+ul 'inu"*ului& Inter$ata de programare
cel mai des intilnita pe plan mondial este 9erkele( 6ocket 'i#rar(& Numele provine din
analogia porturilor cu niste mu$e .socketDmu$a,$asung,racord/ la care se racordea+a
cone"iunile de retea& 9i#lioteca 6ocket pune la dispo+itie call*ul #ind.3/ pentru a speci$ica
remote ost*ul, protocolul de transport si un serviciu la care se poate conecta un program sau
pe care poate <asculta< .$olosind connect.3/, listen.3/, si accept.3//& 9i#lioteca socket are un
caracter mai general, deoarece nu contine doar clasa de #a+a pentru TCP/IP*#ased sockets
.socket*urile ),EIN%T /, ci si o clasa pentru cone"iunile cu local ost*ul .clasa ),EUNI4/&
Unele implementari mai includ si alte clase, protocolul 4N6 .4ero" Networking 6(stem/, sau
4&35&
In ca+ul de $ata, #i#lioteca socket $ace parte din #i#lioteca standard li#c& )cum suporta numai
socket*urile ),EIN%T si ),EUNI4, dar se $ac e$orturi in directia suportarii protocoalelor
Novell, asa ca in $inal vor mai $i adaugate citeva clase&
Codul de ,etwor"ing
,iind re+ultatul muncii a multor programatori din intreaga lume, sistemul de operare 'inu" n*
ar $i putut $i reali+at $ara reteaua glo#ala& )st$el nu are de ce sa ne surprinda $aptul ca inca de
la inceput s*a muncit la capacitatea sistemului de operare de a lucra in retea& 8 implementare
UUCP a $unctionat ciar de la inceput, iar lucrul la suportul de TCP/IP a inceput in toamna
anului 1??3, cind Ross 9iro si altii au creat ceea ce acum se cunoaste su# numele de Net*1&
-upa ce Ross si*a incetat participarea activa in mai 1??=, ,red van Fempen a inceput munca
la o noua implementare, rescriind partile principale ale codului& %$ortul sau s*a materiali+at in
versiunea Net*3& Prima lansare pu#lica a avut loc in vara anului 1??3 .odata cu kernelul
2&??&12/, iar apoi codul a $ost intretinut si e"tins de mai multi, printre care )lan Co",
versiunea re+ultata $iind denumita Net*3-e#ugged& -upa numeroase im#unatatiri si depanari,
codul si*a scim#at numele in Net*= dupa lansarea kernelului 1&2 & )ceasta este dealt$el
versinea inclusa in kernelurile o$iciale&
Net*= o$era drivere pentru o gama larga de placi %ternet, pentru 6'IP .destinat utili+arii
liniilor seriale/ si pentru P'IP .pentru liniile paralele/& Net*= vine cu o implementare TCP/IP
care se comporta $oarte #ine in retelele locale .')N/& -e+voltarea actuala se indreapta catre
sta#ili+area necesara pentru a putea $i rulat pe osturi Internet&
Pe linga aceste $acilitati mai e"ista si alte proiecte& Un driver pentru PPP .point*to*point
protocol, o alta modalitate pentru $olosirea liniilor seriale/, este acum in $a+a 9eta, iar driverul
)4&35 pentru am radio este in $a+a )lpa& )lan Co" a mai implementat un driver pentru
protocolul IP4 de la Novell, insa e$ortul de a reali+a un set de programe pentru
compati#ilitatea cu retelele Novell stagnea+a deocamdata din cau+a companiei Novell care nu
pune la dispo+itie documentatia necesara& Un alt proiect promitator este sam#a, un server
Net9I86 pentru UnG", scris de )ndrew Tridgell&
%i-erite linii de de'.oltare
Intre timp, ,red si*a continuat munca, a0ungind la versiunea Net*3e care se caracteri+ea+a
printr*un design mult im#unatatit al inter$etei de programare& )cum, in momentul in care scriu
aceasta documentatie, Net*3e este inca in $a+a 9eta& Una dintre cele mai interesante noutati cu
care vine Net*3e este incorporarea --I*ului . -evice -river Inter$ace /& --I permite o
metoda uni$orma de acces si de con$igurare a tuturor driverelor si a protocoalelor de retea&
8 alta implementare TCP/IP a $ost reali+ata de catre !attias Urlics, care a scris un driver
I6-N pentru 'inu" si ,ree96-& %l a inclus in kernel o parte din codul de networking al 96-*
ului&
-eocamdata se poate prevedea ca Net*= va continua sa $ie $olosit inca mult timp de*acum
incolo& )lan lucrea+a la implementarea protocolului )4&35 $olosit de catre radioamatori& ,ara
indoiala, introducerea suportului pentru module va imprima un nou impuls codului de
networking& !odulele vor permite incarcarea driverelor din mers .la run*time/&
-esi aceste implementari di$erite ale codului de networking o$era aceleasi servicii, e"ista
di$erente ma0ore intre ele la nivelul kernelului si al driverelor& -e accea un sistem pe care
rulea+a un kernel cu Net*3e nu poate $i con$igurat si $olosit cu utilitarele destinate versiunii
Net*3d sau Net*=& )ceasta se aplica numai pentru comen+ile care $olosesc indeaproape
anumite particularitati ale kernelului7 aplicatiile si comen+ile o#isnuite .ca rlogin sau telnet/
$unctionea+a indi$erent de implementare&
Cu toate acestea, toate aceste versiuni di$erite ale codului de networking n*ar tre#ui sa va
nelinisteasca& -aca nu participati activ la de+voltarea de cod, nu va $aceti pro#leme in
legatura cu ce versiune de TCP/IP $olositiH Fernelurile lansate o$icial vor $i insotite
intotdeauna de un set de utilitare compati#ile cu codul de networking inclus&
%e unde se poate o*tine codul
Ultima versiune a codului de retea poate $i o#tinuta prin anon(mous ,TP de pe numeroase
site*uri& 6ite*ul ,TP o$icial pentru Net*= este sunacm&swan&ac&uk, al carui mirror se poate gasi
la sunsite& Ultimul kit Net*3e patc si e"ecuta#ilele sunt disponi#ile la $tp&aris&com& Codul
derivat pentru 96- al lui !attias Urlic se poate lua de aici&
Ultimele kerneluri se gasesc aici7 sunsite and ts"*11&mit&edu au mirror*uri ale acestui director&
Intreinerea sisteului
Pe tot cuprinsul acestei cri ne vom ocupa In principal cu cestiuni de instalare Ji
con$igurare& )dministrarea sistemului const din mult mai mult decKt atKt& -up con$igurarea
unui anumit serviciu, tre#uie s*l inei In $unciune& Pentru cele mai multe servicii $oarte
puin munc este necesar, Ins unele servicii, ca de e"emplu serviciile de LLLmailLLL Ji
de LLLnewsLL, necesit e"ecutarea unor aciuni de rutin pentru a ine sistemul la +i& Com
discuta aceste aciuni In capitolele ce vor urma&
!inimul a#solut In Intreinerea sistemului este veri$icarea regulat de erori Ji de evenimente
neo#iJnuite a $iJierelor log ale aplicaiilor& ,oarte practic este s scriei niJte scripturi
administrative Ji s le rulai din cron periodic& -istri#uia surs a unora din aplicaiile ma0ore,
ca de e"emplu LLLsmailLLL sau LLLC*NewsLLL, conin asemenea scripturi& Tot ce v rmKne
de $cut este s le adaptai nevoilor Ji pre$erinelor dumneavoastr&
IeJirea oricrui 0o# cron va $i trimis prin mail ctre un cont administrativ& Implicit, multe
aplicaii vor trimite rapoarte de eroare sau statistici despre utili+are ctre contul de root&
)ceasta are sens numai dac v logai ca root $recvent7 o idee mult mai #un este s retrimitei
mail*ul root*ului catre contul personal prin crearea unui alias, aJa cum este descris In capitolul
LLL&
Ins oricKt de atent va*i con$igurat sistemul, legile lui !urp( garantea+ c vor aprea
pro#leme& )st$el administrarea unui sistem Inseamn Ji disponi#ilitatea pentru plKngeri& -e
o#icei utili+atorii se aJteapt ca administratorul de sistem s $ie de gsit prin mail ca Ji root,
dar sunt Ji alte adrese care sunt $olosite pentru a a0unge la persoane responsi#ile cu di$erite
aspecte ale administrrii& -e e"emplu, plKngerile despre $uncionarea incorect a serviciului
de mail vor $i trimise de o#icei ctre postmaster7 iar pro#lemele cu serverul de news vor $i
trimise ctre newsmaster sau Usenet& !ail*ul ctre ostmaster va tre#ui redirecionat ctre
persoana care se ocup cu servicile de reea de #a+ sau de serviciul -N6 dac rulai un server
de nume .name server/&
+ecuritatea sisteului
Un aspect $oarte important al administrrii sistemului dintr*o reea este prote0area lui de
intruderi& 6istemele administrate neatent o$er ruvoitorilor multe inte: atacurile merg de la
gicirea parolei pKn la <spionarea< pacetelor dintr*o reea %ternet Ji pagu#ele cau+ate de
aceste atacuri merg de la date pierdute la violarea intimitii utili+atorilor& Com meniona
unele pro#leme particulare cKnd vom discuta conte"tul In care pot aprea Ji, In unele ca+uri,
posi#ile aprri Impotriva acestor atacuri&
In aceast seciune vom discuta cKteva e"emple Ji tenici de #a+ re$eritoare la securitatea
sistemului& -esigur, discuia nu poate trata toate pro#lemele legate de securitate pe care le
putei Intlni7 ea $oloseJte mai degra# la ilustrarea pro#lemelor ce pot aprea& )st$el este
a#solut necesar citirea unei cri #une despre securitate In special pentru un sistem a$lat In
reea& Cartea lui 6imon Gar$inkel, <Practical UNI4 6ecurit(< este recomandat&
6ecuritatea sistemului porneJte de la o #un administrare a lui& )ceasta include veri$icarea
proprietarului Ji permisiunilor pentru toate $iJierele Ji directoarele vitale, monitori+area
$olosirii conturilor privilegiate, etc& Programul C8P6, de e"emplu, v va veri$ica sistemul de
$iJiere precum Ji $iJierele de con$igurare cele mai comune& -e asemenea este recomanda#il s
o#ligai utili+atorii s*Ji sete+e parole cKt mai greu de gicit& -e e"emplu programul u+ual
pentru scim#area parolei cere ca parola s ai# cel puin cinci caractere Ji s conin atKt
litere cKt Ji ci$re sau caractere speciale&
CKnd $acei un serviciu accesi#il prin reea, asigurai*v c Ii dai cel mai mic privilegiu, adic
c nu Ii permitei s $ac lucruri ce nu*i sunt necesare pentru a $unciona aJa cum tre#uie& -e
e"emplu n*ar tre#ui s $acei e"ecuta#ile setuidateLLL root decKt cKnd este neaprat necesar&
-e asemenea, dac vrei s utili+ai un serviciu pentru o aplicaie $oarte limitat, nu e+itai s*l
con$igurai cKt mai restrictiv cu putin& -e e"emplu dac avei maJini $r disk In reea Ji
vrei s le lsai s #oote+e de pe maJina dumneavoastr, tre#uie s $olosii serviciul T,TP
.trivial $ile trans$er protocol/ ast$el IncKt clienii s poat descrca $iJierele de con$igurare de
#a+ din directorul /#oot& Ins, cKnd nu este restricionat, T,TP lasK orice utili+ator din lume
s descarce orice $iJier cu drept de citire& -ac nu vrei aceasta, de ce s nu restricionai
serviciul T,TP numai la directorul /#ootL
In aceeaJi ordine de idei, e #ine s restricionai anumite servicii la utili+atori de pe anumite
maJini, de e"emplu din reeaua local& In capitolul LLL, vom introduce tcpd care $ace acest
lucru pentru o mulime de aplicaii de reea&
)lt punct important este s evitai aplicaiile <periculoase<& -esigur, orice aplicaie poate $i
periculoas, deoarece poate avea <scame< pe care oamenii deJtepi le pot e"ploata pentru a
cpta acces la sistemul dumneavoastr& 'ucruri ca acestea se IntKmpl Ji nu e"ist protecie
complet Impotriva lor& )ceast pro#lem a$ectea+ atKt so$tware*ul li#er cKt Ji so$tware*ul
comercial& Ins programele care necesit privilegii sporite sunt mai periculoase decKt celelalte
din cau+K cK orice scam poate avea e$ecte drastice& -ac instlai un program pentru reea,
setuidat, $ii de dou ori mai atent c nu v scap nimic de la documentaie, ast$el IncKat s nu
creai o niJ de securitate din greJeal&
Nu putei Jti niciodat dac precauiile dumneavoastr vor da greJ indi$erent de cKt de atent ai
$ost& Ceri$icarea regulat a logurilor este un punct #un de plecare, dar intruderul este pro#a#il
su$icient de deJtept IncKt s cread orice urm& Ins, e"ist unelte ca tripwireLLL care v
permit s veri$icai $iJierele vitale pentru a vedea dac coninutul Ji permisiunile s*au
scim#at& Tripwire calculea+ di$erite sume de control pentru aceste $iiere Ji le pstrea+
Intr*o #a+ de date& In timpul rulrilor succesive, sumele de control sunt recaluclate Ji
comparate ce cele pstrate pentru a detecta orice modi$icare&
Pri.ire general/ peste capitolele ur/toare
Capitolele urmtoare se vor ocupa cu con$igurarea 'inu"*ului pentru reele TCP/IP Ji cu
con$igurarea unor aplicaii ma0ore& Inainte s7 ne murdrim minile cu editarea $iJierelor Ji
alte cestii asem7ntoare, vom e"amina, In Cap& 3, mai cu atenie, protoculul IP& -ac Jtii
de0a cum $uncionea+ routarea IP Ji cum se $ace gsirea adreselor, putei sri direct la
capitolul urmtor&
Capitolul se ocup cu con$igurrile de #a+, ca de e"emplu compilarea unui kernel Ji
con$igurarea plcii %ternet& Con$iguraia porturilor seriale este tratat Intr*un capitol separat,
din cau+ c discuia nu se aplic numai reelelor TCP/IP dar este relevant pentru UUCP&
Capitolul se ocup cu con$igurarea unei maJini pentru o reea TCP/IP& %l conine in$ormaii
pentru instalarea unor ga+de $r reea e"terna Ji a unor ga+de conectate la o reea %ternet&
)cesta este urmat de dou capitole care v inva cum s $olosii 6'IP Ji PPP& Capitolul Cap&
= e"plic cum s sta#ilii o cone"iune 6'IP Ji v o$er re$erine detaliate despre dip, o unealt
care v permite s automati+ai cei mai muli paJi& Capitolul Cap& @ acoper PPP Ji pppd,
demonul PPP de care vei avea nevoie&
Capitolul v o$er o scurt introducere In con$igurarea celor mai importante aplicaii pentru
reea precum rlogin,rcp, etc& -e asemenea se discut serviciile ce sunt manevrate de
superserverul inetd Ji cum putei restriciona anumite servicii&
Capitolul v o$er in$ormaii preioase despre administrarea programului Ta(lor UUCP care
este o implementare $ree a suitei UUCP&
Restul crii se ocup cu un studiu detaliat al poJtei electronice si al serviciului de Jtiri&
Capitolul introduce conceptele de #a+ ale poJtei electronice precum $orma unei adrese de
mail Ji cum $uncionea+ sistemul $urni+rii e*mailurilor ctre destinaie&
Capitolele Ji acoper con$igurarea programelor smail Ji sendmail& )ceast carte le e"plic pe
amKndou deoarece smail e mai uJor de instalat pentru Inceptori In vreme ce sendmail este
mai $le"i#il&
Capitolele Ji e"plic $elul cum Jtirile sunt manevrate un Usenet Ji cum putei instala Ji $olosi
C*news, un pacet so$tware popular pentru manevrarea Jtirilor Usenet& Capitolul acoper pe
scurt con$igurarea demonului NNTP pentru a $acilita accesarea Jtirilor din reeau
dumneavoastr local& In s$KrJit, capitolul v Inva cum s con$igurai Ji s Intreinei di$erite
programe de citit Jtiri&
Cap. 0. Ideile principale pentru reelele
TCPIP
Cuprins
Inter$ee de reea
)drese IP
Cutarea adreselor
Rutarea IP
Com intra acum in amanuntele de care vei avea nevoie cKnd v vei conecta calculatorul la o
reea TCP/IP& )st$el vom discuta despre adrese IP, nume de ga+d precum vom discuta Ji
cKteva cestii despre rutare& )cest capitol v va o$eri in$ormaiile de #a+ de care avei nevoie
pentru a Inelege con$iguraia pe care dorii s o reali+ai, In timp ce capitolele urmtoare se
vor ocupa de instrumentele necesare pentru reali+area con$iguraiei dorite&
Inter-ee de reea
Pentru a ascunde diversitea ecipamentelor ce pot $i $olosite intr*o reea, TCP/IP de$ineJte o
inter$a a#stract prin care sunt accesate dispo+itivele $i+ice .ardware/& )ceast inter$aa
o$er o mulime de operaii care sunt identice pentru toate tipurile de dispo+itive $i+ice Ji care
In principal se ocup cu primirea Ji trimiterea pacetelor&
,iecrui dispo+itiv peri$eric pe care vei vrea s*l $olosii pentru reea, Ii va corespunde o
inter$a in nucleu& -e e"emplu inter$eele %ternet se numesc et2 Ji et1 iar inter$eele 6'IP
se numesc sl2, sl1, etc& )ceste nume de inter$ee sunt $olosite pentru con$igurare, Ji anume
atunci cKnd vei vrea s v re$erii la un dispo+itiv $i+ic particular& %le nu au nici o
Insemntate mai presus de aceasta&
Pentru a putea $i $olosit intr*o reea TCP/IP, o inter$aa tre#uie s ai# asociat o adres IP
care $oloseJte pentru identi$icarea inter$eei respective cKnd comunic cu restul lumii& )ceast
adres este di$erit de numele inter$eei pe care l*am menionat adineauri7 dac comparm o
inter$a cu o uJ, atunci adresa ei este ca plcua cu numele lipit pe ea&
-esigur sunt Ji ali parametri ai dispo+itivului care pot $i setai7 unul dintre aceJtia este
mrimea ma"im a unei datagrame ce poate $i procesat de un anumit dispo+itiv ardware,
care se mai numeJte Ji !TU .!a"imal Trans$er Unit/& Com introduce mai tKr+iu Ji alte
caracteristici ale dispo+itivelor de reea&
Adrese IP
Precum am menionat In capitolul precedent, adresele $olosite In protocolul IP sunt numere pe
=3 de #ii& ,iecare maJon tre#uie s ai# un numr unic& -ac avei o reea local ce nu are
cone"iune TCP/IP cu alte reele putei s v alegei numere dup cum dorii& Ins, pentru
maJini legate la Internet, numerele sunt date de ctre o organi+aie central, Ji anume NIC
.Network In$ormation Center/&
Pentru citirea mai uJoar, adresele IP sunt Imprite In patru numere de > #ii numite octei&
-e e"emplu, ;uark&p(sics&grouco&edu are adresa IP 2"?5@C2C2@ care este scris ca
1@?&AB&13&@& )cest $ormat este deseori numit LLLLdotted ;uad notationLLLLL&
)lt motiv pentru care se $oloseJte aceast notaie este c adresele IP sunt Imprite in numere
de reea, care sunt coninute in octeii din $a, Ji numere de ga+de, care repre+int restul&
CKnd cerei de la NIC adrese IP, nu vei o#ine cKte o adres pentru $iecare ga+d pe care vei
vrea s o $olosii ci vei o#ine un numr de reea Ji vei putea $olosi toate adresele IP valide In
cadrul acestui reele&
In $uncie de dimensiunea reelei, partea din adresa IP care repre+int numrul de ga+d .ost
num#er/ poate $i mic sau mare& Pentru di$eritele nevoi, e"ist cKteva clase de reele, de$inind
di$erite impriri ale adreselor IP:
Clasa ) cuprinde reelele de la 1&2&2&2 pKn la 13A&2&2&2& Numrul de reea este
coninut In primul octet& )ceasta o$er un 3@ de #ii pentru numrul ga+dei, permind
In 0ur de 1,B milioane de ga+de&
Clasa 9 conine reelele de la 13>&2&2&2 pKna la 1?1&355&2&27 numrul de reea este In
primii doi octei& )ceasta permite 1B=32 reele cu cKte B523@ ga+de $iecare&
Clasa C conine reelele de la 1?3&2&2&2 pKn la 33=&355&355&2 cu numrul de reea
$iind coninut In primii trei octei& )ceasta permite e"istena a aproape 3 milioane de
reele cu cKte 35@ de ga+de $iecare&
Clasele -,% Ji , conin adrese Intre 33@&2&2&2 pKna la 35@&2&2&2 Ji sunt $ie
e"perimentale $ie sunt re+ervate pentru viitor Ji nu speci$ic nici o reea&
-ac ne Intoarcem la e"emplul din capitolul precedent, vedem c 1@?&AB&13&@, adresa lui
;uark, este o adresa de clas 9&
Poate c ai o#servat c nu toate valorile din listele de mai sus se puteau $olosi ca adrese de
ga+de& )ceasta este pentru c numerele de ga+de cu toi octeii 2 sau 355 sunt re+ervate pentru
scopuri speciale& 8 adres unde toate prile corespun+toare ga+dei sunt +ero se numeJte
adres de reea iar dac toate prile corespun+toare ga+dei sunt 1 se numeJte adres
#roadcastLLLL& )ceasta din urm se re$er simultan la toate ga+dele dintr*o anumit reea&
)st$el 1@?&AB&355&355 nu este o adres de ga+d valid, dar se re$er la toate ga+dele reelei
1@?&AB&2&2&
%"ist dou adrese de reea ce sunt re+ervate, Ji anume 2&2&2&2 Ji 13A&2&2&2& Prima se numeJte
ruta implicit (default route), iar cea din urm se numeJte adresa loop#akLLLL& Ruta implicit
are legtur cu $elul In care IP*ul rutea+ datagramele, despre care vom vor#i mai 0os&
Reeaua 13A&2&2&2 este re+ervat pentru tra$icul IP local ctre ga+da local& -e o#icei, adresa
13A&2&2&1 va $i asociat unei inter$ee speciale numit interfa loopback , care se comport ca
un circuit Incis& 8rice pacet IP trimis prin aceast inter$a, va $i returnat ca Ji cum ar $i
venit de la o maJin din reea& )cesta v o$er posi#ilitatea s de+voltai Ji s testai so$tware
de reea $ar s $olosii o reea real& )lt aplicaie $olositoare este cKnd vrei s $olosii
so$tware de reea pe o maJin care nu este In reea& )ceasta nu este atKt de neo#iJnuit pe cKt
sun7 de e"emplu multe ga+de UUCP nu au conectivitate IP de loc, Ins vor rula serverul de
news INN& Pentru a $unciona #ine, INN cere inter$aa loop#ack&
C/utarea adreselor
)cum c ai v+ut cum sunt construite adresele de reea IP, poate v vei Intre#a cum sunt ele
$olosite intr*o reea %ternet pentru a comunica cu alte ga+de& 'a urma urmei protocolul
%ternet identi$ic ga+dele printr*un numr pe B octei care nu are nimic In comun cu o adres
IP& -in cau+a aceasta este nevoie de un mecanism pentru a $ace legtura Intre adrese IP Ji
adrese %ternet& )cesta este aJa numitul Adress Resolution Protocol (ARP) - protocol de
cutare al adreselor & -e $apt )RP nu este legat de %ternet neaprat ci este $olosit Ji la alte
tipuri de reele ca de e"emplu la reelele radio& Ideea care st la #a+a )RP este ceea ce $ac cei
mai muli oameni cKnd vor s*l gseasc pe dl 4 Intre 152 de oameni: merg Ji Il strig pe
nume $iind sigur c acesta va rspunde dac este acolo&
CKnd )RP vrea s gseasc adresa %ternet corespun+toare unei adrese IP, $oloseJte o
proprietate a protoculului %ternet numit <rspKndire< .#roadcasting/, cKnd o datagram este
adresat simultan tuturor staiilor din reea& -iagrama aceasta conine o Intre#are pentru a a$la
adresa IP& ,iecare ga+d din reea compar adresa IP din datagrama primit cu propria adres
IP, Ji dac se potrivesc Ii Intoarce un rspuns )RP ga+dei care a $cut cererea& )ceast ga+d
poate e"trage acum, din rspuns, adresa %ternet&
-esigur v putei Intr#a cum poate Jtii o ga+d care din milioanele de maJini cu %ternet din
lume este ga+da cutat Ji cum poate Jtii c aceasta posed inter$a %ternet& )ceste intre#ri
IJi a$l rspunsul In ceea ce se numeJte rutare .routing/, care se ocup cu gsirea locaiei
$i+ice a unei ga+de Intr*o reea& )cesta va $i su#iectul urmtoarelor seciuni&
Pentru moment s mai vor#im un pic despre )RP& 8dat ce o ga+d a descoperit o adres
%ternet, o va ine minte ast$el IncKt s nu mai tre#uiasc s Intre#e din nou data viitoare cKnd
va vrea s trimit o datagram ga+dei cu pricina& Ins nu este #ine s pstre+e acest
in$ormaie totdeauna7 de e"emplu ga+da de la distan IJi poate scim#a placa de reea din
cau+a pro#lemelor tenice, deci intrarea )RP devine invalid& Pentru a $ora alt intre#are,
intrrile In memoria )RP tre#uiesc Jterse din cKnd In cKnd&
CKteodat este necesar gsirea adresei IP asociate unei adrese %ternet date& )ceasta se
IntKmpl cKnd o maJin $r disc vrea s #oote+e de pe un server din reea, situaie des
IntKlnitK In reelele locale& 8n client $r disc nu are nici o in$ormaie despre el InsuJi * In
a$ar de adresa %ternetH )Ja c va trimite un mesa0 rspKndit .#roadcast/ coninKnd o
rugminte ctre serverul de #oot pentru a*i spune adresa sa IP& Pentru aceasta e"ist alt
protocol numit Reverse Adress Resolution Protocol (RARP) & Impreun cu protocolul 988TP,
el de$ineJte metoda prin care clienii $r disk pot #oota de pe un server din reea&
Rutarea IP
Reele IP
CKnd scriei o scrisoare cuiva, de o#icei punei adresa complet pe plic, speci$icKnd ara,
codul poJtal, etc& -up ce punei scrisoarea In cutia poJtal, serviciul poJtal o va duce la
destinaie: ea va $i trimis In ara indicat, ar al crei serviciu de poJt o va trimite In
regiunea speci$icat, etc& )vanta0ul acestei sceme ierarice este evident: oriunde vei trimite
scrisoarea serviciul local va Jtii In mare direcia In care s trimit scrisoarea Ins nu tre#uie s
se preocupe pe ce cale va a0unge scrisoarea pKn la distinaie&
Reelele IP sunt structurate Intr*un mod analog& Intregul Internet este $ormat dintr*un numr
de reele cemate sisteme autonome& ,iecare ast$el de sistem reali+ea+ rutarea intern Intre
mem#rii ei ast$el IncKt sarcina trimiterii datagramei este redus la gsirea unei ci ctre
reeaua din care $ace parte ga+da destinatar& )ceasta Inseamn c Indat ce datagrama este
InmKnat oricrei ga+de din reeaua ga+dei destinatare, rutarea va $i $cut mai departe de
crtre reeaua InsJi&
+u*reele
)ceast structur este o#inut prin Imprirea adresei IP Intr*o parte corespun+toarei ga+dei
Ji Intr*o parete corespun+toare reelei, aJa cum am artat mai sus& Implicit reeaua destinatar
este dedus din partea de reea a adresei IP& )st$el, ga+dele cu numere de reea identice ar
tre#ui s se gseasc in interiorul aceleiaJi reele&
)re sens s $olosim o scem asemntoare nuntrul unei reele de vreme ce o reea poate $i
$ormat din sute de reele mai mici& )st$el protocolul IP, v d voie s Imprii o reea IP In
mai multe subreele &
8 su#reea are responsa#ilitate trimiterii datagramelor anumitor clase de adrese IP din reeaua
IP din care $ace parte& 'a $el cu clasele ), 9 sau C ele sunt de$inite de o parte de reea din
adresa IP& Ins acum partea de reea este e"tins ast$el IncKt cuprinde cKiva #ii din parte de
ga+d& Numrul de #ii ce sunt interpretai ca numrul de su#reea este dat de aJa numita
masc de reea (subnet mask sau netmask) sa& )ceasta este un numr pe =3 de #ii care
speci$ic masca de #ii pentru partea de reea a adresei IP&
,igura ,ig& 3*1 arat cum 1@?&AB&13&@, adresa lui ;uark este interpretat di$erit cKnd este
considerat o reea o#iJnuit de clas 9, sau cKnd se $olosesc su#reele&
Fig. 0-1. Ip/rirea unei reele de clas/ ) n su*reele
-ac su#reelele ar $i numai divi+iuni interne ale reelei atunci acestea nu ar $i de mare $olos&
6u#reelele sunt generate de proprietarul reelei pentru a re$lecta graniele e"istente $ie ele
$i+ice .Intre dou reele %ternet/, administrative .Intre dou departamente/ sau geogra$ice&
Ins aceast structur a$ectea+ numai comportarea intern a reelei, Ji este complet invi+i#il
lumii de a$ar&
Cap. 1. IP pentru linie seriala
Cuprins
Re$erinta pentru dip
Rularea in !odul 6erver
Re-erinta pentru dip
Coanda get
Comanda get este calea cea mai usoara de a seta o varia#ila& Cea mai simpla $orma de a seta o
varia#ila ca si constanta, ca in e"emplul de mai 0os& Puteti, de alt$el, sa $olositi un cuvint ceie
in loc de valoare:
DIP> get $local ask
Enter the value for $local:
) treia metoda este de a incerca sa o#tinteti o valoare de la un ost& 9i+ar cum pare la prima
vedere, acest lucru e $oarte $olositor in unele ca+uri: undel servere 6'IP nu premit sa $olositi
propriul IP in link*ul 6'IP, dar mai degra#a va va asigna o adresa la $iecare conectare dial*in,
a$isind mesa0e care va in$ormea+a despre adresa pe care v*a asignat*o& -aca mesa0ul arata
ceva de genul <Mour address: 1?=&1>@&A&323< atunci urmatoarea parte de cod va va lasa sa
luati adresa:
wait address: 10
get $locip remote
Coanda print
)ceasta comanda e utili+ata pentru a$isarea unui te"t de la consola& 8rice varia#ila poate $i
$olosita in comanda print, cum ar $i:
DIP>print Using port $port at speed $speed
Using port cua3 at speed 3!00
,ue de .aria*ile
dip intelege doar un set prede$init de varia#ile& Un nume de varia#ila intotdeauna incepe cu
sim#olul dollarului.N/ si tre#uie scrisa cu litere mici .lower*case/&
Caria#ilele Nlocal si Nlocip sunt numele si IP*ul ostului local& 6etind numele ostului
.numele calculatorului n&tr&/ $ace ca dip*ul sa stoce+e partea canonica a ostname*ului in
Nlocal, in acelasi timp asignind lui Nlocip adresa IP corespun+atoare& )nalog se intimpla cind
se setea+a Nlocip&
Caria#ilele Nremote si Nrmtip $ac acelasi lucru, doar ca se adresea+a unui ost accesat de la
distanta& Nmtu contine valoarea !TU pentru cone"iune&
)ceste cinci varia#ile sunt singurele la care se pot asigna valori direct din comanda get& Un
ost cu alte varia#ile se pot seta prin comen+ile corespondente, dar tre#uie utili+ate
argumetnele lui print7 acestea sunt Nmodem, Nport si Nspeed&
Nerrlvl e o varia#ila prin care se poate vedea re+ultatul ultimei comen+i e"ecutate& Un nivel de
erroare egal cu 2 inseamna ca operatia s*a terminat cu succes, in timp ce o valoare non*+ero
indica o eroare&
Coen'ile i- si goto
Comanda i$ este mai degra#a o ramura a ceea ce usual $ace un i$ .C/COO/& 6inta"a sa este:
if var op numbergoto label
unde e"presia tre#uie sa $ie o simpla comparatie intre una dintre varia#ilele Nerrlvl, Nlocip, si
Nrmtip& )l doilea operand tre#uie sa $ie un numar intreg, iar operatorul op poate $i unul dintre
sim#olurile: DD, HD, P, Q, PD, si QD&
Comanda goto $ace ca e"ecutia scriptului sa continue de la linia indicata de la#el .eticeta/& 8
eticeta tre#uie sa $ie la inceputul unei linii, si tre#uie urmata imediat de o coloana&
Coen'ile send2 wait si sleep
)ceste comen+i a0uta in implementarea unor scripturi simple de cat la dip& send trimite
argumentele sale la linia seriala& Nu suporta varia#ile, dar intelege toate #ackslas*urile stil C,
cum ar $i n si #& Caracterul tilda este $olosit ca a#reviatie pentru CR/N' .carriage
return/newline/&
wait ia ca argumente un cuvint, scanind toate intrarile seriale pina este recunoscut acest
cuvint& )cest cuvint tre#uie sa nu contia #lank*uri .spatii/& 8ptional, se poate da un timp de
asteptare acestei comen+i ca al doilea argumente7 daca cuvintul asteptat nu este receptionat in
mai multe secunde, atunci comanda va intoarce o eroare cu valoarea stocata in Nerrlvl&
Comanda sleep poate $i $olosita pentru a astepta o perioada importanta de timp, de e"emplu
pentru a astepta ra#dator ca orice secventa de login si se termine& -in nou, intervalul e
speci$icat in secunde&
Coen'ile ode si de-ault
)ceste comen+i sunt $olosite a scim#a linia seriala in modul 6'IP si pentru a con$igura
inter$ata&
Comanda ode este ultima comanda e"ecutata de dip inainte de a intra in modul daemon&
-aca nu apare nici o eroare, comanda nu intoarce nimic&
ode ia ca argument un nume de protocol& dip recunoaste curent 6'IP si C6'IP ca nume
valide de protocol& Cersiunea curenta de dip oricum nu intelege adaptarile 6'IP&
-upa ce s*a sta#ilit modul 6'IP pe linia seriala, dip e"ecuta i-con-ig pentru a con$igura
inter$ata ca legatura point*to*point, si invoca route pentru a sta#ili o ruta catre ostul conectat&
-aca, aditional, scriptul e"ecuta comanda de-ault inaintea lui ode, dip va $ace deasemenea
ruta implicita spre cone"iunea 6'IP&
Rularea in (odul +er.er
6etarea in mode client a protocolului 6'IP a $ost partea ce*a mai grea& In opo+itie, adica
con$igurarea propriului ost ca server 6'IP, este mult mai usoara&
8 cale de a $ace acest lucru este setind dip*ul in server mode, care se poate $ace invocind*ul ca
diplogin& ,isiele proprii de con$iguratie se gasesc in /etc/diposts, care asocia+a numele de
login cu adresele pe care acest ost le atri#uie& )lternativ, se poate $olosi sliplogin, o scula
derivata din 9-6 care se caracteri+ea+a printr*o scema de con$iguratie mult mai $le"i#ila
care va lasa sa e"ecutati scripturi de sell oricind ostul se conectea+a sau deconectea+a& %ste
curent in $a+a 9eta&
)m#ele programe au nevoie ca sa $ie setat un singur cont de login pentru un clinet 6'IP& -e
e"emplu, sa presupunem ca dati acces la serviciul 6'IP lui )rtur -ent la dent&#eta&com, mai
intii creati un cont numit dent si adaugind urmatoarea linie in $isierul passwd:
dent:":#01:$0:%rthur Dent&s '(IP account:)tmp:)usr)s*in)diplologin
-upa care setati parola lui dent utili+ind utilitarul passwd&
)cum, cind dent se va loga, dip va starta ca server& Pentru a gasi daca el are permisiunea de a
utili+a 6'IP, se va uita dupa username in /etc/diposts& )cest $isier are detaliile pentru
drepturile de accesare si conectare pentru $iecare user 6'IP& 8 intrare simpla in $isier poate
arata asa:
dent::dent+*eta+com:%rthur Dent:'(IP,-.$
Prima coloana a cimpului contine numele cu care userul tre#uie sa se log*e+e& ) doua coloana
contine o parola aditionala .ve+i mai 0os/& ) treia coloana este ostname*ul sau adresa IP a
ostului cemat& Urmatorul cimp contine in$ormatii $ara semni$icatie .inca/& Ultimul cimp
descrie parametrii cone"iunii& )cesta este un cimp separat prin virgule, speci$icind protocolul
.curent 6'IP sau C6'IP/, urmat de !TU&
Cind dent se log*ea+a, diplogin e"trage in$ormatiile despre el din $isierul diposts si, daca al
doilea cimp nu este gol, a$isea+a <e"ternal securit( password< asteptind userul& 6irul de
caractere introdus de user este comparat cu parola .criptata/ din diposts& -aca nu se
potrivesc, atunci login*ul este re$u+at&
In ca+ contrar, diplogin incepe prin a scim#a linia seriala cu modul C6'IP sau 6'IP, si
setea+a inter$aa si rutarea& )ceasta cone"iune ramine vala#ila pina cind userul se
deconectea+a si modemul eli#erea+a linia& diplogin va intoarce linia pe modul normal si va
iesi&
diplogin cere privilegii de super*useri& -aca nu aveti dip rulind cu setuid root, ar tre#ui sa
$aceti diplogin*ului o copie separata a lui dip in locul unui simple legaturi .link/& diplogin
poate atunci $i sigur $acut setuid, $ara a a$ecta statutul lui dip insusi&
Cap. 3. Protocolul Punct la Punct #PPP$
Cuprins
-escilcirea P*urilor
PPP descis
%escilcirea P-urilor
'a $el ca 6'IP, PPP este un protocol de transmisie a datelor pe o cone"iune seriala, dar
re+olva o serie de de$iciente ale precedentului& )cest protocol lasa partile comunicante sa
negocie+e optinui ca adresa IP si vite+a de trans$er la inceputul conectarii si suporta
autori+area clientului& Pentru $iecare dintre aceste capa#ilitati, PPP are un protocol separat& In
cele ce urmea+a vom pre+enta sumar primele notiuni ale PPP*ului& )ceasta discutie e pe
departe de a $i completa7 daca doriti sa a$lati mai multe despre PPP, va s$atuiesc sa cititi
speci$icatiile R,C*15@> sau speci$icatiile insotitoare R,C*ului& . link /
In partea ce*a mai de 0os a PPP*ului este Rig*'evel -ata 'ink Control Protocol, a#reviata
R-'C, . link / care de$ineste limitarile din 0urul cadrelor individuale PPP si este preva+ut cu
un cecksum pe 1B #iti& in opo+itie cu mai primitiva incapsulare 6'IP, un cadru PPP este
capa#il sa tina pacetele pentru alte protocoale decit IP, cum ar $i Novell IP4, !6 Net9UI
sau )ppletalk& PPP reali+ea+a acestea prin adaugarea unui cimp de protocol cadrului primar
R-'C care identi$ica tipul de pacet care este carat de cadru&
'CP, 'ink Control Protocol sau Controlul Protocolului de 'egaturi, este utili+at in $ata
R-'C*ului pentru optiuni de negociere apartinind legaturii de date, cum ar $i !a"imum
Receive Unit .!RU/ sau Unitatea !a"ima de Receptie care setea+a marimea datagramei
ma"ime pe care una dintre parti e de acord sa o receptione+e&
Un pas important al con$igurarii unei legaturi PPP este autori+area clientului& -esi nu este
imperativ, este o adevarata nevoie pentru liniile tele$onice .dial*up/& U+ual, ostul cemat
.serverul/ cere clientului sa se autori+e+e dindu*i o ceie secreta& -aca cel ce ceama .suna/
nu reuseste sa produca secretul corect, cone"iunea este terminata& Cu PPP, autori+area merge
in am#ele sensuri7 asa ca cel ce ceama .suna/ poate de asemenea sa ceara serverului sa se
autenti$ice& )ceste procedee de autori+are sunt total independente una de cealalta& 6unt doua
protocoale pentru di$eritele tipuri de autori+are, pe care le vom discuta In cele ce urmea+a& %le
se numesc Password )utenti$ication Protocol sau Protocol de )utenti$icare a Parolei .P)P/
si Callange Randsake )utenti$ication Protocol sau Protocol de )utenti$icare Callange
Randsake .CR)P/&
,iecare protocol de retea care este rutat peste legatura de date, ca IP, )ppleTalk, etc&, este
con$igurat dinamic, utili+ind o corespondentul Network Control Protocol .NCP/, -e e"emplu,
pentru a trimite datagrame IP prin legatura, am#ele PPP*uri tre#uie prima data sa negocie+e ce
adrese de IP $oloseste $iecare dintre ele& Protocolul de control utili+at pentru aceasta este
IPCP, Internet Protocol Control Protocol sau Protocolul de Control al Protocolului Internet&
Pe linga trimiterea de datagrame IP standard prin legatura, PPP suporta de asemenea
comprimarea Can*Saco#son a eaderului datagramelor IP& )ceasta este o metoda de a micsora
eaderele pacetelor TCP pina la trei octeti& %ste de asemenea utili+ata in C6'IP si este mult
mai colocvial re$erita la compresia eaderului CS& Pentru a utili+a compresia se poate
negociind la startul prin IPCP la $el de #ine&
Cap. 4. +isteul in-orational al retelei
#,I+$
Cuprins
6 $acem cunoJtin cu NI6
NI6 versus NI6O
NI6: Partea de Client
Rularea unui server NI6
6etarea unui client NI6 cu NM6
)legerea map*urilor corecte
,olosirea map*urilor passwd Ji group
,olosirea NI6 cu suport pentru 6adow
,olosirea codului NI6 tradiional
Tn ca+ul unei reele locale .')N/, scopul $inal este de o#icei crearea unui mediu In care
utili+atorii s poat $olosi reeaua cKt mai transparent& Un pas important In Indeplinirea acestui
scop este sincroni+area Intre ost*uri a in$ormaiilor vitale .de e"emplu in$ormaiile legate de
conturile utili+atorilor/& !ai Inainte am v+ut c pentru <ost name resolution< e"ist de0a un
serviciu puternic Ji so$isticat ** Ji anume -N6, dar In alte ca+uri nu e"ist un ast$el de
serviciu& -e asemenea, dac reeaua este mic Ji nici nu este legat la Internet s*ar putea ca
instalarea -N6*ului s nu merite e$ortul&
-in aceste motive $irma 6un a inventat NI6, Network In$ormation 6(stem& NI6 o$er $uncii
generice de acces la #a+e de date care pot $i $olosite la distri#uirea di$eritelor in$ormaii, de
pild cele coninute In $iJierele passwd Ji groups, acestea devenind accesi#ile pentru toate
ost*urile din reea& )st$el, reeaua apare ca un singur sistem, cu aceleaJi conturi pe toate ost*
urile& Tn acelaJi mod putei $olosi NI6 pentru a distri#ui in$ormaiile din /etc/osts ctre toate
calculatoarele din reea&
NI6 se #a+ea+ pe RPC Ji cuprinde un server, o #i#liotec pentru client Ji cKteva utilitare de
administrare& Iniial NI6 era numit Mellow Pages, sau MP, denumire care mai este Inc $olosit
.in$ormal/ pentru acest serviciu& Tns Mellow Pages este o marc Inregistrat a 9ritis
Telecom, care a cerut ca 6un s renune la nume& Tn ciuda acestui lucru, oamenii renun greu
la denumirile cu care s*au o#iJnuit, aJa c MP a rmas pre$i"ul ma0oritii comen+ilor care se
re$er la NI6: (pserv, (p#ind, etc&
)cum, NI6 este disponi#il pentru oricine, e"istInd ciar implementri $ree& Una dintre acestea
$ace parte din 96- Net*3 Ji se #a+ea+ pe o implementare pus la dispo+iia pu#licului larg de
ctre 6un& 9i#lioteca pentru client a e"istat In GNU li#c de mult timp, In comparaie cu
utilitarele * care au $ost portate relativ de curKnd de ctre 6wen TUmmler& -in implementarea
de re$erin lipseJte Ins serverul NI6& To#ias Re#er a scris un alt pacet NI6 .numit (ps/ care
include toate utilitarele Ji un server&
Tn momentul de $a Peter %riksson lucrea+ la rescrierea complet a codului NI6, redenumit
acum NM6, care suport atKt NI6 cKt Ji NI6O .varianta revi+uit/& NM6 nu o$er doar un set
de utilitare NI6 Ji un server, ci Ji un set complet nou de $uncii de #i#liotec7 acestea pro#a#il
c vor $i incluse Ji In varianta standard a li#c& %ste inclus Ji o scem nou de con$igurare
pentru <ostname resolution< care InlocuieJte scema actual care $oloseJte ost&con$& )ceste
$uncii vor $i descrise mai 0os&
Tn acest capitol accentul va $i pus pe NM6 Ji nu pe celelalte dou pacete care vor $i numite
codul NI6 VVtradiionalWW& -ac dorii s utili+ai unul dintre acestea dou, instruciunile din
acest capitol ar putea $i su$iciente, dar s*ar putea Ji s nu $ie& Pentru in$ormaii suplimentare
consultai un manual standard despre NI6, cum este N,6 and NI6 de Ral 6tern .ve+i*XY/&
NM6 este Inc In $a+a de de+voltare, Ji de aceea utilitarele standard .de e"emplu utilitarele de
reea sau programul login/ nu cunosc scema de con$igurare NM6& )tKta timp cKt NM6 nu
este inclus In li#c va tre#ui s recompilai programele care dorii $oloseasc NM6& Pentru
oricare dintre aceste aplicaii, adugai In !ake$ile opiunea *lnsl ciar Inainte de li#c& )st$el
In loc de $unciile #i#liotecii C standard vor $i link*ate $unciile din li#nsl ** #i#lioteca NM6&
+/ -ace cuno5tin/ cu ,I+
NI6 pstrea+ in$ormaiile #a+ei de date In aJa numitele map*uri care conin pereci de valori*
ceie& !ap*urile sunt stocate pe un anumit ost pe care rulea+ serverul NI6, de unde clienii
pot o#ine in$ormaiile prin di$erite call*uri RPC& -estul de $recvent, map*urile sunt stocate In
$iJiere -9!&
!ap*urile In sine sunt de o#icei generate din $iJierele te"t originale cum sunt /etc/osts Ji
/etc/passwd& Pentru unele $iJiere sunt create mai multe map*uri, cKte unul pentru $iecare tip de
ceie de cutare& -e e"emplu, In $iJierul osts se poate cuta $ie un ost name, $ie o adres IP&
-eci In acest ca+ sunt generate dou map*uri NI6 numite osts&#(name Ji osts&#(addr& Tn
ta#ela putei vedea o list cu map*urile tipice Ji $iJierele din care sunt generate&
Ta#le: CKteva map*uri NI6 standard NI6 Ji $iJierele corespun+toare& LLLLLLLLLLLLLLLLLLLL
6*ar putea ca In unele pacete NI6 s gsii suport Ji pentru alte $iJiere Ji map*uri& )cestea
conin in$ormaii pentru aplicaii care nu sunt a#ordate In acest carte, de pild #ootparams
$olosit de unele servere 988TP .map*urile corespun+toare sunt eters&#(name Ji
eters&#(addr/&
-e o#icei, In loc de unele map*uri se $olosesc nicknames .porecle/, care sunt mai scurte Ji mai
uJor de tastat& Pentru a o#ine lista complet a nicknames*urilor recunoscute de utilitarele NI6
putei $olosi comanda:
6erverul NI6 este numit, prin tradiie, (pserv& Tntr*o reea de mrime medie, un server NI6
este In general su$icient7 In reelele mari Ins, se poate s $ie necesare servere di$erite pentru
di$erite osturi Ji pentru di$erite segmente ale reelei, pentru a nu suprasolicita serverele Ji
routerele& )ceste servere sunt sincroni+ate: unul este master server, iar celelalte slave servers&
!ap*urile sunt create numai pe master server Ji de acolo sunt distri#uite pe toate serverele
slave&
Tre#uie s $i o#servat c pKn acum am vor#it $oarte vag despre VVreeleWW7 Tn cadrul reelei,
NI6 vine cu un concept distinct: domeniul NI6 care este totalitatea ost*urilor care cu a0utorul
NI6 distri#uie In cadrul reelei o parte din con$iguraia lor& -omeniile NI6 nu au nimic comun
cu domeniile IntKlnite la -N6, aJa c pentru a evita orice am#iguitate, voi speci$ica de $iecare
dat la care tip de domeniu m re$er&
,uncia domeniilor NI6 este una pur administrativ& %le sunt aproape invi+i#ile pentru
utili+atori: aceJtia nu se+i+ea+ decKt $olosirea aceloraJi parole pe toate calculatoarele din
domeniu& -e aceea, numele dat domeniului NI6 este important numai pentru administratori&
Tn principiu se poate alege orice nume, cu condiia s $ie unic In cadrul reelei locale& -e
e"emplu, administratorul de la Cirtual 9rewer( ar putea alege s cree+e dou domenii NI6,
unul pentru 9rewer( Ji altul pentru Ziner(, pe care le va numi pur Ji simplu #rewer(,
respectiv winer(& -estul de des, domeniul NI6 este #ote+at la $el ca domeniul -N6& Pentru a
vedea sau modi$ica numele domeniului NI6 putei $olosi comanda domainname& -ac nu
preci+ai nici un argument, va a$iJa doar numele curent al domeniului NI67 pentru a scim#a
acest nume, tre#uie s $ii superuser Ji s tastai:
Tn $uncie de domeniile NI6 se sta#ileJte serverul NI6 pe care Il poate accesa o aplicaie& -e
e"emplu, programul login de pe un ost de la Ziner( tre#uie, desigur, s cear in$ormaiile
re$eritoare la parola utili+atorului de la serverul NI6 de la Ziner( .sau de la unul dintre
serverele de la Ziner(, dac sunt mai multe/7 de asemenea, o aplicaie de pe un ost de la
9rewer( tre#uie s accese+e numai serverul de la 9rewer(&
)cum nu mai rmKne de de+legat decKt un singur mister : cum a$l un client la care server s
se conecte+eL Cea mai simpl soluie este $olosirea unor $iJiere de con$igurare locale, Ins
acest soluie nu este $le"i#il, pentru c nu permite clienilor s $oloseasc mai multe servere
.#ineIneles In cadrul aceluiaJi domeniu/& -e aceea, implementrile NI6 tradiionale $olosesc
un daemon special * (p#ind care detectea+ un server NI6 potrivit din cadrul domeniului NI6&
Tnainte de a speci$ica orice cerere .;uer(/ NI6, aplicaiile tre#uie s a$le mai IntKi de la (p#ind
ce server s $olosesc&
(p#ind detectea+ serverele prin #roadcasting pe reeaua IP local7 primul server care
rspunde este considerat a $i cel mai rapid Ji va $i $olosit pentru toate ;uer(*urile NI6
urmtoare& -up un anumit timp sau dac serverul nu mai este disponi#il, (p#ind va Incerca
iarJi s gseasc un server activ&
)ceast legare dinamic la diverse servere are o serie de aspecte discuta#ile& Tn primul rKnd
este rareori necesar, Ji In plus sl#eJte gradul de securitate al reelei: (p#ind nu e In stare s
deose#easc un server NI6 o#iJnuit de un intrus ru intenionat& )cesta devine o pro#lem Ji
mai grav dac #a+ele de date cu parole sunt administrate prin NI6& -in acest cau+, NM6 nu
$oloseJte In mod implicit (p#ind, ci citeJte ostname*ul serverului dintr*un $iJier de
con$igurare&
,I+ .ersus ,I+6
NI6 Ji NI6O au puine lucruri In comun: asemnarea numelor Ji destinaia& NI6O este
structurat Intr*o manier complet di$erit& Tn locul unui spaiu $ormat din domenii NI6
separate, NI6O $oloseJte un spaiu ieraric similar celui $olosit de -N6& Tn locul map*urilor
e"ist aJa*numitele ta#ele constituite din rKnduri Ji coloane& ,iecare rKnd repre+int un o#iect
In #a+a de date NI6O, iar coloanele sunt proprietile o#iectelor gestionate de NI6O& Ta#ela
$iecrui domeniu NI6O include ta#elele domeniilor WprinteW& -e asemenea o Inregistrare dintr*
o ta#el poate conine un link ctre o alt ta#el& )ceste $aciliti o$er posi#iliti multiple de
organi+are a in$ormaiilor&
Carianta tradiional a NI6 este versiunea 3 de RPC, In timp ce NI6O este versiunea =&
NI6O nu pare s $ie $olosit pe o scar larg, iar eu Il cunosc destul de puin& .eH nu se poate
spune c nu Jtiu ciar nimic/ -e aceea nu*l voi a#orda In aceast documentaie& -ac dorii s
a$lai mai multe despre NI6O putei consulta manualul de administrare NI6O de la 6un& .XY/&
,I+7 Partea de Client
-ac suntei $amiliari+ai cu scrierea sau portarea aplicaiilor de reea vei o#serva c
ma0oritatea map*urilor NI6 listate mai sus corespund unor $uncii din #i#lioteca C& -e
e"emplu, pentru a o#ine in$ormaii din passwd se $olosesc de o#icei $unciile getpwnam.=/ Ji
getpwuid.=/ care returnea+ in$ormaiile despre contul unui utili+ator regsit dup user name,
respectiv user id& Tn mod o#iJnuit aceste $uncii caut in$ormaiile dorite In $iJierul standard:
/etc/passwd&
Tn ca+ul unei implementri care utili+ea+ NI6, aceste $uncii vor $i modi$icate In sensul c
trimit ctre serverul NI6 un call RPC prin care este locali+at numele Ji id*ul utili+atorului&
)cest comportament este total transparent pentru aplicaie& ,uncia poate $ie s adauge
elemente In map*ul NI6, $ie s Inlocuiasc cu totul $iJierul original& 9ineIneles, nu are loc o
modi$icare real a $iJierului, ci doar este creat ilu+ia c acesta a $ost Inlocuit sau modi$icat&
Tn implementrile NI6 tradiionale e"istau mai multe convenii re$eritoare la care map*uri
Inlocuiesc Ji care se adaug la in$ormaiile originale& Unele, cum sunt map*urile passwd,
necesitau modi$icri ale $iJierului passwd care dac nu erau $cute corect a$ectau serios
securitatea sistemului& Pentru a evita aceste capcane, NM6 $oloseJte o scem general de
con$igurare care determin dac pentru un set de $uncii client de $olosesc $iJierele originale,
NI6, sau NI6O, Ji In ce ordine& Capitolul curent include o seciune special despre aceast
cestiune&
Rularea unui ser.er ,I+
Poate c v*ai plictisit de teoria de pKn acum, aJa c ai s ne punem pe trea# Ji s ne
apucm de con$igurarea propriu*+is& Tn acest seciune vom discuta despre con$igurarea unui
server NI6& -ac In reeaua dumneavoastr $uncionea+ de0a un server NI6, nu mai este
nevoie s setai nimic . Ji putei sri $r gri0 peste acest seciune /&
-ac nu dorii altceva decKt s e"perimentai, s <v 0ucai< cu setarea serverului, avei gri0
s nu $olosii un nume al domeniului NI6 care e"ist de0a In reea& )lt$el s*ar putea s
desta#ili+ai Intregul serviciu de reea, iar muli oameni ar putea deveni nemulumii Ji ciar
$oarte nervoJi&
Tn momentul de $a e"ist dou servere NI6 disponi#ile: unul In cadrul pacetului (ps al lui
To#ias Re#er, Ji altul In cadrul pacetului (pserv al lui Peter %riksson& Tn principiu nu
contea+ pe care Il $olosii& Tn momentul acesta, cKnd scriu, codul pentru manipularea
serverelor NI6 de tip slave pare s $ie mai complet In (ps& -eci dac avei nevoie de servere
slave, pro#a#il c (ps este o alegere mai #un&
-up instalarea severului .programul (pserv/ In /usr/s#in, urmea+ s creai directorul care va
conine $iJerele map pe care le va distri#ui serverul& CKnd setai domeniul NI6 pentru #rewer(
map*urile vor $i puse In /var/(p/#rewer(& 6erverul determin dac deserveJte un anumit
domeniu NI6 dup e"istena directorului cu map*uri& -ac la un moment dat dorii s
de+activai un domeniu NI6, asigurai*v c ai Jters Ji directorul&
Tn general, map*urile sunt pstrate In $iJiere -9!, care sunt generate din $iJierele master cu
a0utorul programului maked#m .pentru serverul lui To#ias/ sau d#mload .pentru severul lui
Peter/& )cestea s*ar putea s nu $ie interscim#a#ile& ,ormatarea unui $iJier master pentru a
putea $i procesat cu d#mload necesit de o#icei $olosirea lui sed sau awk, ceea ce tinde s $ie
cam anost Ji greu de reinut& -e aceea pacetul (pserv al lui Peter %riksson conine un
!ake$ile .numit (p!ake$ile/ care $ace toat acest munc In locul dumneavoastr& Tre#uie s
instalai acest $iJier su# numele !ake$ile In directorul cu map*uri, apoi s*l editai pentru a
alege map*urile pe care dorii s le distri#uii& Pe la Inceputul $iJierului se targetul all care
conine toate serviciile pe care le poate o$eri (pserv& Tn mod implicit, linia arat cam aJa :
-ac de pild nu avei nevoie de map*urile eters&#(name Ji eters&#(addr, pur Ji simplu
Jtergei eters din acest rule& Pentru a testa con$iguraia pro#a#il c este su$icient pornirea a
una sau dou map*uri, de e"emplu services&G&
-up ce ai editat !ake$ile, rmKnei In directorul cu map*uri Ji tastai VVmakeWW& !ap*urile vor
$i generate Ji instalate automat& Tre#uie s re$acei map*urile la $iecare modi$icare a $iJierelor
master, alt$el scim#rile nu vor $i disponi#ile In reea&
Tn seciunea urmtoare putei a$la cum se con$igurea+ codul NI6 pentru client& -ac setrile
dumnevoastr nu merg, tre#uie s a$lai mai IntKi dac cererile a0ung sau nu la server& -ac la
pornirea serverului speci$icai opiunea *-, acesta va tipri la consol mesa0e re$eritoare toate
cererile NI6 primite Ji la re+ultatele acestora& )ceste mesa0e ar tre#ui s v a0ute s a$lai de
unde provine pro#lema& 6erverul lui To#ias nu are aceast opiune&
+etarea unui client ,I+ cu ,8+
-e acum Incolo, In acest capitol vom a#orda con$igurarea clienilor NI6&
Primul pas este setarea In /etc/(p&con$ a serverului NM6 care va $i $olosit& Ca e"emplu, iat un
$iJier $oarte simplu pentru un ost din reeaua Ziner(:
Prima linie a $iJierului speci$ic toi clienii NI6 care aparin domeniului NI6 winer(& -ac
omitei acest linie NM6 va $olosi numele de domeniu pe care l*ai setat cu comanda
domainname& !ai departe se speci$ic serverul NI6 care va $i $olosit& -esigur, adresa IP a
serverului v#ardolino tre#uie speci$icat In $iJierul osts7 putei dealt$el s $olosii direct
adresa IP&
-in cau+a comen+i server din $iJierul de con$igurare de mai sus, NM6 va $olosi serverul
speci$icat indi$erent de domeniul NI6 curent& -ac In mod $recvent se IntKmpl s mutai
calculatorul In mai multe domenii NI6 pro#a#il c vei dori s pstrai In $iJierul (p&con$
in$ormaiile re$eritoare la mai multe domenii NI6& -e e"emplu, In ca+ul unui laptop $iJierul
de mai sus ar putea $i modi$icat ast$el:
)st$el laptopul va putea $ace parte din oricare dintre cele dou domenii, singura setare
necesar $iind alegerea domeniului NI6 cu a0utorul comen+ii domainname&
-up ce ai creat acest $iJier de con$igurare minimal Ji dup ce ai veri$icat c poate $i citit de
ctre toi utili+atorii, urmea+ s $acei primul test : prima conectare la server& )legei orice
map distri#uit de server, de pild osts&#(name, Ji Incercai s*l o#inei $olosind utilitarul
(pcat& 'a $el ca toate celelalte utilitare de adminstrare, (pcat ar tre#ui s se gseasc In
/usr/s#in&
8utput*ul pe care Il vei o#ine ar tre#ui s arate In genul celui de mai sus& Tns, dac apare un
mesa0 de eroare ca VVCanWt #ind to server wic serves domainWW sau altceva asemntor,
Inseamn c $ie numele domeniului NI6 pe care l*ai setat nu corespunde nici unui server
de$init In (p&con$, $ie c serverul este inaccesi#il dintr*un motiv oarecare& Tn al doilea ca+,
veri$icai dac ping raportea+ c poate accesa serverul Ji dac da, veri$icai dac este Intr*
adevr vor#a de un server NI6& Pentru acesta $olosii rpcin$o care ar tre#ui s a$iJe+e un
output de genul :
Alegerea ap-urilor corecte
-up ce v*ai convins c putei contacta serverul NI6, tre#uie s decidei care $iJiere s le
Inlocuii sau s le Intregii cu map*uri NI6& Tn mod tipic, pro#a#il c vei dori s $olosii map*
uri NI6 pentru ost Ji pentru passwd& Primul este util mai ales cKnd nu $olosii 9IN-, iar al
doilea permite tuturor utili+atorilor s se conecte+e de la orice ost din reea7 acesta necesit
e"istena unui director /ome central, disponi#il In toat reeaua prin N,6& Tn seciunea *
putei gsi in$ormaii detaliate despre cum se reali+ea+ aceasta& )lte map*uri, cum este
services&#(name, nu sunt la $el de spectaculoase, dar v pot scpa de ceva munc de editare In
ca+ul In care instalai aplicaii de reea care $olosesc un serviciu care nu este In $iJierul
services standard&
Pro#a#il c dorii s putei alege dac o $uncie $oloseJte $iJierul local sau serverul NI6& NM6
v permite s con$igurai ordinea In care o $uncie accesea+ aceste servicii& ,iJierul de
con$igurare este /etc/nsswitc&con$ .nss vine de lar Name 6ervice 6witc/, dar #ineIneles c
nu este limitat doar la name service& )cest $iJier conine cKte o linie pentru $iecare $uncie
suportat de NM6&
8rdinea corect a serviciilor depinde de tipul datelor& %ste impro#a#il ca map*ul
services&#(name s conin Inregistrri di$erite de cele din $iJierul services local7 poate
eventual s conin Inregistrri In plus& )st$el, ar $i o alegere #un ca mai IntKi s $ie consultat
$iJierul local doar dac nu este gsit serviciul dorit s se apele+e la NI6& Pe de alt parte,
in$ormaiile re$eritoare la ostnames se pot scim#a $oarte $recvent, ast$el c In general
serverele -N6 sau NI6 dein cele mai actuali+ate in$ormaii, pe cKnd $iJierul osts local este
pstrat doar ca re+erv pentru ca+ul In care serverul -N6 sau NI6 pic& )st$el c In aceste
condiii este de dorit ca $iJierul local s $ie consultat ultimul&
%"emplul de mai 0os arat cum se pot con$igura $unciile getost#(name.3/, getost#(addr.3/
Ji getserv#(name.3/ ca s $uncione+e In modul descris mai sus& %le vor Incerca iniial primul
serviciu7 In ca+ul unui succes se returnea+ re+ultatul, alt$el este Incercat urmtorul serviciu&
!ai 0os se gseJte lista complet a serviciilor care pot $i $olosite cu o Inregistrare In $iJierul
nsswitc&con$& !ap*urile, $iJierele, serverele Ji o#iectele care vor $i consultate depind de
numele Inregistrrii&
Tn momemtul de $a, NM6 suport urmtoarele Inregistrri In nsswitc&con$: osts, networks,
passwd, group, sadow, gsadow, services, protocols, rpc, Ji eters& Pro#a#il cse vor mai
aduga Ji altele&
,igura* ilustrea+ un e"emplu Ji mai complet care introduce o alt $acilitate a nsswitc&con$:
cuvKntul*ceie XN8T,8UN-DreturnY In Inregistrarea osts, datorit cruia dac nu este gsit
elementul cutat, NM6 va continua cu cutarea In $iJierele locale numai dac consultarea
serverelor NI6 Ji -N6 a eJuat& ,iJierele locale vor $i ast$el $olosite numai la #ootare Ji ca o
copie de siguran pentru ca+ul cKnd serverul NI6 nu este accesi#il&
,igure: 6ample nsswitc&con$ $ile&LLLLLLLLLLLL/
Folosirea ap-urilor passwd 5i group
Unul dintre rolurile eseniale pa cere le 0oac NI6 este sincroni+area in$ormaiilor despre
utili+atori Ji conturile lor In cadrul domeniului NI6& Tn acest scop, se pstrea+ de o#icei un
$iJier /etc/passwd minimal la care se adaug in$ormaiile din map*urile NI6 .care sunt
disponi#ile In tot domeniul/& 6impla activare a acestora In nsswitc&con$ nu este Ins de a0uns&
)tunci cKnd $olosii NI6 pentru distri#uirea in$ormaiilor re$eritoare la parole tre#uie mai IntKi
s v asigurai c user id*urile utili+atorilor din $iJierul passwd local corespund cu cele de pe
serverul NI6&
-ac unul dintre id*urile numerice din /etc/passwd sau /etc/group di$er de cel din map*uri va
tre#ui s modi$icai proprietarul .owner/ pentru toate $iJierele utili+atorului respectiv& !ai
IntKi tre#uie s setai noile valori ale uid*urilor Ji gid*urilor In passwd respectiv group& )poi
locali+ai toate $iJierele utili+atorului Ji le scim#ai proprietarul .cu cown/& 6 +icem c
news avea user id*ul ?, iar okir avea 12=7 dac aceast valoare a $ost modi$icat ar urma s
$olosii urmtoarele comen+i:
%ste important s apelai aceste comen+i avInd instalat noul $iJier passwd Ji s colectai toate
numele $iJierelor userului Inainte de cown& Pentru a modi$ica apartenena la grupuri a
$iJierelor se $oloseJte o comand similar&
-up de ai $cut aceasta, uid*urile Ji gid*urile numerice locale vor corespunde cu cele din
Intregul domeniu NI6& Urmtorul pas este adugarea In nsswitc&con$ a liniilor care activea+
locali+area prin NI6 a in$ormaiilor despre utili+atori Ji grupuri:
Ca e$ect, atunci cKnd un utili+ator Incearc s se conecte+e, comanda login sau alte comen+i
asemntoare vor consulta mai IntIi map*urile NI6 Ji doar In ca+ de nereuJit vor consulta
$iJierele locale& Tn general pro#a#il c vei scoate aproape toi userii din $iJierele locale, lsInd
numai root Ji utili+atori generici cum este mail, Ji aceasta deoarece unele taskuri vitale ale
sistemului ar putea necesita maparea uid*urilor cu numele utili+atorilor sau invers& -e
e"emplu, uneori 0o#*urile cron administrative e"ecut comanda su pentru a deveni temporar
news, iar su#sistemul UUCP ar putea trimite prin mail un raport& -ac news Ji uucp nu e"ist
In $iJierul passwd local e"ist riscul ca aceste 0o#uri s eJue+e $oarte urKt dac NI6 nu este
disponi#il In acel moment&
! simt dator s dau aici dou avertismente importante: In primul rKnd, con$igurrile descrise
mai sus $uncionea+ numai pentru suite login care nu $olosesc sadow passwords . cum este
cea inclus In pacetul util*linu" /& Complicaiile aduse de $olosirea parolelor sadow vor $i
a#ordate In seciunea urmtoare& Tn al doilea rKnd, comen+ile de genul login nu sunt singurele
care accesea+ $iJierul passwd** de pild ciar Ji #analul ls $ace parte din aceast categorie&
-e $iecare dat cKnd este apelat ls cu opiunea *l .long listing/, vor $i a$iJate numele sim#olice
pentru grupul Ji proprietarul $iecrui $iJier, ceea ce implic de $iecare dat o conectare la
serverul NI6& 6e poate IntKmpla ca din acest cau+ vite+a s scad $oarte mult, mai ales dac
reeaua este supraIncrcat sau dac, mai grav, serverul NI6 nu este In aceeaJi reea $i+ic Ji
datagramele tre#uie s treac printr*un router&
[i asta nu e totul& Imaginai*v c un utili+ator vrea s*Ji scim#e parola& Tn mod normal, va
apela passwd care citeJte noua parol Ji modi$ic $iJierul passwd local& )cest lucru este
imposi#il cKnd se $oloseJte NI6, deoarece $iJierul nu mai este disponi#il local, iar a permite
utili+atorilor s se conecte+e la serverul NI6 de $iecare dat cKnd vor s*Ji scim#e parola nu
este o soluie& -in aceste motive NI6 vine cu o versiune proprie a passwd numit (ppasswd&
Pentru a scim#a parola pstrat pe server, (ppasswd contacte+ daemonul (ppasswdd de pe
server via RPC, Ji comunic noile in$ormaii& Pentru a instala (ppasswd peste programul
passwd clasic se procedea+ In $elul urmtor:
-e asemenea tre#uie s instalai pe server rpc&(ppasswdd Ji s*l pornii din rc&inet3& )st$el li
se va ascunde utili+atorilor aceast ciudenie datorat NI6*ului&
Folosirea ,I+ cu suport pentru +hadow
-eocamdat nu e"ist suport NI6 pentru site*uri care $olosesc sadow pentru login& Son ,&*
Raug, autorul pacetului sadow, a lansat de curKnd pe comp&sources&misc o nou versiune a
#i#liotecii de $uncii sadow care suport parial NI6, deci e incomplet Ji nu a $ost Inc In
#i#lioteca C standard li#c& Pe de alt parte, pu#licarea cu NI6 a in$ormaiilor din /etc/sadow
contravine scopului pe care Il are sadow H
-eJi $unciile NM6 re$eritoare la password nu $olosesc map*ul sadow&#(name sau ceva
similar, NM6 permite In mod transparent $olosirea unui $iJier /etc/sadow& CKnd este apelat
implementarea NM6 a $unciei getpwnam sunt utili+ate speci$icaiile din cKmpul passwd din
nsswitc&con$& 6erviciul NI6 va locali+a in$ormaiile cerute In map*ul passwd&#(name de pe
serverul NI6& TotuJi, serviciul $iles va veri$ica e"istena $iJierului /etc/sadow, Ji dac Il
gseJte va Incerca s*l descid& -ac nu e"ist sau dac userul nu este root, se va reveni la
comportamentul clasic: cutarea in$ormaiilor numai In /etc/passwd& -ac /etc/sadow e"ist
Ji poate $i descis, NM6 va lua din sadow parola utli+atorului& ,uncia getpwuid este
implementat In mod similar& )st$el, e"ecuta#ilele compilate cu NM6 se vor descurca In mod
transparent cu o con$igurare care $oloseJte sadow&
Folosirea codului ,I+ tradiional
-ac $olosii codul client inclus In versiunea standard curent a li#c, con$igurarea clientului
NI6 este un pic di$erit& Tn primul rKnd, In loc s o#in in$ormaiile despre serverele NI6
dintr*un $iJier de con$iguraie, $oloseJte daemonul (p#ind pentru locali+area serverelor active&
-eci tre#uie s v asigurai c (p#ind este Incrcat la #ootare& (p#ind tre#uie rulat dup
setarea domeniului NI6 Ji dup ce a $ost pornit portmapper*ul RPC& )poi ar tre#ui s testarea
serverului cu (pcat&
-e curKnd s*a raportat multe ori un #ug care se mani$est prin aceea c NI6 eJuea+ returnInd
VVclntudpEcreate: RPC: portmapper $ailure * RPC: una#le to receiveWW& )ceast eroare se
datorea+ unei modi$icri incompati#ile a modului cum (p#ind returnea+ in$ormaiile ctre
$unciile de #i#liotec& -ac o#inei ultimele surse ale utilitarelor NI6 Ji le compilai ar tre#ui
s scpai de acest pro#lem&
-e asemenea, modul In care NI6*ul tradiional decide dac Ji cum s $ac Im#inarea
in$ormaiilor NI6 cu cele din $iJierele locale di$er $a de NM6& -e e"emplu, pentru a $olosi
map*uri password va tre#ui s includei urmtoarea linie In /etc/passwd:
)ceasta marcea+ locul unde $unciile de locali+are pentru password inserea+ map*urile
NI6& Inserarea unei linii similare .mai puin ultimele dou puncte/ In /etc/group $ace acelai
lucru pentru map*urile group&G & Pentru a distri#ui prin NI6 map*urile osts&G tre#uie s
scim#ai ordinea liniilor In ost&con$ $ile& -e pild, dac ordinea pe care o dorii este NI6,
-N6, /etc/osts s*ar putea s $ie nevoie s modi$icai linia In
Implementarea NI6 clasic nu suport alte map*uri la acest moment&

S-ar putea să vă placă și