SMB/CIFS: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mvorklae (talk | contribs)
No edit summary
Mvorklae (talk | contribs)
No edit summary
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Server Message Block''', lühidalt SMB (ühe versioonina tuntud ka kui CIFS), on ISO mudeli 5.kihil töötav võrguprotokoll. SMB-d kasutatakse enamjaolt Microsoft Windowsis (kus see enne [https://en.wikipedia.org/wiki/Active_Directory Active Directory] implementeeimist oli tuntud kui "Microsoft Windows Network") failide, printerite, jadaportide ja erinevate sidevahendite jagamiseks võrgusõlmede vahel.
'''Server Message Block''', lühidalt SMB (ühe versioonina tuntud ka kui CIFS), on ISO mudeli 5.kihil töötav võrguprotokoll. SMB-d kasutatakse enamjaolt Microsoft Windowsis (kus see enne [https://en.wikipedia.org/wiki/Active_Directory Active Directory] juurutamist oli tuntud kui "Microsoft Windows Network") failide, printerite, jadaportide ja erinevate sidevahendite jagamiseks võrgusõlmede vahel.
CIFS kui SMB1 dialekt, on jäänud ajalukku. Selle all mõeldakse SMB-protokolli, mis oli kasutusel Microsoft Windows NT4 operatsioonisüsteemis.<ref name = "snia">[http://www.snia.org/sites/default/education/tutorials/2012/fall/file/JoseBarreto_SMB3_Remote_File_Protocol_revision.pdf SMB remote file protocol]</ref>


==Ajalugu==
==Ajalugu==
Esmakordselt mainitud IBM-i poolt 1985, kuid hiljem suuresti Microsofti poolt arendatud.<ref name = "whatissmb">[https://www.samba.org/cifs/docs/what-is-smb.html Just what is SMB?]</ref> Protokolli loojaks võib nimetada Dr. Barry Feigenbaumi, kelle initsiaalidest sai protokolli esimeseks nimeks BAF. Microsoft nimetas 1996.aastal SMB ümber CIFS (Common Internet File System).<ref name = "implementing_cifs">[http://www.ubiqx.org/cifs/SMB.html SMB: The Server Message Block Protocol]</ref>
Esmakordselt mainitud IBM-i poolt 1985, kuid hiljem suuresti Microsofti poolt arendatud.<ref name = "whatissmb">[https://www.samba.org/cifs/docs/what-is-smb.html Just what is SMB?]</ref> Protokolli loojaks võib nimetada Dr. Barry Feigenbaumi, kelle initsiaalidest sai protokolli esimeseks nimeks BAF. Microsoft nimetas 1996.aastal SMB ümber CIFS (Common Internet File System).<ref name = "implementing_cifs">[http://www.ubiqx.org/cifs/SMB.html SMB: The Server Message Block Protocol]</ref>
*SMB 1 (1984)
*CIFS (1996)
*SMB 2.0 (2008) Esimene suur uuendus algsesse protokolli.
*SMB 2.1 (2010)
*SMB 3.0 (2012) Tuli välja koos Windows 8 ja Windows Server 2012. Tõi kaasa uuendused nagu SMB Direct Protocol (SMB üle [https://en.wikipedia.org/wiki/Remote_direct_memory_access RDMA]), SMB Multichannel (mitu samaaegset ühendust ühe SMB sessiooni kohta), SMB Transparent Failover.
*SMB 3.0.2 Windows 8.1 ja Windows Server 2012 R2
*SMB 3.1.1 Ilmus Windows 10 ja Windows Server 2016 koosseisus. Toetab lisaks AES-128 CCM-ile ka AES-128 GCM krüpteeringut, ning autoriseerimisele eelnevat tervikluse kontrolli, kasutades selleks SHA-512 räsi.<ref name = "sambawiki"/>


==Võimalused==
==Võimalused==
Faili ja kirje tasemel lukustamine
* Faili ja kirje tasemel lukustamine


Failide ja kataloogide muutustest teavitamine
* Failide ja kataloogide muutustest teavitamine


Unicode tugi
* Unicode tugi


Lisaatribuutide (Extended Attributes) tugi
* Lisaatribuutide (Extended Attributes) tugi


Oplocks
* [https://msdn.microsoft.com/en-us/library/windows/desktop/aa365433(v=vs.85).aspx Oplocks]


[https://en.wikipedia.org/wiki/Inter-process_communication Üldine kaugsuhtlus]: nimega torud, postkastid
* [https://en.wikipedia.org/wiki/Inter-process_communication Üldine kaugsuhtlus]: nimega torud, postkastid


Autentimine nii kasutaja kui share tasemel, domeenide tugi
* Autentimine nii kasutaja kui share tasemel, domeenide tugi


• Trükkimine
* Printimine


Võrgu sirvimine
* Võrgu sirvimine


SMB töötab mitmete madalama kihi protokollide peal, nagu TCP/IP (port 445), NetBEUI ja IPX/SPX. Juhul, kui kasutatakse TCP/IP või NetBEUI, on sessioonikihi protokolliks NetBIOS API.<ref name = "whatissmb"/>
SMB töötab mitmete madalama kihi protokollide peal, nagu TCP/IP (port 445), NetBEUI ja IPX/SPX. Juhul, kui kasutatakse TCP/IP või NetBEUI, on sessioonikihi protokolliks NetBIOS API.<ref name = "whatissmb"/>
Line 30: Line 39:




==Turvalisus==
SMB kasutab krüpteeringut (AES-128-CCM) alates versioonist 3.0. Versioonile 3.1.1 lisati AES-128-GCM tugi ning võimalus nende kahe vahel valida. Teatud olukordades, nagu näiteks suurte failide üle krüpteeritud SMB seansi kopeerimine, annab AES-128-GCM kuni 2-kordse kiiruse võidu.


==SMB2, SMB3==
Versioon 3.1.1 tõi ka autentimiseelse tervikluse kontrolli võimaluse, mis kaitseb vahemehe ründe eest ühenduse loomise faasis. Kontrolliks kasutatakse SHA-512 räsi. [https://origin-symwisedownload.symantec.com/resources/webguides/proxysg/65/acceleration/Content/01Concepts/smb_signing_co.htm ''SMB signing''] on kasutusel kaitsmaks pakettide muutmise ja võltsimise eest ning krüptograafia pealtkuulamise vastu.<ref name = "security">[https://blogs.technet.microsoft.com/josebda/2015/05/05/whats-new-in-smb-3-1-1-in-the-windows-server-2016-technical-preview-2/x What’s new in SMB 3.1.1 in the Windows Server 2016 Technical Preview 2]</ref>
https://www.kernel.org/doc/ols/2007/ols2007v1-pages-131-140.pdf
 
==Turvalisus==


SMB1 on rünnatav NSA poolt loodud nuhkvaraga EternalBlue, mis kasutab ära dokumenteeritud haavatavust CVE-2017-0144.<ref name = "eternalblue">[https://en.wikipedia.org/wiki/EternalBlue EternalBlue]</ref> Lekkinud EternalBlue-d kasutas omakorda levimiseks krüptoviirus Wannacry. <ref name = "wannacry">[https://www.fireeye.com/blog/threat-research/2017/05/smb-exploited-wannacry-use-of-eternalblue.html SMB Exploited: WannaCry Use of "EternalBlue"]</ref>


==UNIX ühilduvus==
==UNIX ühilduvus==
Vast kõige tuntum ja levinum SMB realisatsioon UNIX-süsteemidele on SAMBA. Samba algseks loojaks on https://en.wikipedia.org/wiki/Andrew_Tridgell Andrew Tridgell], kes lõi selle 1992.aastal isiklikust vajadusest vahetada faile DOS ja UNIX süsteemide vahel. Samba võimaldab failide ja printerite jagamist Microsoft Windows klientidele, ning ühildub Microsoft Windows Server domeeniga nii domeenikontrolleri kui -liikmena. Alates versioon 4 on toetatud ja Active Directory.<ref name = "whatissamba">[https://www.samba.org/samba/docs/SambaIntro.html Samba: An Introduction]</ref>
Vast kõige tuntum ja levinum SMB realisatsioon UNIX-süsteemidele on SAMBA. Samba algseks loojaks on [https://en.wikipedia.org/wiki/Andrew_Tridgell Andrew Tridgell], kes lõi selle 1992.aastal isiklikust vajadusest vahetada faile DOS ja UNIX süsteemide vahel. Samba võimaldab failide ja printerite jagamist Microsoft Windows klientidele, ning ühildub Microsoft Windows Server domeeniga nii domeenikontrolleri kui -liikmena. Alates versioonist 4 on toetatud ka Active Directory.<ref name = "whatissamba">[https://www.samba.org/samba/docs/SambaIntro.html Samba: An Introduction]</ref>


[[File:Nautilus.png|thumb|left|alt=Kataloogi jagamine Unitys.|Kataloogi jagamine Unitys.]]
Toetatud on enamik Unix, OpenVMS ning UNIX-laadseid süsteeme, nagu Linux, Solaris, AIX, BSD, aga ka Apple macOS Server ja macOS klient (Mac OS X 10.2 ja edasi). Sambat levitatakse GNU General Public License alusel.<ref name = "sambawiki">[https://en.wikipedia.org/wiki/Samba_(software) Samba (software)]</ref>
Toetatud on enamik Unix, OpenVMS ning UNIX-laadseid süsteeme, nagu Linux, Solaris, AIX, BSD, aga ka Apple macOS Server ja macOS klient (Mac OS X 10.2 ja edasi). Sambat levitatakse GNU General Public License alusel.<ref name = "sambawiki">[https://en.wikipedia.org/wiki/Samba_(software) Samba (software)]</ref>


Nimi Samba tuleb väidetavalt Linuxi sõnaraamatu otsingust, kasutades tööriista [[Grep kasutamine | grep]]<ref name = "sambahistory">[http://www.rxn.com/services/faq/smb/samba.history.txt A bit of history and a bit of fun]</ref> {{code|2=bash|grep -i '^s.*m.*b' /usr/share/dict/words}}


==Erijuhud (halb sõna)==
Samba tekitab valitud UNIX-i kataloogidest (kaasaarvatud alamkataloogid) võrgujao. Microsoft Windowsi kasutajad näevad neid kui tavalisi võrgusolevaid Windowsi katalooge. UNIX-i kasutajad saavad katalooge haakida kui osana failistruktuurist, kasutades käsku smbmount.<ref name = "smbmount">[https://linux.die.net/man/8/smbmount smbmount(8) - Linux man page]</ref> {{code|2=bash|smbmount {service} {mount-point} [-o options]}}
https://jcifs.samba.org/
Alternatiivina võib kasutada utiliiti [https://www.samba.org/samba/docs/current/man-html/smbclient.1.html smbclient], mis loob FTP-sarnase kasutajaliidese. Igal kataloogil saavad olla erinevad kasutajaõigused. Jagu nimega "netlogon" (kirjutuskaitstud jagu /etc/samba/netlogo) on kasutajate sisselogimisskriptide jaoks.<ref name = "sambawiki"/>
 
Dfs — "automounter" SMB otsas
 
 
==SMB serverid==
https://www.samba.org/cifs/docs/what-is-smb.html
Samba
Microsoft Windows for Workgroups 3.x
Microsoft Windows 95
Microsoft Windows NT
The PATHWORKS family of servers from Digital
LAN Manager for OS/2, SCO, etc
VisionFS from SCO
TotalNET Advanced Server from Syntax
Advanced Server for UNIX from AT&T (NCR?)
LAN Server for OS/2 from IBM
 
 
https://www.samba.org/cifs/docs/what-is-smb.html
 
http://www.ubiqx.org/cifs/index.html
 
https://www.kernel.org/doc/ols/2007/ols2007v1-pages-131-140.pdf
 
https://en.wikipedia.org/wiki/Server_Message_Block
 
http://blog.fosketts.net/2012/02/16/cifs-smb/
 
http://kuutorvaja.eenet.ee/wiki/Samba_4_kasutamine
 
https://control.velocityhost.com.au/knowledgebase/84/Mounting-a-Windows-FIle-Share--SMB-CIFS-Share-.html?action=displayarticle&id=84&language=estonian
 
https://wiki.itcollege.ee/index.php/Failiserver_Samba_labor_2
 


Samba seadistused asuvad failis smb.conf (harilikult /etc/smb.conf või /etc/samba/smb.conf). Samuti on võimalik implementeerida ''group policy''-t.<ref name = "sambawiki"/>


Juuresoleval pildil on näha kataloogi võrku jagamine Ubuntu Linuxis läbi Nautilus failibrauseri sarnaselt Microsoft Windowsile. Üksikasjalikud õpetused Samba seadistamiseks Ubuntus on toodud [https://help.ubuntu.com/community/Samba/SambaClientGuide Ubuntu kogukonna Wiki lehel].


Samba seadistamiseks on loodud ka ridamisi graafilisi tööriistu, nagu [https://alioth.debian.org/projects/gosa GOsa], [https://sourceforge.net/p/smb4k/home/Home/ Smb4K] ja [http://www.webmin.com/ Webmin]. Webmin-i puhul on tegemist universaalse graafilise seadistusliidesega, kus ka Samba komponent olemas. Täpsemalt nende ja ka teiste tööriistade kohta saab lugeda [https://www.samba.org/samba/GUI/ Samba ametlikult veebilehelt].


==SMB-ga seotud tööriistad==
[https://en.wikipedia.org/wiki/Distributed_File_System_(Microsoft) DFS (Distributed File System)] seob erinevad SMB jaod kasutaja jaoks üheks süsteemiks


[https://jcifs.samba.org/ jCIFS] on Java teek, mis implementeerib SMB protokolli.


== Allikad ==
== Allikad ==

Latest revision as of 21:53, 6 May 2018

Server Message Block, lühidalt SMB (ühe versioonina tuntud ka kui CIFS), on ISO mudeli 5.kihil töötav võrguprotokoll. SMB-d kasutatakse enamjaolt Microsoft Windowsis (kus see enne Active Directory juurutamist oli tuntud kui "Microsoft Windows Network") failide, printerite, jadaportide ja erinevate sidevahendite jagamiseks võrgusõlmede vahel. CIFS kui SMB1 dialekt, on jäänud ajalukku. Selle all mõeldakse SMB-protokolli, mis oli kasutusel Microsoft Windows NT4 operatsioonisüsteemis.[1]

Ajalugu

Esmakordselt mainitud IBM-i poolt 1985, kuid hiljem suuresti Microsofti poolt arendatud.[2] Protokolli loojaks võib nimetada Dr. Barry Feigenbaumi, kelle initsiaalidest sai protokolli esimeseks nimeks BAF. Microsoft nimetas 1996.aastal SMB ümber CIFS (Common Internet File System).[3]

  • SMB 1 (1984)
  • CIFS (1996)
  • SMB 2.0 (2008) Esimene suur uuendus algsesse protokolli.
  • SMB 2.1 (2010)
  • SMB 3.0 (2012) Tuli välja koos Windows 8 ja Windows Server 2012. Tõi kaasa uuendused nagu SMB Direct Protocol (SMB üle RDMA), SMB Multichannel (mitu samaaegset ühendust ühe SMB sessiooni kohta), SMB Transparent Failover.
  • SMB 3.0.2 Windows 8.1 ja Windows Server 2012 R2
  • SMB 3.1.1 Ilmus Windows 10 ja Windows Server 2016 koosseisus. Toetab lisaks AES-128 CCM-ile ka AES-128 GCM krüpteeringut, ning autoriseerimisele eelnevat tervikluse kontrolli, kasutades selleks SHA-512 räsi.[4]


Võimalused

  • Faili ja kirje tasemel lukustamine
  • Failide ja kataloogide muutustest teavitamine
  • Unicode tugi
  • Lisaatribuutide (Extended Attributes) tugi
  • Autentimine nii kasutaja kui share tasemel, domeenide tugi
  • Printimine
  • Võrgu sirvimine

SMB töötab mitmete madalama kihi protokollide peal, nagu TCP/IP (port 445), NetBEUI ja IPX/SPX. Juhul, kui kasutatakse TCP/IP või NetBEUI, on sessioonikihi protokolliks NetBIOS API.[2]

Kui SMB-d kasutada üle TCP/IP, DECnet või NetBEUI, tuleb pöördumiseks kasutada NetBIOS-nimesid. NetBIOS nimed on kuni 15 sümbolit pikad, harilikult kasutatava arvuti nimed. Microsofti toodete puhul peavad need olema suurtähtedega.

Kui NetBIOS nimed saadetakse võrku, lisatakse lühemale nimele tühikuid, et tekiks 15-sümboli pikkune nimi, pluss 16. sümbol, mis määrab nime tüübi. Microsoft nimetab seda NetBIOS järelliiteks.[2]


Turvalisus

SMB kasutab krüpteeringut (AES-128-CCM) alates versioonist 3.0. Versioonile 3.1.1 lisati AES-128-GCM tugi ning võimalus nende kahe vahel valida. Teatud olukordades, nagu näiteks suurte failide üle krüpteeritud SMB seansi kopeerimine, annab AES-128-GCM kuni 2-kordse kiiruse võidu.

Versioon 3.1.1 tõi ka autentimiseelse tervikluse kontrolli võimaluse, mis kaitseb vahemehe ründe eest ühenduse loomise faasis. Kontrolliks kasutatakse SHA-512 räsi. SMB signing on kasutusel kaitsmaks pakettide muutmise ja võltsimise eest ning krüptograafia pealtkuulamise vastu.[5]

SMB1 on rünnatav NSA poolt loodud nuhkvaraga EternalBlue, mis kasutab ära dokumenteeritud haavatavust CVE-2017-0144.[6] Lekkinud EternalBlue-d kasutas omakorda levimiseks krüptoviirus Wannacry. [7]

UNIX ühilduvus

Vast kõige tuntum ja levinum SMB realisatsioon UNIX-süsteemidele on SAMBA. Samba algseks loojaks on Andrew Tridgell, kes lõi selle 1992.aastal isiklikust vajadusest vahetada faile DOS ja UNIX süsteemide vahel. Samba võimaldab failide ja printerite jagamist Microsoft Windows klientidele, ning ühildub Microsoft Windows Server domeeniga nii domeenikontrolleri kui -liikmena. Alates versioonist 4 on toetatud ka Active Directory.[8]

Kataloogi jagamine Unitys.
Kataloogi jagamine Unitys.

Toetatud on enamik Unix, OpenVMS ning UNIX-laadseid süsteeme, nagu Linux, Solaris, AIX, BSD, aga ka Apple macOS Server ja macOS klient (Mac OS X 10.2 ja edasi). Sambat levitatakse GNU General Public License alusel.[4]

Nimi Samba tuleb väidetavalt Linuxi sõnaraamatu otsingust, kasutades tööriista grep[9]

grep -i '^s.*m.*b' /usr/share/dict/words

Samba tekitab valitud UNIX-i kataloogidest (kaasaarvatud alamkataloogid) võrgujao. Microsoft Windowsi kasutajad näevad neid kui tavalisi võrgusolevaid Windowsi katalooge. UNIX-i kasutajad saavad katalooge haakida kui osana failistruktuurist, kasutades käsku smbmount.[10]

smbmount {service} {mount-point} [-o options]

Alternatiivina võib kasutada utiliiti smbclient, mis loob FTP-sarnase kasutajaliidese. Igal kataloogil saavad olla erinevad kasutajaõigused. Jagu nimega "netlogon" (kirjutuskaitstud jagu /etc/samba/netlogo) on kasutajate sisselogimisskriptide jaoks.[4]

Samba seadistused asuvad failis smb.conf (harilikult /etc/smb.conf või /etc/samba/smb.conf). Samuti on võimalik implementeerida group policy-t.[4]

Juuresoleval pildil on näha kataloogi võrku jagamine Ubuntu Linuxis läbi Nautilus failibrauseri sarnaselt Microsoft Windowsile. Üksikasjalikud õpetused Samba seadistamiseks Ubuntus on toodud Ubuntu kogukonna Wiki lehel.

Samba seadistamiseks on loodud ka ridamisi graafilisi tööriistu, nagu GOsa, Smb4K ja Webmin. Webmin-i puhul on tegemist universaalse graafilise seadistusliidesega, kus ka Samba komponent olemas. Täpsemalt nende ja ka teiste tööriistade kohta saab lugeda Samba ametlikult veebilehelt.

SMB-ga seotud tööriistad

DFS (Distributed File System) seob erinevad SMB jaod kasutaja jaoks üheks süsteemiks

jCIFS on Java teek, mis implementeerib SMB protokolli.

Allikad