پروتکل SMB چیست : برای اینکه بتوانیم از فایلهای به اشتراک گذاشته شده و منابع سرور از راه دور استفاده کنیم میتوانیم از پروتکل SMB استفاده کنیم. در ادامه به چیستی پروتکل SMB و چگونگی کارکرد آن میپردازیم. با توسعه شبکه آداکهمراه باشید.
پروتکل SMB چیست؟
SMB مخفف Server Message Block است. این پروتکل شبکه به سیستمها اجازه اشتراک گذاری فایلها در یک شبکه یا دامین را از کامپیوترهای ریموت میدهد انگار کاربر از هارد لوکال استفاده میکند. پروتکل SMB امکان دسترسی کاربر یا برنامه را به فایلهای موجود در سرور ریموت و دیگر منابع میدهد.
پروتکل SMB پروتکل ارتباطی سرور – کلاینت / پاسخ – درخواست است که برای اشتراک گذاری دسترسی به فایلها، پرینترها، پورت های سریال و دیگر منابع موجود در شبکه استفاده میشود. مثلا کامپیوتر متصل به شبکه ویندوزی میتواند با پرینتر متصل به کامپیوتر دیگری در شبکه پرینت بگیرد. البته به شرطی که هر دو از پروتکل SMB پشتیبانی کنند.
پروتکل SMB با عنوان پروتکل پاسخ – درخواست هم شناخته میشود یعنی چندین پیغام را بین کلاینت و سرور منتقل میکند تا ارتباط برقرار شود. کلاینت میتواند فایل های روی ریموت سرور را باز کرده، بخواند، منتقل، ایجاد و آپدیت کند. همچنین میتواند با هر برنامه سروری دیگری که تنظیماتِ دریافتِ درخواستِ کلاینت SMB را دارد ارتباط برقرار کند.
همچنین میتواند به عنوان پروتکل انتقالی برای interprocess communication – IPC کار کند. در IPC امکان اجرای چندین درخواست کاربر به صورت همزمان وجود دارد.
پروتکل SMB با عنوان پروتکل پاسخ – درخواست هم شناخته میشود.
پروتکل SMB در سال ۱۹۸۳ توسط IBM ارایه شد و علاوه بر اینکه در کامپیوترهای ویندوزی قابل استفاده است با پیاده سازی نرم افزاری به نام Samba در پلتفرم هایی مثل یونیکس و Mac OS X هم استفاده میشود. بدین ترتیب کامپیوترها با سیستم عامل های مختلف میتوانند فایلها و پرینترها را در شبکه به اشتراک گذارند. بدین ترتیب اشتراک گذاری در دفتری با شبکه ویندوزی که گرافیست آن از Mac و متخصص IT آن از سیستم های لینوکس استفاده میکنند به مشکلی برنمیخورد.
کلاینت و سرور ممکن است از انواع مختلف SMB استفاده کنند که قبل از شروع Session با هم Negotiate میکنند.
SMB ممکن است ترافیک بالایی در شبکه ایجاد کند. یکی از راهکارهای حل این مشکل استفاده از DSN است. راهکار دیگر استفاده از Windows Internet Naming Service – WINS است که البته رواج زیادی ندارد.
پروتکل SMB چگونه کار می کند؟
در لایه ۷ از مدل OSI یعنی لایه اپلیکیشن کار میکند پس متکی بر پروتکلهای سطح پایین برای انتقال است. پروتکل لایه انتقال که SMB اغلب از آن استفاده میکند NetBIOS over TCP/IP یا NBT است. امروزه برای ارتباط بین دستگاههایی که از SMB روی TCP/IP پشتیبانی نمیکنند باید از NetBIOS روی پروتکلهای انتقال مانند TCP/IP استفاده شود.
برای آشنایی با مدل مرجع OSI مقاله “مدل OSI چیست؟” را مطالعه کنید.
SMB میتواند برای انتقال از TCP/IP روی پورت ۴۴۵ استفاده کند. Dielect های اولیه از API های NetBIOS روی TCP/IP و یا پروتکلهای legacy مانند Internetwork Packet Exchange یا NetBEUI استفاده میکردند.
پروتکل SMB پروتکل سرور کلاینتی است و شامل مجموعه بسته های دیتا است که هر کدام شامل درخواستی است که کلاینت میفرستد یا پاسخی که سرور میفرستد. این بسته ها به صورت زیر هستند:
- بستههای کنترل Session که اتصالی را ایجاد و قطع میکنند تا منابع سرور به اشتراک گذاشته شود.
- بستههای دسترسی فایل که فایلها و دایرکتوریهای روی سرور ریموت قابل دسترسی و دستکاری میکنند.
- بستههای پیغام عمومی که دیتا را برای صفهای پرینت، mailslotها و named pipe ها ارسال میکنند و دیتای وضعیت صفهای پرینت را فراهم میکنند.
- برخی بستههای پیغام گروهبندی شده و در یک انتقال فرستاده میشوند. بدین ترتیب زمان تاخیر کم شده و پهنای باند شبکه افزایش مییابد. به این کار Packet Batching میگویند.
امنیت SMB
مدل امنیتی استفاده شده در SMB شامل دو سطح امنیتی است: کاربر و اشتراک گذاری. اشتراک گذاری – share یعنی فایل و دایرکتوری یا پرینتری که کلاینت ها میتوانند به آن دسترسی یابند.
- احراز هویت سطح کاربر: کلاینتی که میخواهد دسترسی به Share روی سرور داشته باشد، باید نام کاربری و پسورد ارایه کند. پس از احراز هویت، اجازه دسترسی به کاربر داده میشود. این سطح امنیتی به ادمینهای سیستم امکان تعیین کاربران و گروههای مجاز به دسترسی به Share را میدهد.
- احراز هویت سطح Share: دسترسی به Share با پسوردی که به آن اختصاص داده شده کنترل میشود. برخلاف امنیت سطح کاربر، این سطح امنیتی برای احراز هویت به نام کاربری نیازی ندارد.
پسورد در هر دوی این سطوح امنیتی قبل از ارسال به سرور رمزگذاری میشود. SMB از رمزگذاریهایی مانند NTLM و LAN Manager پشتیبانی میکند.
Dialect های پروتکل SMB
مجموعه بسته های از نوع پیغام که نسخه خاصی از پروتکل را تعریف میکند، dialect نامیده میشود. پروتکل The Common Internet File System – CIFS یک Dialect از SMB است. هر دوی این پروتکلها روی VMS، نسخه های متفاوت Unix و دیگر سیستم عاملها قابل دسترسی هستند.
اغلب کلاینت های ویندوزی حداقل از ۶ دیالکت مختلف SMB پشتیبانی میکنند. برای برقراری ارتباط بین کلاینت و سروری که از SMB استفاده میکنند باید Dialect ای که هم کلاینت و هم سرور پشتیبانی میکنند و بالاترین سطح کارایی را دارد انتخاب کنید. انواع پروتکل های SMB باعث بهبود قابلیتها، ارتقاپذیری، امنیت و کارایی میشوند. در ادامه Dialect های مهم پروتکل SMB را معرفی میکنیم:
SMB 1.0 در سال ۱۹۸۴ توسط IBM برای اشتراک گذاری فایل در DOS ارایه شد. با این کار، مکانیزم Caching در سمت کلاینت با عنوانopportunistic locking – OpLock معرفی شد. تا ترافیک شبکه کم شود. بعدها مایکروسافت پروتکل SMB را در محصول LAN Manager عرضه کرد.
CIFS
در سال ۱۹۹۶ در ویندوز ۹۵ ارایه شد. پشتیبانی از اندازه بزرگتر فایل، انتقال مستقیم روی TCP/IP، لینک های هارد و سیمبولیک افزوده شد. این نسخه، کارایی شبکه WAN را کم میکرد چون تعداد Acknowledgement ها زیاد و زمان تاخیر بالا بود. در نسخه بعدی یعنی SMB 2.0 کارایی پروتکل بالا رفت و تعداد صدها دستور و زیردستور به ۱۹ تا کاهش یافت.
SMB 2.0 در سال ۲۰۰۶ در ویندوز ویستا و ویندوز سرور ۲۰۰۸ عرضه شد. پشتیبانی از WAN acceleration افزوده شد و با حذف برخی موارد، کارایی و ارتقاپذیری و Resiliency افزایش یافت.
SMB 2.1 در سال ۲۰۱۰ در ویندوز سرور ۲۰۰۸ R2 و ویندوز ۷ عرضه شد. صرفهجویی در مصرف برق، پشتیبانی از واحدهای انتقال بزرگ (MTU بزرگ).
SMB 3.0 در سال ۲۰۱۲ در ویندوز ۸ و ویندوز سرور ۲۰۱۲ ارایه شد. با افزودن برخی ویژگیها در مدیریت، امنیت، بکاپگیری، کارایی و دسترس پذیری پیشرفتهایی حاصل شد. این ویژگیها عبارتند از:
- SMB Multichannel
- SMB Direct
- transparent failover of client access
- Remote VSS support, SMB Encryption
SMB 3.0.2 در سال ۲۰۱۴ در ویندوز ۸.۱ و ویندوز سرور ۲۰۱۲ R2 ارایه شد. قابلیت پشتیبانی از CIFS و SMB 1.0 کاملا غیرفعال و آپدیتهایی در زمینه کارایی ارایه شد.
SMB 3.1.1 در سال ۲۰۱۵ در ویندوز ۱۰ و ویندوز سرور ۲۰۱۶ ارایه شد. قابلیت پشتیبانی از رمزگذاری و preauthentication integrity ارایه شد تا از هک از نوع man-in-the-middle جلوگیری شود.
در سال ۲۰۱۷ باج افزارهای WannaCry و Petya به SMB 1.0 حمله کردند و بدافزار را روی کلاینت ها لود و در شبکه تکثیر کردند. مایکروسافت وصلهای در این زمینه ارایه داد اما تاکید شد که CIFS و SMB 1.0 از سیستم ها غیرفعال شود. در سال ۲۰۲۰ هم دو حفره امنیتی SMBGhost و SMBleed توانست بخش احراز هویت SMB را با مشکل مواجه کند.
مقایسه Samba و SMB
Samba در سال ۱۹۹۲ عرضه شد و پیاده سازی متن باز پروتکل SMB برای یونیکس و لینوکس است. Samba از موارد زیر پشتیبانی میکند:
- اشتراک گذاری فایل
- سرویسهای پرینت
- authentication و authorization
- name resolution
- service announcements بین سرورهای لینوکس/یونیکس و کلاینت های ویندوزی
برخی از مطالب مرتبط:
بلاک چین چیست و چگونه کار میکند؟
کاربرد گیمیفیکیشن در آموزش؛ چگونه از سیستمهای بازیوار در آموزش الکترونیک استفاده کنیم؟
خرید آنلاین چیست؛ خرید اینترنتی چگونه انجام می شود؟
چگونه بفهمیم مادربورد کامپیوترمان چیست؟
ttfb چیست و چطور می توان آن را بهینه کرد؟