خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


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

پروتکل SMB چیست؟
پروتکل SMB یا Server Message Block یکی از ارکان مهم در نقل و انتقال اطلاعات در شبکه است.در عصر مراکز داده و سرورهای مجازی، SMB پروتکلی است که کارهای بزرگی مانند جابجا کردن دیتاها، کپی و Modify کردن ترابایت ها از داده های کاربران را با ایمن نگه داشتن شان و رمزگذاری آن در برابر هکرها و حملات باج افزار انجام می دهد.

نرم افزار سامانه مودیان راهکار
از روزهای ابتدایی عرضه این پروتکل تا به امروز، تغییرات و تحولات شگرفی در آن رخ داده است. آخرین نسخه Microsoft SMB 3.1.1 با هدف سرعت ، انعطاف پذیری و امنیت فوق العاده طراحی شده است. برای دیتاسنترهای مجازی، خانواده SMBv3.x استاندارد بسیار خوبی برای Performance بالاست و مجموعه ای غنی از Function ها را ارائه می دهد كه قبلاً در دسترس نبوده اند.




برای آشنایی بیشتر با پروتکل SMB و یادگیری آنچه مدیران فناوری اطلاعات باید بدانند، به بررسی SMB می پردازیم.

SMB Protocol

امروزه تقریبا کاربران در یک سطح سطح دانش متوسط به خوبی می دانند که چگونه map network drive ایجاد کنند. مثلا فولدر Share شده ای را در سیستم شان MAP کنند و دسترسی بدان برای آنها ساده تر شود. وقتی به درایو MAP شده مراجعه می کنند گویی به به یکی درایوهای لوکال سیستم شان وارد شده اند ولی در اصل این چنین نیست و محل نگهداری دیتاها جای دیگری است. در پس زمینه، آنچه این امکان را می دهد پروتکل SMB است. SMB یک پروتکل است، درست مانند پروتکل http که ما برای وب گردی از آن استفاده می کنیم، مجموعه ای از قوانین که نحوه دستیابی به داده ها را تعیین می کند. وقتی دو دستگاه می خواهند داده ها را در شبکه با یکدیگر به اشتراک بگذارند، این کار را با کمک هدایت کننده های شبکه(network redirectors) انجام می دهند. همه این درخواست های Connection و access توسط هدایت کننده ها رسیدگی و تکمیل می شوند و اینها به عنوان "Data Packet" ارسال می شوند.

SMB Network details: What port does smb use?

حالا SMB از چه شماره پورتی استفاده می کند؟ SMB data packet در سه تایپ مختلف وجود دارند: session control packets، file access packets و general message packets.
SMB در لایه 7 در لایه Application از مدل مفهومی OSI کار می کند. و از پورت TCP/IP 445 استفاده می کند(توجه: قبل از ویندوز 2000، شماره پورت SMB 139 بود).

SMB Servers, SMB Clients, and SMB shares

سه مولفه و کامپوننت مهم در ارتباطات SMB وجود دارد:
SMB server: SMB server چیست؟ ماشینی است که هاست SMB Share ها است.
SMB client: SMB client چیست؟ ماشینی است که به Share های موجود در SMB server دسترسی پیدا می کند.
SMB share/file share: SMB file share چیست؟ یک Resource یا منبع Share شده است(مثل فولدر، پرینتر..)

خب، حالا به بررسی ورژن های مختلف SMB می پردازیم:
SMB1: SMB1 با نام SMBv1 یا SMB ورژن هم شناخته می شود که نسخه اصلی و اولی SMB بود. در IBM در دهه 1980 ایجاد شد تا امکان دسترسی شبکه به فایل سیستم های لوکال DOS را فراهم کند. نکته مهم در خصوص این پروتکل این است که SMBv1 رمزگذاری ندارد و بنابراین امن نیست. بنابراین امروز نباید از آن استفاده شود. پروتکل بسیار حساس به حملات MITM یا همان man-in-the-middle است و SMBv1 پروتکل مورد سو استفاده باج افزارهایی مانند WannaCry و NotPetya است. واقعا SMBV1 در مقایسه با ورژن های جدید SMB ناکارآمد است.

SMB2: SMB2 یا SMBv2 و یا SMB 2.0 در سال 2006 توسط مایکروسافت در ویندوز ویستا منتشر شد(پس همین جا می توان نتیجه گرفت که ویندوز XP فقط از ورژن 1 پروتکل SMB پشتیبانی می کند). پیاده سازی پروتکل SMB2 مایکروسافت در مقایسه با SMB1 عملکرد و امنیت را بهبود بخشید. به عنوان مثال ، SMB2 پکت سایزها را به 32 بیت و حتی 128 بیت که افزایش قابل توجهی نسبت به 16 بیت SMB1 بود، داد.
Subcommand ها از 100 که در SMBV1 بود به کمتر از 20 در SMBV2 رسید که باعث کاهش درخواست برای برقراری ارتباط و ادامه کار است(برای درک بهتر به تصویر زیر دقت کنید). ویژگی هایی مانند caching و Connection های پایا نیز در SMB2 اضافه شد که باعث بهبود عملکرد می شوند. مایکروسافت با سرور 2008 R2 و ویندوز 7، SMB 2.1 را معرفی کرد. در SMB 2.1 قابلیت oplocks یا opportunistic locking بهبود پیدا کرد(Opportunistic locking یا oplocks مکانیزمی مخصوص در ویندوز است برای پایگاه داده کلاینت/سرور است که به چندین پردازش امکان می دهد تا فایل مشابه را قفل کنند تا کلاینت data caching را برای بهبود عملکرد در شبکه های ویندوز انجام دهد).

SMB3: ویندوز سرور 2012 و ویندوز 89 اولین نسخه های ویندوز بودند که از SMB3 یا SMBV3 پشتیبانی می کنند. SMB v3 عملکرد و امنیت بیشتری را به پروتکل اضافه کرد. به عنوان مثال SMB multichannel و end-to-end encryption مواردی هستند که در SMBV3 معرفی شد. SMB 3.1.1 آخرین نسخه Windows SMB است همراه با سرور 2016 و ویندوز 10 منتشر شد. SMB 3.1.1 شامل پیشرفت های امنیتی مانند: اجرای Connection های امن با کلاینت های جدیدتر (SMB2 و جدیدتر) و پروتکل های رمزگذاری قوی تر می باشد.
حال که مختصر توضیحی در خصوص SMB داسنتید، حالا به بررسی feature های کلیدی SMB می پردازیم.

1. Authentication

مانند بسیاری از پروتکل های دیگر، احراز هویت برای امنیت SMB حیاتی است. احراز هویت SMB دو جنبه دارد:
User-level authentication: به کلانیت ها نیاز دارد که نام کاربری و رمز عبور ارائه دهند. وقتی مثلا یک SMB client مثل ویندوز 10 با موفقیت احراز هویت می شود تا به یک Share در سرور دسترسی پیدا کند(مثلا فایل سرور در ویندوز سرور 2019) SMB client به همه اشتراکات موجود در سرور دسترسی پیدا می کند که با موارد امنیتی share-level محدود نمی شود.
Share-level authentication: به یک پسورد مخصوص Share که اختصاص داده شده به Share است نیاز دارد(بدون نام کاربری).
user-level SMB authentication در سطحshare-level پسوردها را قبل از انتقال، رمزگذاری می کند.

NTLM

قبل از اینکه به Shared File دسترسی داده شود، تأیید هویت مشتری یا کاربر مهم است. NT Lan Manager یا NTLM یکی از دو پروتکل امنیتی است که به هاست ها در شبکه های ویندوز پیشنهاد authentication را می کند. به عنوان مثال، قبل از ایجاد اتصال SMB، کلاینت ها توسط دامبن خود در جایی که سرور در آن واقع شده است احراز هویت می شوند. NTLM از روش challenge/response برای تأیید اعتبار کاربران و دستگاه ها استفاده می کند که از روش هایی برای هش کردن پسورد کاربر و اصالت کاربر استفاده می کند. با این حال رمزنگاری در آن ضعیف است و در برابر حملات pass-the-hash آسیب پذیر است.

NTLMv2

نسخه دوم NTLM با رمزنگاری قوی از امنیت بیشتری برخوردار است و می تواند از spoofing attack ها جلوگیری کند. این پروتکل هنوز هم به طور گسترده ای مورد استفاده قرار می گیرد زیرا با سیستم های قدیمی سازگار است.

Kerberos

Kerberos توسط MIT ساخته و منتشر شده است. یک پروتکل احراز هویت شبکه است که به طور شفاف با Windows Active Directory کار می کند و در ویندوز 2000 معرفی شد. Active Directory برای مدیریت مرکزی کاربران، کامپیوتر ها و سرویس ها که بخشی از سلسله مراتب شبکه هستند استفاده می شود. سروری که رول Active Directory Domain Service روی آن نصب می شود، به دامین کنترلر در شبکه تبدیل می شود و می تواند کاربران شبکه را احراز هویت و تأیید کند و پالیسی های امنیتی را اعمال کند. Kerberos از رمزنگاری استفاده می کند تا به کلاینت ها و سرورها اجازه دهد هویت خود را به یکدیگر اثبات کنند. Kerberos از NTLM قوی تر بوده و احراز هویت Kerberos جدای از SMB با استفاده از تیکت های ارائه شده توسط Kerberos Key Distribution Center یا KDC اتفاق می افتد. کلاینت ها و سرورها از این بلیط ها استفاده می کنند و هنگام اتصال به شبکه های ناامن، احراز هویت می شوند. Kerberos همچنین امکان رمزگذاری ارتباطات بعدی را با رمزنگاری secret-key پس از احراز هویت کلاینت و سرور فراهم می کند.

Pre-Authentication Integrity

SMB2.0.2 در ویستا و بعد از آن، از احراز هویت کاربران و کلاینت ها هنگام اتصال به سرورها را تضمین می کند. امنیت در SMB3.0 (ویندوز 8) با الگوریتم جدید افزایش یافته است.
کار اصلی pre-authentication integrity جلوگیری از حملاتی است که man-in-the-middle نامیده می شود. در نتیجه هکرها سعی می کنند دیتا پکت ها را بازرسی یا استراق سمع کنند و ویژگی های اتصال و احراز هویت را دستکاری کنند. با استفاده از رمزنگاری SHA-512، این ویژگی درخواست های تنظیم جلسات و ارتباطات بعدی را تأیید می کند.

2. Secured Data Transfer

علاوه بر authentication اطمینان از یکپارچگی داده ها و رمزگذاری در نقل و انتقال از بخش های مهم امنیت SMB هستند. در این بخش، Feature هایی از SMB را بررسی می کنیم که انتقال داده امن را امکان پذیر می کنند.

Message signing/SMB Signing

SMB امکان امضای دیجیتالی پکتهای داده را فراهم می کند. بنابراین کاربرانی که پکت های داده را دریافت می کنند می توانند از مبدا و اصالت آنها اطمینان حاصل کنند. امضای دیجیتال برای جلوگیری از حملات و دستکاری های man in the middle معرفی شده است. Signing SMB می تواند در تمام نسخه های پشتیبانی شده ویندوز فعال شود و یک feature پیش فرض برای دامبن کنترلرها است. یک الگوریتم هش جدید، HMAC SHA-256، امنیت SMB2.0 را در مقایسه با نسخه های های قبلی بیشتر می کند. با استفاده از SMB3.0، امنیت توسط الگوریتم AES-CMAC بیشتر شده و با ویندوز 10، AES-128-GCM معرفی شده است. الگوریتم های جدید همچنین عملکرد را به ویژه در شبکه های WAN بهبود می بخشند.

SMB Encryption

کنار گذاشتن نسخه های قدیمی SMB برای امنیت بیشتر SMB3.0 پیشرفت بزرگی در امنیت شبکه است. اگرچه راه حل هایی مانند IPSec وجود دارد ولی با اجرای پروتکل SMB 3.x، می توان به امنیت بالایی دست یافت و هزینه ها را کاهش داد. رمزگذاری برای محافظت از داده ها از باج افزارهای مخرب و سایر اقدامات هک شده معرفی شده است. پروتکل های SMB3.X امکان تنظیم رمزگذاری بر روی هر Share یا فایل سرورها را در صورت نیاز فراهم می کنند. از SMB3 به بعد ، اکنون می توان حملات man-in-the-middle را تشخیص داد و به سادگی شبکه را disconnect کرد. این ویژگی را می توان با استفاده از File Server Manager یا از طریق PowerShell فعال کرد. SMB encryption برای دستگاه های سیار یا دستگاه های قابل جابجایی که در شبکه های با امنیت پایین یا نامن مثل اینترنت کار می کنند از اهمیت بالایی برخوردار است و ارزش زیادی برای محافظت از اطلاعات حساس شرکت در حین انتقال دارد. این ویژگی به کلاینت و سرور نیاز دارد تا از پروتکل های SMB3.x استفاده کنند. SMB3.0 از الگوریتم AES-CCM برای رمزگذاری استفاده می کند. Data integrity validation با استفاده از الگوریتم AES-CMAC انجام می شود. HMAC-SHA256 قدیمی که توسط SMB 2 استفاده می شود دیگر استفاده نمی شود. الگوریتم های جدید با پشتیبانی دستورالعمل AES روی CPU های مدرن سریع کار می کنند. در SMB3.1.1 ، محرمانه بودن دیتا پکت ها با افزودن AES-128-GCM در ویندوز 10 و ویندوز سرور 2016 بیشتر تقویت شده است که Performance هم تا دو برابر تقویت شده است.

3. Performance

عملکرد SMB از SMB v1 و CIFS به طور قابل توجهی بهبود یافته است. نسخه های بعدی SMB شامل ویژگی های بسیاری است که باعث افزایش توان عملیاتی و استفاده از high-speed network connection می شود.

Concurrent operations

همانطور که می دانید کاربران در محیط شبکه در بسیاری موارد ممکن است به صورت همزمان به فایلی دسترسی پیدا کنند. در این شرایط SMB امکان قفل کردن فایل ها و همچنین دسترسی همزمان را فراهم می کند. هنگامی که کاربر می خواهد به فایلی دسترسی پیدا کند که Share شده است ویژگی Lock وارد عمل می شود. Lock به کاربر این امکان را می دهد تا برخی اقدامات را بدون اطلاع به سرور در یک فایل لوکال Share شده انجام دهد. همچنین می تواند هنگامی که فقط یک کلاینت به فایل دسترسی دارد و یا هنگامی که فقط عمل خواندن روی یک فایل Share شده انجام می شود، به سرور اطلاع دهد. عملیات همزمان یا Concurrent operation به کاربر اجازه می دهد تا دسترسی خاصی مانند اعطای دسترسی read-only یا write-only را درخواست کند. SMB server تمامی درخواست های این چنینی را پیگیری می کند.

Maximum Transmission Unit

مایکروسافت ویژگی های جدیدی را برای افزایش performance شبکه های بزرگ مانند 10 gigabit Ethernet معرفی کرده است. در SMB 2.1 ، می توان سرعت بهتر شبکه ای را با multi-credit operations که همچنین Maximum Transmission Unit نامیده می شود، بدست آورد. MTU سایز بزرگترین واحد داده ای است که می تواند از طریق پروتکل در یک شبکه ارسال شود. حداکثر حجم یک MTU می تواند 1 مگابایت باشد که امکان انتقال سریع فایل را فراهم می کند و تعداد بسته های ارسالی را کاهش می دهد. MTUهمراه با ویندوز 2008 R2 و ویندوز 7 معرفی شد. MTU هنگام استفاده از پایگاه داده SQL server ، تهیه کپی از VHD ها (Hyper-V)، تهیه نسخه بک آپ و بازیابی اطلاعات، Performance استفاده از داده را افزایش می دهد.

Multichannel Technology

با وجود قابلیت multi-channel در SMB3.x انتقال فایل بسیار سریعتر امکان پذیر است. این کار را می توان با ترکیب چندین کارت NIC انجام داد و تنها کافی است که آنها را به شبکه متصل کنید. Multi-channeling با ترکیب پهنای باند چندین کارت شبکه کار می کند و به Core های پردازنده امکان تقسیم جریان داده ها برای انتقال سریعتر داده ها را می دهد. به عنوان مثال، یک کلاینت با چندین کارت 1 گیگابیتی می تواند سریعتر به یک سرور با یک کارت 10 گیگابیتی متصل شود، یا بالعکس.

SMB Direct and RDMA - What is SMB direct?

SMB Direct و Remote Direct Memory Access یا RDMA یک فضای ذخیره سازی خوشه ای سریعتر و کارآمدتر را ایجاد می کند. RDMA امکان انتقال سریع ، memory-to-memory داده ها را فراهم می کند. تنها کافی است لینک به سرورها با استفاده از سخت افزار های شبکه ای مانند InfiniBand ، iWARP یا RoCE باشد. استفاده از شبکه های اترنت حتی با سرعت 10 گیگابیت بر ثانیه برای نیازهای مدیریت داده های سازمانی سریع نیست. دستگاه های ذخیره سازی (SAN ، FC ، iSCSI) معمولاً به Pool ها متصل می شوند و در اینجا می توان دیسک های مجازی را برای استفاده به عنوان Hyper-V clusters ایجاد کرد، یا در مورد سرورهای SQL ، اشتراک گذاری فایل برای دسترسی به پایگاه داده را ایجاد کرد. با استفاده از RDMA ، یک فایل سرور شبکه ای می تواند هنگام استفاده از Microsoft Hyper-V یا SQL Server 2012 به عنوان local storage عمل کند. این ویژگی فقط از SMB3.0 و بالاتر در دسترس است.

4. Durability and Reliability

Availability و scalability و fault-tolerance از جنبه های بارز و مهم file and resource sharing در شبکه های امروزی است. در این بخش، ما ویژگی های کلیدی را بررسی می کنیم که SMB را قوی و قابل اعتماد می کند.

SMB Lease and Oplock

Lease یکی ویژگی جدید Caching است که در ویندوز 7 معرفی شده است. مشابه Oplock، ویژگی Lease به مشتریان امکان استفاده بهتر از شبکه و تنظیم پالیسی بافر را می دهد. برخی از انواع lease عبارتند از: read-caching، write-caching و handle-caching است. ویژگی Oplock SMB مزایای زیادی از جمله file caching، دسترسی همزمان، سینک کردن cache برای بهبود performance فایل Sharing است. Oplock در واقع یک درخواست است(و نه دستور) که توسط کاربران به سرورها ارسال می شود.

Scalability

SMB امکان افزایش بسیار زیاد تعداد کاربران را فراهم می کند و به آنها امکان دسترسی به فایل و کنترل عملیاتی برای هر سرور مورد استفاده را می دهد. SMB در نسخه های جدید برای مقیاس پذیری ایجاد شده اند و به هر سرور این امکان را می دهد که تعداد بیشتری اشتراک گذاری فایل و عملیات های همزمان و .. را مدیریت کند. Scale-Out File Services ویژگی جدیدی است که به طور ایده آل برای مراکز داده مناسب است به موجب آن ذخیره فایل می تواند با افزودن سرورهای جدید به طور مداوم در دسترس باشد.

Continuous Availability Service

یک ویژگی مهم برای مراکز داده در دسترس بودن سرویس های آن است. SMB server های جدید از سرورهای کلاستر شده و یا سرورهای مقیاس پذیر پشتیبانی می کنند. اشتراک گذاری فایل در این شبکه ها می تواند به صورت "continuously available" تنظیم شود و برای کلاینت هایی از SMB3.0 پشتیبانی می کنند، باشد.

SMB Witness - SWN

سرویس Witness به کلاینت های موجود در شبکه اجازه می دهد تا در صورت بروز اختلال یا تأخیر در سرور، از آن مطلع شوند. در SMB1.0 و تا حدودی در SMB2.x ، این امر با time-out service محقق می شد که مدت زمان زیادی(45 ثانیه) به طول می انجامید. در شبکه های سازمانی، اطلاع رسانی سریعتری برای دسترسی سریع به سرور دیگری مورد نیاز بود و از این رو ویژگی Witness بوجود آمد.
SWN پروتکلی جداگانه است و هرگونه تأخیر و اختلال در سمت سرور را با استفاده از SMB3.x مطلع می کند. SWN مستقل از پروتکل SMB است و به عنوان بخشی از Continuously Available framework به طور مستقل اجرا می شود.

Transparent Failover

با transparent failover کاربران در صورت خرابی یکی از سرورها به داده های خود متصل می شوند زیر سرور دیگری وجود دارد که بدون مشکل کار را ادامه می دهد. پس failover به برنامه ها اجازه می دهد تا به طور معمول کار کنند. از این رو نام آن transparent failover گذاشته اند. Transparent failover یکی از ویژگی های اصلی خانواده SMb.3X طبق گفته مایکروسافت است. این ویژگی با توجه به سرعت سریع شبکه ارائه شده توسط SMB از اهمیت بالایی برخوردار است. پروتکل جدید از ماشین های مجازی Hyper-V و SQL Server با مدیریت خودکار اتصالات بین nod ها در یک محیط کلاستر شده پشتیبانی می کند. با SMB3.0 به بعد، File Sharing در ویندوز همیشه در دسترس است زیرا transparent failover آنلاین ماندن اتصالات و ذخیره اطلاعات را تضمین می کند.

Scale-Out File Servers

Scale-Out File Servers یا SOFS یعنی استفاده از چندین سرور که که اپلیکیشن ها بتوانند بدون Down شدن به سرورها دسترسی پیدا کنند. در صورت در دسترس نبودن یک سرور، سایر سرورها دسترسی بدون وقفه به فایل را برای کاربران تضمین می کنند. این ویژگی از ویندوز سرور 2012 به بعد در دسترس است و امکان تنظیم SOFS ا کارایی بالا و همیشه در دسترس را فراهم می کند، جایی که می توان به راحتی مجوزهای کاربر را مدیریت کرد.

Volume Shadow Copy Service (VSS)

VSS سرویسی است که برای بهبود قابلیت اطمینان در عملیات بک آپ گیری و بازیابی در ویندوز سرور 2003 معرفی شده است. در سطح بالا، VSS امکان را فراهم می کند تا بک آپ، آنهم در حالیکه که برنامه ها نوشتن داده ها در Volume را انجام می دهند، صورت گیرد. در SMB3، مایکروسافت، VSS را برای SMB file share اضافه کرد تا Performance و کارایی VSS را با SMB به مراتب بیشتر گسترش دهد


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز