پيکربندی IIS با رعايت مسائل امنيتی ( بخش اول )
اغلب سازمان های دولتی و خصوصی در کشور، دارای وب سايت اختصاصی خود در اينترنت می باشند . سازمان ها و موسسات برای ارائه وب سايت ، يا خود امکانات مربوطه را فراهم نموده و با نصب تجهيزات سخت افزاری و تهيه پهنای باند لازم، اقدام به عرضه سايت خود در اينترنت نموده و يا از امکانات مربوط به شرکت های ارائه دهنده خدمات ميزبانی استفاده می نمايند . وجه اشتراک دو سناريوی فوق و يا ساير سناريوهای ديگر، استفاده از يک سرويس دهنده وب است . بدون ترديد سرويس دهنده وب يکی از مهمترين نرم افزارهای موجود در دنيای اينترنت محسوب می گردد . کاربرانی که به سايت يک سازمان و يا موسسه متصل و درخواست اطلاعاتی را می نمايند ، خواسته آنان در نهايت در اختيار سرويس دهنده وب گذاشته می شود . سرويس دهنده وب، اولين نقطه ورود اطلاعات و آخرين نقطه خروج اطلاعات از يک سايت است . بديهی است نصب و پيکربندی مناسب چنين نرم افزار مهمی ، بسيار حائز اهميت بوده و تدابيرامنيتی خاصی را طلب می نمايد .در ادامه به بررسی نحوه پيکربندی سرويس دهنده وب IIS در شبکه های مبتنی بر ويندوز با تمرکز بر مسائل امنيتی ، خواهيم پرداخت .
IIS)Internet Information services) ، يکی از سرويس دهندگان وب است که از آن برای برای نشر و توزيع سريع محتويات مبتنی بر وب ، برای مرورگرهای استاندارد استفاده می شود . نسخه پنج 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 ، فايل ها ، پورت های TCP/IP و Account کاربران نمونه هائی در اين زمينه بوده که پاسخ مناسب به سوالات زير در اين رابطه راهگشا خواهد بود :
• آيا سرويس دهنده از طريق اينترنت قابل دستيابی است ؟
• آيا سرويس دهنده از طريق اينترانت قابل دستيابی است ؟
• چه تعداد وب سايت بر روی سرويس دهنده ميزبان خواهند شد ؟
• آيا وب سايت ها نيازمند استفاده از محتويات بصورت اشتراکی می باشند ؟
• آيا سرويس دهنده امکان دستيابی را برای افراد ناشناس ( هر فرد ) فراهم نموده و يا صرفا" افراد مجاز حق استفاده از سرويس دهنده را خواهند داشت ؟ و يا هر دو ؟
• آيا امکان استفاده و حمايت از SSL)Secure Socket Layer) وجود دارد ؟
• آيا سرويس دهنده صرفا" برای دستيابی به وب از طريق HTTP استفاده می گردد ؟
• آيا سرويس دهنده ، سرويس FTP را حمايت می نمايد ؟
• آيا کاربرانی وجود دارد که نيازمند عمليات خاصی نظير کپی، فعال نمودن، حذف و يا نوشتن فايل هائی بر روی سرويس دهنده باشند ؟
موارد زير در زمان نصب IIS پيشنهاد می گردد :
• کامپيوتری که IIS بر روی آن نصب شده است را در يک محل امن فيزيکی قرار داده و صرفا" افراد مجاز قادر به دستيابی فيزيکی به سرويس دهنده باشند .
• در صورت امکان، IIS را بر روی يک سرويس دهنده Standalone نصب نمائيد. در صورتيکه IIS بر روی يک سرويس دهنده از نوع Domain Controller نصب گردد و سرويس دهنده وب مورد حمله قرار گيرد، تمام سرويس دهنده بهمراه اطلاعات موجود در معرض آسيب قرار خواهند گرفت . علاوه بر مورد فوق، نصب IIS بر روی يک سرويس دهنده از نوع Domain controller ، باعث افزايش حجم عمليات سرويس دهنده و متعاقبا" کاهش کارآئی سيستم در ارائه سرويس های مربوط به وب خواهد شد .
• برنامه های کاربردی و يا ابزارهای پياده سازی نمی بايست بر روی سرويس دهنده IIS نصب گردند .
• کامپيوتر مربوط به نصب IIS را بگونه ای مناسب پارتيشن نموده تا هر يک از سرويس ها نظير www و يا FTP بر روی پارتيشن های مجزاء قرار گيرند .
• IIS امکان نصب برنامه ها را در مکانی ديگر بجز پارتيشن C فراهم نمی نمايد ( مگراينکه يک نصب سفارشی داشته باشيم ) .موضوع فوق به عملکرد سيستم عامل مرتبط می گردد . مجوزهای پيش فرض در رابطه با %Systemdrive% اعمال می گردد ( مثلا" درايو C) . موضوع فوق می تواند باعث عدم صحت کارکرد مناسب برخی از سرويس های IIS گردد. می بايست مطمئن شد که مجوزهای سيستم عامل با عمليات مربوط به سرويس های IIS ، رابطه ای ندارند .
• تمام پروتکل های پشته ای (Stack) غير از TCP/IP را از روی سيستم حذف نمائيد. ( در موارديکه برخی از کاربران اينترانت نيازمند برخی از اين نوع پروتکل ها می باشند می بايست با دقت اقدام به نصب و پيکربندی مناسب آن نمود ) .
• روتينگ IP ، بصورت پيش فرض غيرفعال است و می بايست به همان حالت باقی بماند . در صورت فعال شدن روتينگ ، اين امکان وجود خواهد داشت که داده هائی از طريق کاربران اينترانت به اينترنت ارسال گردد .
• نصب Client for Microsoft networking ، بمنظور اجرای سرويس های HTTP,FTP,SMTP و NNTP ضروری خواهد بود . در صورتيکه ماژول فوق نصب نگردد، امکان اجرای سرويس های فوق بصورت دستی و يا اتوماتيک وجود نخواهد داشت .
• در صورتيکه تمايل به نصب سرويس های NNTP و SMTP ، می بايست سرويس File and Print Sharing for Microsoft نيز نصب گردند .
عمليات قبل از نصب IIS
گروه هائی برای فايل دايرکتوری و اهداف مديريتی
مديريت IIS با چندين گروه
نصب تمام Patch ها برای سيستم عامل و IIS
دايرکتوری پيش فرض نصب IIS
دايرکتوری های IIS نسخه پنج را می توان در يک محل خاص ( سفارشی ) ديگر نيز نصب نمود( تحقق خواسته فوق صرفا" از طريق يک نصب سفارشی ميسر می گردد ) . بدين منظور از يک فايل پاسخ استفاده می شود. فايل پاسخ ( مثلا" iis5.txt) می بايست دارای اطلاعات زير باشد :
اطلاعات ضروری در فايل پاسخ بمنظور تغيير محل نصب IIS |
[Components] |
در ادامه از دستور زير برای نصب استفاده می گردد . ( از طريق خط دستور )
Sysocmgr/I:%windir%\inf\sysoc.inf /u:a:\iis5.txt |
جدول زير مجوزهای لازم NTFS و IIS در رابطه با دايرکتوری های مربوطه را نشان می دهد :
Type of | Example Directories | Data Examples | NTFS File Permissions | IIS 5.0 |
Static Content | \Inetpub\wwwroot\images | HTML, images, FTP | Administrators (Full Control) | Read |
FTPUploads | \Inetpub\ftproot\dropbox | Directory used as a | Administrators (Full Control) | Write |
ScriptFiles | \Inetpub\wwwroot\scripts | .ASP | Administrators (Full Control) | Scriptsonly |
Other | \WebScripts\executables | .exe, .dll, .cmd, .pl | Administrators (Full Control) | Scripts only |
Metabase | \WINNT\system32\inetsrv | MetaBase.bin | Administrators (Full Control) | N/A |
دايرکتوری ها ئی که شامل فايل های فقط خواندنی هستند ( فايل های Html ، تصاوير، فايل های آماده برای Download توسط FTP و ... ) ، می بايست دارای مجوز فقط خواندنی بمنظور دستيابی گروه WebUsers باشند . هر نوع از فايل های فوق می تواند دارای دايرکتوری اختصاصی خود با مجوز فقط خواندنی باشند . مجوزهای لازم Read&Execute write و Modify را می بايست به گروهی که مسئوليت مديريت محتويات وب را برعهده دارد اعطاء گردد ( مثلا" گروه WebAdmin) . برای فايل های اجرائی ( اسکريپت ها ، فايل های batch و ... ) ، می بايست يک دايرکتوری اختصاصی ايجاد کرد . دايرکتوری های فوق صرفا" دارای مجوز Travesr Folder/Execute مربوط به NTFS برای کاربرانی می باشند که مجوز لازم بمنظور دستيابی به سايت را دارا می باشند ( کاربر IUSER_computername و ساير کاربران تعريف شده در گروه WebUsers ) . دايرکتوری فوق همچنين می بايست دارای مجوز های مربوط به IIS و از نوع Script only باشد. مجوز Scripts and Executables مربوط به IIS ، می بايست صرفا" به دايرکتوری هائی که به اين مجوز نياز دارند اعطاء گردد. مثلا" يک دايرکتوری که شامل فايل های باينری بوده و می بايست اين فايل ها توسط سرويس دهنده وب اجراء گردند .
تمام دايرکتوريهائی که دارای نمونه مثال هائی بوده و يا هر اسکريپت استفاده شده بمنظور اجرای برنامه های نمونه را می بايست حذف و يا انتقال داد . در زمان نصب IIS دايرکتوری های متعددی ايجاد که در آنها فايل های نمونه بهمراه اسکريپت ها قرار می گيرد. پيشنهاد می گردد دايرکتوری های فوق حذف و يا مکان آنها تغيير يابد . دايرکتوری های زير نمونه هائی در اين زمينه می باشند :
\InetPub\iissamples |
سرويس های IIS
• www . سرويس فوق،بمنظور ايجاد يک سرويس دهنده وب و سرويس دهی لازم به درخواست سرويس گيرندگان برای صفحات وب استفاده می گردد .
• FTP . سرويس فوق، بمنظور ارائه خدمات لازم در خصوص ارسال و دريافت فايل بر روی سرويس دهنده برای کاربران استفاده می گردد .
• SMTP . سرويس فوق،امکان ارسال و دريافت نامه الکترونيکی برای سرويس گيرندگان را در پاسخ به فرم ها و برنامه های خاص ديگر فراهم می نمايد .
• NNTP . سرويس فوق، بمنظور ميزبانی يک سرويس دهنده خبری USENET استفاده می گردد .
در زمان نصب IIS ، می توان تصميم به نصب برخی از سرويس ها و يا همه آنها گرفت . پس از نصب IIS ، در صورتيکه به وجود برخی از سرويس ها نياز نباشد، می توان آنها را غير فعال نمود. بدين منظور می بايست مراحل زير را دنبال کرد :
• انتخاب گزينه Services از طريق مسير زير :
Programs => Administrative Tools => Services |
• انتخاب سرويسی که قصد غير فعال کردن آن را داريم . در ادامه با فعال کردن کليد سمت راست موس ، گزينه Stop را بمنظور توقف سرويس فعال نمائيد .
• بمنظور اطمينان از عدم اجرای سرويس غير فعال شده در زمان راه اندازی مجدد سيستم، سرويس را مشخص و پس از فعال کردن کليد سمت راست موس، گزينه Properties را انتخاب ودر بخش Startup type وضعيت اجرای سرويس را از حالت Automatic به Disable تغيير دهيد .
ايمن سازی متابيس
متابيس در يک فايل خاص با نام Metabase.bin و در آدرس winnt\system32\ineterv \ ذخيره می گردد . پس از استقرار IIS در حافظه ، متابيس نيز از روی ديسک خوانده شده و در حافظه مستقر می گردد . پس از غيرفعال شدن IIS ، متابيس مجددا" بر روی ديسک ذخيره خواهد شد . ( متابيس بدفعاتی که IIS اجراء خواهد شد بر روی ديسک ذخيره می گردد) . با توجه به نقش حياتی فايل فوق برای برنامه IIS ، حفاظت و کنترل دستيابی به آن دارای اهميت فراوان است . در صورتيکه فايل فوق ، با يک فايل ديگر ( نامعتبر) جايگزين گردد، عملکرد صحيح برنامه IIS بمخاطره خواهد افتاد . برنامه IIS سريعا" متاثر از تغييرات خواهد شد . (اولين مرتبه ای که IIS پس از اعمال تغييرات اجراء می گردد ) . در چنين مواردی ممکن است سرويس مربوطه از طريق سرويس دهنده ، اجراء نشود. پيشنهاد می گردد که فايل Metabsat.bin بر روی پارتيشننی از نوع NTFS ذخيره و با استفاده از امکانات امنيتی ويندوز 2000 آن را حفاظت کرد . مجوزهای پيش فرض برای فايل فوق ، System و Administrator Full Access می باشد . محدوديت دستيابی به System و local Administrators امنيتی قابل قبول در رابطه با فايل فوق را ايجاد و ضرورتی به تغيير و يا اضافه نمودن تنظيمات جديدی نخواهد بود .
بمنظورايجاد پوسته حفاظتی مطلوبتر امنيتی در رابطه با فايل فوق ، پيشنهاد می گردد فايل فوق برای کاربران غير مجاز مخفی شود . انتقال و يا تغيير نام فايل نيز می تواند امنيت فايل فوق ر ا مضاعف نما يد . بدين منظور می بايست در ابتدا برنامه IIS متوقف و پس از تغيير نام و يا انتقال فايل فوق ، تغييرات لازم را در کليد ريجستری زير اعمال نمود .
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetMgr\Parameters |
در ادامه يک مقدار جديد REG_SZ برای کليد فوق با نام MetadataFile ايجاد و مسير کامل فايل را که شامل نام درايو و نام فايل است ، بعنوان نام جديد فايل متابيس معرفی نمائيم . بدين ترتيب برنامه 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 از کاربر سلب گردد .
در بخش دوم اين مقاله به بررسی نحوه تنظيم خصلت های متفاوت برنامه Internet Services Manager با رعايت مسائل امنيتی خواهيم پرداخت .