Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


Soluții - PC Magazine Romania, Ianuarie  2003

Motto:
"- Bunicule, de ce nu vine Amelia Earhart?
- Amelia? A zburat peste Noua Guinee, uitându-și antena, uitând că ... A zburat Dincolo.
- Ce a uitat, bunicule? Ce e dincolo de Noua Guinee?
- Dincolo? Dincolo, fetița mea... a uitat că dincolo e, însorit... doar Pacificul..."
Dintr-un film

Carnaval la Rio

Răzvan Sandu

Hei, fetelor, unde vă grăbiți așa? Și de ce v-ați îmbrăcat în rochii din paiete strălucitoare? Da, sigur, în episodul de azi e vorba despre Samba, dar nu despre măiestria dansatorilor din Brazilia, ci despre rețelele Microsoft, despre protocolul Session Message Block (SMB) folosit de ele și despre ciudățeniile care se întâmplă când o companie oarecare încearcă să reinventeze "roțile" internetului ...

Vremuri străvechi
Pe când se potcovea puricele cu nouăzecișinouă de ocale, iar noii dinozauri Windows 95 - abia născuți din negura lui Windows 3.11 for Workgroups - începuseră să ne albăstrească ecranele, mulți dintre noi, bieții utilizatori din birouri, făceam cunoștință cu ceea ce înseamnă o rețea locală. Era acolo, pe desktop, un shortcut numit Network Neighborhood. Mai întâi, dădeam un click pe el și aflam - după multe derulări de wizard-uri - că e o cale către nicăieri, fiindcă nici măcar nu aveam o placă Ethernet. Apoi, prin bunăvoința șefului, multdoritul adaptor își făcea apariția. Ajutați de vreun coleg mai priceput, două-trei click-uri și gata, învățam să schimbăm fișiere cu cei de la etajul de deasupra, să tipărim ceva la imprimanta din biroul vecin... Urma dezamăgirea: nu puteam trimite e-mail-uri colegei de vis-à-vis, LAN-ul nu ne permitea să folosim și noi, pe ascuns, conexiunea internet dial-up din biroul șefului... Dar totuși "Ai auzit, dragă, că ne-au instalat rețea la servici ?"

Pentru mulți, simpaticele foldere galbene ale Windows-ului înseamnă un mister și astăzi. Pentru alții, au devenit ceva cotidian, dar nimeni nu-și bate capul cu adrese IP, DNS-uri și glume de-ale ăstora de la Tehnic ...

Și totuși ...
Și totuși rețeaua mondială de calculatoare, internetul, apăruse în germene încă din anii '70. Calculatoarele comunicau și atunci, iar mașinile Unix din care s-a format mai apoi "coloana vertebrală" a Net-ului "știau" lucruri pe care PC-urile Windows nu le știu nici astăzi. Prin filme, prin instituțiile mari, vedem încă antice monitoare alb-negru pe care informația - prezentată în mod text, dar utilă - pare să răsară ca printr-o minune ... Cum așa? Lumea TI nu începe de la Redmond?

Geamuri 95
Universul PC-urilor a crescut repede de la computerul singular de acasă la rețele locale și, mai apoi, la internet. În cursul acestei evoluții, Microsoft s-a găsit în fața unei dileme. Pe de o parte, existau protocoalele vechilor rețele, stabile și bine cunoscute. Pe de alta, trebuia găsit "ceva" care să permită unui utilizator oricât de netehnic să folosească o rețea de calculatoare. Începând cu Windows for Workgroups, compania americană a demarat dezvoltarea unui pachet de protocoale de nivel superior, proprietar, destinat interconectării computerelor din birouri. Acesta s-a numit întâi Session Message Block (SMB), mai apoi CIFS, iar "fața sa vizibilă" este icon-ul Network Neigborhood de pe desktop-urile noastre.
De ce era nevoie de altă serie de protocoale? Nu știu. Poate că simplul TCP/IP folosit în internet nu era, pe atunci, la îndemâna "omului de pe stradă". Sau poate că Microsoft a dorit să izoleze utilizatorii de PC-uri de restul comunității TI, făcându-i prizonierii programelor sale. Abia odată cu Windows 2000, lucrurile s-au putut mișca în sensul adoptării pe rețelele locale a mecanismelor folosite în internet. Spre exemplu, numele unui computer nu mai este acum simplu (COMPUTER), ci s-a introdus structura ierarhică de domenii (computer.firma.com). Ca urmare, rezolvarea numelor nu se mai face prin ciudatele servere WINS (Windows Internet Naming Service), ci prin Domain Name Service (DNS), care este standardizat.

