Jagatud juurdepääs võrguressurssidele. Juurdepääs MS Windowsi arvuti jagatud ressurssidele (SAMBA protokoll)

1.3 CIFS ja SMB tehnoloogiad

Ühine juurdepääsuprotokoll Interneti-failid(Üldine Internet Failisüsteem- CIFS) võlgneb oma päritolu serverite sõnumiploki (SMB) tehnoloogiale, mis ilmus esmakordselt MS DOS 3.3-s. SMB standard kirjeldab protokolli failisüsteemi käskude (ava fail, lugemine, kirjutamine, lukustamine ja sulgemine) saatmiseks kliendist failiserverisse.
Enne CIFS-i ja SMB-tehnoloogiate tehniliste üksikasjade arutamist on vaja selgitada nende peamised erinevused. Esialgu oli ainult SMB tehnoloogia, mida kasutati maailmas klient-server failiprotokollina personaalarvutid. 1980. aastate keskel andis Microsoft oma SMB-protokolli juurutamisele nime CIFS ja hakkas CIFS-i positsioneerima kui otsene konkurent WebNFS ja NFS standardid. Microsoft esitas sissejuhatava RFC-dokumendi IETF-ile (Internet Engineering Task Force) läbivaatamiseks ja dokument aegus hiljem, ilma et oleks üritatud muuta RFC-d IETF-i spetsifikatsiooniks.
Microsofti sõltumatud pakkujad NAS-seadmed alustas CIFS-i spetsifikatsiooni väljatöötamist ja korraldas mitmeid CIFS-i propageerimiseks üritusi. Storage Networking Industry Association (SNIA) on võtnud CIFS-i avaldamise ülesandeks. Microsoft andis tasuta välja ka CIFS-i spetsifikatsiooni (nn Common Internet Filesystem Access Protocol).
Sarnased Microsofti SNIA CIFS ja CIFS spetsifikatsioonid kirjeldavad protokolli, mida Windows NT 4.0 kliendid kasutavad Windows NT serverite ressurssidele juurdepääsuks. Mõlemad spetsifikatsioonid ei käsitle SMB-protokolli, mida kasutatakse Windowsi uuemates versioonides (näiteks ei käsitle see kliendipoolset vahemällu, mida Windows 2000 toetab). Lisaks ei kirjelda spetsifikatsioonid kõiki serveritevahelise suhtluse protokolle. Uut SMB standardit, mis ei ole tasuta spetsifikatsioon, kirjeldatakse seotud spetsifikatsioonis, mida Microsoft levitab tasu eest, mis on võimalikuks saanud Euroopa Liidu ja USA valitsuse kohtuotsustega.
Nii hakkas Microsoft taas nimetama kirjeldatud tehnoloogia rakendamist SMB-plokiks. Põhimõtteliselt on Microsofti SMB patenteeritud protokoll, mis on tööstusstandardi CIFS-i laiendatud versioon.
Pange tähele ka SMB/CIFS-i ja NetBIOS-i vahelist ajaloolist seost. NetBIOS-i programmeerimisliides (OSI mudelis seansikiht) on hetkel lootusetult vananenud. Liides rakendab abstraktsioonikihti, mis võimaldab rakendustel töötada erinevate transpordiprotokollidega, nagu TCP/IP, NetWare või nüüdseks unustatud XNS-protokoll (Xerox võrgusüsteem). Vajadus rakenduste programmeerimisliidese järele, mis annab võimaluse luua rakendusi, mis ei sõltu võrguprotokollist, eksisteerib tänapäevalgi. Kuid praegu kasutatakse selleks tavaliselt pistikupesa liidest, eriti in Windowsi maailm- Winsocki liides.
Microsoft kasutas nimede lahendamiseks (serveri nime tõlkimiseks võrguaadressiks) NetBIOS-i, kuid nüüd on selleks mõeldud standardne DNS-teenus.
Algselt ei kasutanud Microsoft TCP / IP-d transpordiprotokollina, mis aja jooksul dramaatiliselt muutus, kuid NetBIOS-i tugi oli endiselt olemas. NetBIOS-i roll on aga pidevalt vähenenud. Määrates SMB-failiserveritele TCP/IP-pordi, "ravis" NetBIOS-sõltuvus täielikult vähemalt aluseks oleva protokolli kontekstis. Kuid olukord jäi segaseks, sest mõned Windowsi teisesed kliendi- ja serveriteenused nõudsid endiselt NetBIOS-i protokolli. hea näide oleks serverid, mis teatavad oma olemasolust võrgus ja pakuvad saadaolevate teenuste loendit, samuti edastavad need teated klientidele teiste serverite poolt. Aja jooksul kujundati teenused ümber ja NetBIOS suleti täielikult pärast Windows 2000 väljalaskmist.
Lõpuks võib SMB pärandit näha igas CIFS-i päringus, kuna iga päring ja vastus peavad algama väärtusega "0xFF", millele järgneb ASCII märgid, nagu "SMB".

1.3.1 CIFS-standardi sordid

Kahjuks puudub CIFS-standardi täpne määratlus. Erinevat tüüpi SMB-protokolle nimetatakse dialektideks. Siin on mõned võimalikud valikud.
■ mida kasutavad DOS ja Windows 3.x kliendid;
■ kasutatakse ühenduse loomisel mitte-Windowsi serveritega;
■ Kasutavad Windows NT-d kasutavad kliendid.
Kõige sagedamini saadab klient serverile taotluse seansi loomiseks ja saadab kõigi toetatud protokollivalikute loendi. Server valib kõige funktsionaalsema valiku ja saadab vastava päringu kliendile. Olenevalt protokollist, milles klient ja server on "kokku leppinud", võivad mõned päringud ja neile vastavad vastused olla kehtetud. Protokolli konsensusversioon ei määratle üheselt protokolli funktsioonide tegelikku rakendamist, mis tekitab segadust veelgi; mõned lipud saab määrata või kustutada, et näidata teatud funktsioonide toetust. Teisisõnu, isegi protokolli valimisel on pakutavate funktsioonide jaoks mitmesuguseid võimalusi: näiteks võib üks lipukestest näidata pikkade failinimede toe olemasolu.
Nagu on kirjeldatud Microsofti RFC-s (praeguseks IETF-i reeglite järgi vananenud), pakub CIFS-protokoll kliendi-serveri sidet failidele juurdepääsuks ja nende haldamiseks. Funktsioonid, nagu võrgus saadaolevate printerite ja serverite teatamine, ei kuulu CIFS-protokolli reguleerimisalasse.
SNIA jätkab tööd CIFS-i spetsifikatsiooni kallal. Lisaks viib läbi SNIA aastakonverents pühendatud CIFS-ile ja korraldab muid üritusi, mis arutavad CIFS-protokolli kasutavate süsteemide vahelise interaktsiooni küsimusi.
SMB spetsifikatsioon on olnud standard alates 1992. aastast (X/Open CAE spetsifikatsioon C209) ja kirjeldab SMB-d kui DOS-i, Windowsi, OS/2 ja UNIX-i kasutavate arvutite vahelise koostalitlusvõime protokolli.

1.3.2 CIFS-protokolli kirjeldus

CIFS-i päringutel ja vastustel on selge ja arusaadav struktuur. SMB-pakettide väljad on samuti standardiseeritud ning erinevused sõltuvad valitud CIFS-i maitsest ja funktsioonidest, mida nii klient kui ka server toetavad.
Pange tähele, et kuvatakse ainult kõigi SMB variantide ühised elemendid. SMB paketi iga variandi struktuuri üksikasjad ei kuulu selle artikli ulatusse.
Mõned tabeli väljad nõuavad rohkem täielik kirjeldus. Käsuväli on ühe baidi suurune ja kirjeldab päringu tüüpi. Server kopeerib selle väärtuse vastusesse, mis võimaldab kliendil viimast sõeluda. CIFS-i spetsifikatsioon sisaldab selle välja väärtusi ja määratlusi. Kirjeldatud käsud võimaldavad teil teha selliseid toiminguid nagu faili avamine, lugemine, kirjutamine ja teatud failivahemiku lukustamine. Kõik need toimingud tehakse vastuseks rakenduse päringule.
Lisaks algatab CIFS-i kliendipäringud (ja nendega seotud serverivastused) ümbersuunaja kood ilma rakenduse selgesõnalise sekkumiseta. Näiteks vahemällu salvestamine ja oportunistlik lukustamine. CIFS RFC ja SNIA spetsifikatsioonid ning Open Group määratlevad 1-baidise CIFS-i käsukoodi tähendused ja semantika.

Tabel SMB päise struktuur

Väli

Suurus

Kirjeldus

Alati 0 xFFSMB

Taotluse tüübi määramine

32-bitine veakood (genereeritud Windows NT serverite poolt ja tagastatud 32-bitise veakoodina koode toetavatele klientidele Windowsi vead NT) VÕI

Vanemate klientide puhul, mis ei toeta 32-bitiseid veakoode, teisendatakse veateade vanaks struktuurne tüüp. Vana tüüp sisaldab:

■ 8-bitine veaklass, mis näitab vea tüüpi, st. kas sellest veast teatab serveri operatsioonisüsteem või server ise; pealegi võib see olla viga riistvara või SMB protokoll;

