پروتکل SMB چیست؟
SMB مخفف کلمه ی Server Message Block می باشد. این نوع پروتکل به کامپیوترهای موجود در شبکه این امکان را می دهد تا فایل ها را در یک شبکه یا دامین به اشتراک بگذارند. این موضوع مانند این است که کاربر از هارد لوکال استفاده کند.این پروتکل به کاربر یا برنامه ها اجازه دسترسی به فایل های موجود در سرور ریموت و سایر منابع را می دهد.پروتکل SMB یک پروتکل ارتباطی مبتنی بر سرور – کلاینت و پاسخ – درخواست است که برای اشتراک گذاری دسترسی به فایلها، پورت های سریال و سایر منابع موجود در شبکه از آن استفاده می کنند.برای مثال کامپیوتری که به شبکه ی ویندوزی متصل است می تواند با پرینتری که به یک کامپیوتر دیگر در شبکه وصل است، پرینت بگیرد. البته این روش زمانی قابل استفاده است که هر دو سیستم از پروتکل SMB استفاده کرده باشند.همان طور که گفته شد پروتکل SMB را با عنوان پروتکل پاسخ – درخواست نیز می شناسند. این یعنی این پروتکل چندین پیام را بین کلاینت و سرور منتقل می کند تا سیستم بتواند ارتباط را برقرار کند.
کلاینت ها می توانند فایل های که روی ریموت سرور موجود هستند را باز کند، بخواند، ایجاد، منتقل و به روز رسانی کند. به علاوه می تواند به عنوان یک پروتکل انتقالی برای IPC نیز کار کند.IPC این قابلیت را دارد تا چندین کاربر بتوانند به صورت همزمان درخواست خود را ارسال کنند.پروتکل های SMB برای اولین بار توسط IBM طراحی و عرضه شدند. این پروتکل ها در کامپیوترهای ویندوزی قابل استفاده بوده و به علاوه با استفاده از نرم افزاری به نام Samba در پلتفرم های دیگر مانند یونیکس و مک نیز قابل استفاده هستند.بنابراین تمامی کامپیوترها با هر نوع سیستم عاملی می توانند فایل ها و پرینترها در شبکه به اشتراک بگذارند.بنابراین می توان گفت که در دفتری که شبکه ی ویندوز داشته و گرافیست آن از مک و متخصص آی تی آن از سیستم یونیکس استفاده می کند هیچ گونه مشکلی نخواهد داشت. به طور کلی کلاینت ها و سرورها ممکن است از هر نوعی از SMBها استفاده کنند.
SMB موجب می شود تا ترافیک بالایی در شبکه ایجاد شود و برای حل این مشکل می توانید از DSN و یا WINS استفاده کنید، البته این نوع روش ها رایج نیستند.
پروتکل SMB چگونه کار می کند؟
پروتکل SMB در لایه ی هفتم مدل OSI یعنی لایه اپلیکیشن جای دارد بنابراین پروتکل های سطح پایینی برای انتقال دارد. پروتکل های لایه ی انتقال معمولا از این نوع پروتکل استفاده می کنند.امروزه برای TCP/ IP هایی که برای ارتباط دستگاه ها از SMB پشتیبانی نمی کنند باید روی پروتکل های انتقال از NetBIOS استفاده شود.همان طور که می دانید پروتکل SMB یک پروتکل سرور کلاینی بوده و مجموعه ای از بسته های داده می باشد که هر کدام از این بسته ها شا مل درخواست است که کلاینت می فرستد و یا پاسخی که به سرور می فرستد. این بسته های صورت های مختلفی دارند.یکی از این بسته ها، بسته Session می باشد که این بسته اتصالی را به وجود آورده و قطع کرده تا از این طریق منابع سرور بتوانند به اشتراک گذاشته شوند.
بسته های دیگر بسته دسترسی فایل هستند که فایل های روی سرور ریموت را دستکاری کرده و قابل دسترسی می کنند.
بسته دیگر بسته ی پیغام عمومی است، این بسته داده ها را برای صف های پرینت ارسال کرده و همچنین داده های وضعیت صف پرینت را فراهم می کند.
بعضی از بسته های پیغام ها گروه بندی می شوند و این بسته ها در یک انتقال ارسال می شوند. این موضوع باعث می شود تا زمان تاخیر کمتر شده پهنای باند نیز بیشتر شود. این فرایند Packet Batching نام دارد.
امنیت SMB
مباحث امنیتی تعبیه شده در پروتکل SMB دارای دو سطح است که کاربر و اشتراک گذاری هستند. اشتراک گذاری فایل یا پرینتری که کلاینت ها میتوانند به آن دسترسی یابند.
احراز هویت سطح کاربر
کلاینتی که قصد دارد به اشتراک گذاری روی سرور دسترسی داشته باشد باید دارای نام کاربری و رمز عبور باشد. پس از اتمام احراز هویت کاربر می تواند به منابع دسترسی داشته باشد.این سطح امنیتی موجب می شود تا ادمین ها بتوانند کاربران و گروه های مجاز به دسترسی را تعیین کنند.
احراز هویت سطح Share
دسترسی به share توسط پسوردی که مخصوص آن است قابل کنترل است. برخلاف سطح قبلی در این سطح شما نیازی به احراز هویت و وارد کردن نام و پسورد ندارید.در این دو سطح امنیتی رمز عبور قبل از این که ارسال شود رمز نگاری می شود. پروتکل SMB از دو نوع رمز گذاری به نام NTLM و LAN Manager استفاده می کند.
Dialect های پروتکل SMB
Dialectها مجموعه ای از بسته ها در غالب پیغام هستند که نسخه ای از پروتکل را تعریف می کنند. پروتکل CIFS یکی از این Dialectها از نوع SBM می باشد. این دو نوع پروتکل روی VMS و همچنین نسخه های یونیکس و سایر سیستم عامل ها قابل دسترسی هستند.کلاینت های ویندوزی معمولا قابلیت پشتیبانی از ۶ دیالکت و بیشتر SMB را دارند. این کلاینت ها بر این که بتوانند ارتباط را با سرور برقرار کنند از SMB استفاده می کنند.شما باید دیالکتی را انتخاب کنید که بالاترین سطح کارایی را داشته باشد و هم کلاینت و سرور از آن پشتیبانی کنند. این فرآیند negotiating the dialect نام دارد.استفاده از پروتکل های smb موجب می شود تا قابلیت ها بهبود یافته، امنیت و کارایی نیز افزایش پیدا کند. در ادامه چند دیالکت مهم را بررسی می کنیم.
SMB 1.0
این دیالکت برای به اشتراک گذاشتن فایل ها در محیط DOS عرضه شد. با این روش فرایند Caching در سمت کلاینت نیز معرفی شد تا موجب کاهش ترافیک شبکه شود.
CIFS
این دیالکت در ویندوز ۹۵ ارائه شد. در این دیالکت از فایل ها در اندازه بزرگتر پشتیبانی شد و همچنین لینک های هارد و سیمبولیک نیز اضافه شد.این نسخه موجب می شود تا کارایی شبکه ی WAN کمتر شده و زمان تاخیر نیز بالا می رود. در نسخه ی بعدی کارایی پروتکل را افزایش دادند و دستورها و زیر دستورها به ۱۹ کاهش پیدا کرد.