SMB Protocol چیست و چگونه کار میکند؟
در زندگی روزمره کلمه پروتکل را زیاد به کار میبریم، پروتکل در واقع مجموعه قوانینی است که تعیین میکند چطور رفتارکنیم و در ارتباطاتمان چه نکاتی را رعایت کنیم. در این مقاله قصد داریم راجع به پروتکلهای شبکه صحبت کنیم که مجموعه قوانینی است که مشخص میکند سیستمهای عضو شبکه طبق چه قوانینی باید فعالیت کنند و چگونه با یکدیگر در ارتباط باشند، زیر مجموعه چه گروهی قرار بگیرند.
در شبکههای کامپیوتری به دلیل گستردگی و تنوع کارایی، پروتکلهای مختلفی وجود دارند در این مقاله در خصوص پروتکل SMB صحبت میکنیم، اگر جز علاقهمندان به این حوزه هستید، همراهمان باشید.
پروتکل SMB توسط شرکت IBM ارائه شد
فهرست محتوا
پروتکل SMB چیست؟
SMB مخفف عبارت Server Message Block است. پروتکل SMB که اولین بار در سال ۱۹۸۳ توسط شرکت IBM ارایه شد ابتدا فقط برای سیستم عامل ویندوز قابل استفاده بود ولی امروزه با استفاده از نرم افزار samba در سیستم عاملهای یونیکس و Mac OS X هم قابل استفاده است.
اولین نسخه پروتکل SMB به نام CIFS یا همان سیستم عامل رایج اینترنت ارائه شد که روی ویندوز 95 بود. پس از آن SMB های نسخه 1.0، 2.0، 2.1، 3.0، 3.02، 3.1.1 وارد بازار شدند اولین نسخه با نام SMB با ویندوز 2000 ورود کرد و آخرین نسخه SMB هم با ویندوز 10، ویندوز سرور 2016 و ویندوز سرور 2019 ظهور کرد..
پیشنهاد مطالعه:نحوه نصب ویندوز سرور 2019
کار اصلی این پروتکل صدور مجوز اشتراک گذاری فایلها در یک شبکه یا دامین از کامپیوترهای ریموت است؛ مانند اینکه کاربر از هارد شخصی استفاده میکند. در واقع پروتکل SMB امکان دسترسی کاربر یا برنامه را به فایلهای موجود در سرور ریموت و دیگر منابع میدهد. با استفاده از پروتکل SMB میتوانید فایلها و پوشههای اطلاعات و همچنین سخت افزار جانبی مانند پرینتر را در شبکه به اشتراک بگذارید.
آشنایی بیشتر با انواع پروتکل های شبکه
مثال: دو کامپیوتر عضو یک شبکه هستند، در این شبکه پرینتر به کامپیوتر A متصل است کامپیوتر B قصد پرینت یک سند را دارد. اگر هر دو کامپیوتر از پروتکل SMB پیروی کنند. کامپیوتر B به راحتی با پرینتر ارتباط برقرار کرده و سند خود را پرینت میگیرد. شاید در منابع اطلاعاتی در حوزه فناوری اطلاعات عبارت پروتکل پاسخ/درخواست را دیده باشید که عنوان دیگر پروتکل SMB است، پروتکل SMB برای برقراری ارتباط بین کلاینت و سرور چند پیغام مختلف را ارسال میکند.
با استفاده از این پروتکل کامپیوترها با سیستم عاملهای مختلف میتوانند فایلها و پرینترها را در شبکه به اشتراک گذارند یا از آن برای پروتکل انتقالی IPC (interprocess communication) استفاده کنند. بعضی اوقات ممکن است کلاینتها و سرور از SMBهای مختلفی استفاده کنند در این صورت قبل از شروع جلسه با یگدیگر گفتگو میکنند. پروتکل SMB در پیاده سازی Active Directory و بخش احراز هویت کلاینتها بیشترین کاربرد را دارد.
از معایب مهم پروتکل SMB ایجاد ترافیک بالا در شبکه است که این مورد با استفاده از WINS(Windows Internet Naming Service) قابل حل است.
پروتکل SMB چگونه کار می کند؟
در مبحث شبکه ابتدا با 7 لایه شبکه یا همان 7 لایه مدل OSI آشنا میشوید، پروتکل SMB در هفتمین لایه یعنی لایه اپلیکیشن فعالیت دارد. SMB در خصوص سطح دسترسیها و مجوزهای دسترسی کلاینتها به فایلها و پرینترها و حتی پورتهای شبکه فعالیت میکند، این پروتکل فقط برای شبکه های محلی کاربرد دارد و پورت مربوط به آن 445 است و در شبکه اینترنت این پورت در دسترس نیست.
SMB برای انتقال اطلاعات وابسته به پروتکلهای لایههای پایینتر است مانند پروتکل NBT در لایه انتقال مدل OSI یا پروتکل NetBIOS در مدل چهار لایه TCP/IP شبکه. به عنوان دیگر میتوان گفت SMB پروتکل سرور- کلاینت است و شامل تعدادی بسته اطلاعاتی است که هر کدام حاوی پاسخ درخواستی هستند که از سمت کلاینت به سرور ارسال شده است. بستههای اطلاعاتی که براساس SMB مبادله میشوند انواع مختلفی دارند.
پیشنهاد مطالعه: انواع شبکه به زبان ساده
انواع بسته های اطلاعاتی در Server Message Block
- بستههای کنترل جلسه (Session) که وظیفه ایجاد یا قطع ارتباطات مربوط به اشتراک گذاری منابع را برعهده دارند.
- بستههای مجوز دسترسی که به کلاینت اجازه دسترسی و تغییر دادن اطلاعات را میدهند.
- بستههایی که پیغامها را گروه بندی کرده و یک بار انتقال میدهند تا پهنای باند شبکه افزایش و زمان تاخیر کاهش یابد. که اصطلاحا به آن Packet Batching گفته میشود.
مقایسه Samba و SMB
در قسمت قبل گفتیم که ابتدا SMB فقط برای سیستم عاملهای شرکت مایکروسافت یعنی ورژنهای مختلف ویندوز کاربرد داشت، ولی به دلیل وجود سیستم عاملهایی مانند یونیکس و لینوکس در سال 1992 نسخه دیگری از SMB مخصوص سیستم عاملهای متن باز به نام SAMBA به بازار عرضه شد.
SAMBA از امکاناتی مانند اشتراک گذاری فایل، اعتبارسنجی نام کاربری و رمز عبور، صدور مجوز دسترسی، سرویسهای پرینت، تبدیل نام سخت افزار به آدرس IP (Name Resolution) و امکان اشتراکگذاری و تبادل داده بین سرورهای ویندوزی و لینوکسی پشتیبانی میکند.
امنیت در پروتکل SMB
با توجه به نوع کاربرد و فعالیت پروتکل SMB قطعا یکی از پروتکلهایی است که در حملات خرابکارانه مورد هدف هکرها قرار میگیرد. زیرا هکرها با نفوذ به پروتکل SMB و دستکاری قوانین وضع شده در آن میتوانند به اطلاعات و منابع مشترک شبکه دسترسی پیدا کرده و از آنها سوء استفاده کنند.
در پروتکل SMB دو نوع امنیت مطرح است، امنیت کاربر و امنیت اشتراک گذاری منابع:
- امنیت کاربر: هر کاربر برای دسترسی به اطلاعات و منابع مشترک شبکه نیاز به یک نام کاربری و رمز عبور منحصر به فرد دارد.
- امنیت اشتراک گذاری منابع: در این نوع امنیت، کاربری که با نام کاربری و رمز عبور معتبر احراز هویت شده است و به منابع شبکه دسترسی پیدا کرده است سطح بندی میشود و به طور کامل به تمام منابع دسترسی نخواهد داشت.
به عنوان مثال یک شرکت را در نظر بگیرید که دارای یک سرور برای اشتراک گذاری منابع اطلاعاتی است. تمام کارمندان شرکت با داشتن یک نام کاربری و رمز عبور مخصوص خودشان احراز هویت میشوند و به سرور لاگین میکنند. اما هر کاربر براساس نیاز به قسمتهای مختلف دسترسی دارد، به طور مثال کارمند بخش اداری به پروندههای پرسنلی دسترسی دارد ولی دسترسی او به فاکتورهای فروش کالا بسته است.
هر دو موردی که در مثال بالا بیان شد دو روش مهم برای حفظ امنیت SMB هستند که پیاده سازی درست این روشها تاثیر بالایی در حفظ امنیت شبکه و منابع آن دارد.