■ 8 bitti ignoreeritakse;

■ 16-bitine veakood, millel on tähendus ainult kindla veaklassi piires

Semantika on esitatud tabelis. 3.2

Semantika on esitatud tabelis. 3.3

täitmine/

Täitmine / allkiri. Vaatlusalune

jaotise tekstis

Tid-väärtus

Kasutatakse kliendi taotletud serveriressursi tuvastamiseks. Määratud SMB TreeConnecti päringu abil

Kirjeldus

Identifikaator

2 baiti, kuid

Paigaldatud kliendi poolt. Näidustus

protsess (Pid)

kui vajalik

kliendiprotsess, mis täidab

nõuda. Server kasutab

Võib olla

faili avatud režiimi jälgimine

laiendatud kuni

ja blokeerimiseks. Serveri poolt saadetud

tagasi kliendile koos multiplekseri ID-ga (keskel), et saada kordumatu ID. päringute tuvastamine, millele server vastab

Identifikaator

Paigaldatud ja kliendi poolt kasutatud.

multiplekser

Server tagastab vastuseks saadud Mid

nõudmisel. Klient kasutab Mid ja Pid väärtusi, et tuvastada päring, millele vastus tuli.

Uid väärtus

Määrab server pärast kliendi autentimist. Klient peab kõigis päringutes kasutama Uid-d

Valikud

Muutuv

Koosneb 16-bitisest sõnaloendurist, mis näitab loendurile järgnevate 16-bitiste sõnade arvu. Iga SMB-käsu puhul on see loendur tavaliselt fikseeritud väärtus, kus on üks sõnaloendur käsu ja üks vastuse jaoks. Tavaliselt on selle loenduri väärtus 5 või vähem

Muutuv

Koosneb 16-bitisest sõnaloendurist, mis näitab loendurile järgnevate andmete baitide (8-bitiste sõnade) arvu. Võrreldes parameetriväljaga võib andmeväli olla palju suurem, näiteks 1 KB või rohkem. SMB lugemis- ja kirjutamispäringutes sisaldab see väli tegelikke loetavaid või kirjutatavaid andmeid

Pidage meeles, et uued välja väärtused ja semantika võivad ilmuda ilma hoiatuseta, kui uued välja antakse. Windowsi versioonid kuna CIFS-protokoll areneb edasi.
Samade põhitoimingute tegemiseks on mitu käsku; nt avamiseks, lugemiseks ja kirjutamiseks on mitu korda isiklikud meeskonnad. Mõnda käsku enam ei kasutata ja mõnel juhul võidakse kasutada alternatiivseid käske, olenevalt valitud protokolli dialektist.
Järgnevalt on toodud näited käsuväljal kirjeldatud funktsioonidest.
■ SMB tüübi valik.
■ Sideseansi seadistamine.
■ Kataloogides navigeerimine ning failide ja kataloogide loetlemine.
■ Failide avamine, loomine, sulgemine või kustutamine.
■ Faili teatud osade lukustamine ja avamine.
■ Printimistoimingud.
■ Failide ja kataloogide muutmise teatised.
■ Andmeid, parameetreid ja toiminguid määravad tehingud. CIFS-server teeb nõutud toimingu ja tagastab tulemuse – andmed ja parameetrid. Tehingute näideteks on lingid hajutatud failisüsteemis ja laiendatud atribuutide haldus.

Tabel Lippude välja semantika

Tähendus

Kirjeldus

Reserveeritud. Kasutatakse pärandpäringutes

Reserveeritud. Peab olema null

Näitab, et failinimed peaksid olema tõstutundlikud

ja kataloogid

reserveeritud

Reserveeritud. Kasutatakse pärandpäringutes

Reserveeritud. Kasutatakse pärandpäringutes

Näitab, et see on SMB vastus

Lipp2 väli kirjeldab veelgi rohkem valikulised funktsioonid. Selle välja väärtused on näidatud allolevas tabelis.
Väli Padding/Signature oli algselt tühikäigubaitide jada. Aja jooksul on selle välja väärtus muutunud. Täiteväli võib nüüd sisaldada järgmisi elemente:

Tabel Flags2 välja semantika

Tähendus

Kirjeldus

Klient toetab pikki failinimesid. Server võib tagastada pikki failinimesid

Klient toetab OS/2 laiendatud atribuute

SMB-paketi allkirjastamine on lubatud

reserveeritud

reserveeritud

reserveeritud

Iga päringu tee nimi on pikk nimi

reserveeritud

reserveeritud

reserveeritud

reserveeritud

Viide laiendatud turvamehhanismi kasutamise kohta, mida käsitletakse jaotises 3.3.3

Taotluses olevad teed tuleb teisendada hajutatud failisüsteemi abil

Lehe sisend/väljund, mis näitab, et lugemine peaks olema lubatud, kui kliendil on vastav luba

Viide 32-bitise veakoodi tagastamiseks. Kui lippu pole seatud, kasutatakse DOS-stiilis veakoodi.

Kui lipp on seatud, on SMB-paketi teed Unicode-vormingus. Vastasel juhul kasutatakse ASCII-kodeeringut.

■ 2-baidine protsessi ID, mis võimaldab määrata 32-bitised protsessi ID-d;
■ 8 baiti SMB-paketi allkirja salvestamiseks, kui see funktsioon on lubatud (vt välja Flags2 kirjeldust);
■ 2 kasutamata baiti.

1.3.3 CIFS-turvalisus

CIFS protokoll pakub turvalisust serveri abil. Administraator saab CIFS-i integreeritud turbe keelata, mis tõenäoliselt pole vajalik, seega on turvalisus vaikimisi lubatud.
CIFS-i vanemates versioonides on lubatud saata kliendilt serverisse krüptimata tekstiparool, mis on tungivalt mittesoovitav. CIFS-protokoll võimaldab serveriressursse kaitsta individuaalsete kasutajaparoolidega (seda nimetatakse kasutajataseme turvalisuseks). Tagasiühilduvuse tagamiseks toetavad CIFS-serverid jagamise kaitsmist parooli alusel, mis on kõigile kasutajatele sama. Kuna ressurssi jagatakse, nimetatakse seda meetodit ressursitaseme turbeks. Ressursitaseme turvalisus on aegunud ja pole Windows 2000 Serveris saadaval. Esimene SMB-pakett, mille klient serverisse saadab, kannab nime SMB_NEG0TIATE_PR0T0C0L. Paketti kasutatakse CIFS-i tüübi valimiseks. Vastuseks SMB_NEG0TIATE_PR0T0C0L päringule teatab server kasutatavast turbemehhanismist (kasutaja või ressursi tase).
Alates operatsioonisüsteemidest Windows NT4 SP3 ja Windows 2000 tutvustas Microsoft SMB-pakettides hostimise võimalust. digitaalne allkiri. Serverit saab konfigureerida nõudma kliendilt digitaalallkirja; vastasel juhul keelatakse kliendil juurdepääs ressurssidele. Digiallkirja kasutamine mõjutab nii serveri kui ka kliendi jõudlust, kuid see on hind, mida maksate turvalisuse eest. Pange tähele, et allkirjastamine ja kontrollimine on olemuselt kahesuunalised, st. klient allkirjastab tema saadetud päringud, server kontrollib kliendi allkirja ja allkirjastab saadetud vastused ning seejärel kontrollib klient serveri allkirja. SMB-paketi allkiri salvestatakse väljale Padding/Signature.
Vastust päringule SMB_NEG0TIATE_PR0T0C0L kasutatakse kliendi teavitamiseks, et server toetab SMB paketi allkirjastamist ja et SMB paketi allkirjastamine on vajalik.

1.3.4 CIFS-autentimine

CIFS-protokoll võimaldab teil määrata turvalisuse taseme serverite ja klientide suhtluses. Serverit saab konfigureerida keelduma teenuse osutamisest klientidele, kes pakuvad liiga vähe turvalisust.
CIFS-protokoll pakub autentimismehhanisme, mida server nõuab kliendi autentimiseks. Lisaks pakutakse meetodeid serveri autentimiseks kliendi poolt. IN algtase autentimisel annab klient kasutajanime ja krüptimata parooli. Arusaadavatel põhjustel on selline lähenemine ebasoovitav. Lisaks saab serverit konfigureerida keelduma teenuse osutamisest klientidele, kes saadavad paroole selgelt.
Autentimist saab läbi viia tehnoloogia abil, mida nimetatakse väljakutse/vastuse protokolliks. Kui klient saadab CIFS-i tüübi valimiseks paketi SMB_NEGOTIATE_PROTOCOL, näitab lipp serveri vastuses, et väljakutse/vastuse protokolli saab kasutada. Kui server seda protokolli toetab, esitatakse serveri vastuses 8-baidine päring. Taotlus on juhuslik väärtus, mille uuesti genereerimise tõenäosus on väga väike. Nii klient kui ka server moodustavad kasutaja paroolist võtme. Pärast seda krüpteeritakse päring võtme ja DES (Data Encryption Standard) algoritmi abil. Klient saadab serverile päringu ja server võrdleb vastust enda arvutatud väärtusega. Kui kaks väärtust ühtivad, tõendab klient parooli tundmist ja selle autentsust.
Lisaks toetab CIFS-protokoll laiendatud turvalisust (ei saa loota, et lugeja, kes arvab ära, et serveri vastuses SMB_NEGOTIATE_PROTOCOL päringule viitab laiendatud turbetoele, saab preemia). Laiendatud turvamehhanism võimaldab CIFS-protokolli raames toetada suvalist autentimisprotokolli. Kui on valitud laiendatud turbe, antakse esimene turbeplokk vastusena päringule SMB_NEGOTIATE_PROTOCOL. Turvabinaarfaile CIFS-protokoll ei käsitle. Selles toetub see binaarobjektide genereerimiseks ja töötlemiseks kliendi ja serveri mehhanismidele. Hilisemaid turbeplokke võidakse saata koos SMB andmetega.
Laiendatud turbemehhanismi kasutamine võimaldas Microsoftil pakkuda Windows 2000 ja uuemates versioonides Kerberose protokolli tuge. Kerberose juurutamine operatsioonisüsteemis Windows 2000 on näide privaatsete elementide kasutamisest. Näiteks mõnda Kerberose piletivälju kasutatakse teabe edastamiseks gruppide kohta, mille liige klient on. Microsofti Kerberose juurutus võimaldab vastastikust autentimist, kus mitte ainult ei autenti server klienti, vaid ka vastupidi, klient autentib serveri.
Microsoft pakub teist võimalust sideseansi loomiseks kliendi ja serveri nimega Netlogon. See kasutab andmeid arvuti (ja mitte kasutaja) kohta. Netlogoni protokoll on vajalik turvalise RPC-seansi loomiseks ja sellel on palju muud rohkem võimalusi, kuna see toetab kasutajate juurdepääsumärke, mida CIFS-protokolli kasutades registreerimisel ei toetata. Tavaliselt kasutatakse serveritevaheliseks suhtluseks Netlogoni (üks server toimib teise serveri kliendina).
Lõpuks ei pea CIFS-server pakkuma autentimismehhanismi. CIFS-protokoll toetab läbipääsuautentimist, kus server võtab vastu päringu teiselt serverilt, edastab selle päringu kliendile ja tagastab kliendi vastuse autentimisserverile. Sel juhul, kui autentimisserver vastab positiivselt, antakse kliendile juurdepääs taotletud ressurssidele. Seda mehhanismi tuntakse läbipääsuautentimisena.

1.3.5 CIFS-i optimeerimise võimalused

CIFS-protokollil on kliendi ja serveri vahelise suhtluse optimeerimiseks erinevad võimalused.

1.3.5.1 CIFS AndX funktsioon

CIFS-protokoll võimaldab teil moodustada üksteisest sõltuvate päringute jada, nii et nende toimingute optimeerimine võimaldab teil päringu lõpule viia ühe serverikõnega. Seda funktsiooni nimetatakse AndX; NFS-i versiooni 4 failisüsteem pakub sarnast funktsiooni COMPOUND-protseduuri kujul. Näiteks OpenAndRead- või WriteAndClose-päringute saatmine CIFS-serverisse. Sel juhul saadetakse selle asemel, et saata kaks eraldi päringut, näiteks Open ja seejärel Read, ja saada kaks vastust, üks OpenAndRead päring ja üks vastus. See on eriti oluline, kui päringu/vastuse aeg on liiga pikk.

1.3.5.2 Oportunistlik blokeerimine

CIFS-protokoll toetab jõudluse optimeerimise tehnoloogiat, mida nimetatakse oportunistlikuks lukustamiseks või oplockiks. Oplocki kasutamisel on kaks peamist põhjust.
Esimene on faili lukustamine ja selle kohaliku vahemälu lähtestamine. Kui blokeerimistingimust ei saa enam säilitada, lubab protokoll teatud viivitust, mille jooksul klient peab vahemälu tühjendama. Lukustamine ja avamine toimub rakenduse jaoks läbipaistvalt, kasutades kliendi- ja serverisüsteemide CIFS-mehhanisme. Samal ajal ei ole jõudluse parandamiseks vaja rakendust muuta.

Kujutage ette rakendust, mis avab lugemiseks ja kirjutamiseks faili võrguserveris ning kirjutab faili 128-baidiseid kirjeid. Ilma oplockita nõuaks iga 128-baidine kirje võrguülekannet. Oplocki kasutamine võimaldab salvestada faili vahemällu kliendisüsteemis ja kombineerida mitu kirjutamistoimingut üheks, mille tulemuseks on andmeedastus üle võrgu. Oletame näiteks, et klient kasutab 4096 puhvrit ja kirjutab faili järjestikku 128 baiti. Esimene puhver sisaldab 32 kirjutise andmeid (4096/128 = 32) ja kõik 32 kirjutust kantakse üle võrgu ühe failikirjutustaotlusega. Kui kirjutamistoimingut ei saa vahemällu salvestada, edastatakse võrgu kaudu 32 kirjutamistoimingut (ühe asemel, nagu vahemällu salvestamisel). Kirjutamistoimingute arvu vähendamine 32-lt ühele vähendab oluliselt võrgu koormust ja suurendab oluliselt jõudlust.
Oportunistliku blokeerimise teine ​​eesmärk on laiendada tingimusi, mille korral selline blokeerimine on võimalik. Oplocki kasutamisel saate vahemällu salvestamise tõhusust suurendada. Oportunistliku blokeerimise võimaliku tingimuste laiendamine annab mitmeid täiendavaid eeliseid. Oletame, et rakenduse eksemplar avab lugemiseks ja kirjutamiseks faili (võrguserveris). See taotleb ja annab oplocki. Kliendikood võib faili kirjutamistoiminguid vahemällu salvestada. Oletame, et teises kliendis töötab sama rakenduse teine ​​eksemplar. Üks väljapääs sellest olukorrast on vabastada oplock ja kasutada võrgu I/O-d mõlema rakenduse faili kirjutamistaotluste edastamiseks. Teine võimalus on vabastada oplock, kui rakenduse teine ​​eksemplar proovib kirjutada. Väga sageli ei tee rakendused üldse kirjutamistoiminguid.
Tingimuste muutumisel saadab server kliendile teatise oplocki vabastamiseks. Näide olukorrast, kus server saadab oplocki vabastamise teatise, on teise kliendi taotlus failile juurdepääsuks või faili andmete kirjutamiseks. Server tagab serveri olekuandmete puhastamise (sealhulgas kliendiseansi sulgemise), kui klient ei vasta oplocki vabastamise päringule. Klient taotleb oplocki ainult vajaduse korral; Näiteks kui rakendus taotleb faili avamist eksklusiivseks juurdepääsuks, pole oplocki taotlemisel lihtsalt mõtet.
Oportunistlikke lukke rakendatakse kolmel viisil:

Toimingute jada eksklusiivse oportunistliku blokeerimisega

■ eksklusiivne oportunistlik blokeerimine;
■ partii oportunistlik blokeerimine;
■ teise taseme oportunistlik blokeerimine. Neid stsenaariume kirjeldatakse üksikasjalikumalt allpool.

Eksklusiivne oportunistlik blokeerimine

Seda lukustusvalikut nõuab CIFS-i mini-ümbersuunaja, kui rakendus avab faili lugemiseks või kirjutamiseks. Server annab operatsiooniblokeeringu, kui fail pole veel mõne teise kliendi poolt avatud. Toimingute jada on näidatud joonisel.
Alustuseks saadab esimene klient faili avamise taotluse, taotledes eksklusiivset oplocki. Server teostab vajaliku valideerimise ja tagab selle. Esimene klient alustab faili vahemällu salvestamist, sooritades ettelugemise ja tagasikirjutamise toiminguid. Mõni aeg hiljem saadab teine ​​klient, näiteks klient 2, serverile taotluse sama faili avamiseks. Server märgib, et klient 1 omab taotletud failis eksklusiivset oplocki ja saadab kliendile 1 lukustuse vabastamise teatise. Klient 1 tühjendab andmepuhvrid, saates vajalikud kirjutamis- ja faililukustusnõuded. Kui faili oleku andmed on kirjutatud, teavitab klient 1 serverit, et oplocki vabastamise teatise töötlemine on lõpetatud. Sel hetkel saadab server kliendile 2 vastuse, võimaldades tal faili avada. Klient 1 jätkab tööd failiga ilma kohalikku vahemällu salvestamata. IN sel juhul eeldatakse, et klient 1 on faili avanud režiimis, mis võimaldab teistel klientidel faili avada.

Teise taseme oportunistlik blokeerimine

Väga sageli avavad kliendid faili lugemis-/kirjutusrežiimis ega kirjuta faili enne selle sulgemist. 2. taseme oplock loodi sellises olukorras failide jagamiseks ja vahemällu salvestamiseks. Eksklusiivsed oplukud ja partii-oplockid (seda käsitletakse järgmises jaotises) antakse alati kliendi soovil. Kuid klient ei taotle kunagi teise taseme oplocki. Klient alustab eksklusiivse oplocki taotlemisega. Kui selline lukk on antud, saab server teatud tingimustel (kirjeldatud allpool) eksklusiivse oplocki alandada teise taseme lukuks.
Klient 1 alustab eksklusiivse oplocki taotlemisega ja jätkab faili lokaalse vahemällu salvestamisega. Täpsemalt, klient 1 loeb ette ja salvestab lukustusandmeid lokaalselt. Pidage meeles, et sel juhul ei kavatse klient andmeid faili kirjutada. Mingil hetkel taotleb klient 2 juurdepääsu samale failile. Server saadab kliendile 1 teatise, taotledes eksklusiivse oplocki alandamist teise taseme lukule. Klient vabastab lukud ja teatab, et teavituste töötlemine on lõpetatud. Seejärel saadab server kliendile 2 teate, et fail avati edukalt, ja annab kliendile teise taseme operatsiooniluku. Sel juhul eeldatakse, et klient 1 teavitas faili avades serverit, et failile pääsevad juurde ka teised kliendid.
Teise taseme oportunistliku lukustuse kasutamisel on klientidel keelatud lukustatud andmeid puhverdada. Selle skeemi eeliseks on andmete lihtsustatud sidusus serveri poolel, samal ajal kui klient salvestab loetud andmed vahemällu, vähendades seega võrgu kaudu saadetava teabe hulka. Niipea, kui üks klientidest väljastab kirjutamistaotluse, vabastab server teise taseme oplocki, mille järel ei jää enam lukke. Kuna ükski klient ei puhver andmete lukustamist, kui on olemas teise taseme lukud, näitab edukas kirjutamistoiming, et kirjutamine toimus faili piirkonnas, mida teised kliendid ei lukustanud. Pärast teise taseme oplocki vabastamist on klientidel keelatud lugemisandmeid puhverdada.

Teise taseme oportunistlik blokeerimine

Partei oplock

Seda lukustusvalikut kasutatakse pakkfailide töötlemisel jõudluse optimeerimiseks. käsuprotsessor tavaliselt avab faili, otsib vajaliku rea, loeb seda, sulgeb faili ja töötleb lugemisrea käsureatõlgi abil. Pärast seda avaneb fail uuesti, see sisaldab järgmine rida, fail suletakse ja järgmist rida töötleb käsureatõlk. See tsükkel kestab seni, kuni kõik pakkfaili read on lõpetatud.

Partei oplock

Ülaltoodud on toimingute jada. Klient 1 avaneb partiifail ja taotleb partii lukustamist. Oletame, et server annab saristuse lukustuse, kuna keegi teine ​​ei kirjuta faili andmeid. Klient 1 otsib failist teatud string ja sooritab lugemistoimingu. Tõlk täidab lugemisrea. Seejärel fail suletakse. CIFS-i mini-ümbersuunaja ei tee midagi, kui saab faili sulgemise taotluse (st tehakse viivitusega sulgemistoiming). Käsurea tõlk avab faili, kuid CIFS-i mini-ümbersuunaja ei teosta avamistoimingut, vaid lihtsalt tühistab faili ootel sulgemistoimingu. Kui käsureatõlk sooritab stringi otsingu- ja lugemistoiminguid, saadab CIFS-i mini-ümbersuunaja otsingu- ja lugemispäringud.
Selle tulemusena väheneb üle võrgu edastatavate andmete hulk (faili avamiseks ja sulgemiseks esitatakse vähem taotlusi). Lisaks optimeeritakse serveriressursside kasutamist, kuna server ei pea faili sulgemise ja seejärel uuesti avamise taotlust kohe töötlema.

Seoses hiljutise SMB v1 haavatavust ära kasutava WannaCry lunavara puhanguga on võrku taas ilmunud näpunäiteid selle protokolli keelamiseks. Lisaks soovitas Microsoft tungivalt SMB esimese versiooni keelata juba 2016. aasta septembris. Kuid selline seiskamine võib kaasa tuua ootamatuid tagajärgi kuni veidrusteni: puutusin isiklikult kokku ettevõttega, kus pärast võitlust SMB-ga lõpetasid Sonose juhtmevabad kõlarid mängimise.


Eelkõige selleks, et minimeerida "lasku jalga", tahan meenutada SMB funktsioone ja üksikasjalikult kaaluda, mida ähvardab selle vanade versioonide halvasti läbimõeldud sulgemine.


SMB(Server Message Block) - võrguprotokoll kaugjuurdepääs failidele ja printeritele. Teda kasutatakse ressursside ühendamisel \serverinimi\jagamisnimi kaudu. Protokoll töötas algselt NetBIOS-i peal UDP pordid 137, 138 ja TCP 137, 139. Pärast Windows 2000 väljalaskmist hakkas see töötama otse, kasutades TCP port 445. SMB-d kasutatakse ka domeeni sisselogimiseks Active Directory ja töötage selles.


Lisaks ressurssidele kaugjuurdepääsule kasutatakse seda protokolli ka protsessoritevaheliseks suhtluseks "nimega voogude" kaudu - nimega torud . Protsessile pääseb juurde teed \.\pipe\name.

Protokolli esimene versioon, tuntud ka kui CIFS (Common Internet File System), loodi juba 1980ndatel, kuid teine ​​versioon ilmus alles Windows Vistaga, aastal 2006. Protokolli kolmas versioon tuli välja Windows 8-ga. Paralleelselt Microsoftiga loodi protokoll ja hoiti selle avatud Samba juurutamisel ajakohasena.


Protokolli iga uue versiooniga lisati erinevaid täiustusi, et suurendada kiirust, turvalisust ja uute funktsioonide tuge. Kuid samal ajal jäi vanemate protokollide tugi ühilduvuse tagamiseks alles. Muidugi oli ja on vanemates versioonides piisavalt haavatavusi, millest ühte kasutab ära WannaCry .


Spoileri alt leiad pöördetabel muudatused SMB versioonides.

Versioon operatsioonisüsteem Lisatud, võrreldes eelmise versiooniga
SMB2.0 Windows Vista/2008 Muutis protokolli käskude arvu 100+ pealt 19 peale
"Konveier" töö võimalus - lisapäringute saatmine enne eelnevale vastuse saamist
Sümboolsete linkide tugi
HMAC SHA256 sõnumi allkirjastamine MD5 asemel
Suurendage vahemälu ja kirjutamis-/lugemisplokke
SMB 2.1 Windows 7/2008R2 Jõudluse parandamine
Suurem MTU tugi
BranchCache teenuse tugi – mehhanism, mis salvestab päringuid vahemällu ülemaailmne võrk kohalikus võrgus
SMB3.0 Windows 8/2012 Võimalus ehitada läbipaistev tõrkeotsingu klaster koormuse jagamisega
Otsese mälu juurdepääsu (RDMA) tugi
Haldamine Powershelli cmdlet-käskude kaudu
VSS tugi
AES-CMAC allkiri
AES-CCM krüptimine
Võimalus kasutada võrgukaustad ladustamiseks virtuaalsed masinad HyperV
Võimalus kasutada salvestamiseks võrgukaustu Microsofti alused SQL
SMB 3.02 Windows 8.1/2012R2 Turvalisuse ja jõudluse täiustused
Automaatne tasakaalustamine klastris
SMB 3.1.1 Windows 10/2016 AES-GCM krüptimise tugi
Terviklikkuse kontrollimine enne autentimist SHA512 räsi abil
SMB 2.x ja kõrgemate klientidega töötamisel kohustuslik turvaline läbirääkimine

Loeme tinglikult ohvreid

Vaade kasutatud aastal Sel hetkel Protokolli versioon on üsna lihtne, kasutame selleks cmdleti Get-SmbConnection:



Cmdleti väljund, kui võrguressursid on avatud Windowsi erinevate versioonidega serverites.


Väljund näitab, et klient, mis toetab kõiki protokolli versioone, kasutab ühenduse loomiseks kõrgeimat võimalikku versiooni, mida server toetab. Muidugi, kui klient toetab ainult protokolli vana versiooni ja see on serveris keelatud, siis ühendust ei looda. Lubage või keelake vanemate versioonide tugi kaasaegses versioonis Windowsi süsteemid võite kasutada cmdleti Määra – SmbServerConfiguration ja vaadake olekut järgmiselt:


Get–SmbServerConfiguration | Valige EnableSMB1Protocol, EnableSMB2Protocol


Keelake SMBv1 serveris, kus töötab Windows 2012 R2.



Tulemus Windows 2003-ga ühenduse loomisel.


Seega, kui keelate vana haavatava protokolli, võite vanade klientidega võrgu kaotada. Samal ajal kasutatakse SMB v1 lisaks Windows XP-le ja 2003-le ka mitmetes tarkvara- ja riistvaralahendustes (näiteks GNU\Linuxi NAS-is, mis kasutab samba vana versiooni).


Spoileri all annan nimekirja tootjatest ja toodetest, mis SMB v1 keelamisel täielikult või osaliselt töö lõpetavad.

Tootja Toode Kommentaar
Barracuda SSL VPN
Web Security Gateway varukoopiad
Canon Skanni võrgujagamisse
Cisco WSA/WSAv
WAAS Versioonid 5.0 ja vanemad
F5 RDP kliendi lüüs
Microsoft Exchange'i puhverserver
Forcepoint (Raytheon) "Mõned tooted"
HPE ArcSighti pärand ühtne pistik Vanad versioonid
IBM NetServer Versioon V7R2 ja vanemad
QRadari haavatavuse haldur Versioonid 7.2.x ja vanemad
Lexmark Püsivara eSF 2.x ja eSF 3.x
Linuxi kernel CIFS-i klient Alates 2.5.42 kuni 3.5.x
McAfee Web Gateway
Microsoft Windows XP/2003 ja vanemad
MYOB Raamatupidajad
NetApp ONTAP Varasemad versioonid 9.1
NetGear ValmisNAS
Oraakel Solaris 11.3 ja vanemad
Pulse Secure PCS 8.1R9/8.2R4 ja vanemad
PPS 5.1R9/5.3R4 ja vanemad
QNAP Kõik salvestusseadmed Püsivara vanem kui 4.1
punane müts RHEL Varasemad versioonid 7.2
Ricoh MFP skannimine võrgujagamisse Lisaks mõnele mudelile
RSA Autentimishalduri server
Samba Samba Vanemad kui 3,5
Sonos Juhtmeta kõlarid
Sophos Sophos UTM
Sophos XG tulemüür
Sophose veebiseade
SUSE SLES 11 ja vanemad
Sünoloogia Kettajaama haldur Ainult juhtimine
Thomson Reuters CS Professional Suite
Tintri Tintri OS, Tintri globaalne keskus
VMware Vcenter
ESXi Vanem kui 6.0
Worldox GX3 DMS
Xerox MFP skannimine võrgujagamisse Püsivara ilma ConnectKey püsivarata

Nimekiri on võetud Microsofti veebisaidilt, kus seda regulaarselt uuendatakse.


Protokolli vana versiooni kasutavate toodete nimekiri on üsna suur – enne SMB v1 keelamist tuleks kindlasti mõelda tagajärgedele.

Lülitab ikka välja

Kui võrgus pole SMB v1 kasutavaid programme ja seadmeid, on loomulikult parem vana protokoll keelata. Kui aga väljalülitamine SMB-s Windowsi server 8/2012 tehakse Powershelli cmdleti abil, siis Windows 7/2008 puhul peate registrit redigeerima. Seda saab teha ka Powershelli abil:


Set – Item Property – Tee "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 – Tüüp DWORD –Väärtus 0 – Jõud

Või mõni muu mugav viis. Muudatuste rakendamiseks on aga vaja taaskäivitamist.


SMB v1 toe keelamiseks kliendil lihtsalt peatage selle toimimise eest vastutav teenus ja parandage lanmanworkstationi teenuse sõltuvused. Seda saab teha järgmiste käskudega:


sc.exe config lanmanworkstation depend=bowser/mrxsmb20/nsi sc.exe config mrxsmb10 start=keelatud

Protokolli kogu võrgus keelamise mugavuse huvides on mugav kasutada rühmapoliitikaid, eriti rühmapoliitika eelistusi. Nende abil saate mugavalt registriga töötada.



Registrikirje loomine rühmapoliitika kaudu.


Protokolli keelamiseks serveris looge lihtsalt järgmine säte:

    tee: HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters;

    uus parameeter: REG_DWORD nimega SMB1;

  • väärtus: 0.


Looge registrisäte, et keelata serveris SMB v1 rühmapoliitika kaudu.


SMB v1 toe keelamiseks klientidel peate muutma kahe sätte väärtust.


Esmalt keelake SMB v1 protokolli teenus:

    tee: HKLM:\SYSTEM\CurrentControlSet\services\mrxsmb10;

    parameeter: REG_DWORD nimega Start;

  • väärtus: 4.


Värskendage ühte parameetritest.


Seejärel parandame LanmanWorkstationi teenuse sõltuvuse nii, et see ei sõltuks SMB v1-st:

    tee: HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation;

    parameeter: REG_MULTI_SZ nimega DependOnService;

  • väärtus: kolm rida - Bowser, MRxSmb20 ja NSI.


Ja asendame teise.


Pärast pealekandmist rühmapoliitika Peate oma organisatsiooni arvutid taaskäivitama. Pärast taaskäivitamist SMB v1 enam ei kasutata.

Töötab – ära puutu

Kummalisel kombel pole see vana käsk alati kasulik – harva uuendatavas infrastruktuuris võivad käivituda ka troojalased. Teenuste tahtmatu sulgemine ja värskendamine võib aga organisatsiooni halvata sama palju kui viirus.


Öelge meile, kas olete SMB esimese versiooni juba keelanud? Kas ohvreid oli palju?

Arvutivõrk on definitsiooni järgi hajutatud süsteem. Selle eesmärk on kasutajate koostöö. See töö tähendab juurdepääs võrguressurssidele nagu failid ja kataloogid, printerid jne. Kasutaja jaoks peaks juurdepääs võrguressurssidele olema läbipaistev, st:

  1. Kaugressursid peaksid välja nägema kohalikud ja neile pääseb rakendustest juurde ühtlaselt.
  2. Kliendi jaoks ei tohiks olla vahet, millist platvormi avaliku juurdepääsu serverina kasutatakse.

Samal ajal tuleb arvestada asjaoluga, et igal kasutajal ei peaks olema juurdepääsu konkreetsele ressursile ja iga ressurss ei peaks olema kõigile kättesaadav. Need. on vaja tagada jagamise kontrollimise võimalus nii kasutaja kui ka üksikute ressursside tasandil.

Need võimalused pakuvad spetsiaalseid jagamisprotokolle. Kõige levinumad neist on SMB/CIFS for Windows ja NFS, mida kasutatakse UNIX-i sarnastes süsteemides.

Jagamisprotokollid

SMB/CIFS

SMB (serveri sõnumite blokeerimine) on IBM-i pakutud protokoll failide, printerite, jadapordid, postipesad, nimega torud ja võrguarvuti API-d. SMB-protokolli saab kasutada nii TCP/IP-pinu võrguprotokollide kui ka paljude teiste võrguprotokollide kaudu.

SMB on tüüpiline kliendi/serveri protokoll, mis võimaldab kliendirakendus teostab serverile esitatavate päringute kaudu juurdepääsutoiminguid jagatud ressursile (lugemine, kirjutamine jne). SMB nõuab ühenduse loomist ja hooldamist, kuid võib töötada ka datagrammi režiimis.

1992. aastal ilmus Samba - SMB-protokolli tasuta rakendamine UNIX-i sarnaste operatsioonisüsteemide jaoks. Kuna Microsoft ei avaldanud SMB spetsifikatsiooni ega selle lisasid, pidi Samba looja Andrew Tridgell protokolli pakettide nuusutamise põhjal pöördprojekteerima.

SMB-protokolli reklaamis Microsoft Corporation, sealhulgas selle tuge oma toodetes. Võrgus Microsofti keskkond Windows SMB oli peamine protokoll rakenduskiht koos töötada LAN-ressursid. See on loodud failide ja printerite jagamise, kasutaja autoriseerimise ja sõnumite edastamise funktsioonide täitmiseks.

SMB-protokoll esindab nelja tüüpi teenuseid:

  • Seansi juhtimine. Loogilise kanali loomine, hooldamine ja katkestamine tööjaama ja failiserveri võrguressursside vahel.
  • Juurdepääs failidele. Tööjaam saab failiserveriga ühendust võtta tüüpiliste nõuetega failitoimingud(faili avamine, andmete lugemine jne).
  • Trükiteenus. Tööjaam saab seada failid serverisse printimiseks järjekorda ja hankida teavet prindijärjekorra kohta.
  • Sõnumiteenus. SMB toetab lihtsat aadressi- ja levisõnumite edastamist kohtvõrgu kaudu.

Kui SMB seansihaldusrežiim on kasutajale läbipaistev, saab kasutaja teisi teenuseid otse hallata võrgu käsud(Vaadake net /? Windows OS-i konsoolis).

Riis. 1. NetBIOS/SMB

Seansi haldamiseks kasutas SMB-protokoll algselt NetBIOS-i NetBEUI (NetBIOS Extended User Interface) juurutamisel – laiendatud kasutajaliides NetBIOS-i datagrammi edastamine, mis on mõeldud umbes 20-200 tööjaamaga võrkudele. NetBEUI protokollil põhinevaid võrke on lihtne rakendada, kuid keeruline laiendada, kuna NetBEUI protokoll ei ole marsruutitav.

SMB kasutamiseks keerukamate topoloogiatega võrkudes on NetBIOS lisanud toe transpordiprotokollidele TCP (NBT, NetBIOS over TCP), IPX, DECNet ja Xerox Networking (XNS) ()

SMB teenused töötavad TCP/IP keskkonnas erinevad sadamad (standardsed nimed pordid rõhutavad SMB tihedat seost NetBIOS-iga):

netbios-ns 137/tcp # NETBIOS nimeteenus netbios-ns 137/udp netbios-dgm 138/tcp # NETBIOS Datagrami teenus netbios-dgm 138/udp netbios-ssn 139/tcp # NETBIOS/session service netbios-ns 137/udp netbios-dgm

