SMB/CIFS: Difference between revisions
No edit summary |
No edit summary |
||
(21 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Server Message Block, lühidalt SMB, on | '''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== | |||
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== | |||
* Faili ja kirje tasemel lukustamine | |||
* Failide ja kataloogide muutustest teavitamine | |||
* Unicode tugi | |||
* Lisaatribuutide (Extended Attributes) tugi | |||
* [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 | |||
* 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.<ref name = "whatissmb"/> | |||
SMB | 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 [https://en.wikipedia.org/wiki/NetBIOS#NetBIOS_Suffixes NetBIOS järelliiteks].<ref name = "whatissmb"/> | |||
==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. [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> | |||
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== | |||
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> | |||
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}} | |||
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]}} | |||
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"/> | |||
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
- Üldine kaugsuhtlus: nimega torud, postkastid
- 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]
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
- ↑ SMB remote file protocol
- ↑ 2.0 2.1 2.2 Just what is SMB?
- ↑ SMB: The Server Message Block Protocol
- ↑ 4.0 4.1 4.2 4.3 Samba (software)
- ↑ What’s new in SMB 3.1.1 in the Windows Server 2016 Technical Preview 2
- ↑ EternalBlue
- ↑ SMB Exploited: WannaCry Use of "EternalBlue"
- ↑ Samba: An Introduction
- ↑ A bit of history and a bit of fun
- ↑ smbmount(8) - Linux man page