Serverbeskedblokering - Server Message Block
I computernetværk er Server Message Block ( SMB ), hvoraf en version også var kendt som Common Internet File System ( CIFS / s ɪ f s / ), en kommunikationsprotokol til at give delt adgang til filer , printere og serielle porte mellem noder på et netværk. Det giver også en godkendt inter-proces kommunikation (IPC) mekanisme. Mest brug af SMB involverer computere, der kører Microsoft Windows , hvor det var kendt som "Microsoft Windows Network" før introduktionen af Active Directory . Tilsvarende Windows -tjenester er LAN Manager Server til serverkomponenten og LAN Manager Workstation til klientkomponenten .
Funktioner
Server Message Block giver fildeling, netværkssøgning, udskrivning og interprocesskommunikation (IPC) over et netværk.
SMB-protokollen bygger på lavere protokoller til transport.
Microsoft SMB -protokollen blev ofte brugt med NetBIOS over TCP/IP (NBT) over UDP ved hjælp af portnumre 137 og 138 og TCP -portnumre 137 og 139. NBT til brug af NetBIOS understøttes på Windows Server 2003, Windows XP, Windows 2000, Windows NT og Windows Me/98/95. NetBIOS understøttes ikke på Windows Vista, Windows Server 2008 og efterfølgende versioner af Windows. SMB/NBT -kombination bruges generelt til bagudkompatibilitet .
NetBIOS over NetBEUI -protokollen giver NetBIOS -understøttelse af NetBEUI -protokollen. Denne protokol kaldes også NetBIOS Frames (NBF). NBF understøttes på Windows 2000, Windows NT, Windows 95, Windows 98 og Windows Me. NetBEUI understøttes ikke længere på Windows XP og nyere. SMB -protokollen kan dog også bruges uden en separat transportprotokol direkte over TCP, port 445. NetBIOS blev også understøttet over flere ældre protokoller, f.eks. IPX/SPX .
SMB- interprocesskommunikationssystemet (IPC) giver navngivne rør og var en af de første interprocessmekanismer, der almindeligvis er tilgængelige for programmører, og som giver et middel til tjenester til at arve den godkendelse, der udføres, når en klient først opretter forbindelse til en SMB-server.
Nogle tjenester, der opererer over navngivne rør, f.eks. Dem, der bruger Microsofts egen implementering af DCE/RPC over SMB, kendt som MSRPC over SMB, tillader også MSRPC -klientprogrammer at udføre godkendelse, hvilket tilsidesætter autorisationen fra SMB -serveren, men kun i forbindelse med MSRPC -klientprogrammet, der med succes foretog den ekstra godkendelse.
SMB -signering : Windows NT 4.0 Service Pack 3 og opefter har mulighed for at bruge kryptografi til digitalt at signere SMB -forbindelser. Det mest almindelige officielle udtryk er "SMB -signering". Andre udtryk, der officielt er blevet brugt, er "[SMB] Sikkerhedssignaturer", "SMB -sekvensnumre" og "SMB -meddelelsessignering". SMB -signering kan konfigureres individuelt til indgående SMB -forbindelser (håndteres af "LanManServer" -tjenesten) og udgående SMB -forbindelser (håndteres af "LanManWorkstation" -tjenesten). Standardindstillingen fra Windows 98 og opefter er at opportunistisk logge udgående forbindelser, når serveren også understøtter dette, og falde tilbage til usigneret SMB, hvis begge partnere tillader dette. Standardindstillingen for Windows -domænecontrollere fra Windows Server 2003 og opefter er at ikke tillade tilbageslag for indgående forbindelser. Funktionen kan også tændes for enhver server, der kører Windows NT 4.0 Service Pack 3 eller nyere. Dette beskytter mod man-in-the-middle-angreb mod, at klienterne henter deres politikker fra domænecontrollere ved login.
SMB understøtter opportunistisk låsning- en særlig type låsemekanisme-på filer for at forbedre ydeevnen.
SMB fungerer som grundlag for Microsofts implementering af Distributed File System .
Historie
SMB / CIFS / SMB1
Barry Feigenbaum designede oprindeligt SMB hos IBM i begyndelsen af 1983 med det formål at gøre DOS INT 21h lokal filadgang til et netværksfilsystem. Microsoft har foretaget betydelige ændringer af den mest almindeligt anvendte version. Microsoft fusionerede SMB -protokollen med LAN Manager -produktet, som det var begyndt at udvikle til OS/2 med 3Com omkring 1990, og fortsatte med at tilføje funktioner til protokollen i Windows til arbejdsgrupper ( c. 1992 ) og i senere versioner af Windows.
SMB blev oprindeligt designet til at køre oven på NetBIOS /NetBEUI API (typisk implementeret med NBF , NetBIOS over IPX /SPX eller NBT ). Siden Windows 2000 kører SMB som standard med et tyndt lag, der ligner Session Message -pakken i NBT's Session Service, oven på TCP ved hjælp af TCP -port 445 frem for TCP -port 139 - en funktion kendt som "direkte vært -SMB" .
Windows Server 2003 og ældre NAS -enheder bruger indbygget SMB1/CIFS. SMB1/CIFS er en ekstremt chatty protokol, som ikke er et sådant problem på et lokalnetværk med lav latenstid. Så SMB1/CIFS bliver meget langsom på bredbåndsnetværk, da frem og tilbage håndtryk af protokollen forstørrer den iboende høje latens for et sådant netværk. Senere versioner af protokollen reducerede det høje antal håndtryksudvekslinger. Mens Microsoft vurderer, at SMB1/CIFS udgør mindre end 10% af netværkstrafikken i det gennemsnitlige Enterprise -netværk, er det stadig en betydelig mængde trafik.
En tilgang til at reducere ineffektiviteten i protokollen er at bruge WAN Acceleration -produkter som dem, der leveres af Riverbed, Silver Peak eller Cisco Systems. En bedre tilgang er simpelthen at fjerne SMB1/CIFS ved at opgradere den serverinfrastruktur, der bruger den. Dette inkluderer både NAS -enheder samt Windows Server 2003. Den mest effektive metode, der i øjeblikket bruges til at identificere SMB1/CIFS -trafik, er med et netværksanalysatorværktøj som Wireshark osv. Til at identificere SMB1/CIFS "talere" og derefter afmontere, omkonfigurere eller opgradere dem over tid. Microsoft har også et revisionsværktøj i Windows Server 2016, som kan bruges til at spore SMB1/CIFS -talere.
I 1996, da Sun Microsystems annoncerede WebNFS , lancerede Microsoft et initiativ til at omdøbe SMB til Common Internet File System (CIFS) og tilføjede flere funktioner, herunder understøttelse af symbolske links , hårde links , større filstørrelser og et første forsøg på at understøtte direkte forbindelser over TCP -port 445 uden at kræve NetBIOS som en transport (en stort set eksperimentel indsats, der krævede yderligere forfining). Microsoft indsendte nogle delspecifikationer som Internet-Drafts til IETF , selvom disse indsendelser er udløbet.
Microsoft "tilføjede SMB1 til listen over afskrivninger på Windows Server 2012 R2 i juni 2013." Windows Server 2016 og nogle versioner af Windows 10 Fall Creators Update har ikke SMB1 installeret som standard.
SMB 2.0
Microsoft introducerede en ny version af protokollen (SMB 2.0 eller SMB2) med Windows Vista i 2006 og Server 2008 . Selvom protokollen er proprietær, er dens specifikation blevet offentliggjort for at give andre systemer mulighed for at interoperere med Microsoft -operativsystemer, der bruger den nye protokol.
SMB2 reducerer 'chattiness' i SMB 1.0 -protokollen ved at reducere antallet af kommandoer og underkommandoer fra over hundrede til bare nitten. Det har mekanismer til pipeline , det vil sige at sende yderligere anmodninger, før svaret på en tidligere anmodning kommer, og derved forbedre ydeevnen over links med høj latens . Det tilføjer muligheden for at sammensætte flere handlinger til en enkelt anmodning, hvilket reducerer antallet af rundrejser, som klienten skal foretage til serveren, og forbedrer ydeevnen som følge heraf. SMB1 har også en sammensætningsmekanisme - kendt som AndX - til at sammensætte flere handlinger, men Microsoft -klienter bruger sjældent AndX. Det introducerer også begrebet "holdbare filhåndtag": Disse tillader en forbindelse til en SMB-server at overleve korte netværksafbrydelser, som er typiske i et trådløst netværk, uden at skulle pådrage sig omkostningerne til at forhandle en ny session.
SMB2 inkluderer understøttelse af symbolske links . Andre forbedringer omfatter cachelagring af filegenskaber, forbedret meddelelsessignering med HMAC SHA-256- hashalgoritme og bedre skalerbarhed ved blandt andet at øge antallet af brugere, delinger og åbne filer pr. Server. SMB1-protokollen bruger 16-bit datastørrelser, hvilket blandt andet begrænser den maksimale blokstørrelse til 64K. SMB2 bruger 32- eller 64-bit brede lagringsfelter og 128 bit i tilfælde af filhåndtag og fjerner derved tidligere begrænsninger for blokstørrelser, hvilket forbedrer ydeevnen med store filoverførsler over hurtige netværk.
Windows Vista/ Server 2008 og senere operativsystemer bruger SMB2, når de kommunikerer med andre maskiner, der også kan bruge SMB2. SMB1 bruges fortsat til forbindelser med ældre versioner af Windows samt forskellige leverandørers NAS -løsninger. Samba 3.5 inkluderer også eksperimentel support til SMB2. Samba 3.6 understøtter fuldt ud SMB2, undtagen ændring af brugerkvoter ved hjælp af Windows -kvotehåndteringsværktøjer.
Da SMB2 blev introduceret, gav det en række fordele i forhold til SMB1 for tredjepartsimplementører af SMB -protokoller. SMB1, oprindeligt designet af IBM , blev omvendt konstrueret og blev senere en del af en lang række ikke-Windows-operativsystemer som Xenix , OS/2 og VMS ( Pathworks ). X/Open standardiserede det delvist; Microsoft havde indsendt Internet-kladder, der beskriver SMB2 til IETF , dels som svar på formel IETF-standardisering af version 4 af [[Network File System] i december 2000 som IETF RFC 3010 .; disse SMB-relaterede internetudkast udløb imidlertid uden opnåelse af nogen IETF-standardsporegodkendelse eller anden IETF-godkendelse. (Se http://ubiqx.org/cifs/Intro.html for historiske detaljer.) SMB2 er også et relativt rent brud med fortiden. Microsofts SMB1 -kode skal fungere med en lang række SMB -klienter og servere. SMB1 indeholder mange versioner af oplysninger til kommandoer (vælger hvilken struktur der skal returneres for en bestemt anmodning), fordi funktioner som Unicode- understøttelse blev monteret med tilbagevirkende kraft på et senere tidspunkt. SMB2 indebærer betydeligt reduceret kompatibilitetstest for implementatorer af protokollen. SMB2-kode har betydeligt mindre kompleksitet, da der eksisterer langt mindre variabilitet (for eksempel bliver ikke-Unicode-kodestier overflødige, da SMB2 kræver Unicode-understøttelse).
Apple migrerer også til SMB2 (fra deres egen Apple Filing Protocol , nu ældre) startende med OS X (MacOS) 10.9. Denne overgang var imidlertid fyldt med kompatibilitetsproblemer. Ikke-standard support til SMB2 dukkede faktisk op i OS X 10.7, da Apple opgav Samba til fordel for sin egen SMB-implementering kaldet SMBX. Apple skiftede til sin egen SMBX -implementering, efter at Samba vedtog GPLv3 . MacOS har også understøttet IETF Network File System (NFS) i mange år (og gør det fortsat fra 2021).
Den Linux-kernen er CIFS klient filsystemet har SMB2 støtte siden version 3.7.
SMB 2.1
SMB 2.1, introduceret med Windows 7 og Server 2008 R2, introducerede mindre ydelsesforbedringer med en ny opportunistisk låsemekanisme.
SMB 3.0
SMB 3.0 (tidligere navngivet SMB 2.2) blev introduceret med Windows 8 og Windows Server 2012 . Det medførte flere væsentlige ændringer, der har til formål at tilføje funktionalitet og forbedre SMB2 -ydeevnen, især i virtualiserede datacentre :
- SMB Direct Protocol (SMB over fjernadgang til direkte hukommelse [RDMA])
- SMB -multikanal (flere forbindelser pr. SMB -session),
- SMB Transparent Failover
Det introducerer også flere sikkerhedsforbedringer, såsom ende-til-ende-kryptering og en ny AES- baseret signeringsalgoritme.
SMB 3.0.2
SMB 3.0.2 (kendt som 3.02 på det tidspunkt) blev introduceret med Windows 8.1 og Windows Server 2012 R2; i disse og senere udgivelser kan den tidligere SMB -version 1 deaktiveres for at øge sikkerheden.
SMB 3.1.1
SMB 3.1.1 blev introduceret med Windows 10 og Windows Server 2016 . Denne version understøtter AES-128 GCM- kryptering ud over AES-128 CCM- kryptering tilføjet i SMB3 og implementerer præ-autentificeringskontrol med SHA-512- hash. SMB 3.1.1 gør også sikker forhandling obligatorisk, når du opretter forbindelse til klienter, der bruger SMB 2.x og højere.
Implementering
Generelle spørgsmål
SMB arbejder gennem en klient -server tilgang, hvor en klient fremsætter specifikke anmodninger, og serveren reagerer derefter. Et afsnit i SMB -protokollen omhandler specifikt adgang til filsystemer , således at klienter kan fremsætte anmodninger til en filserver ; men nogle andre sektioner i SMB-protokollen er specialiseret i kommunikation mellem processer (IPC). Inter-Process Communication (IPC) -aktien, eller ipc $, er en netværksdeling på computere, der kører Microsoft Windows. Denne virtuelle deling bruges til at lette kommunikationen mellem processer og computere via SMB, ofte til at udveksle data mellem computere, der er blevet godkendt.
Udviklere har optimeret SMB-protokollen til lokal undernetbrug , men brugerne har også sat SMB i gang med at få adgang til forskellige undernet på tværs af Internettet- bedrifter, der involverer fildeling eller udskrivningsdeling i MS Windows-miljøer, fokuserer normalt på sådan brug.
SMB -servere gør deres filsystemer og andre ressourcer tilgængelige for klienter på netværket. Klientcomputere vil muligvis have adgang til de delte filsystemer og printere på serveren, og i denne primære funktionalitet er SMB blevet bedst kendt og mest brugt. SMB-filserveraspektet ville dog tælle for lidt uden NT-domænerpakken med protokoller, som i det mindste giver domænebaseret godkendelse i NT-stil . Næsten alle implementeringer af SMB-servere bruger NT Domain-godkendelse til at validere brugeradgang til ressourcer.
Ydelsesproblemer
Brugen af SMB -protokollen har ofte korreleret med en betydelig stigning i broadcast -trafik på et netværk. SMB'en selv bruger imidlertid ikke udsendelser - udsendelsesproblemerne, der normalt er forbundet med SMB, stammer faktisk fra NetBIOS -serviceplaceringsprotokollen. Som standard brugte en Microsoft Windows NT 4.0 -server NetBIOS til at annoncere og lokalisere tjenester. NetBIOS fungerer ved at sende tjenester tilgængelige på en bestemt vært med jævne mellemrum. Selvom dette normalt giver en acceptabel standard i et netværk med et mindre antal værter, kan øget udsendelsestrafik forårsage problemer, efterhånden som antallet af værter på netværket stiger. Implementeringen af infrastruktur til navneopløsning i form af Windows Internet Naming Service (WINS) eller Domain Name System (DNS) løser dette problem. WINS var en proprietær implementering, der blev brugt med Windows NT 4.0 -netværk, men medførte sine egne problemer og kompleksiteter i design og vedligeholdelse af et Microsoft -netværk.
Siden udgivelsen af Windows 2000 er brugen af WINS til navneopløsning blevet forældet af Microsoft, hvor hierarkisk dynamisk DNS nu er konfigureret som standardnavnetopløsningsprotokol for alle Windows -operativsystemer. Opløsning af (korte) NetBIOS-navne med DNS kræver, at en DNS-klient udvider korte navne, normalt ved at tilføje et forbindelsesspecifikt DNS-suffiks til sine DNS-opslagsspørgsmål. WINS kan stadig konfigureres på klienter som en sekundær navneopløsningsprotokol til interoperabilitet med ældre Windows -miljøer og applikationer. Endvidere kan Microsoft DNS-servere videresende anmodninger om navneopløsning til ældre WINS-servere for at understøtte integration af navneopløsninger med ældre miljøer (før Windows 2000), der ikke understøtter DNS.
Netværksdesignere har fundet ud af, at latenstid har en betydelig indvirkning på SMB 1.0 -protokollens ydeevne, at den klarer sig dårligere end andre protokoller som FTP . Overvågning afslører en høj grad af "chattiness" og en tilsidesættelse af netværksforsinkelse mellem værter. For eksempel vil en VPN -forbindelse over internettet ofte indføre netværksforsinkelse. Microsoft har forklaret, at ydelsesproblemer primært skyldes, at SMB 1.0 er et blokniveau frem for en streamingprotokol , der oprindeligt var designet til små LAN'er ; den har en blokstørrelse, der er begrænset til 64K, SMB -signering skaber en ekstra overhead, og TCP -vinduesstørrelsen er ikke optimeret til WAN -links. Løsninger på dette problem omfatter den opdaterede SMB 2.0 -protokol, offline filer , TCP -vinduesskalering og WAN -accelerationsenheder fra forskellige netværksleverandører, der gemmer og optimerer SMB 1.0 og 2.0.
Microsofts ændringer
Microsoft tilføjede flere udvidelser til sin egen SMB -implementering. For eksempel tilføjede det NTLM efterfulgt af NTLMv2 -godkendelsesprotokoller for at afhjælpe sikkerhedssvagheden ved den originale LAN Manager -godkendelse . LAN Manager -godkendelse blev implementeret baseret på den oprindelige gamle SMB -specifikationskrav til at bruge IBM "LAN Manager" -adgangskoder, men implementerede DES på en fejlbehæftet måde, der gjorde det muligt at knække adgangskoder. Senere blev Kerberos -godkendelse også tilføjet. De NT 4.0 Domain logon-protokoller oprindeligt brugt 40-bit kryptering uden for USA , på grund af eksportrestriktioner for stærkere 128-bit kryptering (senere ophævet i 1996, da præsident Bill Clinton underskrev bekendtgørelse 13026 ). Opportunistisk låsestøtte er ændret med hver serverudgivelse.
Samba
I 1991 startede Andrew Tridgell udviklingen af Samba, en re-implementering af gratis software (ved hjælp af reverse engineering ) af SMB/CIFS-netværksprotokollen til Unix-lignende systemer, i første omgang for at implementere en SMB-server for at tillade pc-klienter, der kører DEC Pathworks- klienten for at få adgang til filer på SunOS -maskiner. På grund af SMB-protokollens betydning for interaktion med den udbredte Microsoft Windows- platform blev Samba en populær gratis softwareimplementering af en kompatibel SMB-klient og server for at tillade ikke-Windows-operativsystemer, f.eks. Unix-lignende operativsystemer, at interoperere med Windows.
Fra version 3 (2003) leverer Samba fil- og udskrivningstjenester til Microsoft Windows -klienter og kan integreres med et Windows NT 4.0 -serverdomæne, enten som en primær domænecontroller (PDC) eller som et domænemedlem . Samba4 installationer kan fungere som en Active Directory -domænecontroller eller medlem server på Windows 2008 domæne og skov funktionelle niveauer.
Pakkeadministratorer i Linux-distributioner kan søge efter cifs-utils- pakken. Pakken er fra Samba -vedligeholderne.
Netsmb
NSMB (Netsmb og SMBFS) er en familie af in-kernel SMB-klient- og serverimplementeringer i BSD-operativsystemer. Det blev først bidraget til FreeBSD 4.4 af Boris Popov, og findes nu i en lang række andre BSD -systemer, herunder NetBSD og macOS . Implementeringerne har været meget forskellige siden.
MacOS-versionen af NSMB er kendt for sit nu almindelige skema for repræsentation af symlinks. Dette "Minshall-franske" format viser symlinks som tekstfiler med en .symlinkudvidelse og et Xsym\nmagisk tal, altid 1067 bytes lange. Dette format bruges også til lagring af symlinks på naive SMB -servere eller ikke -understøttede filsystemer. Samba understøtter dette format med en mfsymlinkmulighed. Docker på Windows ser også ud til at bruge det.
NQ
NQ er en familie af bærbare SMB-klient- og serverimplementeringer udviklet af Visuality Systems , et Israel-baseret firma, der blev etableret i 1998 af Sam Widerman, tidligere administrerende direktør for Siemens Data Communications. NQ -familien består af en integreret SMB -stak (skrevet i C), en ren Java SMB -klient og en SMB -serverimplementering. Alle løsninger understøtter den nyeste SMB 3.1.1 -dialekt. NQ til Linux , NQ til WinCE , iOS, Android, VxWorks og andre realtidsoperativsystemer understøttes alle af den konfigurerbare NQ-løsning.
MoSMB
MoSMB er en proprietær SMB-implementering til Linux og andre Unix-lignende systemer, udviklet af Ryussi Technologies. Det understøtter kun SMB 2.x og SMB 3.x.
Tuxera SMB
Tuxera SMB er en proprietær SMB -serverimplementering udviklet af Tuxera, der kan køres enten i kerne- eller brugerplads . Det understøtter SMB 3.1.1 og tidligere versioner.
Ligeledes
Ligeledes udviklede en CIFS/SMB-implementering (version 1.0, 2.0, 2.1 og NFS 3.0) i 2009, der leverede en multiprotokol, identitetsbevidst platform til netværksadgang til filer, der bruges i OEM- lagringsprodukter, der er bygget på Linux/Unix-baserede enheder. Platformen kunne bruges til traditionelle NAS-, Cloud Gateway- og Cloud Caching -enheder til at give sikker adgang til filer på tværs af et netværk. Ligeledes blev købt af EMC Isilon i 2012.
CIFSD
CIFSD er en open source In-kernel CIFS/SMB-serverimplementering til Linux-kerne. Det har følgende fordele i forhold til implementeringer af brugerrum: Det giver bedre ydeevne, og det er lettere at implementere nogle funktioner som SMB Direct. Det understøtter SMB 3.1.1 og tidligere versioner.
Opportunistisk låsning
I SMB -protokollen er opportunistisk låsning en mekanisme, der er designet til at forbedre ydeevnen ved at kontrollere cachelagring af netværksfiler af klienten. I modsætning til traditionelle låse er OpLocks ikke strengt fillåsning eller bruges til at give gensidig udelukkelse.
Der er fire typer af opportunistiske låse:
- Batchlåse
- Batch OpLocks blev oprindeligt oprettet for at understøtte en bestemt adfærd ved DOS -batchfileksekveringsoperation, hvor filen åbnes og lukkes mange gange på en kort periode, hvilket er et ydelsesproblem. For at løse dette kan en klient bede om en OpLock af typen "batch". I dette tilfælde forsinker klienten afsendelsen af den tætte anmodning, og hvis der gives en efterfølgende åben anmodning, annullerer de to anmodninger hinanden.
- Niveau 1 OpLocks / Eksklusive låse
- Når et program åbner i "delt tilstand", en fil, der er hostet på en SMB -server, som ikke åbnes af nogen anden proces (eller andre klienter), modtager klienten en eksklusiv OpLock fra serveren. Det betyder, at klienten nu kan antage, at det er den eneste proces med adgang til denne bestemte fil, og klienten kan nu gemme alle ændringer i filen i cache, før den overføres til serveren. Dette er en præstationsforbedring, da der kræves færre rundrejser for at læse og skrive til filen. Hvis en anden klient/proces forsøger at åbne den samme fil, sender serveren en besked til klienten (kaldet en pause eller tilbagekaldelse ), hvilket ugyldiggør den eksklusive lås, der tidligere var givet til klienten. Klienten skyller derefter alle ændringer til filen.
- Niveau 2 OpLocks
- Hvis en eksklusiv OpLock er i besiddelse af en klient, og en låst fil åbnes af en tredjepart, skal klienten opgive sin eksklusive OpLock for at tillade den anden klients skrive-/læseadgang. En klient kan derefter modtage en "Level 2 OpLock" fra serveren. En Level 2 OpLock tillader cachelagring af læseanmodninger, men udelukker skrivecaching.
- Filtrer OpLocks
- Tilføjet i NT 4.0 ligner Filter Oplocks lignende OpLocks på niveau 2, men forhindrer krænkelser i delingstilstand mellem åbning af filer og modtagelse af lås. Microsoft anbefaler kun brug af Filter OpLocks, hvor det er vigtigt at tillade flere læsere og niveau 2 OpLocks under andre omstændigheder.
Kunder, der har en OpLock, har ikke rigtig en lås på filen, i stedet får de besked via en pause, når en anden klient ønsker at få adgang til filen på en måde, der ikke er i overensstemmelse med deres lås. Den anden klients anmodning holdes fast, mens pausen behandles.
- Pauser
- I modsætning til SMB -protokollens "standard" adfærd kan der blive sendt en pauseanmodning fra server til klient. Det informerer klienten om, at en OpLock ikke længere er gyldig. Dette sker for eksempel, når en anden klient ønsker at åbne en fil på en måde, der gør OpLock ugyldig. Den første klient sendes derefter en OpLock -pause og skal sende alle dens lokale ændringer (i tilfælde af batch eller eksklusive OpLocks), hvis nogen, og anerkende OpLock -bruddet. Ved denne bekræftelse kan serveren besvare den anden klient på en konsekvent måde.
Sikkerhed
I årenes løb har der været mange sikkerhedssårbarheder i Microsofts implementering af den eller de protokoller, som den direkte er afhængig af. Andre leverandørers sikkerhedssårbarheder ligger primært i mangel på understøttelse af nyere godkendelsesprotokoller som NTLMv2 og Kerberos til fordel for protokoller som NTLMv1, LanMan eller almindelige tekstadgangskoder . Angrebssporing i realtid viser, at SMB er en af de primære angrebsvektorer for indtrængningsforsøg, f.eks. Angrebet fra Sony Pictures i 2014 og WannaCry ransomware-angreb fra 2017. I 2020 blev to SMB-sværhedsgrader af høj alvorlighed afsløret og kaldet SMBGhost ( CVE-2020-0796 ) og SMBleed ( CVE-2020-1206 ), der, når de er sammenkædet, kan give angriberen RCE (Remote Code Execution) privilegium.
specifikationer
Specifikationerne for SMB er proprietære og blev oprindeligt lukket, og dermed tvunget andre leverandører og projekter til at reverse-manipulere protokollen for at interoperere med den. SMB 1.0 -protokollen blev til sidst offentliggjort et stykke tid efter, at den var reverse engineered, mens SMB 2.0 -protokollen blev gjort tilgængelig fra Microsofts MSDN Open Specifications Developer Center fra begyndelsen. Der er en række specifikationer, der er relevante for SMB -protokollen:
-
[MS-CIFS]: Common Internet File System (CIFS) protokol
- Angiver den fælles internetfilsystemprotokol (CIFS), en tværplatforms, transportuafhængig protokol, der tilvejebringer en mekanisme for klientsystemer til at bruge fil- og udskrivningstjenester, der er tilgængelige af serversystemer over et netværk
-
[MS-SMB]: Protokol til servermeddelelsesblok (SMB)
- Angiver SMB -protokollen (Server Message Block), som definerer udvidelser til den eksisterende CIFS -specifikation (Common Internet File System), der er blevet implementeret af Microsoft siden offentliggørelsen af CIFS -specifikationen.
-
[MS-SMB2]: Servermeddelelsesblok (SMB) -protokol version 2 og 3
- Angiver Server Message Block (SMB) -protokol version 2 og 3, som understøtter deling af fil- og udskrivningsressourcer mellem maskiner og udvider begreberne fra Server Message Block Protocol.
-
[MS-SMBD]: SMB2 Remote Direct Memory Access (RDMA) Transportprotokol
- Specificerer SMB2 Remote Direct Memory Access (RDMA) Transport Protocol, en indpakning til den eksisterende SMB2-protokol, der gør det muligt at levere SMB2-pakker via RDMA-kompatible transporter, f.eks. IWARP eller Infiniband, samtidig med at disse transporter anvender direkte dataplacering (DDP) . Fordelene inkluderer reduceret CPU -overhead, lavere latenstid og forbedret kapacitet.
-
[MS-FSSO]: File Access Services System Oversigt ( arkiveret dokumentstatus )
- Beskriver den tiltænkte funktionalitet i File Access Services System, hvordan det interagerer med systemer og applikationer, der har brug for filtjenester, og hvordan det interagerer med administrative klienter for at konfigurere og administrere systemet. File Access Services bruger flere protokoller til filadgang og filserveradministration. Dette dokument viser disse protokoller og beskriver, hvordan de bruges til at implementere File Access Services System. Systemoversigterne erstattes af nyere oversigter.
Se også
Referencer
eksterne links
- DFS -sektion i "Windows Developer" dokumentation
- Hertel, Christopher (2003). Implementering af CIFS - Det fælles internetfilsystem . Prentice Hall. ISBN 0-13-047116-X . (Tekst licenseret under Open Publication License , v1.0 eller nyere, tilgængelig fra ovenstående link.)
- Fælles internetfilsystem , tekniske detaljer fra Microsoft Corporation
- NT LM 0.12 dialekten af SMB . I Microsoft Word -format
- Steven M. French, Et nyt netværksfilsystem er født: Sammenligning af SMB2, CIFS og NFS , Linux Symposium 2007
- Steve French, The Future of File Protocols: SMB2 Meets Linux , Linux Collaboration Summit 2012