**SMB** (*server message block*) ir lietojumslāņa protokols, kuru galvenokārt lieto failu pārsūtīšanai starp windows datoriem. Tā ir plašāk lietotā tīkla failsistēma. SMB arī nodrošina piekļuvi tīkla printeriem. Viena no SMB versijām saucās arī **CIFS** (*common internet file system*), no tā ir cēlies nosaukums vienam no linux kodola moduļiem, kas implementē SMB klientu. SMB klients un serveris ir bijis iebūvēts visās windows versijās, kam ir bijusi iebūvēta tīkla funkcionalitāte. Eksistē arī klienti un serveri citām operētājsistēmām, nozīmīgākais no tiem ir (sākotnēji linux paredzētais) Samba, kas satur gan kientu, gan serveri.

Darbība
-------

Sākumā (Windows 95), SMB darbināja ar NetBIOS transportu. Pašu NetBIOS varēja darbināt tieši uz ethernet (NeBEUI)(NBT), uz IPX, (NBX), vai uz IPv4 (NBT). Vēlāk (sākot ar Windows 2000), sāka lietot SMB pa taisno uz TCP. Ar netbios, SMB serveris klausījās uz 139 porta (TCP), ar TCP ir uz 445. Windows serveriem nevar norādīt lai klausās uz ne-defaultajiem portiem. Windows klientiem nevar norādīt lai pieslēdzas pie ne-defaultajiem portiem.

SMB ir klients-serveris tipa protokols. Parasti visās implementācijās ir pieejams gan klients gan serveris. Klients pieslēdzas pie servera un sūta uz turieni pieprasījumus, serveris atbild uz tiem pieprasījumiem. Ir daži gadījumi, kad serveris var sūtīt pieprasījumu klientam. Pēc pieslēgšanā pie servera, klients autentificējas, pēc tam pieslēdzas pie resursa (*map network drive*) un pēc tam var piekļūt tajā resursā esošajiem datiem.

### Autentifikācija.

Eksistē vairākas autentifikācijas metodes, bet tās visas ir bāzētas uz parolēm.

#### share level security

Serverī katram resursam var būt definēta parole un (vai vairākas, failsistēmas resursiem), jebkurš, kas zin attiecīgo paroli, var piekļūt attiecīgajam resursam. Lietotājvārdus nelieto. Jaunākajās windows versijās šī metode ir atslēgta. Ja parole nav norādīta, tad resursam var piekļūt jebkurš. Ja ir divas paroles, tad ar vienu var dabūt lasīšanas pieeju un ar otru var dabūt pilno pieeju.

#### user level security

Serverī katram resursam ir definēts atļauto lietotāju saraksts. Šai metodei ir vairāki varianti (LM, NTLM, NTLM2), tie atšķiras ar 
serverim nosūtāmās paroles kodēšanas formātu. Šī metode lieto lietotāju sarakstu, katram sarakstā esošajam lietotājam var būt piešķirtas atšķirīgas pieejas atļaujas (lasīšana vai lasīšana+rakstīšana). Ja apakšā esošajai (servera) failsistēmai (piemēram, NTFS) arī ir access control, tad, piekļuve ir iespējama tikai ja to atļauj gan faisistēma, gan SMB serveris. Failsistēmā var norādīt sīkākus pieejas ierobežojumus (piemēram, atļaut pieeju tikai atsevišķiem failiem un apakšdirektorijiem).

### Resursi

Tie var būt tīkla printeri, failsistēmas (koplietots direktorijs), IPC vai kas cits, bet tie 3 ir plašāk lietotie. Tīkla printeris ļauj drukāt uz printera, kas ir pieslēgts pie servera un nošārēts. IPC var lietot datu apmaiņai starp programmām (piemēram, lai pieslēgtos pie *computer management* pie kāda cita datora caur tīklu)(to var lietot lai startētu vai apturētu sistēma servisus, lasītu *system log* un tamlīdzīgi).

Failsistēma nodrošina līdzīgas iespējas kā lokālā diska failsistēma: Var izveidot direktorijus, dzēst direktorijus un failus, pārsaukt un pārvietot direktorijus un failus, rakstīt un lasīt failus (no jebkuras pozīcijas). Failu pārsūtīšanas protokoli parasti nenodrošina iespēju rakstīt failus no jebkuras pozīcijas.