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 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 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:

  • 137/UDP, 138/UDP, 139/TCP
  • opcjonalnie 445/TCP

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne