به نام ا…
گرداورنده:
—
موضوع:
Iis و ویژگی های آن
درس:
برنامه نویسی مبتنی بر وب
استاد:
—
بهار ۹۱
فهرست
چیست؟ ………………………………………………………………………………………………………………………………….۳Iis
با رعایت مسائل امنیتی ……………………………………………………………………………………..۳IISپیکربندی
…………………………………………………………………………………………………………………………….۵IIS امنیت در
مدیریت IIS با چندین گروه ……………………………………………………………………………………………………..۵
سرویس هایIIS ………………………………………………………………………………………………………………………۵
ورژن های مختلف IIS……………………………………………………………………………………………………………….۶
پیشنهادات تکمیلی در رابطه با امنیت برنامه IIS……………………………………………………………………۶
انتقال فایل نقاط ضعفIIS در پروتکلFTP……………………………………………………………………………..۷
مدیریت فهرست(Directory ) ……………………………………………………………………………………………۸
مقایسه IIS و Apache………………………………………………………………………………………………………..۹
تفاوت ها به طور خلاصه……………………………………………………………………………………………………………….۱۲
چیست؟IIs
IIS وب سرور مایکروسافت می باشد و برای ایجاد، مدیریت و هاستینگ وب سایتها مورد استفاده قرار می گیرد این برنامه بر روی سی دی های ویندوزهای 2000 به بالا که بر پایه NTهستند موجود می باشد.
Internet Information services:
یا Iis یکی از سرویس دهندگان وب است که از آن برای برای نشر و توزیع سریع محتویات مبتنی بر وب ، برای مرورگرهای استاندارد استفاده می شود . نسخه پنج IIS ، صرفا" برای سیستم های مبتنی بر ویندوز 2000 قابل استفاده است . نسخه های ویندوز 2000 Server و Advanced server بمنظور نصب IIS ، مناسب و بهینه می باشند . نسخه پنج برای استفاده در نسخه های قدیمی ویندوز طراحی نشده است . امکان نصب IIS نسخه پنج ، بهمراه ویندوز Professional نیز وجود داشته ولی برخی از امکانات آن نظیر : میزبان نمودن چندین وب سایت ، اتصال به یک بانک اطلاعاتی ODBC و یا محدودیت در دستیابی از طریق IP در آن لحاظ نشده است . نسخه پنج IIS ، سرویس های WWW ، FTP، SMTP و NNTP را ارائه می نماید . سه نرم افزار و سرویس دیگر نیز با IIS در گیر می شوند : Certificate Server , Index server و Transaction server .
با رعایت مسائل امنیتی: IISپیکربندی
استفاده از شبکه های کامپیوتری از چندین سال قبل رایج و در سالیان اخیر روندی تصاعدی پیدا کرده است .اکثر شبکه های پیاده سازی شده در کشور مبتنی برسیستم عامل شبکه ای ویندوز می باشند . شبکه های کامپیوتری، بستر و زیر ساخت مناسب برای سازمان ها و موسسات را در رابطه با تکنولوژی اطلاعات فراهم می نماید . امروزه اطلاعات دارای ارزش خاص خود بوده و تمامی ارائه دهندگان اطلاعات با استفاده از شبکه های کامپیوتری زیر ساخت لازم را برای عرضه اطلاعات بدست آورده اند . عرضه اطلاعات توسط سازمان ها و موسسات می تواند بصورت محلی ویا جهانی باشد. با توجه به جایگاه والای اطلاعات از یکطرف و نقش شبکه های کامپیوتری ( اینترانت و یا اینترنت ) از طرف دیگر ، لازم است به مقوله امنیت در شبکه های کامپیوتری توجه جدی شده و هر سازمان با تدوین یک سیاست امنیتی مناسب ، اقدام به پیاده سازی سیستم امنیتی نماید . مقوله تکنولوژی اطلاعات به همان اندازه که جذاب و موثر است ، در صورت عدم رعایت اصول اولیه به همان میزان و یا شاید بیشتر ، نگران کننده و مسئله آفرین خواهد بود . بدون تردید امنیت در شبکه های کامپیوتری ، یکی از نگرانی های بسیار مهم در رابطه با تکنولوژی اطلاعات بوده که متاسفانه کمتر به آن بصورت علمی پرداخته شده است . در صورتیکه دارای اطلاعاتی با ارزش بوده و قصد ارائه آنان را بموقع و در سریعترین زمان ممکن داشته باشیم ، همواره می بایست به مقوله امنیت، نگرشی عمیق داشته و با یک فرآیند مستمر آن را دنبال نمود . اغلب سازمان های دولتی و خصوصی در کشور، دارای وب سایت اختصاصی خود در اینترنت می باشند . سازمان ها و موسسات برای ارائه وب سایت ، یا خود امکانات مربوطه را فراهم نموده و با نصب تجهیزات سخت افزاری و تهیه پهنای باند لازم، اقدام به عرضه سایت خود در اینترنت نموده و یا از امکانات مربوط به شرکت های ارائه دهنده خدمات میزبانی استفاده می نمایند . وجه اشتراک دو سناریوی فوق و یا سایر سناریوهای دیگر، استفاده از یک سرویس دهنده وب است . بدون تردید سرویس دهنده وب یکی از مهمترین نرم افزارهای موجود در دنیای اینترنت محسوب می گردد . کاربرانی که به سایت یک سازمان و یا موسسه متصل و درخواست اطلاعاتی را می نمایند ، خواسته آنان در نهایت در اختیار سرویس دهنده وب گذاشته می شود . سرویس دهنده وب، اولین نقطه ورود اطلاعات و آخرین نقطه خروج اطلاعات از یک سایت است . بدیهی است نصب و پیکربندی مناسب چنین نرم افزار مهمی ، بسیار حائز اهمیت بوده و تدابیرامنیتی خاصی را طلب می نماید .
امنیت در :IIS
امنیت در IIS متاثر از سیستم عامل است . مجوزهای فایل ها ، تنظیمات ریجستری ، استفاده از رمزعبور، حقوق کاربران و سایر موارد مربوطه ارتباط مستقیم و نزدیکی با امنیت در IIS دارند .
مدیریت IIS با چندین گروه:
نسخه شماره چهار IIS ، امکان تعریف گروههای محلی بمنظور پیکربندی و تعریف گروههای مدیریتی متفاوت برای سرویس های IIS را فراهم می نمود . رویکرد فوق در نسخه شماره پنج IIS ، تغییر یافته است . گروهها ی محلی می توانند و می بایست برای گروههای مدیریتی متفاوت ایجاد گردند . تفاوت موجود بین گروههای محلی برای سرویس www و FTP صرفا" استفاده از مجوزهای NTFS خواهد بود . سرویس های SMTP و NNTP ، قابلیت تنظیم گروههای محلی را بعنوان اپراتورهای مدیریتی برای سرویس دهنده IIS فراهم می نماید .
سرویس های IIS:
در زمان نصب IIS ، چهار سرویس بر روی سیستم نصب خواهد شد :
* www . سرویس فوق،بمنظور ایجاد یک سرویس دهنده وب و سرویس دهی لازم به درخواست سرویس گیرندگان برای صفحات وب استفاده می گردد .
* FTP . سرویس فوق، بمنظور ارائه خدمات لازم در خصوص ارسال و دریافت فایل بر روی سرویس دهنده برای کاربران استفاده می گردد .
* SMTP . سرویس فوق،امکان ارسال و دریافت نامه الکترونیکی برای سرویس گیرندگان را در پاسخ به فرم ها و برنامه های خاص دیگر فراهم می نماید .
* NNTP . سرویس فوق، بمنظور میزبانی یک سرویس دهنده خبری USENET استفاده می گردد .
ورژن های مختلف IIS:
* IIS 1.0, Windows NT 3.51 available as a free add-on
* IIS 2.0, Windows NT 4.0
* IIS 3.0, Windows NT 4.0 Service Pack 3
* IIS 4.0, Windows NT 4.0 Option Pack
* IIS 5.0, Windows 2000
* IIS 5.1, Windows XP Professional
* IIS 6.0, Windows Server 2003 and Windows XP Professional x64 Edition
* IIS 7.0, Windows Vista and Windows Server 2008
پیشنهادات تکمیلی در رابطه با امنیت برنامه :IIS
* بر روی سرویس دهنده IIS صرفا IIS و عناصر مورد نیاز را نصب و از نصب برنامه ها و ابزارهای پیاده سازی ممانعت بعمل آید .
* تمام سرویس های غیر ضروری را غیر فعال نمائید .
* در رابطه با IUSER_Computername account ، گزینه های User cannot change password و Password Never Expires را انتخاب و فعال نمائید .
* در صورتیکه تمایلی به ورود افراد گمنام (anonymous) به شبکه وجود نداشته باشد ، می بایست account مربوطه را غیر فعال نمود (IUSER_Computername) .
* برای هر وب سایت local admin groups ایجاد و account مربوطه را مشخص نمائید .
* برای کاربران وب یک local group ایجاد و صرفا" account های مورد نیاز و مجاز نظیر IUSER_Computername را در آن فعال نمائید .
* از تمام گروه های دیگر، account مربوط به IUSER_Computername را حذف نمائید .
* تمام مجوزهای NTFS مربوط به دایرکتوری Inetpub را حذف و صرفا" گروه ها و account های مجاز را به آن نسبت دهید .
* یک ساختار منطقی برای دایرکتوری ایجاد نمائید . مثلا" برای محتویات ایستا ، فایل های asp ، scripts و Html ، اسامی دایرکتوری دیگری ایجاد و با یک ساختار مناسب بیکدیگر مرتبط گردند.
* مجوزهای لازم NTFS بر روی ساختار دایرکتوری ها را در صورت نیاز اعمال نمائید .
* تمام دایرکتوری های نمونه و اسکریپت هائی که نمونه برنامه هائی را اجراء می نمایند ، حذف نمائید .
* مجوز Log on locally به کاربر اعطاء و امکان log on as a batch service و Access this computer from the network از کاربر سلب گردد .
نقاط ضعف IISدر پروتکل انتقال فایل:Ftp
مایکروسافت با تایید نقص امنیتی ادعا شده در پروتکل انتقال فایل (FTP) در برخی نسخه های IIS، یک راهنمایی امنیتی در مورد این آسیب پذیری عرضه کرد. این نقص امنیتی روی نسخه های IIS 5.0، IIS 5.1 و IIS 6.0 مایکروسافت تاثیر میگذارد، ولی برای اینکه بتواند مورد سوء استفاده قرار گیرد باید FTP روی سرور قربانی فعال شده باشد. این حفره امنیتی میتواند به فرد مهاجم اجازه دهد که کنترل سیستم قربانی را بدست گیرد. IIS 7.0 در معرض خطر این نقص امنیتی قرار ندارد و خطر موجود در IIS 6.0 نیز کمتر از نسخه های دیگر است.
مایکروسافت در راهنمایی امنیتی خود اشاره کرده است که تا کنون هیچ حمله فعالی با استفاده از این آسیب پذیری مشاهده نکرده است، البته کد سوء استفاده کننده از این نقص در وب منتشر شده است.
این شرکت در راهنمایی امنیتی خود اظهار داشته است که یک فرد مهاجم با داشتن اجازه "نوشتن" در سرویس FTP، میتواند از این آسیب پذیری برای اجرای کد دلخواه خود استفاده کند. در تنظیمات IIS، زمانی که کاربر ناشناس اجازه "نوشتن" را داشته باشد، نیازی به تایید هویت وجود ندارد.
مایکروسافت اعلام کرده است که هنوز در حال کار برای اصلاح این حفره امنیتی است، ولی این راهنمایی امنیتی میتواند به کاربران کمک کند که تا زمان ارائه اصلاحیه، از خود محافظت نمایند. مایکروسافت به مدیران سیستم توصیه کرده است که در غیاب اصلاحیه، از ارائه مجوز نوشتن به کاربران غیر قابل اعتماد بر روی سرویس FTP خودداری کنند.
این راهنمایی امنیتی شامل دستوراتی به شرح زیر است:
۱. سرویس FTP خود را در صورتی که به آن احتیاج ندارید غیر فعال نمایید.
۲. از ایجاد دایرکتوریهای جدید با استفاده از NTFS ACLs خودداری کنید.
۳. از نوشتن کاربران ناشناس از طریق تنظیمات IIS جلوگیری نمایید.
مدیریت فهرست (Directory ):
علاوه بر مجوزهای مربوط به فایل و فهرست ها که در سطح سیستم عامل برقرار می گردد ، IIS ، امکانی با نام Application level Permission را ارائه نموده است . در این راستا ، امکان انتخاب گزینه هائی نظیر : Read , Write , Directory Browsing ,Scripts only و Scripts and executables وجود داشته و می توان از آنان بهمراه فهرست های شامل محتویات مربوط به سرویس های www و FTP استفاده کرد .
* Read : مجوز فوق ،امکان مشاهده و ارسال محتویات برای مرورگر سرویس گیرنده را فراهم می نماید .
* Write : مجوز فوق، به کاربرانی که مرورگرآنان دارای ویژگی PUT ( مربوط به پروتکل استاندارد HTTP 1.1 ) است ، امکان Upload نمودن فایل هائی برای سرویس دهنده و یا تغییر محتویات یک فایل write-enabled را خواهد داد . گزینه فوق ، در اختیار کاربران قرار داده نمی شود و صرفا" مدیریت مربوطه به نوع خاص و محدودی از مجوز فوق ، نیاز خواهد داشت .
* Directory Browsing ، مجوز فوق ، به یک سرویس گیرنده امکان مشاهده تمامی فایل های موجود در یک فهرست را خواهد داد . از مجوز فوق صرفا" در رابطه با سرویس دهندگان عمومی FTP استفاده و در سایر موارد ، استفاده ازمجوز فوق ، توصیه نمی گردد .
* :Scripts مجوز فوق ، امکان اجراء را در سطح اسکریپت ها محدود خواهد کرد . در مواردیکه از برنامه های CGI و یا ASP استفاده می گردد ، استفاده از مجوز فوق ، لازم خواهد بود. انشعاب فایل های مربوط به اسکریپت ها می بایست قبلا" به برنامه های Scripting مربوطه ، map شده باشد
* Scripts and Executables :مجوز فوق ، امکان اجرای برنامه های EXE و یا DLL را فراهم خواهد کرد( علاوه بر امکان اجرای فایل های ASP و CGI ) . با توجه به حساس بودن مجوز فوق ، استفاده از آن بجزء در موارد خاص و کاملا" کنترل شده ، توصیه نمی گردد .
مجوزهای فوق را می توان همزمان با نمایش جعبه محاوره ای مربوط به خصلت های www و FTP ، تنظیم نمود .
مقایسه IISو: Apache
در مقام مقایسه و آپاچی می توان گفت که هر کدام دارای مزایا و معایبی نسبت به یکدیگر هستند. IIS فقط برای اجرا در ویندوز ساخته شده است به خصوص نسخه ششم آن فقط در ویندوز 2003 قابل اجرا می باشد. اگر چه بسیاری از کارشناسان، این مسئله را نوعی نقطه ضعف در ساختار IIS می دانند، برخی دیگر هماهنگی بسیار دقیق میان آن و ویندوز 2003 و سرویس های دیگر سیستم عامل را که باعث آسان تر بودن مدیریت IIS شده است، از نقاط برتری آن به حساب می آورند. به خصوص در نسخه ششم جدا شدن ماژول مخصوص دریافت درخواست ها(Request) از ماژول ویژه پردازش آن ها، سهم به سزایی در افزایش کارایی آن داشته است. در این روش ماژول Listener که در کرنل مستقر شده است (Http.sys)، درخواست های ارسالی از طرف کلاینت ها را دریافت کرده و آن ها را به ترتیب در داخل یک یا چند صف درخواست قرار می دهد. سپس IIS به این درخواست ها با اختصاص حداقل یک پروسه کاری (Worker Process) به هر درخواست، پاسخ می دهد. این ویژگی باعث می شود حتی زمانی که IIS به شدت مشغول پاسخ دهی به درخواست های قبلی است، ماژول جداگانه ای که در کرنل مستقر است، بتوانند درخواست های جدید را دریافت کرده و حداقل آن ها را در انتظار پاسخ قرار دهند. همچنین با این وضعیت، سیستم عامل می تواند کنترل بهتری را در اختصاص پروسه های لازم به IIS جهت پردازش درخواست ها انجام دهد. در آپاچی هم جریان تا حدودی مشابه همین روال است. در این جا تعدادی ماژول با قابلیت انجام چند پردازش در واحد زمان (Multi Processing module) وظیفه دریافت و پاسخ به درخواست ها را برعهده دارند. این ماژول ها که با استفاده از تکنولوژی APR یا Apache Portable Runtime برروی بسیاری از سیستم عامل های ی که از کدهای کامپایل شده زبان C پشتیبانی می کنند، قابل اجرا هستند، با استفاده از امکانات و قابلیت هایMultithre ading همان سیستم عامل میزبان به سرعت و به صورت همزمان درخواست های رسیده از طرف کلاینت ها را دریافت و پردازش می کنند.
مورد آپاچی نسخه دوم، مسئله به این سادگی و روانی نیست و قاعدتاً مدیریت امنیت در مورد آن پیچیده تر و وقت گیرتر از IIS است. البته اکنون ماژول ها و آداپتورهای جدیدی در آپاچی تعبیه شده که امکان ارتباط بین آن و اکتیودایرکتوری ویندوز یا Password یونیکس را به وجود می آورد، اما باز هم می توان گفت که اصولاً با وجود این ارتباط هم در آپاچی، سیستم عامل و وب سرور هر کدام ساز خود را می زنند و آپاچی چندان از قواعد امنیتی تعریف شده در سیستم عامل تبعیت نمی کند. البته بسیاری از طرفداران آپاچی این مسئله را نوعی نقطه قوت آپاچی دانسته و با ذکر این نکته که اولاً هر درخواست از طرف خارج باید از دو سد محکم سیستم عامل و وب سرور عبور کند و ثانیاً حفره های امنیتی در سیستم عامل های یونیکس و آپاچی بسیار کمتر از ویندوز و IIS است، استفاده از آپاچی را از لحاظ امنیتی دارای ریسک کمتری نسبت به IIS می دانند.
از لحاظ پروتکل های امنیتی، هر دو وب سرور کلیه پروتکل ها از جمله SSL ،IPsec و مکانیسم های هویت سنجی Basic Digest LDAP را پشتیبانی می کنند.
مقایسه کارایی آپاچی و IIS همواره از مشکل ترین بحث های تکنیکی دنیای وب سرورها بوده است؛ چرا که این نوع مقایسه مستلزم به وجود آوردن شرایط یکسان آزمایش به صورت منصفانه برای دو طرف رقابت است که دست یافتن به این شرایط، کاری آسان و صددرصد قابل انجام نمی باشد. شاید به تصور خیلی ها می توان زمان دریافت، پردازش و پاسخ هر دو وب سرور به یک صفحه CGI یا JSP (که مورد پشتیبانی هر است) را برروی یک سرور با مشخصات سخت افزاری یکسان به معرض آزمون گذاشت، اما این هم به تنهایی نمی تواند پاسخگوی معمای کارایی باشد. چرا که اولاً شاید هر دو وب سرور ادعای بهترین کارایی خود در تکنولوژی مشترکی مثل JSP را نداشته باشند. مثلاً شاید مایکروسافت ASP.NET را که فعلا در آپاچی پشتیبانی نمی شود، بهترین عرصه برای نمودار شدن کارایی IIS بداند. ثانیاًٌ نباید فراموش کرد که آپاچی، یک وب سرور چند سکویی می باشد و این باعث می شود تا صورت مسئله کمی پیچیده تر شود و کسانی که می خواهند به داوری مسابقه کارایی این دو وب سرور بنشینند را با سوالی جدیدتر روبرو کند و آن هم این است که IIS ویندوز را با آپاچی کدام سیستم عامل مقایسه کنیم ؟ آیا اصولاً آپاچی ادعایی بر ارایه بهترین کیفیت و کارایی خود برروی سیستم عامل مشترک ویندوز را دارد یا این که کماکان به سرعت خود برروی سیستم عامل های یونیکس و لینوکس می بالد؟
در IIS 6 وجود مدل های متعدد پردازشی که ویژه کار در محیط های چند پردازنده ای در نظر گرفته شده اند، سرعت اجرای برنامه های ASP و یا ISAPI را تا حد بسیار مطلوبی بالا برده اند. همچنین درایور HTTP.sys در این نسخه قادر است به صورت مستقیم به اطلاعات موجود در cache (چه هارددیسک و چه حافظه اصلی) دسترسی پیدا کند بدون آن که نیازمند وجود واسطه ای مثل پروسه های کاری برای انجام این کار باشد. IIS همچنین قادر است صفحاتی را که توسط عناصر دینامیک وب به صورت RunTime ساخته می شوند را در cache ذخیره کند تا در صورتی که کلاینت بعدی هم بخواهد همین صفحه را تولید کند، به جای ساختن دوباره آن، از محل cache اطلاعات را بدون پردازش خاصی به سمت کلاینت مذکور بفرستد.
در آپاچی نیز اوضاع به همین گونه است. ماژول های modperl وmodphp با استفاده از همان مکانیسم cache سرعت تولید صفحات دینامیک را همانند صفحات استاتیک به حداکثر خود می رسانند. همچنین دقیقاً مشابه فیلترهای ASP و ISAPI در IIS، در این جا هم ماژول های Perl و PHP مستقیماً درخواست های کلاینت ها را مورد بررسی قرار داده و پاسخ لازم را ارسال می کنند و بدین وسیله از ارجاع درخواست ها به محیط خارج آپاچی و کند شدن روند پاسخ جلوگیری می کنند.
تفاوت ها بطور خلاصه:
* معمولاً وب سرور apacheرا روی سیستم عامل لینوکس و وب سرور IIS را روی سیستم عامل ویندوز نصب می کنند.
* قبل از مقایسه مشخصات امنیتی باید به این نکته اشاره کنیم که به دلیل مجتمع بودن وب سرور IIS با سیستم عامل راه انداز آن ، و دارا بودن مسائل Integration مسائل امنیتی در این وب سرور بهتر رعایت شده است یعنی همان سیستمی که مسائل امنیتی را برای کابران سیستم اصلی فراهم میکند برای سیستم IIS هم کار میکند ولی آپاچی چون حالت Cross-platform دارد چنین قابلیتی را دارا نمی باشد .
* از نظر محبوبیت وب سرور آپاچی محبوب تر از IIS است .
.
زطور لاصه پایان
3