پنل اس ام اس

وبلاگ – خرید سرور مجازی

سرور مجازی ایران,هاست دانلود,میزبانی وب

خانه / سرور مجازی / آشنایی با وب سرور IIS – معماری و تکنیک ها و ابزارها

آشنایی با وب سرور IIS – معماری و تکنیک ها و ابزارها

معرفی ساختار Kernel Mode Listener

بصورت کلی ساختار سیستم عامل ها به دو لایه تقسیم می شود ، لایه هسته یا Kernel Mode و لایه کاربر یا User Mode ، لایه کرنل یا Kernel Mode نزدیکترین لایه به سیستم عامل است و سریعترین محل برای اجرای نرم افزارها و دستورات محسوب می شود اما هر نرم افزاری که در این لایه اجرا شود به منابع سیستمی حساسی بصورت مستقیم دسترسی خواهد داشت و همین امر موجب می شود که در صورت بروز هرگونه مشکلی در این لایه برای هر نرم افزاری که در آن کار می کند کل سیستم عامل دچار مشکل می شود و معمولا در چنین مراحلی است که شما خطاهای صفحه آبی یا Blue Screen را مشاهده می کنید . در این لایه نرم افزارهایی مثل درایورهای سیستم نصب و کار می کنند تا بتوانند در سریعترین زمان ممکن اجرا شوند . همانطور که دیدید استفاده از این لایه برای نرم افزارهای کاربردی در دو بعد قابل بررسی بود ، بعد اول سرعت اجرا و بعد دوم خطاهای احتمالی است . این لایه را در ذهن داشته باشید تا لایه بعدی را معرفی کنیم ، در لایه کاربر یا User Mode نرم افزارها با سرعت کمترو البته در محیط محدود شده و محافظت شده ای از سیستم عامل اجرا می شوند ، آنها در واقع دستورات مورد نیاز خود را ابتدا تجزیه و تحلیل کرده و در صورت امکان در همان لایه کاربر و در غیر اینصورت با اعمال محدودیت های خاص به لایه کرنل برای اجرا می فرستند . در صورت بروز هر مشکلی در این لایه ، سیستم عامل بصورت کلی دچار مشکل نشده و صرفا نرم افزار مورد نظر دچار مشکل می شود و با پردازش های دیگر سیستم کاری ندارد.

de709291e66e424ebb2867596f91e999

cialishowtobuy this link

برای مثال همانطور که اشاره شد درایورهای سیستم عامل در لایه کرنل فعالیت می کنند و در صورت بروز مشکل کل سیستم دچار مشکل شده و بعضا خطاهای صفحه آبی یا همان Blue Screen صادر می شوند ، اما نرم افزارهایی مثل آفیس ورد یا Excel در لایه کاربری فعالیت می کنند و در صورت بروز هرگونه مشکل در این لایه صرفا باعث بروز خطا در همان نرم افزار خواهد شد و سیستم عامل تحت تاثیر این مشکل قرار نخواهد گرفت ، قطعا در ویندوز یا چنین خطاهایی مواجه شده اید که سیستم به حالت Not Responding قرار میگیرد و نمی تواند آن نرم افزار خاص را اجرا کند در صورتیکه کارهای دیگر سیستم به درستی انجام می شود.

خوب در بحث وب سرور تصور کنید که یکی از وب سایت هایی که در IIS وجود دارد و در لایه کرنل فعالیت می کند به مشکل بخورد ، چه اتفاقی ممکن اسات بیافتد ؟ بله تمامی وب سایت های دیگر هم دچار مشکل خواهند شد و به خاطر وجود یک باگ ضعیف در کدهای یک نرم افزار کل سیستم دچار مشکل می شود . برای حل این مشکل در وب سرور IIS و بصورت خاص از نسخه 6 آن که در ویندوز سرور 2003 معرفی شد ساختار به نام Http Listener به سیستم عامل اضافه شد . در این حالت هیچگونه درخواستی و عملیات پردازشی در لایه کرنل سیستم عامل انجام نمی شود ، در این حالت سرور ابتدا درخواست ها را در لایه کرنل و توسط سرویسی به نام Http Listener دریافت کرده و آنها را تحلیل میکند ، منظور از تحلیل این است که وب سرور IIS توانایی میزبانی بیش از چندین وب سایت را دارد و بر همین اساس درخواست هایی که از طریق وب دریافت می کند متفاوت می باشد و بایستی درخواست مورد نظر دقیقا به وب سایت مورد نظر ارجاع داده شود ، در صورت درخواست پردازش خاص یا ساده تر بگوییم وب سایت خاص ، این سرویس که در لایه کرنل فعال است درخواست ها را بصورت تفکیک شده بر اساس هر درخواست به لایه کاربر یا User Mode برای اجرا ارسال می کند و در اینجاست که بر اساس هر درخواست یک پردازش یا Process در CPU ایجاد می شود.

