Samba server (1)
Sve su češće situacije kada postoji potreba za deljenjem resursa između računara sa instaliranim Windows i Linux operativnim sistemima. Zato ćemo ovom prilikom opisati programski paket Samba, koji predstavlja skup programskih modula koji omogućavaju deljenje računarskih resursa između računara sa instaliranim različitim operativnim sistemima, međusobno umreženih. Na samom početku iznećemo osnovna načela funkcionisanja ovog programa i njegovu ulogu, dok ćemo u nastavku pisati o postupcima instalacije, konfiguracije i drugim detaljima koji mogu biti uzrok brojnim problemima tokom integracije u vaš sistem.
U današnje vreme nije retka pojava da se u okviru iste lokalne računarske mreže koriste računari sa instaliranim različitim operativnim sistemima, gde se uglavnom radi o različitim varijantama Windows operativnih sistema (Win98, Win NT, Win 2000, WinXP) u kombinaciji sa nekom od brojnih Linux distribucija (RedHat, Mandrake, Debian, SuSe).
Usled toga nastaje potreba za međusobnim deljenjem resursa između spomenutih platformi, radi njihovog što boljeg iskorišćavanja. Samba je programski paket koji omogućava integraciju Linux računara u Microsoft okolinu, pri čemu Windows računari i ne konstatuju da komuniciraju sa računarima sa nekim drugim operativnim sistemom.
Na taj način moguć je prikaz Linux računara sa instaliranim Samba paketom unutar Network Neighbourhood ili Windows Explorer okruženja.
Microsoft koristi malo drugačije protokole i servise za omogućavanje mrežne komunikacije između računara u odnosu na ostale operativne sisteme. To je ujedno i jedan od osnovnih razloga zbog kojih je potrebno korištenje Sambe za pristup Linux fajlovima pod Windowsom.
Osnovni protokol koji omogućava međusobno deljenje resursa između Windows računara je SMB (Service Message Block). Taj protokol dalje koristi NetBIOS (Network Basic I/O System) i druge protokole nižeg nivoa, kako bi se omogućilo lociranje i međusobna komunikacija između pojedinih računara. Ovde treba napomenuti da se takav pristup bitno razlikuje u odnosu na klasične mrežne protokole (TCP, UDP, IP), koji su odomaćeni kod većine drugih operativnih sistema, a što je, u principu, i osnovni izvor svih problema. Možda je jedan od razloga i taj što su Microsoftovi protokoli u početku bili namenjeni za korištenje u LAN mrežama.
NetBIOS protokol
Računari koriste NetBIOS imena da bi mogli međusobno da komuniciraju unutar Windows okruženja. Ta NetBIOS imena vezana su isključivo za Windows platforme i u osnovi nemaju nikakvih sličnosti sa imenima uređaja kakva koristi DNS sistem imenovanja (npr. sanja.sp.yu).
Imena kod NetBIOS-a, za razliku od FQDN (Fully Qualified Domain Name) imena - kakve koristi DNS sistem (npr. sanja.sp.yu), sastoje se od 15 znakova koji određuju njegovo ime, plus šesnaesti znak koji određuje servise koje taj računar nudi. Kako bi se rešio problem spajanja lokalne mreže koja koristi NetBIOS (LAN u Windows okruženju) sa mrežama koje koriste TCP/IP i UDP/IP protokole (Internet) razvijen je NBT (NetBIOS over TCP/IP) standard koji određuje kako bi NetBIOS trebalo da radi preko TCP/UDP mreža. Standard određuje tri osnovne usluge:
- mogućnost povezivanja NetBIOS imena sa IP adresom,
-datagrami,
-sesije.
Mogućnost povezivanja imena sa IP adresom omogućava svakom računaru da koristi specifično ime na mreži koje će biti prevedeno u IP adresu (slično kao DNS usluga na Internetu). Datagrami i sesije su sekundarni komunikacioni protokoli koji se koriste za razmenu podataka između NetBIOS računara preko mreže.
Dodeljivanje imena i njihovo povezivanje sa IP adresama
Kad se neki NetBIOS računar spoji na mrežu, prvo što mora da napravi je da registruje svoje ime (eng. name registration). SMB protokol radi na principu koncepta grupa (workgroup) na koje novi računari mogu da se prijave. Grupa je određen skup računara unutar iste mreže. Problem je u tome što dva računara unutar iste grupe ne mogu imati isto ime. Postoje dva načina da se to osigura:
- dozvoljavanje svim računarima na mreži da čuvaju svoje NetBIOS ime u slučaju da neki drugi računar pokuša da ga koristi.
- korišćenje NBNS-a (NetBIOS Name Server) koji vodi računa o tome koji su računari registrovali NetBIOS ime.
Osim toga, potrebno je osigurati pretvaranje NetBIOS imena u specifične IP adrese ( name resolution).
I za ovo postoje dva različita pristupa:
- svaki računar može da vrati svoju IP adresu kad se prozove njegovo NetBIOS ime.
- NBNS može da se koristi za povezivanje NetBIOS imena sa IP adresama.
Kada se uključuje novi računar na mrežu koja ne koristi NBNS server novi računar šalje poruku u kojoj specificira NetBIOS ime s kojim želi da se priključi na mrežu svim računarima u mreži (broadcast). Ako to ime ne koriste ni jedan ni drugi računar, onda će ga novi računar zadržati. U slučaju da to ime već koristi neki računar u mreži, on će javiti novom računaru da je to ime zauzeto. Problem s broadcastom, osim što zagušuje mrežu, je i u tome što ima nevolja sa mrežama koje imaju više od jedne podmreže zbog usmerivača (rutera) koji su često konfigurisani tako da blokiraju pakete koji su broadcastovani svim računarima na podmreži.
Prilikom korišćenja NBNS servera dešava se ista stvar, samo što se komunikacija odvija samo između novog računara i NBNS-a. Novi računar javlja NBNS-u koje ime želi da koristi, a NBNS javlja novom računaru da li je to ime slobodno ili nije.
Slično je i sa povezivanjem NetBIOS imena i IP adresa. Ako se ne koristi NBNS tada se svim računarima u mreži šalje NetBIOS ime, a računar kome to ime pripada vraća svoju IP adresu. Kada se koristi NBNS tada se njemu šalje NetBIOS ime, a on vraća odgovarajuću IP adresu.
Iz svega ovoga lako možete da vidite da korišćenje NBNS servera prilično rasterećuje mrežu i ubrzava komunikaciju zbog uklanjanja potrebe za slanjem poruka svim računarima u mreži (broadcast).
Windows Internet Name Service (WINS)
WINS je Microsoftova implementacija NBNS-a. Kad se računar spoji na mrežu on mora da prijavi svoje ime i IP adresu lokalnom WINS serveru. WINS server će zadržati tu informaciju sve dok nov računar periodično osvežava svoju registraciju, što pokazuje da je još uvek spojen na mrežu. WINS opslužuje sve računare na mreži nezavisno od njihovog domena.
U mreži se može postaviti više WINS servera koji će se međusobno sinhronizovati u određenim vremenskim razmacima. To daje mogućnost računarima u mreži koji se često uključuju i isključuju sa mreže da koriste različite WINS servere. Iako teorijski ovo izgleda efikasno, u praksi može dodatno da optereti mrežu. Sa obzirom da WINS server može bez problema opsluživati višestruke podmreže često je mnogo bolje da svi Windows klijenti koriste isti WINS server, bez obzira na broj domena koji se koristi. Tako će postojati samo jedan WINS server koji će imati ispravne informacije, umesto da nekoliko WINS servera sve vreme pokušava da se uskladi sa novim promenama.
Trenutno aktivni WINS server naziva se primarnim ( primary). Moguće je postaviti i sekundarni WINS server, koji će preuzeti ulogu primarnog u slučaju da ovaj “padne”. Primarni i sekundarni WINS server periodično sinhronizuju svoje podatke. U Windows familiji operativnih sistema, samo NT Workstation, NT Server i Windows 2000 mogu biti WINS serveri. Samba može raditi kao primarni WINS server, ali ne i kao sekundarni.
SMB grupa je skup računara na lokalnoj mreži. Što se tiče Windows domena, oni idu korak dalje. Windows domen je skup računara (koja odgovara jednoj SMB grupi) na lokalnoj mreži, uz dodatak servera koji sa naziva kontrolor domena (domain controller).
Kontrolor domena
Glavni deo Windows domena je kontrolor domena (slično kao NIS server u Linux/Unix okruženju). On ima više zadataka. Jedan je briga oko pravilne autentifikacije korisnika. (Autentifikacija je proces dodele ili zabrane pristupa korisniku deljenim resursima na drugom računaru spojenom na mrežu.).
Svaki kontrolor domena koristi SAM (security account manager) za održavanje liste korisničkih imena i šifri. Kontrolor stvara centralnu kolekciju korisničkih imena i šifri, što je mnogo efikasnije nego da svaki računar na mreži mora da održava stotine šifri za svaki deljeni resurs koji je dostupan na mreži.
U Windows domenu, kada neautentifikovani klijent zatraži pristup deljenom resursu na nekom serveru, server će pitati kontrolor domena da li je taj korisnik autentifikovan. Ako jeste, server će dati korisniku pristup resursu, a ako nije, server će korisniku zabraniti pristup. Jednom kad je korisnik autentifikovan od strane kontrolora domena, on dobija poseban autentifikacioni token, tako da se ne mora ponovo autentifikovati prilikom pristupa ostalim resursima u tom domenu. Može se reći da je korisnik prijavljen na sam domen.
Primarni i pomoćni kontrolor domena
Kontrolor domena koji je trenutno aktivan naziva se primarni (primary domain controller, PDC). Na domenu može biti više pomoćnih kontrolora (backup domain controller, BDC), koji će preuzeti ulogu primarnog ako ovaj postane nedostupan. Pomoćni kontroleri često sinhronizuju svoje SAM podatke (korisnička imena i šifre) sa primarnim kontrolorom, kako bi u slučaju potrebe mogli da preuzmu kontrolu domena. Pomoćni kontrolori imaju kopije SAM podataka samo za čitanje i nove podatke mogu da dobiju samo sinhronizacijom sa primarnim kontrolorom. U stvari, razlog je uniformnost podataka na svim kontrolorima (svi kontrolori imaju potpuno iste podatke kao primarni kontrolor). Server u Windows domenu može koristiti SAM podatke bilo kog kontrolora u domenu (primarnog ili pomoćnih) za autentifikaciju korisnika koji želi da se prijavi na domen, ali unos novih korisnika koji smeju da pristupaju domenu mora da ide preko primarnog kontrolora domena.
Samba može preuzeti ulogu primarnog kontrolora domena dok funkcije pomoćnog kontrolora domena još uvek nisu podržane od strane Sambe.
Samba programski moduli
Kako smo ranije spomenuli, programski paket Samba se sastoji od niza programskih modula, od kojih svaki obavlja određeni deo posla. Neki od važnijih modula ovde će biti navedeni zajedno sa njihovom ulogom.
- smbd je SMB program server (radi na TCP portu 137) koji razgovara pomoću SMB protokola i omogućava međusobnu komunikaciju i deljenje resursa između računara. On takođe predstavlja jedan od dva najvažnija modula koji dolaze kao deo Samba paketa i omogućavaju njegovo funkcionisanje.
- nmbd je drugi važan modul iz Samba programskog paketa, a uloga mu je da obavlja poslove vezane za rezoluciju NETBIOS imena. Radi na TCP portu 139 i stalno osluškuje mrežni promet, odnosno NETBIOS zahteve. Ukoliko na mreži čuje zahtev za pristup sa svojim NETBIOS imenom, on odgovara svojom IP adresom, kako bi računar koji je poslao zahtev znao kome u buduće da šalje pakete.
- smbclient je odličan klijentski program za pristupanje resursima drugog računara, (kojima je dozvoljen pristup). Komande su prilično intuitivne, vrlo slične FTP komandama, što olakšava njegovo korišćenje.
- nmblookup je vrlo koristan program koji nam omogućava da saznamo IP adrese računara kome želimo da pristupimo, na temelju njegovog NETBIOS imena.
- smbstatus je programski modul koji omogućava davanje informacija o trenutnim vezama prema Samba serveru.
- testparm je vrlo koristan program za proveru regularnosti napisane ili naknadno modifikovane smb.conf datoteke.




del.icio.us
Digg
Twitter
Facebook
Pošaljite komentar