Mai nou, conflictul între open și proprietary pare a se fi mutat pe un alt teren. Cu Windows XP, Microsoft ne impune noul Microsoft Passport, care joacă rolul de "buletin de identitate" electronic al unei persoane. În acest timp, o alianță largă, Liberty Alliance, în frunte cu Sun Microsystems, încearcă să ne scutească de obligația oricărui bun "cetățean al planetei" de a ne stoca toate informațiile personale la Microsoft. Nu știu de ce, dar aș prefera să-mi pot cumpăra o mașină de spălat, folosind un credit-card, fără știrea lor ...
Închid paranteza.

Brazilieni, australieni și care alegorice ...
Prăpastia apărută între rețelele de PC-uri și ... toți ceilalți trebuia umplută cumva. La nivelul rețea, Microsoft a adoptat, odată cu Windows 95, TCP/IP-ul. Dar pentru partajarea fișierelor și imprimantelor între o mașină Windows și una Unix, ca și pentru realizarea autentificării prin nume și parolă, mai trebuia scris un program. Acesta este Samba, rezultat al eforturilor echipei de programatori australieni grupați în jurul proiectului cu același nume (http://www.samba.org)
La urma urmei, ce face Samba? Iată:

  • permite PC-urilor dintr-o rețea Microsoft să "vadă" o mașină Unix ca și cum ar fi o mașină Windows "obișnuită", adică să listeze și să folosească folderele și imprimantele care sunt partajate (shared) pe aceasta;
  • reciproc, permite mașinii Unix să "vadă" mașinile Windows;
  • permite mașinii Unix să devină membră a unui domeniu controlat de un server Windows 2000 sau Windows NT sau a unui grup de lucru;
  • dacă se dorește, mașina Unix poate prelua funcțiile serverului Windows 2000 sau NT, realizand autentificarea clienților Windows prin nume de utilizator și parolă;
  • se pot defini exact drepturile pe care fiecare utilizator al rețelei le are asupra folderelor și imprimantelor oferite de (partajate pe) mașina Unix;
  • cu ajutorul daemon-ului winbindd, serverul Unix poate importa ("citi") baza de date cu utilizatori de pe un alt computer Windows 2000 sau NT prezent în rețea;
  • în fine, prin intermediul Samba se pot "regla fin" toate detaliile de comunicare între aceste două tipuri de mașini atât de diferite.

Din experiența personală vă pot povesti că un server Linux cu Samba bine configurată este un sistem de o extraordinară robustețe - practic, utilizatorii Dvs. nici nu vor ști vreodată că serverul de pe care își iau datele este o mașină Unix și nu una Windows.

Grozav ! Vreau Și eu !
Dacă v-ați hotărat să încercați, Samba se găsește în aproape orice distribuție de Linux. În distribuția Red Hat, pe care o folosesc eu, pachetele .rpm pe care trebuie să le instalați sunt samba, samba-client și samba-swat.

Documentația Samba este deosebit de "stufoasă" și necesită o lectură integrală, atentă. Frustrarea unui utilizator neglijent poate fi foarte mare, pentru că, oricum, veți petrece aproape o săptămână cu lectura și apoi încă una cu implementarea și cu testarea. Piesele de documentație sunt diversele fișiere ce se găsesc în /usr/share/doc/samba, fișierele de configurare din directorul /etc/samba și paginile man ale componentelor (man smb.conf, man smbd, man nmbd, man lmhosts, man winbindd). Din punct de vedere al programelor propriu-zise, pachetul Samba instalează trei daemoni, care, dacă se dorește, pot rula implicit la pornirea sistemului: smbd, nmbd și winbindd. Primul este programul Samba propriu-zis, iar nmbd și winbindd se ocupă, respectiv, de rezolvarea numelor în stil Microsoft și de citirea bazelor de date cu utilizatori de la alte servere NT din rețea. Componenta swat este o interfață Web comodă pentru configurarea Samba, pe care o puteți accesa la adresa IP a mașinii, pe portul 901.

Descrierea detaliată a utilizării parametrilor din /etc/smb.conf depășește, din păcate, ca volum, spațiul disponibil aici. Voi încerca, totuși, să enumăr măcar parametrii relevanți pentru funcționarea sistemului, în scopul de a vă ușura studiul.
Deci, cum începem? Dacă aveți distribuția Red Hat, vă recomand ca, înainte de toate, să tipăriți la imprimantă o copie a fișierului text de configurare /etc/samba/smb.conf, în varianta implicită dată de autorii distribuției. Apoi, aveți nevoie neapărat de o copie tipărită a paginii manual a Samba, adică a fișierului /usr/share/man/man5/ smb.conf.5.gz, care conține descrierea fiecăruia dintre zecile de parametri ce comandă acest program. În fine, pentru lămurirea unor aspecte punctuale - în special cele legate de autentificarea utilizatorilor - vă sugerez să parcurgeți măcar câteva dintre fișierele din directorul cu documentație, anume /usr/ share/doc/samba. Și, bineințeles, să vizitați http://www.samba.org/ <../../>

"Două fire, două paie ..."
Pentru a înțelege funcționarea Samba, trebuie, mai întâi, să ne imaginăm cum funcționează o rețea Microsoft (în generația Windows 95/Windows 98)

Într-o asemenea rețea, fiecare calculator este identificat printr-un nume simplu, neierarhic, cum ar fi STATIA1. Acesta este numele pe care îl asignați calculatorului Dvs. la instalarea Windows, în Control Panel -> System -> Identification. Tot aici vi se cere ca mașina Dvs. să facă parte dintr-o structură cum ar fi:

  • un grup de lucru (workgroup). Acesta înseamnă, pur și simplu, o mulțime de calculatoare Windows ierarhic egale (peers) care partajează informații - de exemplu într-un birou;
  • un domeniu (domain). Domeniul extinde noțiunea de workgroup adăugându-i un server Windows 2000 Server sau Windows NT însărcinat să păstreze centralizat baza de date cu numele și parolele utilizatorilor și alte informații despre mașinile-client aflate sub autoritatea sa.

De asemenea, fiecare mașină din rețea are nevoie de propria sa adresă IP, pentru a putea comunica cu celelalte. În cazul cel mai frecvent, această adresă nu este stabilită de utilizator la instalarea Windows - cei mai mulți utilizatori neprofesioniști nici nu știu despre ce vorbesc eu acum ;-) - ci se atribuie dinamic mașinii, în momentul pornirii, printr-un mecanism tip DHCP.

