SMB
Z Wikipedii
Server Message Block (SMB) - protokół służący udostępnianiu zasobów komputerowych, m.in. drukarek czy plików.
Spis treści |
[edytuj] Protokół
SMB jest protokołem typu klient-serwer, a więc opiera się na systemie zapytań generowanych przez klienta i odpowiedzi od serwera. Wyjątkiem od tej zasady jest mechanizm tzw. oplocków (opportunistic lock), w którym to serwer może wygenerować "nieproszony" przez klienta sygnał informujący o zerwaniu wcześniej założonego oplocka (blokady).
Niemniej jednak, chociaż sam protokół ma charakter klient-serwer, to z racji tego, że najczęściej maszyny klienckie dysponują także funkcjami serwerowymi (udostępnianie plików) to sieci SMB nabierają charakteru sieci peer-to-peer.
[edytuj] Historia
Początki protokołu sięgają połowy lat 80., kiedy to w firmie IBM opracowano jego wczesną wersję (IBM PC Network SMB Protocol). W kolejnych latach protokół był nadal rozwijany, głównie przez firmę Microsoft. W późniejszych latach SMB stał się podstawą Otoczenia sieciowego w systemach Windows.
[edytuj] SMB a inne protokoły
Protokół SMB wykorzystuje do działania dwa protokoły niższych rzędów - protokół warstwy sesji NetBIOS (który sam wykorzystuje jako warstwę transportu TCP/IP albo DECnet albo IPX/SPX) lub protokół nierutowalny NetBEUI będący protokołem warstw sieci, transportu i sesji. Systemy Microsoft Windows potrafią korzystać z SMB, a co za tym idzie z NetBIOS, zarówno poprzez TCP/IP (obecnie najpopularniejsza metoda), jak i poprzez IPX/SPX/NetBEUI (stosowany tylko w małych sieciach). Samba instalowana na systemach Unix korzysta tylko z SMB poprzez TCP/IP. (Patrz: model OSI)
[edytuj] Identyfikacja w sieci
Identyfikacja komputerów w sieciach SMB odbywa się za pomocą ich nazw NetBIOS (nazwą jest ciąg znaków, nie dłuższy niż 15 znaków) lub za pomocą mechanizmów protokołów "podległych" SMB, np. poprzez adres IP czy nazw DNS, gdy SMB wykorzystuje protokół TCP do transportu danych.
[edytuj] Wersje
Pierwotna wersja protokołu - Core Protocol - użyta w pierwszej implementacji PC NETWORK PROGRAM 1.0 umożliwiała podstawowe operacje takie jak:
- otwieranie i zamykanie plików
- otwieranie i zamykanie drukarek
- odczyt i zapis z/do plików
- tworzenie i kasowanie plików/katalogów
- przeszukiwanie katalogów
- ustawianie i odczytywanie atrybutów plików
- blokowanie i udostępnianie wybranych fragmentów plików
Z czasem powstawały kolejne: Core Plus Protocol, Lan Manager 1.0 (LANMAN 1.0), LANMAN 2.0, LANMAN 2.1 (Windows for Workgroups), CIFS 1.0/ NT Lan Manager 1.0.
[edytuj] Implementacje
Najczęściej z implementacją protokołu SMB spotykamy się przy okazji styczności z systemem Microsoft Windows. Każda wersja począwszy od Windows 3.11 for Workgroups zawiera implementację SMB.
Jednak nie są to jedyne implementacje. Wśród innych należy wymienić także: Samba (dla systemów Unix, open source) oraz produkty komercyjne dla systemów SCO UNIXware, SCO OpenServer, Solaris, HP-UX, OS/2 i innych.
[edytuj] Bezpieczeństwo
SMB oferuje dwa modele bezpieczeństwa:
- share level - polegający na zabezpieczeniu zasobu i znajdujących się w nim plików hasłem. Znajomość samego hasła wystarcza do uzyskania dostępu. Jedyny model np. w Windows for Workgroups, Windows 95/98/Me oraz jako jedna z możliwości w Sambie.
- user level - oparty na zabezpieczaniu konkretnych plików poprzez prawa dostępu przyporządkowane konkretnym użytkownikom. Znajomość użytkownika i hasła jest warunkiem do uzyskania dostępu do zasobu. Model ten pojawił się w LANMAN-ie 1.0. Jedyny model np. w Windows z linii NT czyli Windows NT 3.51/4.0/2000/XP/2003 oraz jako jedna z możliwości w Sambie.
Inną kwestią dotyczącą bezpieczeństwa jest podział na grupy robocze oraz domeny.
- Grupa robocza to zespół komputerów, w którym każdy komputer trzyma "u siebie" swoje poufne dane, zaś proces logowania, autoryzacji i uwierzytelnienia przebiega lokalnie. Rozwiązanie preferowane w sieciach domowych i w małych firmowych.
- Domena natomiast prezentuje podejście scentralizowane do kwestii przechowywania poufnych danych - w każdej domenie funkcjonuje kontroler domeny (jeden główny oraz ewentualnie kilka zapasowych), który je przechowuje. Procesy autoryzacji, uwierzytelniania przeprowadzane są więc centralnie. Rozwiązanie preferowane w większych sieciach firmowych i korporacyjnych.
[edytuj] SMB a CIFS
CIFS (Common Internet File System) to nowa wersja protokołu SMB opracowywana przez Microsoft i kilka innych firm. Szkic protokołu został przesłany do IETF, jednak z powodu wielu niedoskonałości nie został zatwierdzony. CIFS został zaimplementowany m.in. w Windows 2000/XP/2003 oraz Samba 3.0.
[edytuj] Porty
Wykorzystywane porty sieciowe:
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
Warstwa aplikacji
ADSP (AppleTalk) • APPC • AFP (AppleTalk) • DAP • DLC • DNS53 • ed2k • FTAM • FTP20,21 • Gopher • HTTP80 • HTTPS443 • IMAP143 • IRC194,529 • Named Pipes • NCP524 • NetBIOS137,138,139 • NWLink • NBT • NNTP119 • NTP123 • PAP • POP3110 • RPC • RTSP • SNMP161,162 • SMTP25 • SMB • SSL/TLS • SSH22 • TDI • Telnet23 • X.400 • X.500 • XDR • ZIP (AppleTalk)
(Cyfry w indeksie oznaczają numery portu)
Warstwa transportowa
ATP (AppleTalk) • NBP (AppleTalk) • NetBEUI • RTP • RTMP (AppleTalk) • SPX • TCP • UDP • SCTP
Warstwa sieciowa
IP • ICMP • IPsec • NAT • IPX • NWLink • NetBEUI • DDP (AppleTalk)
Warstwa dostępu do sieci
ARP • 10BASE-T • 802.11 WiFi • ADSL • Ethernet • EtherTalk • FDDI • Fibre Channel • ISDN • LocalTalk (AppleTalk) • NDIS • ODI • PPP • RS-232 • SLIP • Token Ring • TokenTalk (AppleTalk) • V.90