پروتکل SMB
SMB یا Server Message Block پروتکلی جهت به اشتراکگذاری فایلها، چاپگرها و پورتهای سریال است. از این پروتکل میتوان بر روی پروتکل TCP/IP یا بر روی دیگر پروتکلهای شبکه استفاده کرد. با استفاده از پروتکل SMB یک برنامه کاربردی (یا کاربر یک برنامه کاربردی) میتواند به فایلهای و فولدر های موجود روی یک سرور و دیگر منابع آن از جمله چاپگر دسترسی داشته باشد. به عبارت دیگر یک برنامه کاربردی میتواند فایلهایی را از روی سرور بخواند، ایجاد کند و یا بروزرسانی کند. هم چنین میتواند با هر برنامهی سرور که برای دریافت درخواستهای کلاینت SMB راه اندازی شده است ارتباط برقرار کند. در حقیقت میتوان گفت SMB یک پروتکل درخواست-پاسخ است که با استفاده از آن کلاینت درخواست SMB را به سمت سرور میفرستد و سرور نیز در جواب پاسخی از نوع SMB به کلاینت باز میگرداند.سیستم عامل ویندوز از پروتکل SMB پشتیبانی میکند (NetBIOS براساس این پروتکل کار میکند). در سیستم عاملهای مبتنی بر یونیکس مانند لینوکس و مک، برنامه Samba از این پروتکل جهت به اشتراکگذاری فایلها بین سیستم عاملهای مختلف (مثلا به اشتراکگذاری فایل بین یک سیستم لینوکسی و یک سیستم ویندوزی) بهره میبرد.
پروتکل SMB یا Server Message Block یک پروتکل لایه ۷ میباشد که در سیستم عامل قرار دارد. پروتکل Server Message Block می تواند با لایه Session (ولایه های پایین تر) به راه های گوناگونی فعالیت کند:
- مستقیما روی پورت 445 TCP
- از طریق API مربوط به NetBIOS، که در نتیجه میتواند روی چند پروتکل لایه Transport نیز فعالیت کند.
- روی پورتهای UDP 137,138 و TCP 137,139 NetBIOS over TCP/IP
روش های پیاده سازی SMB
1. روش کلاینت_سرور
SMB از طریق روش کلاینت_سرور، طوری که کلاینت درخواستهای معینی ارسال میکند و سرور به آنها پاسخ میدهد، عمل میکند. یک قسمتی از پروتکل SMB صریحا به دسترسی به File System رسیدگی میکند (به طوری که کلاینتها درخواستهایی را برای File Server ارسال میکنند)، اما قسمتهای دیگر پروتکل SMB به IPC اختصاص دارند. IPC Share یا همان $IPC یک Share شبکهای روی کامپیوترهای ویندوزی میباشد. از این Share مجازی به منظور سهولت ارتباط بین پردازشها و کامپیوترها از روی پروتکل SMB (اغلب برای رد و بدل کردن اطلاعات بین کامپیوترهایی که احراز هویت شدهاند) استفاده میشود. سازندگان و توسعهدهندگان نرم افزاری پروتکل SMB را برای استفاده شبکه محلی (Local Network) بهینه کردهاند، اما کاربران پروتکل SMB را برای دسترسی به شبکه های مختلف درون اینترنت نیز به کار گرفتهاند (Exploitهای مربوط به اشتراک فایل و پرینتر در محیط ویندوز معمولا روی این کاربرد متمرکز میشوند) سرورهای SMB، Files System و دیگر منابع خود را در دسترس کلاینتهای شبکه قرار میدهند. کامپیوترهای کلاینت ممکن است نیاز به دسترسی به File Systemها و پرینترهای به اشتراک گذاشته شده روی سرور داشته باشند، و در این کاربرد مقدماتی و اولیه، SMB به عنوان مشهورترین و پُرکاربردترین شناخته شده است. به هر حال، جنبه سرورگونه SMB بدون بسته پروتکلهای مبتنی بر دامینهای NT (که حداقل کار آنها، فراهم کردن احراز هویت تحت دامینهای بر پایه NT میباشد) چندان کاربردی ندارد. تقریبا تمامی سرورهای SMB از احراز هویت دامینهای NT برای تائید سطح دسترسی کاربر به منابع استفاده میکنند.
2. Samba
یک نرم افزار رایگان با هسته پروتکل SMB/CIFS است که اولین بار توسط Andrew Tridgell ایجاد گردید. از نسخه 3 و پس از آن، SAMBA سرویسهای فایل و پرینت را برای کلاینت ویندوز فراهم کرده و میتواند با سرور دامین مبتنی بر Windows NT 4.0، به عنوان دامین کنترلر اصلی (PDC) یا به عنوان عضو دامین (Domain Member)، ادغام شود. نسخه Samba4 می تواند به عنوان دامین کنترلراکتیو دایرکتوری و یا عضوی از دامین روی Functional Levellهای دامین و فارست وینذوز 2008 (Windows 2008 domain & forest Functional Level) عمل نماید.
ورژنهای مختلف پروتکل SMB
اولین نسخه SMB با نام SMB شناخته نمی شود، در واقع با نام سیستم فایل رایج اینترنت (Common Internet File System) رایج (CIFS) است که اولین نسخه این پروتکل را نشان می دهد. همانطور که به شما گفته می شود که از زمان ایجاد ویندوز NT 4.0، کاملا جدید نیست.
پس از آن، و دقیق تر از ویندوز 2000، اولین نسخه پروتکل SMB وارد شده است. در اینجا خلاصه ای از نسخه های پروتکل SMB ذکر شده است:
- CIFS: زبان SMB توسعه یافته مایکروسافت است که در ویندوز ۹۵ عرضه شده است. پشتیبانی از اندازه فایل های بزرگتر، انتقال مستقیم بر روی TCP/IP و لینکهای نمادین و لینکهای سخت افزوده شده است.
- SMB 1.0: اولین نسخه با نام SMB با ویندوز 2000 وارد شد و توسط ویندوز ایکس پی، ویندوز سرور 2003 و ویندوز سرور 2003 R2 استفاده شد.
- SMB 2.0: نسخه مورد استفاده در ویندوز ویستا (SP1 و بالاتر) و معادل سرور آن یعنی ویندوز سرور 2008
- SMB 2.1: نسخه مورد استفاده در ویندوز 7 و ویندوز سرور 2008 R2.
- SMB 3.0: تولد پروتکل SMB v3 با راه اندازی ویندوز 8 و ویندوز سرور 2012.
- SMB 3.02: که در ویندوز 8.1 و ویندوز سرور 2012 R2 معرفی شده است.
- SMB 3.1.1: با ویندوز 10 و ویندوز سرور 2016 منتشر شده است.
جدول زیر نشان دهنده نسخه ای از SMB است که در نهایت میتواند استفاده شود (بسته به اینکه چه نسخه ویندوز به عنوان SMB client و SMB server اجرا می شود):
منابع::
- linux.tosinso.com
- saba.host
- winad.epfl.ch