SMB esimestes versioonides autentimist ei olnud - see tähendab, et iga kasutaja võis kasutada mis tahes ressursse, mis muidugi piiras rakenduste ulatust väikeste kohalike võrkudega. SMB kaasaegsed versioonid toetavad kahte juurdepääsutaset:

  1. Ressursitaseme juurdepääs. Serveripool kehtestab jagatud kataloogidele piirangud. Iga võrgukataloog saab parooliga kaitsta ja klient peab selle parooli andma, et pääseda juurde jagatud kataloogist failidele.
  2. Kasutajataseme juurdepääs. Piirangud kehtivad iga faili kohta igas jagatud kataloogis ja põhinevad kasutaja õigustel. Iga kasutaja (klient) peab oma kontoga serverisse sisse logima ja olema autentitud. Pärast autentimise lõpetamist saab klient vastava kasutaja ID, mille ta peab serveri ressurssidele juurdepääsu saamiseks esitama.

NetBIOS-iga sidumine piiras SMB kasutamist väikeste kohalike võrkudega. Esimene põhjus on NetBIOS-is võrgu kui sellise kontseptsiooni ja liikluse ümbersuunamise (marsruutimise) vahendite puudumine. Teine on aktsepteeritud adresseerimisskeemis: ressursi nimi, tegelikult 15 tähemärgi pikkune string, millele lisandub ressursitüübi bait: server, domeenikontroller jne. Loomulikult selline peer-to-peer nimesüsteem Internetti ei sobi.

Nende piirangute kõrvaldamiseks uusimad versioonid SMB kasutas NBT (NetBIOS over TCP) protokolli, mis jooksis TCP/IP-pinu peal.

CIFS lõid Samba Teami arendajad, sõltumatu kogukond ja Microsoft ühiselt. Pärast seda, kui CIFS-i protokolli esitleti avatud standardina, lõpetas Microsoft projekti rahastamise ja koostöö Samba meeskonnaga ning Microsoft töötas CIFS-i toe ümber, et see ühilduks varasemate versioonidega. SMB lisati Windows 2000-sse.

CIFS (tavaline Interneti-failisüsteem)- see on avatud standardprotokoll(vt CIFS), mis põhineb SMB-l, mis pakub juurdepääsu failidele ja teenustele TCP/IP-võrkude kaugarvutites. Erinevalt SMB-st on CIFS-i peamine transport TCP. Portid 445/TCP ja 445/UDP on registreeritud CIFS-serveritele (microsoft-ds # Microsoft Naked CIFS , vt /etc/services)

CIFS pakub FTP-le (File Transfer Protocol) sarnaseid funktsioone, kuid pakub klientidele täiustatud (otselaadset) kontrolli failide üle. CIFS-i põhifunktsioonid on toodud .

Tab. 1. CIFS-protokolli võimalused

Võimalus Kirjeldus
Juurdepääs failisüsteemile Toetus failitoimingutele, nagu faili või kataloogi avamine, lugemine, kirjutamine, otsimine ja sulgemine
Failide ja kirjete blokeerimine Mitteblokeerivatel rakendustel pole juurdepääsu blokeeritud failile või kirjele.
Turvaline vahemällu salvestamine (ettelugemine ja tagant kirjutamine) Toetatakse mitme kliendi samaaegset lugemist/kirjutamist
Faili muutmise teatised Rakendused saavad serveris registreeruda, et saada teateid failide või kataloogide muudatuste kohta
"Läbirääkimised" protokolli versiooni kohta Kui klient ja server võtavad oma esimese võrgukontakti, vahetavad nad teavet kasutatava protokolli versiooni (dialekti) kohta. Erinevad murded võivad sisaldada nii uusi sõnumitüüpe kui ka vormierinevusi teistest murretest.
Laiendatud atribuudid Toetatakse muid atribuute peale failisüsteemi atribuutide. Atribuudid, nagu näiteks autori nimi, saab lisada faili sisseehitatud süsteemiatribuutidele (loomise kuupäev, muutmise kuupäev jne).
Jaotatud paljundatud virtuaalsed köited Protokoll toetab mitmeköitelist virtuaalset failisüsteemi, milles kõik "alampuud" failihierarhia kliendi jaoks näevad välja nagu üks tervik. CIFS haldab juurdepääsu sellise failisüsteemi füüsiliselt teisaldatud või paljundatud elementidele kasutaja jaoks läbipaistvalt.
Sõltumatus nimetuvastusserveritest Kliendid saavad kasutada mis tahes nimelahendusmehhanismi. Näiteks DNS-servereid saab kasutada Interneti kaudu serveri failijagamistele juurdepääsuks.
partiitaotlused Mitu failipäringut saab "pakkida" ühte sõnumisse, mis vähendab serveri reageerimisaega. partii töötlemine võimalik isegi siis, kui järgnevad päringud sõltuvad eelmiste tulemustest.
Unicode'i märkide tugi Unicode'i stringe saab kasutada failinimedes, ressursside nimedes ja kasutajakontodes.

NFS-võrgu failisüsteem

NFS (võrgufailisüsteem) on standard, mis sisaldab hajutatud failisüsteemi kirjeldust ja võrguprotokolli sellega töötamiseks. Esimese NFS-spetsifikatsiooni töötas välja Sun 1989. aastal ja see oli mõeldud kasutamiseks ainult UNIX-is. Hilisemad teostused kliendi ja serveri osad on muutunud tavaliseks teistes süsteemides. Praegust versiooni (selle kirjutamise ajal) nimetatakse NFS v4 ja see on avatud standard(RFC 3010).

See süsteem võimaldab kasutajal töötada kaugandmetega samamoodi nagu kohalike andmetega – st täiesti läbipaistvalt. Arvestamata muidugi ajalisi viivitusi.

NFS-protokoll, nagu SMB/CIFS, kasutab kliendi-serveri interaktsiooni mudelit. Varakult NFS-i versioonid Andmete transportimiseks kasutati UDP-protokolli, tänapäevastes TCP-d. NFS-teenus töötab järgmistes registreeritud portides:

Nfs 2049/tcp # Võrgu failisüsteem – Sun Microsystems nfs 2049/udp # Võrgu failisüsteem – Sun Microsystems

TCP kasutamine transpordina võimaldas meil lahendada jagamisprobleemid otsekohesel viisil, ilma lahendusteta, kuid UDP-ga võrreldes jõudluse mõningase halvenemise hinnaga.

NFS on UNIX-i "natiivne" failisüsteem ja järgib operatsioonisüsteemi failitoimingute loogikat. See kehtib nii faili nimeruumi kui ka toetatud failiatribuutide kohta. NFS-i tugi on saadaval kõigis populaarsetes UNIX-põhistes süsteemides.

NFS-i struktuur sisaldab kolme erineva taseme komponenti:

  • Rakenduskiht (NFS ise) on kaugprotseduurikõned (rpc), mis teevad serveri poolel vajalikke toiminguid failide ja kataloogidega.
  • Esitluskihi funktsioone täidab protokoll XDR(eXternal Data Representation), mis on platvormideülene andmeabstraktsiooni standard. XDR-protokoll kirjeldab ühtset, kanooniline, andmete esitusviis, mis ei sõltu arvutussüsteemi arhitektuurist. Pakettide edastamisel teisendab RPC klient kohalikud andmed kanooniliseks vormiks ja server teeb vastupidist.
  • Teenindus RPC(Remote Procedure Call), mis pakub kliendi poolt kaugprotseduuride taotlust ja nende täitmist serveris, esindab seansitaseme funktsioone.

Võrguressursi NFS-i abil ühendamise protseduuri nimetatakse "eksportimiseks". Klient saab küsida serverilt eksporditavate ressursside loendit, mida ta esitab. NFS-server ise, erinevalt näiteks SMB-serverist, ei edasta oma eksporditud ressursside loendit.

Olenevalt antud valikutest saab eksporditud ressursi monteerida "kirjutuskaitstud", saate määrata loendi hostidest, millel on lubatud ühendada, määrata turvalise RPC (secureRPC) kasutamise jne. Üks valikutest määrab paigaldamise meetod: "kõva" (kõva) või "pehme" (pehme).

  • Kell "kõva" paigaldus klient proovib failisüsteemi ühendada, olenemata sellest, mida. Kui server on maas, põhjustab see justkui kogu NFS-teenuse hangumise: failisüsteemile juurde pääsevad protsessid lähevad olekusse, mis ootavad RPC-päringute täitmise lõpetamist. Kasutajaprotsesside seisukohast näeb failisüsteem välja nagu väga aeglane kohalik ketas. Kui server taastatakse tööolekusse, jätkab NFS-teenus toimimist.
  • Kell "pehme" kinnitus NFS-klient teeb serveriga ühenduse loomiseks mitu katset. Kui server ei reageeri, väljastab süsteem veateate ja lõpetab ühendamise katse. Failitoimingute loogika seisukohalt serveri tõrke korral emuleerib pehme kinnitus kohaliku ketta riket.

Küsimusele, milline režiimidest, "pehme" või "kõva", on parem, on võimatu ühemõtteliselt vastata. Kui teenuse ajutise tõrke ajal tuleb kliendi ja serveri andmeid sünkroonida, on eelistatav "kõva" kinnitus. See režiim on hädavajalik ka juhtudel, kui ühendatud failisüsteemid sisaldavad programme ja faile, mis on kliendi tööks üliolulised, eriti kettata masinate puhul. Muudel juhtudel, eriti kui tegemist on kirjutuskaitstud süsteemidega, tundub pehme paigaldusrežiim olevat mugavam.

Turvalisuse seisukohast olid NFS-i esimesed juurutused äärmiselt nõrgad: autentimine toimus tegelikult ainult kliendi IP-aadressi järgi. NIS-i kasutamine ei suurendanud süsteemi turvalisust. NFS-i versioonides 3 ja 4 kujundati need probleemid ümber, lisades juurdepääsuloendite (ACL) toe, turvalise RPC ja mitmed muud lahendused, mis võimaldasid USA kaitseministeeriumil NFS-i sertifitseerida.

Jagamine segavõrgus

NFS-teenus sobib ideaalselt UNIX-põhiste võrkude jaoks, kuna see on kaasas peaaegu kõigi selle operatsioonisüsteemi versioonidega. Lisaks rakendatakse NFS-i tuge UNIX-i kerneli tasemel. Kahjuks tekitab NFS-i kasutamine Windowsi klientarvutites teatud probleeme, mis on seotud vajadusega installida spetsialiseeritud ja üsna kallist klienttarkvara. Sellistes võrkudes tundub eelistatavam SMB/CIFS-protokollil põhinevate ressursside jagamise tööriistade, eriti Samba tarkvara kasutamine.

Madala taseme avaliku juurdepääsu tööriistad. DAFS-i protokoll

Virtuaalse liidese arhitektuur

Virtual Interface Architecture (VIA) on Microsofti, Inteli ja Compaqi ühisarendus, mis määratleb madala taseme I/O tehnoloogia abstraktse mudeli. VIA-d kasutatakse kiire andmevahetuse korraldamiseks kahe protsessi vahel, mis töötavad erinevates serverites või andmetöötluskeskustes (DPC-des) asuvates salvestussüsteemides.

Virtuaalne liides(VI) on virtuaalse liidese arhitektuuri kommunikatsiooniprotokoll

DAFS ( Otsene juurdepääs failisüsteem) on standardne failipääsuprotokoll, mis põhineb NFS v4-l. See võimaldab rakenduste ülesannetel edastada andmeid, möödudes operatsioonisüsteemist ja selle puhverruumist, otse ressursside transportimiseks, säilitades failisüsteemidele omase semantika. DAFS kasutab ära uusimad tehnoloogiad andmeedastus vastavalt mälu-mälu skeemile. Selle kasutamine annab suured kiirused faili I/O, minimaalne CPU koormus ja kogu süsteemile, tänu võrguprotokollide töötlemisel tavaliselt vajalike toimingute ja katkestuste arvu olulisele vähenemisele. Eriti tõhus on riistvaratoe kasutamine.

Kirjeldage lühidalt DAFS-i algoritmi järgmiselt: olgu kaks rakendust, mis pääsevad võrku kasutajataseme võrguliidese (VI, ) abil, siis:

  1. Operatsioonisüsteemi seadme draiver juhib liidese riistvara traditsioonilisel viisil kontrollides rakenduste juurdepääsu riistvarale.
  2. Rakendused eraldavad sõnumipuhvrid oma aadressiruumi ja helistavad seadme draiverile, et pääseda juurde võrguliidesele. Pärast sobivat konfigureerimist käivitavad nad automaatselt edastamise ja vastuvõtmise protsessi ning liides edastab teabe rakenduspuhvritesse ja vastupidine suund kasutades tavalist otsemälu juurdepääsu (DMA) mehhanismi

Riis. 3. Üldine põhimõte DAFS töö

Rakendused pääsevad võrku virtuaalse liidese abil. OS-i NIC-draiver haldab võrgukontrollerit ja võimaldab rakendustel otse liidesele juurde pääseda. Rakendused eraldavad puhvrid oma aadressiruumi, kus nad võtavad vastu ja saadavad DMA kaudu sõnumeid.

Kasutajatasandi võrguliidese arhitektuur varieerub sõltuvalt konkreetsete rakenduste ja võrkude omadustest – sellest, kuidas rakendused määravad edasi saadetavate sõnumite asukoha, info vastuvõtmiseks eraldatud puhvrite asukohast, sellest, millises järjekorras rakendusi teavitatakse sissetulevad sõnumid. Mõned võrguliidesed (nt Active Message või Fast Message liidesed) rakendavad saatmis- ja vastuvõtmisoperatsioone funktsioonidena, mis asetatakse kasutajateeki, mis laaditakse iga protsessi initsialiseerimisel. Teistes (nt U-NET ja VIA) luuakse iga protsessi jaoks järjekorrad ja neid manipuleerivad rakendused ise. Neid järjekordi haldab liidese riistvara.

DAFS on mõeldud salvestusvõrkudele (NAS) ning seda kasutatakse klastri- ja serverikeskkonnas andmebaaside ja mitmesuguste Interneti-rakenduste jaoks, mis on keskendunud pidevale tööle. See pakub ühiskasutatavatele failiressurssidele ja andmetele väikseimat juurdepääsuviivitust ning toetab ka intelligentseid süsteemi- ja andmete taastamise mehhanisme.

Kontrollküsimused

  1. Millist protokolli kasutatakse Windowsi võrkudes ressursside jagamiseks?
  2. Milliseid ressursse saab SMB-protokolli kasutades jagada?
  3. Miks on NFS-il spetsiaalne esitluskihi protokoll?
  4. Mis vahe on "kõva" paigaldusega NFS-köidete ja "pehme" paigaldamise vahel?

Selle lehe alaline aadress:

Seda läheb vaja siis, kui teie Dreamboxil pole kõvaketast ja soovite varem või hiljem filmi salvestada või vastupidi – vaadata või kuulata arvutist audio-videofaile või teha muid toiminguid.

Mida selleks vaja on?

Esiteks soov ja hoolitsus. Arvuti võrgukaardi, võrgu ristkaabli ja Dreamboxiga.

Samuti vajate arvuti kõvakettal ruumi ja palju ruumi.

Kuidas see töötab?

Windows XP-ga arvutis luuakse avalik (jagatud) kaust ja sellele määratakse õigused. konkreetne kasutaja lugemiseks ja kirjutamiseks.

Ja Dreamboxis ühendab (ühendab) ta selle kasutaja nimel selle kausta oma süsteemiga võrgu kaudu, saades seeläbi juurdepääsu kõvaketas sinu arvuti.

See artikkel ei käsitle võrgu seadistamist. Aga vaata siit:

Ruuter või ruuter TP-Link TL-WR340G / TL-WR340GD.

D-link di-604 ruuteri installimine.

Ruuteri või ruuteri probleem

Eeldatakse, et olete juba loonud võrguühenduse oma arvuti ja Dreami vahel. Ja siis ... MAGYOM.

Mõned hoiatused.

Käsurea kallal töötades kirjutame kõik käsud, sümbolid ja kirjavahemärgid ainult ingliskeelses küljenduses!!!

Kaustade ja failide teed paigutuses, milles need on nime saanud. Sest näiteks venelane A» ja inglise keel « a" on arvuti jaoks täiesti erinev täht.

Samuti pöörake erilist tähelepanu ruumidele.

Ruumi käsitleb arvuti samamoodi nagu teisi tähti. Kui kaustade ja failide teedel on tühikuid, sulgege need teed topeltjutumärgid, näiteks nagu selles käsus:

net share dreamshare="C:\Dokumendid ja sätted\Kolya\Minu dokumendid\Minu märkmed" /piiramatu.

Leppigem kohe kokku, et:

Arvuti IP = 192.168.0.1
Dreamboxi IP = 192.168.0.2
Jagatud kaust = C:\dream_share
Tema varjunimi = unistuste jagamine
Kasutaja = abc
Tema parool = def

On selge, et teie "ip" võib erineda, kuid väga vähe ... tavaliselt viimane number.

Me töötame ainult koos käsurida. Järgmisena sisestage käsud ja vajutage klahvi Sisenema!!!

Mine:

Windowsis: Alusta -> Jookse -> cmd.exe

Lisame kasutaja abc»parooliga « def«:
võrgukasutaja abc def /add /active:yes /passwordchg:no

(Muide, kui teie kasutajanimi on kirjutatud ingliskeelsete tähtedega, näiteks Kolya, ja seal on parool (ka inglise keeles või numbritega), siis ei pruugita kasutajat lisada.

Salvestamiseks on soovitav luua kiirkruvile jagatud kaust NTFS-fail süsteem ja sisse süsteemiväline partitsioon. Need. kui teie Windows on partitsioonis C:, siis on soovitav jaotises luua kaust D: või E:(kui on) ja partitsioonis peaks olema rohkem ruumi (20 GB või rohkem).

Ja kas see on oluline…

Loome pallide jaoks kausta:
mkdir C:\dream_share

(Muide, kui teil on juba kaust videote ja muusikaga, saate seda kasutada. Soovitav on, et selle teele ei jääks mitteingliskeelseid tähti ja tühikuid (muidu lugege ülalt, kuidas sellest mööda pääseda) .

Loome video salvestamiseks vajaliku alamkausta:
mkdir C:\dream_share\movie

Loome testimiseks (igaks juhuks) testfaili:
ainult kaja test – %date% > C:\dream_share\test.txt
Keelake lihtne juurdepääs jagatud failidele ja kaustadele (rida on pikk, kuid vajalik):
reg lisage "HKLM\SYSTEM\ControlSet001\Control\Lsa" /v "forceguest" /t REG_DWORD /d 0 /f

Jagage kausta ja andke sellele varjunimi unistuste jagamine, mille kaudu Dream pääseb kaustale võrgu kaudu juurde:
net share dreamshare=C:\dream_share /unlimited

Luba kasutajal abc» ühendage kaust üle võrgu ja omage sellele täielikku juurdepääsu (kirjutage, lugege jne):
cacls C:\dream_share /e /g abc:f

(Kui käsk cacls hakkas vanduma, siis on teie jagatud kaust FAT32 partitsioonis ja peate hiirega veidi klõpsama:

  1. Alusta -> Kontrollpaneel -> Kausta omadused-> järjehoidja Vaade. Tühjendage märkeruut " Kasutage lihtsat juurdepääsu jagatud failidele". Salvesta.
  2. Paremklõps jagatud kaustas -> Omadused-> järjehoidja Üldine juurdepääs-> nupp load. Lisame kasutaja abc ja anda sellele täielik juurdepääs. Salvesta.

Noh, noh, meil on jäänud veel veidi: ühendage meie kaust Dreamiga ja kontrollige, kas kõik töötab.

Võimalik, et peate selles etapis arvuti taaskäivitama ja oma kontoga uuesti sisse logima. Kuigi mul on ja nii see läheb – ilma taaskäivituseta.

Kui taaskäivitatakse, naaske juurde cmd.exe .

Loome Telneti kaudu ühenduse Dreamiga, selleks sisestame:
telnet 192.168.0.2

Ärge unustage seda 192.168.0.2 see on teie Dreamboxi IP-aadress, nagu me alguses kokku leppisime.

Sisesta sisselogimine:

Sisestage parool (vaikimisi) unistuste kast):

unistuste kast

Ühiskausta paigaldamine unistuste jagamine arvutist kausta /var/mnt/hdd Dreamboxi nimel

kasutaja abc(või kuidas nad teid kutsuvad) ja parooliga def(muidugi teie enda jaoks), võib see veidi aega võtta:

Mount -t cifs -o rw,soft,udp,nolock,rsize=8192,wsize=8192,iocharset=utf8,user=abc,password=def //192.168.0.1/dreamshare /var/mnt/hdd

Kontrollime:
mount -t cifs

Ja me saame midagi sellist nagu see väljund, mis ütleb, et kaust on mis unistuste jagamine paigaldatud:
//192.168.0.1/dreamshare /var/mnt/hdd tüüpi CIF-is (rw,nodiratime,unc=\192.168.0.1\dreamshare,kasutajanimi e=abc,rsize=8192,wsize=8192)

Vaatame, mis on jagatud kaustas:
ls -l /var/mnt/hdd

Ja saada sisu /var/mnt/hdd kus on meie loodud fail test.txt ja kaust Film :
drwxrwxrwx 1 juurjuur 7 29. juuli 2008 film
-rwsrwsrwt 1 juurjuur 7. juuli 29. 2008 test.txt

Kontrollime, kas saame Dreamboxi jagatud kausta faile luua:
echo "Test Dreamboxist" > /var/mnt/hdd/test_box.txt

Kontrollime meeskonnaga uuesti. ls:
ls -l /var/mnt/hdd

Kustutage testfailid:
rm /var/mnt/hdd/test.txt /var/mnt/hdd/test_box.txt

Lahutage:
umount /var/mnt/hdd

Kõik!!!

Raske?

Jah, ma oleks peaaegu unustanud. Sest püsikinnitus rida:
Kood:

Mount -t cifs -o rw,soft,udp,nolock,rsize=8192,wsize=8192,iocharset=utf8, user=abc,password=def //192.168.0.1/dreamshare /var/mnt/hdd

saate selle lisada mõnele Dreamboxi käivitusskriptile või teha seda tavapäraselt:
(Kaksikute jaoks: Menüü -> 6 -> 5 -> 1 -> sinine nupp)


Arvuti IP = 192.168.0.1
Kinnituse tüüp = CIFS
Kataloog = unistuste jagamine
kohalik kataloog = /var/mnt/hdd
Valikud = rw,pehme,udp,nolock,iocharset=utf8
Lisavalikud = nolock,size=8192,wsize=8192
KASUTAJA= abc
PASSWORD= def
automount= JAH(st märkige ruut)

Noh, see selleks korraks!!!

P.S. Seda meetodit on testitud ja see töötab Windows XP Pro, Windows XP Pro SP1 ja Windows XP Pro SP2 puhul. Pole testitud Windows XP Pro SP3 ja Windows 7-ga, kuid tõenäoliselt töötab see ka.

Ja pidage meeles... töötage CIFS-i kallal ja töötage Aafrikas

Seal on mass erinevad teostused"võrgupallide" levitamine kohalikus võrgus, kuid õnnestus hankida midagi keskmise eelarvega ja turvalist.

Zyxel Keenetic

Ühendatud ja eemaldatud ... no näiteks kapis.

Seadistamine

Kõigepealt peate looma massiivi.
Loome lihtsad RAID-i manipulatsioonid CFI B8253-JDGG-s, millesse on installitud 4TB ketasid.

Seadme tagaküljel on DIP-lülitid ja selge riistvaralise RAID-kontrolleri skeem. Seadistasin RAID5 4 TB draividele. Kettad lähtestatakse, ühendades draivi lihtsalt Win 7 arvutiga. Selles etapis on DAS-i konfigureerimine lõpule viidud. Vastu võetud GPT NTFS suurusega 16TV.

Liigume nüüd konfiguratsiooni juurde Zyxeli ruuter Keenetic
Liigume WebUI-le ja paneme mõned tõusujooned.

Lülitame ruuteril sisse CIFS-i, automaatse paigalduse, et meie seade ei kukuks maha ja võimaldaks juurdepääsu ilma loata (lisaks laadime alla ja installime ruuteri paketi, mis võimaldab meil juurdepääsuõigusi kontode kaupa eristada)
Ruuter annab meile võimaluse konfigureerida juurdepääsuõigusi võrgudraiv. Saame luua Windowsi võrkude failide, printerite ja muude võrguressursside jaoks oma võrgu juurdepääsuprotokolli kontod. Saate konfigureerida juurdepääsuõigusi iga kasutaja ja kausta jaoks. Võimalikud on järgmist tüüpi juurdepääsuõigused:

DAS-i ühendamisel ruuteriga näeme meie jaotist:

Nüüd eristame juurdepääsuõigusi, selleks installisin mitu komponenti:

Need komponendid võimaldasid teil pääseda vahekaardile "Load".

Pakutakse ka kasutajate loomist ja juurdepääsu kontrolli.

Juurdepääsuõiguste jagamine

Miks me peame DAS-i ruuteriga üldse ühendama?
See on lihtne, ruuteril on sisseehitatud bittorrenti klient, tänu millele saate kohe DAS-i alla laadida filme / muusikat jne. ja levitada seda üle kogu võrgu.
Andke torrentile administraatoriõigused

Lülitame sisse vahetusfaili, mille jaoks seda on ekraanipildil kirjeldatud.

Ülekanne on minu ruuterisse juba installitud, läheme brauserisse 192.168.1.1: 8090/ ja logime sisse administraatorina

Toidame torrenti faili.

Nagu näeme, süsteem töötab ja ruuterile paigaldatud Transmission suutis edukalt kasutada talle antud välist võimsust vastuvõetud sisu salvestamiseks.
Ja nüüd kõige tähtsama juurde, kõik töötab, kuid milline on lugemis- / kirjutamiskiirus võrgu kaudu DAS-ile juurdepääsul?
Proovime SAMBA kaudu faili kirjutada/üles laadida
Tulemus:

Tuleb mõista, et võrguvahetuse kiire tulemus sõltub otseselt protsessori ja ruuteri liidese jõudlusest. See tähendab, et antud juhul ei näe me mitte DAS CFI kiirust, vaid kiirust, mida Zyxel Keenetic suudab USB kaudu SAMBA kaudu võrku "seedida ja välja anda". Näitajad ei ole suured, kuid kodu ja eelarve otsus See on piisavalt. Hoolimata asjaolust, et otsejuurdepääsu kiirus pole suur, kuigi see on ka vastuvõetav - videovoo vastuvõtmiseks DAS-ist telerisse või meediumipleierisse või tahvelarvutisse mööda korterit wi-fi kaudu - on see enam kui piisav.

Ühendage DAS arvutiga USB3.0 kaudu ja veenduge, et kiirust piirab ribalaius USB-võimalus Zyxeli liides Keenetic.
Tulemus:

Iseenesest annab DAS mulle otse arvutiga ühendatuna RAID5-ga rohkem kui 200 MB/s. Sellest lähtuvalt võib ruuterite jõudluse suurenemise või lihtsalt teise ruuteri valimise korral (võimaluse korral muidugi kontrollin ja kinnitan UPD-d) kiirus muutuda ja ma tahaksin loota paremat.

Noh, kokkupandud süsteemi äriline pool kirjutamise ajal:
CFI-B8253JDGG - alates 10 756 rubla, ZyxelKeenetic - 990 rubla. Summas alla 12 000 rubla. Ja kui võrrelda 4-ga ketta NAS(hind algab 18 000 rubla) majanduslik kasu on ilmne.
Probleemi lahendus pole ainuke, kuid see on väga toimiv ja meelelahutuslik.