Ce se întâmplă, de fapt? În momentul pornirii calculatoarelor din rețea, fiecare își "strigă" propriul nume, folosind adresa IP de broadcast și anunțându-și astfel prezența. Între stații are loc un proces de "vot", prin care una - și numai una - este aleasă drept Local Master Browser (LMB). În această calitate, stația LMB va primi și păstra o copie a informațiilor despre folderele și imprimantele oferite spre partajare de toate celelalte stații - acea "listă" de foldere galbene pe care utilizatorul o vede dând un click pe icon-ul Network Neighborhood.

În cazul unei rețele complexe, în care segmentele sunt separate prin routere, procesul de "anunțare publică" (broadcast) și alegere a LMB are loc pe fiecare segment de rețea în parte. Asta deoarece broadcast-urile nu se propagă "prin" router, în segmentele învecinate. Pentru a unifica lista de partajări din întreaga rețea, sunt necesari încă doi "pioni". Primul este un Domain Master Browser (DMB), computer însărcinat cu "însumarea" listelor de partajări primite de la fiecare LMB în parte (de menționat că mașina desemnată ca Domain Master Browser este, de obicei, și Local Master Browser-ul pentru propriul segment local de rețea). Al doilea este serverul WINS (Windows Internet Name Server), care realizează conversii între adresele IP ale stațiilor și numele lor (și reciproc), analog cu DNS.

Deci, ce trebuie să facă un LMB în momentul în care a fost desemnat în această funcție pe propriul segment de rețea? El va trebui să găsească DMB-ul, pentru a sincroniza lista sa de partajări cu cea a întregii rețele. Cum DMB poate să fie situat pe un alt segment de rețea, acesta nu va fi accesibil în mod direct. Pentru a-l găsi, LMB va trebui să "întrebe" serverul WINS, care îi va furniza adresa IP a DMB-ului. Dar de unde o cunoaște WINS pe aceasta din urmă? Chiar DMB i-a comunicat-o, în momentul bootării.

Complicat, nu? Nu era mai drăguț, mai uman, serviciul DNS pe care l-am descris într-o conversație anterioară? Ba daaaaaaaaa...

În urma sincronizării între un LMB oarecare și DMB-ul întregii rețele, primul ajunge să cunoască întreaga listă de partajări pe care o are la dispoziție Domain Master Browser-ul în acel moment.

Trebuie adăugat că fiecare calculator din rețea trebuie să cunoască aprioric adresa IP a serverului WINS, analog cu modul în care este necesar ca Dvs. să introduceți manual adresele serverelor DNS în caseta Properties a TCP/IP-ului. Pe o rețea în care utilizatorii nu fac asta, puteți spera măcar că acești parametri se transmit, la bootare, printr-un mecanism DHCP.
Dacă tot acest proces vi se pare destul de complicat, aveți dreptate. Nu numai că este complex, dar volumul mare de broadcast-uri generează o încărcare mare a rețelei, diminuând lățimea de bandă disponibilă efectiv pentru transferul datelor utile. În plus, dacă una dintre legături nu funcționează - să zicem, unul dintre routerele amplasate între două segmente de rețea "cade" - actualizarea listelor se face încet. În Network Neighborhood veți continua să vedeți partajările de "dincolo" de routerul defect, care, în realitate, nu mai sunt accesibile, pentru încă aproximativ o jumătate de oră. Dacă dați un click pe un asemenea folder, încercând să-l deschideți, aveți toate șansele să vă blocați computerul.

Fenomene la fel de ciudate se întâmplă și în cazul în care, dintr-un motiv sau altul, serverul WINS nu mai este disponibil - de exemplu, secretara care lucra pe el l-a închis și a plecat acasă ;-) Lucrurile se petrec cam ca în cazul în care clienții rămân izolați față de serverul lor DNS - nu va mai funcționa aproape nimic. Dacă țineți seama și de faptul că, într-un birou, stațiile se închid și se deschid în mod aleator, veți înțelege cât de mare este traficul generat de acest proces, repetat periodic, de căutare, de broadcasting, de alegere a LMB-urilor ...

Ritmuri latino
Dacă ați înțeles procesul de mai sus, vă întrebați, desigur, cu ce vă poate fi de folos mașina Dvs. Linux în acest mediu Microsoft-only. Iată, am să vă dau niște vești bune ...

Mai întâi, vom începe cu setările elementare. În fișierul /etc/samba/smb. conf, stabiliți numele NETBIOS pe care îl va purta computerul Dvs, grupul de lucru din care face parte și un mic comentariu care vă va ajuta să-l identificați:

netbios name = COMPUTERULMEU
workgroup = FIRMA
server string = Computerul de la parter
interfaces = 192.168.0.1

Apoi, Linux poate prelua funcția serverului WINS. Este suficient să editați fișierul /etc/samba/lmhosts și să adăugați acolo linii forma:

192.168.0.1 COMPUTER1
192.168.0.2 COMPUTER2


prin care veți stabili asocieri între adresele IP și numele NETBIOS ale stațiilor din rețea. Vă sfătuiesc să utilizați capacitățile WINS ale Samba numai dacă nu există un server Windows NT sau 2000 care să îndeplinească această funcție. În plus, o singură mașină Samba trebuie să fie configurată ca server WINS. Ideal, în rețeaua Dvs. ar trebui să existe mai multe servere WINS, situate pe segmente diferite, care să își împartă sarcinile de a răspunde clienților și să își diminueze reciproc încărcarea (un mecanism de redundanță și de load-balancing). Desigur, toate serverele prezente trebuie să conțină aceeași bază de date lmhosts, pe care trebuie să o poată sincroniza între ele. Din nefericire, spre deosebire de serverele WINS de la Microsoft, Samba nu știe încă să participe la un asemenea mecanism de replicare. Și asta numai datorită faptului că Microsoft refuză să ofere chiar și cel mai mic detaliu despre protocolul prin care se execută sincronizarea. Așa că, momentan, nu aveți decât două altenative: să configurați un singur server WINS Samba sau să vă bazați pe capacitățile serverelor native existente în rețea. Calitatea de server sau de client WINS poate fi stabilită cu ajutorul parametrilor:

wins server = 192.168.0.3
(indică adresa IP a serverului WINS, deci mașina Samba este client)
wins support = yes/no


(stabilește dacă mașina Samba este ea însăși server)
Computerul poate îndeplini rolul de server sau cel de client, dar nu simultan. Ordinea în care se încearcă utilizarea diverselor mecanisme de rezolvare a numelor este dată de parametrul name resolve order =.
Mai departe, Samba poate prelua rolul de Local Master Browser sau cel de Domain Master Browser. Parametrii booleeni din /etc/smb.conf:

domain master =
local master =
controlează acest lucru, împreună cu opțiunile:
preferred master =
os level =


Trebuie să acordați atenție prezenței altor servere Microsoft în rețea. Nu trebuie să uitați că procesul de selecție al browserelor se repetă periodic - o "luptă" prea îndârjită între două servere care își dispută acest rol poate încetini sau bloca întreaga rețea. Desigur, nu trebuie să existe mai mult de un LMB pentru fiecare segment de rețea sau mai mult de un DMB. Cu ajutorul programului-client smbclient puteți verifica cum sunt asignate aceste roluri. Comanda:

smbclient -L \\COMPUTERULMEU

va afișa lista partajărilor oferite de COMPUTERULMEU, numele workgroup-ului din care acesta face parte și pe acela al LMB-ului care controlează întregul workgroup. Parametrul os level = stabilește nivelul priorității de care se va bucura Samba în elecția pentru LMB.

Odată ajunși în această fază, vă recomand să citiți documentul /usr/doc /samba/DIAGNOSIS.txt și să parcurgeți minuțios pașii de verificare sugerați acolo.

Halt ! Papiere ... ?!
Nu în ultimul rând, serverul Linux poate îndeplini funcția santinelei germane care păzește bariera: autentificarea celor ce se loghează de la stațiile Windows ;-)

Principala diferență între un workgroup și un domeniu Windows NT este aceea că, în timp ce fiecare mașină dintr-un grup de lucru are propria sa bază de date cu utilizatori, într-un domeniu baza de date există pe server (Primary Domain Controller - PDC) și este "consultată" de toate mașinile, în momentul logării. Pentru redundanță, pot exista alte servere NT, Backup Domain Controllers (BDC), care preiau încărcarea sau înlocuiesc PDC când acesta nu este disponibil.
Într-un mediu mixt, Windows/Linux, Samba poate juca rolul de PDC, dacă nu există un server Microsoft. Din aceleași motive de proprietarism arătate înainte, Linux nu poate participa la sincronizarea bazelor de date cu utilizatori, adică nu poate lucra (deocamdată) ca BDC.

Autentificarea utilizatorilor se poate face direct sau prin intermediul unui server NT/2000 auxiliar. Puteți controla aceste aspecte folosind următorii parametri din /etc/smb.conf:

security = (vă recomand security=user sau security=domain)
domain master =
local master =
domain logons =
password server =
encrypted passwords =
logon drive =
logon path =
logon script =
username map =


Înainte de a începe să lucrați într-un asemenea mediu mixt, asigurați-vă că ați instalat ultimele Service Pack-uri pe serverele Dvs. Windows 2000 sau NT. Altfel, vă veți confrunta cu probleme de interoperabilitate care nu au de a face, propriu-zis, cu Samba.

În cazul în care utilizatorii Dvs. poartă nume diferite pe mașina Unix și pe stațiile Windows, puteți stabili corespondențele folosind fișierul /etc /samba/smbusers. Liniile din acest fișier sunt de forma:

nume_unix = nume_windows1 nume_windows2 nume_windows3 ...

Pentru folosirea bazei de date a unui server NT/2000 în scopul autentificării utilizatorilor, trebuie să folosiți programul daemon winbindd, care realizează această funcție. Utilitarul auxiliar wbinfo vă permite să verificați ce nume de utilizator sunt definite și "exportate" în domeniul Dvs. - paginile manual ale celor două programe vă vor fi de folos.

După serbare
Sunt sigur că punerea la punct a unei rețele bazate pe Samba, cu particularitățile dorite de Dvs., vă va lua un timp mai lung decât în cazul altor programe. Șefii nu trebuie, însă, să devină nerăbdători - bine configurat, Samba este unul dintre programele care vă va scuti de foarte multe probleme în rețeaua firmei și va economisi taxele de licență consistente pentru un Windows 2000 Server sau Advanced Server.

De mare ajutor vă poate fi și cartea apărută în traducere, în românește: Carter, G.; Sharpe, R. - "Samba". Dacă sunteți programator, puteți încerca să contribuiți și Dvs. la dezvoltarea suitei Samba cu câteva secvențe de cod. Dacă nu, situl www.samba.org vă oferă indicații detaliate despre cum puteți menține buna dispoziție și cheful de muncă ale lui Andrew Tridgell și ale echipei sale, trimițând o pizza pe adresa lor din Australia.

Cât despre mine, vă stau la dispoziție, ca de obicei, pe http://www.linuxwill.go.ro


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro