پروتکل smb چیست و چگونه کار می کند؟

پروتکل smb چیست

در یک شبکه کامپیوتری، اشتراک‌گذاری فایل‌ها و منابع میان دستگاه‌های مختلف نقش مهمی در افزایش سرعت کار و همکاری بین کاربران دارد. تصور کنید بتوانید بدون جابه‌جایی فایل با فلش یا ارسال ایمیل، مستقیم به پوشه‌ها، پرینترها یا منابع یک کامپیوتر دیگر در شبکه دسترسی داشته باشید. این کار به کمک پروتکل‌هایی انجام می‌شود که ارتباط میان سیستم‌ها را مدیریت می‌کنند. یکی از مهم‌ترین این پروتکل‌ها SMB است که سال‌هاست در شبکه‌های ویندوزی و حتی لینوکسی و مک استفاده می‌شود. اگر برای شما هم سؤال است که smb چیست و چگونه امکان اشتراک‌گذاری فایل، پرینتر و منابع شبکه را فراهم می‌کند، در ادامه با ساختار، نحوه کار و نسخه‌های مختلف این پروتکل بیشتر آشنا می‌شویم.

    پروتکل smb چیست؟

    SMB مخفف Server Message Block است. این پروتکل شبکه به سیستم‌ها اجازه اشتراک گذاری فایل‌ها در یک شبکه یا دامین را از کامپیوترهای ریموت می‌دهد انگار کاربر از هارد لوکال استفاده می‌کند. پروتکل SMB امکان دسترسی کاربر یا برنامه را به فایل‌های موجود در سرور ریموت و دیگر منابع می‌دهد.

    پروتکل SMB پروتکل ارتباطی سرور – کلاینت / پاسخ – درخواست است که برای اشتراک گذاری دسترسی به فایل‌ها، پرینترها، پورت های سریال و دیگر منابع موجود در شبکه استفاده می‌شود. مثلا کامپیوتر متصل به شبکه ویندوزی می‌تواند با پرینتر متصل به کامپیوتر دیگری در شبکه پرینت بگیرد. البته به شرطی که هر دو از پروتکل SMB پشتیبانی کنند.

    پروتکل SMB با عنوان پروتکل پاسخ – درخواست هم شناخته می‌شود یعنی چندین پیغام را بین کلاینت و سرور منتقل می‌کند تا ارتباط برقرار شود. کلاینت می‌تواند فایل های روی ریموت سرور را باز کرده، بخواند، منتقل، ایجاد و آپدیت کند. همچنین می‌تواند با هر برنامه سروری دیگری که تنظیماتِ دریافتِ درخواستِ کلاینت SMB را دارد ارتباط برقرار کند.

    همچنین می‌تواند به عنوان پروتکل انتقالی برای interprocess communication – IPC کار کند. در IPC امکان اجرای چندین درخواست کاربر به صورت همزمان وجود دارد.

    پروتکل SMB چیست؟
    پروتکل SMB با عنوان پروتکل پاسخ – درخواست هم شناخته می‌شود.

    پروتکل SMB در سال 1983 توسط IBM ارایه شد و علاوه بر اینکه در کامپیوترهای ویندوزی قابل استفاده است با پیاده سازی نرم افزاری به نام Samba در پلتفرم هایی مثل یونیکس و Mac OS X هم استفاده می‌شود. بدین ترتیب کامپیوترها با سیستم عامل های مختلف می‌توانند فایل‌ها و پرینترها را در شبکه به اشتراک گذارند. بدین ترتیب اشتراک گذاری در دفتری با شبکه ویندوزی که گرافیست آن از Mac و متخصص IT آن از سیستم های لینوکس استفاده می‌کنند به مشکلی برنمی‌خورد.

    کلاینت و سرور ممکن است از انواع مختلف SMB استفاده کنند که قبل از شروع Session با هم Negotiate می‌کنند.

    SMB ممکن است ترافیک بالایی در شبکه ایجاد کند. یکی از راهکارهای حل این مشکل استفاده از DSN است. راهکار دیگر استفاده از Windows Internet Naming Service – WINS است که البته رواج زیادی ندارد.

    بیشتر بخوانید: پروتکل چیست؟

    پروتکل SMB چگونه کار می کند؟

    پروتکل SMB در لایه 7 از مدل OSI یعنی لایه اپلیکیشن کار می‌کند پس متکی بر پروتکل‌های سطح پایین برای انتقال است. پروتکل لایه انتقال که SMB اغلب از آن استفاده می‌کند NetBIOS over TCP/IP یا NBT است. امروزه برای ارتباط بین دستگاه‌هایی که از SMB روی TCP/IP پشتیبانی نمی‌کنند باید از NetBIOS روی پروتکل‌های انتقال مانند TCP/IP استفاده شود.

    SMB می‌تواند برای انتقال از TCP/IP روی پورت 445 استفاده کند. Dielect های اولیه از API های NetBIOS روی TCP/IP و یا پروتکل‌های legacy مانند Internetwork Packet Exchange یا NetBEUI استفاده می‌کردند.

    پروتکل SMB پروتکل سرور کلاینتی است و شامل مجموعه بسته های دیتا است که هر کدام شامل درخواستی است که کلاینت می‌فرستد یا پاسخی که سرور می‌فرستد. این بسته ها به صورت زیر هستند:

    1. بسته‌های کنترل Session که اتصالی را ایجاد و قطع می‌کنند تا منابع سرور به اشتراک گذاشته شود.
    2. بسته‌های دسترسی فایل که فایل‌ها و دایرکتوری‌های روی سرور ریموت قابل دسترسی و دستکاری می‌کنند.
    3. بسته‌های پیغام عمومی که دیتا را برای صف‌های پرینت، mailslotها و named pipe ها ارسال می‌کنند و دیتای وضعیت صف‌های پرینت را فراهم می‌کنند.
    4. برخی بسته‌های پیغام گروه‌بندی شده و در یک انتقال فرستاده می‌شوند. بدین ترتیب زمان تاخیر کم شده و پهنای باند شبکه افزایش می‌یابد. به این کار Packet Batching می‌گویند.
    پیشنهاد مطالعه

    امنیت SMB

    مدل امنیتی استفاده شده در SMB شامل دو سطح امنیتی است: کاربر و اشتراک گذاری. اشتراک گذاری – share یعنی فایل و دایرکتوری یا پرینتری که کلاینت ها می‌توانند به آن دسترسی یابند.

    1. احراز هویت سطح کاربر: کلاینتی که می‌خواهد دسترسی به Share روی سرور داشته باشد، باید نام کاربری و پسورد ارایه کند. پس از احراز هویت، اجازه دسترسی به کاربر داده می‌شود. این سطح امنیتی به ادمین‌های سیستم امکان تعیین کاربران و گروه‌های مجاز به دسترسی به Share را می‌دهد.
    2. احراز هویت سطح Share: دسترسی به Share با پسوردی که به آن اختصاص داده شده کنترل می‌شود. برخلاف امنیت سطح کاربر، این سطح امنیتی برای احراز هویت به نام کاربری نیازی ندارد.

    پسورد در هر دوی این سطوح امنیتی قبل از ارسال به سرور رمزگذاری می‌شود. SMB از رمزگذاری‌هایی مانند NTLM و LAN Manager پشتیبانی می‌کند.

    مطالب مرتبط: پروتکل‌های اشتراک فایل در شبکه

    Dialect های پروتکل SMB

    مجموعه بسته های از نوع پیغام که نسخه خاصی از پروتکل را تعریف می‌کند، dialect نامیده می‌شود. پروتکل The Common Internet File System – CIFS یک Dialect از SMB است. هر دوی این پروتکل‌ها روی VMS، نسخه های متفاوت Unix و دیگر سیستم عامل‌ها قابل دسترسی هستند.

    اغلب کلاینت های ویندوزی حداقل از 6 دیالکت مختلف SMB پشتیبانی می‌کنند. برای برقراری ارتباط بین کلاینت و سروری که از SMB استفاده می‌کنند باید Dialect ای که هم کلاینت و هم سرور پشتیبانی می‌کنند و بالاترین سطح کارایی را دارد انتخاب کنید. به این کار negotiating the dialect گفته می‌شود.

    انواع پروتکل های SMB باعث بهبود قابلیت‌ها، ارتقاپذیری، امنیت و کارایی می‌شوند. در ادامه Dialect های مهم پروتکل SMB را معرفی می‌کنیم:

    SMB 1.0 در سال 1984 توسط IBM برای اشتراک گذاری فایل در DOS ارایه شد. با این کار، مکانیزم Caching در سمت کلاینت با عنوانopportunistic locking  – OpLock معرفی شد. تا ترافیک شبکه کم شود. بعدها مایکروسافت پروتکل SMB را در محصول LAN Manager عرضه کرد.

    CIFS در سال 1996 در ویندوز 95 ارایه شد. پشتیبانی از اندازه بزرگتر فایل، انتقال مستقیم روی TCP/IP، لینک های هارد و سیمبولیک افزوده شد. این نسخه، کارایی شبکه WAN را کم می‌کرد چون تعداد Acknowledgement ها زیاد و زمان تاخیر بالا بود. در نسخه بعدی یعنی SMB 2.0 کارایی پروتکل بالا رفت و تعداد صدها دستور و زیردستور به 19 تا کاهش یافت.

    SMB 2.0 در سال 2006 در ویندوز ویستا و ویندوز سرور 2008 عرضه شد. پشتیبانی از WAN acceleration افزوده شد و با حذف برخی موارد، کارایی و ارتقاپذیری و Resiliency افزایش یافت.

    SMB 2.1 در سال 2010 در ویندوز سرور 2008 R2 و ویندوز 7 عرضه شد. صرفه‌جویی در مصرف برق، پشتیبانی از واحدهای انتقال بزرگ (MTU بزرگ).

    SMB 3.0 در سال 2012 در ویندوز 8 و ویندوز سرور 2012 ارایه شد. با افزودن برخی ویژگی‌ها در مدیریت، امنیت، بکاپگیری، کارایی و دسترس پذیری پیشرفت‌هایی حاصل شد. این ویژگی‌ها عبارتند از:

    • SMB Multichannel
    • SMB Direct
    • transparent failover of client access
    • Remote VSS support, SMB Encryption

    SMB 3.0.2 در سال 2014 در ویندوز 8.1 و ویندوز سرور 2012 R2 ارایه شد. قابلیت پشتیبانی از CIFS و SMB 1.0 کاملا غیرفعال و آپدیت‌هایی در زمینه کارایی ارایه شد.

    SMB 3.1.1 در سال 2015 در ویندوز 10 و ویندوز سرور 2016 ارایه شد. قابلیت پشتیبانی از رمزگذاری و preauthentication integrity  ارایه شد تا از هک از نوع man-in-the-middle جلوگیری شود.

    در سال 2017 باج افزارهای WannaCry و Petya به SMB 1.0 حمله کردند و بدافزار را روی کلاینت ها لود و در شبکه تکثیر کردند. مایکروسافت وصله‌ای در این زمینه ارایه داد اما تاکید شد که CIFS و SMB 1.0 از سیستم ها غیرفعال شود. در سال 2020 هم دو حفره امنیتی SMBGhost و SMBleed توانست بخش احراز هویت SMB را با مشکل مواجه کند.

    مقایسه Samba و SMB
    Samba پیاده سازی متن باز پروتکل SMB برای یونیکس و لینوکس است.

    مقایسه Samba و SMB

    Samba در سال 1992 عرضه شد و پیاده سازی متن باز پروتکل SMB برای یونیکس و لینوکس است. Samba از موارد زیر پشتیبانی می‌کند:

    1. اشتراک گذاری فایل
    2. سرویس‌های پرینت
    3. authentication و authorization
    4. name resolution
    5. service announcements بین سرورهای لینوکس/یونیکس و کلاینت های ویندوزی

     آنچه درباره پروتکل SMB آموختیم

    پروتکل SMB یکی از مهم‌ترین پروتکل‌های ارتباطی در شبکه‌های کامپیوتری است که امکان اشتراک‌گذاری فایل‌ها، پرینترها و منابع مختلف را میان دستگاه‌های شبکه فراهم می‌کند. این پروتکل با مدل کلاینت–سرور کار می‌کند و از طریق مجموعه‌ای از پیام‌ها و درخواست‌ها، دسترسی به منابع را مدیریت می‌کند. در طول سال‌ها نسخه‌های مختلفی از SMB ارائه شده‌اند که هر کدام امنیت، کارایی و قابلیت‌های بیشتری نسبت به نسخه‌های قبلی دارند. همچنین با استفاده از نرم‌افزارهایی مانند Samba، این پروتکل فقط به ویندوز محدود نمی‌شود و در سیستم‌عامل‌هایی مثل لینوکس و مک هم قابل استفاده است. شناخت دقیق SMB کمک می‌کند ساختار اشتراک‌گذاری در شبکه را بهتر درک کنید و مدیریت منابع در شبکه‌های سازمانی یا خانگی را هوشمندانه‌تر انجام دهید.

    چنانچه میخواهید این پروتکل را در سطح شبکه خود پیاده سازی کنید و نیاز به کارشناس فنی دارید میتوانید با شماره 0218363 تماس بگیرید یا روی لینک زیر بزنید.

    طراحی شبکه استاندارد متناسب با نیازهای شما
    متخصصان فالنیک خدمات طراحی شبکه را با توجه به بودجه شما، تعداد کاربران، نوع استفاده و مکان شبکه انجام می‌دهند. روی لینک کلیک کنید و شبکه‌ای بسازید که کسب و کارتان را متحول می‌کند.

    خلاصه این مقاله

    پروتکل SMB (Server Message Block) امکان اشتراک‌گذاری فایل‌ها، پرینترها و منابع سرور از راه دور را فراهم می‌کند، به طوری که کاربر حس می‌کند از هارد لوکال استفاده می‌کند. این پروتکل کلاینت-سرور و درخواست-پاسخ است و بر پایه TCP/IP (پورت 445) کار می‌کند. با استفاده از نرم‌افزار Samba، این پروتکل در پلتفرم‌های یونیکس و لینوکس نیز قابل پیاده‌سازی است و امکان تبادل منابع بین سیستم‌عامل‌های مختلف را می‌دهد. SMB از دو سطح امنیتی کاربر (نام کاربری و رمز عبور) و اشتراک‌گذاری (رمز عبور برای هر Share) پشتیبانی می‌کند و رمز عبورها پیش از ارسال رمزگذاری می‌شوند. نسخه‌های جدیدتر (مانند 3.1.1) با رمزگذاری ترافیک و احراز هویت پیش از اتصال، امنیت را به طور چشمگیری افزایش داده‌اند. برای بهبود کارایی و کاهش ترافیک شبکه، راهکارهایی مانند Packet Batching (ارسال دسته‌ای بسته‌ها) و OpLock (مکانیزم Caching) در آن تعبیه شده است. نسخه‌های جدیدتر (مانند 3.0) ویژگی‌هایی چون SMB Multichannel و SMB Direct را برای افزایش سرعت و پایداری معرفی کرده‌اند. با توجه به آسیب‌پذیری‌های امنیتی در نسخه‌های قدیمی‌تر (مانند SMB 1.0)، توصیه اکید بر غیرفعال کردن این نسخه‌ها و استفاده از پروتکل‌های به‌روزتر و امن‌تر است.

    3.7/5 - (3 امتیاز)
    آمادگی زیرساخت در برابر Zero-Day آمادگی زیرساخت در برابر Zero-Day
    مریم فقیهی
    مریم فقیهی هستم، کارشناس ارشد بازاریابی محتوایی و سئو فارغ‌التحصیل مهندسی نرم‌افزار از دانشگاه شریعتی. بیش از ۱۰ سال تجربه در تولید و مدیریت محتوا، تدوین استراتژی سئو و تحلیل رقبا. سرپرست تیم محتوا و سئو در فالنیک (ایران اچ پی) و نویسنده مقالات تخصصی حوزه فناوری و شبکه. نویسنده و مترجم کتاب‌های فنی از جمله در زمینه سرورها و شبکه.

    نوشته های مشابه

    دیدگاهتان را بنویسید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

    دکمه بازگشت به بالا