e51c981c988849b7a34b01fa3d1eb4eb

حال اگر برای هر یک از این درخواست ها مشکلی پیش بیاید براحتی همان درخواست را می توانید بدون ایجاد مشکل برای سایر درخواست ها از صف پردازش خارج کنید و وب سرور شما به مشکل نخواهد خورد . با این روش ضمن اینکه امنیت سیستم عامل بالا می رود امکان تفیکیک و اولویت بندی پردازش ها نیز ایجاد خواهد شد. با توجه به اینکه در این مقاله بصورت ویژه به مبحث وب سرور اشاره می کنیم توجه کنید که پس از اینکه Http Listener درخواست را به لایه User Mode انتقال داد به ازای هر درخواست یک پردازش به نام wp.exe که مخفف Worker Process است ایجاد خواهد کرد. شما براحتی می توانید از طریق Task Manager این پردازش های ایجاد شده توسط Http Listener را مشاهده کنید . جالب اینجاست بدانید که Http Listener به دلیل اینکه می تواند وجود یا عدم وجود صفحات درخواستی و یا نوع درخواست هایی وارد می شود را برررسی کند می تواند در همان لایه کرنل تعیین کند که درخواست وارده درست یا معتبر است یا حمله به وب سرور است و در عین حال در همان لایه این درخواست های غیرمعتبر را حذف و رد می کند. توجه کنید که Http Listener به هیچ عنوان عمل پردازشی در لایه Kernel Mode انجام نمی دهد .

بررسی ساختار ماژولار IIS 7 و IIS 7.5

امروزه امنیت در وب سرورها یکی از مهمترین قسمت های زندگی هر ITMAN شده است . اگر با وب سرورهای قدیمی تر مایکروسافت کار کرده باشید حتما به خاطر دارید که در هنگام نصب این وب سرور شما می توانستید تا حدودی تعیین کنید که چه امکاناتی به همراه وب سرور بر روی آن نصب شود . هرچه به عقب تر برگردیم این ساختار تعیین امکانات نصب برای وب سرورها کمتر می شد تا جاییکه وقتی شما می خواستید یک وب سرور را نصب کنید به ناچار مجبور بودید که کلیه امکانات را به یکباره نصب کنید و قادر به تفکیک امکانات نصب نبودید . اما چه اهمیتی دارد که شما بتوانید برای وب سرور تعیین کنید که چه امکانات یا Feature هایی داشته باشد یا نداشته باشد ؟

در دنیای امنیت اطلاعات و همچنین برنامه نویسی که حتما شما تا حدودی با این مسئله آشنایی دارید ، هر قطعه کد به تنهایی می تواند دارای یک سری باگهای امنیتی باشد که در صورت اجرا می توانند باعث بروز مشکلاتی برای وب سرور شوند و بعضا باعث بروز مشکلات امنیتی بر روی آن شوند. اگر کمی در خصوص سیستم های مدیریت امنیت اطلاعات بدانید متوجه این موضوع می شوید که در جاهایی که یک سازمان دارای یک ریسک است که آن ریسک برای آن سازمان اصلا در حد ضربه زدن و بروز مشکل اساسی در سازمان نیست ، این ریسک منتفی یا نادیده گرفته می شود . خوب همین بحث را در خصوص وب سرور IIS نیز داریم ، اگر قرار نیست ما بر روی سرور خود قابلیت Browse کردن دایرکتوری های سرور را بدهیم بنابراین اصلا این امکان وب سرور را نصب نمی کنیم و ریسک سوء استفاده از آن را به صفر می رسانیم . در نسخه 7 و 7.6 از وب سرور IIS بر خلاف نسخه های قبلی تمامی موارد و امکانانی که مد نظر یک کاربر است در قالب یک ماژول یا Feature ارائه شده است ، شما می توانید براحتی تعیین کنید که به چه امکاناتی نیاز دارید و صرفا همانها را نصب کنید و بدین ترتیب از بروز مشکلات و تهدیدات ناشی از نصب بیهوده امکانات وب سرور که متاسفانه بر حسب عادت اکثر دوستان در ایران در هنگام نصب سرور همه امکانات آن را نصب می کنند ، جلوگیری خواهید کرد.

برای اینکه درک بهتری از موضوع ماژول های داشته باشید من وارد کنسول گرافیکی IIS در ویندوز سرور 2008 شده ام تا کمی بصورت تصویری با این ماژول ها آشنا شوید ، دقت کنید هنوز ما وارد بحث آموزش این کنسول نشده این و صرفا این قسمت جنبه نمایشی دارد ، در مراحل بعدی از مقالات به صورت جزء به جزء از نصب و انجام تنظیمات تک تک این موارد گذر خواهیم کرد . تصویر زیر ماژول هایی که شما در هنگام نصب IIS بصورت تمام و کمال بر روی سرور موجود می باشند را مشاهده می کنید :

9a5da2c0261446239d912d3d7ccba6d1

 

1e2e42c482294549887ae9e9db98f3c5

اگر با IIS 6.0 کار کرده باشید قطعا به محض باز کردن کنسول IIS 7 متعجب خواهید شد ، این کنسول جدید کاملا با کنسول های قبلی وب سرور IIS متفاوت است و تقریبا می توان گفت متحول شده است . به تصاویر بالا دقت کنید ، تمامی موارد و امکاناتی که برای یک وب سرور مورد نیاز هستند بصورت مجزا در این سرور قرار گرفته اند و این یعنی در صورت عدم نیاز به هر کدام از این سرویس های آنها را غیر فعال می کنیم و در نهایت به امنیت بیشتر و کارایی بیشتر سرویس وب می انجامد . اما امکان جالب دیگری که در این سرویس IIS 7 اضافه شده است این است که شما در هنگام نصب امکانات و Feature ها می توانید تعیین کنید که کنسولی ویژه مدیریت وب سرور های IIS 6.0 نیز به سرور اضافه شود و بدین وسیله می توانید سرورهای IIS 6.0 دیگر را از طریق همین کنسول مدیریت کنید ، در زیر تصویر مربوط به این کنسول را می توانید مشاهده کنید :

18c37c4d04db4503b8671a77f0a6a47d

در این مقاله قصد آموزش استفاده از این ماژول ها را نداریم بلکه صرفا جهت آشنایی با محیط کاری IIS چند نکته را اشاره کردیم ، استفاده از این ابزارها را می توانید در قسمت های بعدی مقالات بصورت ریز شده مشاهده کنید ، اما بد نیست بدانید که با انتخاب هر وب سایتی که در IIS وجود دارد ماژول ها و امکانات ویژه همان وب سایت به شما نمایش داده می شود ، در تصویر زیر من بر روی صفحه پیشفرض وب سایت IIS کلیک کرده ام که همانطور که مشاهده می کنید ماژول های مرتبط در جلوی آن نمایش داده شده است ، از طرفی برای انجام تنظیمات این ماژول ها سه راه وجود دارد ، اول کلیک کردن بر روی هر کدام از ماژول ها پس از نمایش ، راست کلیک کردن بر روی هر وب سایت و مشاهده مشخصات و در آخر کاملترین مورد استفاده از منوی Action در قسمت سمت راست و بالای کنسول سرور IIS است که می توانید این موارد به تفکیک در قسمت زیر مشاهده کنید.

fe0d36897f2d46d0abcee1aa45bfbefd

 

  • با کلیک کردن بر روی هر وب سایت ماژول های خاص آن در پنل وسط نمایش داده می شوند

 

9666e6186a7b4fb2a855cffdd073e69b

 

  • با راست کلیک کردن بر روی هر وب سایت می توانید تنظیمات اولیه آن را انجام دهید

 

e6e4c0aa5b644505a3f0051027612c4a

 

  • با استفاده از پنل Action در قسمت چپ کنسول IIS می توانید تنظیمات پیشرفته وب سایت را انجام دهید

کنسول گرافیکی که به آن اشاره شد یکی از راه های مدیریت وب سرور IIS 7 می باشد . راه دیگر مدیریت وب سرور استفاده از قابلیت هاو اسکریپت های نوشته شده به وسیله خط فرمان PowerShell است . اگر بخواهیم از ابتدا این مسئله را بررسی کنیم بایستی کمی به عقب بر گردیم ، این مسئله بدیهی است که هر مدیر شبکه ای بخواهد برخی از کارهایی که به وی سپرده می شود را بصورت خودکار انجام دهد ، در گذشته برای انجام اینکار از زبان برنامه نویسی VBScript استفاده می شد ، اما با گذشت زمان مایکروسافت استفاده از این زبان را تا حدود زیادی منسوخ کرد و زبان جدیدی یا بهتر بگوییم Shell جدیدی به نام Powershell را ارائه کرد و به مرور این زبان را جایگزین زبان VBSCript در بحث مدیریت سرورها و سرویس ها کرد. PowerShell یک مجموعه اسکریپت از پیش طراحی شده در قالب Template دارد که با استفاده از این اسکریپت های نوشته شده ، شما می توانید بسیاری از فعالیت ها و کارهای روزمره سرویس های خود اعم از IIS را مدیریت کنید ، همانطور که اشاره شد در این مقاله صرفا به معرفی این قابلیت مدیریتی می پردازیم و در صورت امکان در ادامه این سری مقالات بصورت مفصل در خصوص استفاده از PowerShell در مدیریت IIS خواهیم پرداخت ، اما بد نیست تا اینجا که رسیده ایم کمی هم با ظاهر و کارکرد این خط فرمان قدرتمند آشنا شویم ، در ادامه می توانید مراحل ابتدایی استفاده از Powershell برای مدیریت IIS را مشاهده کنید . برای ورود به محیط Powershell کافیست آیکن آبی رنگ کتار دکمه Start را کلیک کنید.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
 PS C:\Users\Administrator> cd $pshome    ورود به پوشه خانگی پاورشل
 PS C:\Windows\System32\WindowsPowerShell\v1.0> cd modules    ورود به قسمت ماژول های موجود
 PS C:\Windows\System32\WindowsPowerShell\v1.0\modules> dir   گرفتن لیست ماژول های موجود
Directory: C:\Windows\System32\WindowsPowerShell\v1.0\modules
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        11/20/2010   9:45 PM            ADRMS
d---s        11/20/2010   9:45 PM            AppLocker
d----        11/20/2010   9:45 PM            BestPractices
d---s        11/20/2010   9:45 PM            BitsTransfer
d----         7/13/2009  10:37 PM            PSDiagnostics
d----        11/20/2010   9:45 PM            ServerManager
d----        11/20/2010   9:45 PM            TroubleshootingPack
d----          2/4/2013  11:59 PM            WebAdministration
PS C:\Windows\System32\WindowsPowerShell\v1.0\modules> import-module webadministration   وارد کردن اسکریپت ها
PS C:\Windows\System32\WindowsPowerShell\v1.0\modules> get-psdrive   نمایش درایوهای پاورشل موجود
Name           Used (GB)     Free (GB) Provider      Root                         CurrentLocation
----           ---------     --------- --------      ----                                              
A                                      FileSystem    A:Alias                                  Alias
C        7.71         32.19 FileSystem    C:\               ...dowsPowerShell\v1.0\modules
cert                                   Certificate   D                   2.76               FileSystem    D:Env                                    Environment
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
IIS                                    WebAdminis... \\ITPRO
Variable                               Variable
WSMan                                  WSMan
PS C:\Windows\System32\WindowsPowerShell\v1.0\modules> cd IIS: ورود به درایو مربوط به وب سرور
PS IIS:\> dir   مشاهده پوشه های موجود در وب سرور
Name
----
AppPools
Sites
SslBindings
PS IIS:\> cd sites   ورود به پوشه سایت های موجود
PS IIS:\sites> dir    مشاهده سایت های موجود
Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1    Started    %SystemDrive%\inetpub\wwwroot  http *:80:
PS IIS:\sites> cd '.\Default Web Site'   ورود به تنظیمات وب سایت پیشفرض
PS IIS:\Sites\Default Web Site> dir     مشاهده پوشه های وب سایت پیشفرض
    Directory: WebAdministration::\\ITPRO\Sites\Default Web Site
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----          2/5/2013  12:02 AM            aspnet_client
-a---          2/4/2013  11:59 PM        689 iisstart.htm
-a---          2/4/2013  11:59 PM     184946 welcome.png

 

نتیجه

خوب در این مقاله به معرفی ساختار Kernel Mode و همچنین Http Listener پرداختیم و بعد از آن با انواع کنسول های مدیریتی گرافیکی و خط فرمانی که همان PowerShell است تا حدودی آشنا شدیم و متوجه شدیم که IIS نسخه 7 دارای چه تعداد امکانات و Feature های تفکیک شده است و دلیل این تفکیک و ریز شدن ماژول ها چه می باشد . در اینجا شما مفهوم Work Process را متوجه شدید و قاعدتا اگر در مراحل بعدی مقاله با چنین واژه ای برخورد کنید متوجه می شوید که این مفهوم به چه کار می آید و در کجا کاربرد دارد ، در مقاله بعدی به بررسی امکانات و همچنین نصب IIS در ویندوز سرور 2008 با ذکر توضیحات در خصوص هر کدام از این امکانات خواهیم پرداخت .

منبع : انجمن تخصصی فناوری اطلاعات ایران