برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

ایمن سازی سرویس دهنده FTP

سرویس FTP)File Transfer Protocol) یکی از قدیمی ترین و متداولترین سرویس های موجود بر روی اینترنت است . از سرویس فوق ، بمنظور ارسال و دریافت فایل در یک شبکه استفاده می گردد. سرویس FTP ، توسط عموم کاربران اینترنت استفاده و بعنوان استانداردی برای ارسال و دریافت فایل در شبکه ( اینترانت ، اینترنت )  توسط اکثر سیستم های عامل پذیرفته  شده است
ویندوز 2000 بهمراه خود از یک سرویس دهنده FTP استفاده می نماید که بعنوان بخشی از IIS  در نظر گرفته می شود. مدیران سیستم با استفاده از سرویس فوق و ترکیب آن با  سایر امکانات ارائه شده توسط ویندوز ، قادر به ایجاد و پیکربندی یک سایت FTP با ضریب امنیتی مناسبی خواهند بود.در ادامه و بمنظور ایمن سازی یک سایت FTP ، پیشنهادات متعددی ارائه می گردد.

نکته اول : دستیابی از طریق  Anonymous account را غیر فعال نمائید . دستیابی از نوع Anonymouse، بصورت پیش فرض و پس از نصب اولین سرویس دهنده  FTP فعال می گردد. روش  فوق ، امکان دستیابی به سایت FTP را بدون نیاز به یک  account  خاص فراهم می نماید. بدین ترتیب استفاده کنندگان بصورت کاملا" ناشناس قادر به استفاده از منابع موجود بر روی سرویس دهنده FTP  بوده و امکان مشاهده سودمند ترافیک سایت و در صورت ضرورت، ردیابی آنان وجود نخواهد داشت . با حذف قابلیت دستیابی Anonymous ، امکان دستیابی به سایت FTP صرفا" در اختیار کاربرانی قرار خواهد گرفت که دارای یک account معتبر باشند.
پس از تعریف هر یک از account های مورد نظر، می توان در ادامه با استفاده از ACL)Access Control List) کنترل ها و مجوزهای مربوط به دستیابی به دایرکتوری FTP ( محل فیزیکی استقرار سایت FTP بر روی دیسک ) را تعریف و مشخص نمود . در این رابطه می توان از مجوزهای NTFS استفاده کرد. به منظور غیر فعال نمودن Anonymous account ، می توان از طریق صفحه Property مربوط به سایت FTP  (  برنامه Internet Information Service )  عملیات مورد نظر را انجام داد .

نکته دوم : فعال نمودن Logging . با فعال نمودن Logging بمنظور اتصال به سایت FTP ، این اطمینان بوجود خواهد آمد که اطلاعات لازم ( آدرس های IP و یا نام کاربران ) در خصوص کاربرانی که بصورت موفقیت آمیز به سایت متصل شده اند ، ثبت خواهد شد.با استفاده از فایل های لاگ که در این رابطه ایجاد خواهد شد ، می توان ترافیک موجود بر روی سایت را مشاهده و در صورت یک تهاجم ، امکان ردیابی اولیه آن فراهم گردد. بمنظور فعال نمودن ویژگی فوق، کافی است که  Chex box مربوطه  از طریق صفحه Property مربوط به سایت FTP انتخاب گردد .در ادامه ، فایل های لاگ  بر اساس فرمتی که مشخص شده است ، ایجاد خواهند شد . استفاده از فایل های لاگ ، بمنظور مشاهده و آنالیز ترافیک سایت  بسیار مفید خواهد بود.

نکته سوم : تنظیم و پیکربندی مناسب  لیست ACL ( لیست کنترل دستیابی ) .دستیتابی به دایرکتوری FTP می بایست با استفاده از مجوزهای NTFS و بکارگیری محدودیت های ACL ، کنترل گردد .  دایرکتوری FTP نباید دارای گروه Everyone با تمامی امتیازات و مجوزها باشد ( امکان کنترل مجوزها  و کاربرانی که سایت FTP متصل شده اند وجود نخواهد داشت ) .بدین منظور لازم است  بر روی دایرکتوری مربوط به سایت FTP مستقر و با انتخاب گزینه Property و  Security Option ، اسامی موجود را حذف و  با انتخاب دکمه Add از لیست موجود،  Authenticated user را انتخاب کرد . در ادامه می توان با توجه به سیاست های موجود مجوز Read,Write و List Folder contents را در اختیار گروه مربوطه قرار داد . در صورتیکه سیاست موجود اقتضاء می کند ، می توان صرفا" امکان دستیابی Write را در اختیار گروه مربوطه قرار و مجوزهای Read وList Folder Contents را از آنها سلب نمود .

نکته چهارم : پیکربندی سایت بعنوان دریافت کننده نه ارسال کننده  . در صورتیکه صرفا" نیاز است که کاربران فایل هائی را برای سرویس دهنده ، ارسال و امکان دریافت فایل از سرویس دهنده را نداشته باشند ، می توان سایت FTP را بصورت Blind put پیکربندی نمود. بدین ترتیب به کاربران امکان ارسال ( نوشتن ) فایل بر روی سرویس دهنده داده خواهد شد .( امکان  خواندن از دایرکتوری FTP  وجود نخواهد داشت ) . بدین منظور می توان پس از انتخاب سایت FTP از طریق Home Directory ، اقدام به تنظیمات مورد نظر نمود.

نکته پنجم : فعال نمودن Disk Quotas. با استفاده از امکانات ارائه شده توسط ویندوز 2000 ، می توان اقدام به تعیین ظرفیت و یا سهیه ذخیره سازی بر روی دیسک برای هر یک از کاربران نمود..ویژگی فوق ، باعث اعمال محدودیت در رابطه با میزان فضای ذخیره سازی مربوط به یک کاربر می گردد.بصورت پیش فرض ، مالکیت  به هر کاربر که در فایلی می نویسد اعطاء می گردد . با فعال نمودن و انجام تنظیمات مورد نظر، می توان پیشگیری لازم در ارتباط با تهاجم به یک سایت FTP را انجام داد ( پر نمودن ظرفیت دیسک ). در صورت تحقق وضعیت فوق ، دامنه اشکال بوجود آمده به سایر  سرویس هائی که از فضای ذخیره سازی دیسک استفاده می نمایند نیز سرایت خواهد کرد. برای فعال نمودن Quota Management ، بر روی درایو موردنظر مستقر و با کلیک سمت راست گزینه Property را انتخاب و در نهایت گزینه Quota Tab انتخاب شود .امکان فوق ، صرفا" در ارتبا ط با پارتیشن های NTFS قابل استفاده خواهد بود.استفاده از Disk Quota ، محدود به پارتیش های NTFS بوده و علاوه بر این  صرفا" می تواند در رابطه با یک کاربر استفاده شده وامکان بکارگیری آن در ارتباط با گروه ها وجود نخواهد داشت . با انتخاب دکمه Quota Entries می توان اقدام به تعریف یک Entry جدید و تعریف محدودیت های مورد نظر نمود.

نکته ششم : استفاده از محدودیت زمانی برای Logon . با استفاده از امکانات ارائه شده همراه  ویندوز 2000 ، می توان زمان خاصی را برای ورود به شبکه کا ربران تعریف نمود. بدین ترتیب کاربران صرفا" قادر به استفاده از سرویس دهنده در ساعات مشخص شده خواهند بود.ویژگی فوق ، بطرز محسوسی باعث کنترل دستیابی به سایت FTP خواهد شد. برای پیکربندی زمان  logon ، از برنامه Active Directory Users and Computers استفاده می گردد . پس از فعال شدن برنامه فوق ، کاربر مورد نظر را انتخاب و پس از مشاهده صفحه  Property مربوطه، با انتخاب دکمه Logon hours  از طریق Account Tab ، می توان اقدام به  مشخص نمودن زمان مورد نظر کاربر برای استفاده ازسرویس دهنده  نمود.


 

نکته هفتم : محدودیت دستیابی بر اساس آدرس IP . بمنظور دستیابی به سایت FTP می توان معیار دستیابی را بر اساس آدرس های IP خاصی در نظر گرفت . با اعمال محدودیت فوق ، اقدامات مناسبی بمنظور کنترل دستیابی به سایت در نظر گرفته خواهد شد . بمنظور فعال نمودن ویژگی فوق ، پس از انتخاب سایت FTP از طریق برنامهInternet Information Services و مشاهده  صفحه Property ، گزینه Directory Security Tab انتخاب گردد. در ادامه،  Denied Access فعال و می توان  با استفاده از دکمه Add آدرس های IP تائید شده را معرفی کرد.

نکته هشتم :ثبت رویدادهای Audit logon . با فعال نمودن  Auditing ( ممیزی ) مربوط به رویدادهای Account Logon ، می توان تمامی تلاش های موفقیت آمیز و یا با شکست مواجه شده جهت اتصال به سایت FTP را با استفاده از Security log مربوط به Event Viewer ، مشاهده نمود. مشاهده ادواری این لاگ می تواند عامل موثری در کشف ، تشخیص و ردیابی  تهاجم به یک سایت باشد. (تشخیص مزاحمین و مهاجمین اطلاعاتی ). بمنظور فعال نمودن ویژگی فوق ، از برنامه Local Security Policy و یا Group Policy استفاده می گردد (Programs|Administrative Tools ) . پس از فعال شدن برنامه فوق و استقرار در Local Policies/audit policy ، می توان اقدام به تغییر Local Setting به Success و Failure نمود.

 

نکته نهم : فعال نمودن Strong Password . استفاده از رمزهای عبور پیچیده ،روشی مناسب بمنظور افزایش امنیت در خصوص ارائه یک سرویس خاص برای کاربران تائید شده است . با توجه به جایگاه سرویس دهنده FTP ، استفاده از رمزهای عبور قدرتمند می تواند عاملی موثر در جهت افزایش امنیت سایت های FTP باشد .  با استفاده از امکانات ارائه شده در ویندوز 2000 ، مدیران سیستم می توانند کاربران را مجبور به استفاده از رمزهای عبور مستحکم و قوی نمایند. بمنظور فعال نمودن ویژگی فوق ، از برنامه Local Security Policy و یا Group Policy استفاده می گردد (Programs|Administrative Tools ) . پس از فعال شدن برنامه فوق و استقرار در Account Policy/Password Policy  ، می توان گزینه Passwords Must Meet Complexity Requirements را فعال نمود . پس از فعال شدن ویژگی فوق ، هر یک از account های تعریف شده تابع شرایط و محدودیت های زیر خواهند بود :

  • رمز عبور تعریف شده نمی تواند شامل تمام و یا بخشی از نام Account کاربر باشد .
  • رمز عبور تعریف شده می بایست دارای طولی به اندازه حداقل  شش باشد .
  • رمز عبور تعریف شده می تواند شامل کاراکترها ئی از سه گروه از  چهار گروه زیر باشد :
    - حروف الفبائی  A-Z
    - حروف الفبائی a-z
    - ارقام صفر تا نه
    - کاراکترهای خاص ( %,#,$,!)

نکته دهم : فعال نمودن Account Lockout و Account Lockout Threshold .آگاهی و تشخیص رمزهای عبور یکی از موضوعات مورد علاقه اکثر مهاجمان و برنامه های تشخیص دهنده رمز عبوراست .با استفاده از امکانات ارائه شده بهمراه  ویندوز 2000 ، مدیران شبکه می توانند تعداد دفعاتی را که یک کاربرسعی در ورود به شبکه می نماید و عملیات وی با موفقیت همراه نمی گردد را مشخص و در صورت تحقق شرایط فوق ، account مربوطه غیر فعال گردد. با فعال نمودن ویژگی فوق و پیکربندی میزان آستانه ، مدیران شبکه می توانند عماکرد برنامه های تشخییص دهنده رمز های عبور و یا مهاجمان اطلاعاتی را محدود و ضریب ایمنی را افزایش دهند.  بمنظور فعال نمودن ویژگی فوق ، از برنامه Local Security Policy و یا Group Policy استفاده می گردد (Programs|Administrative Tools ) . پس از فعال شدن برنامه فوق و استقرار در Account Policy/Account Lockout Policy  ، می توان تنظیمات لازم در خصوص Account Lockout duration , Account lockout threshold و Reset account lockout counter after را انجام داد .

 

بخش اول : معرفی زیرساخت یک شبکه

واژه زیرساخت (Infrastructure)  از جمله واژه هائی است که در موارد متعددی بخدمت گرفته شده و دارای معانی متفاوتی است . واژه فوق اغلب برای تشریح مراحل نصب ، آماده سازی خدمات و امکانات مربوطه در زمینه یک عملیات خاص نظیر جاده ها ، سیستمهای ارتباطی،  خطوط ارتباطی برق و ... بکار گرفته می شود. در اغلب واژه نامه ها برای واژه فوق تعریفی مشابه زیر ارائه شده است :

یک بستر پایه برای ایجاد یک سازمان و یا سیستم .

با توجه به تعریف واژه فوق و از دیدگاه کامپیوتر، یک شبکه کامییوتری از عناصر اساسی تشکیل می گردد. مجموعه عناصر تشکیل دهنده زیر ساخت یک شبکه کامپیوتری را می توان به دو گروه اساسی زیر تقسیم نمود:

?        عناصری که بنوعی زیرساخت فیزیکی یک شبکه را تشکیل می دهند.( نظیر کامپیوترها ، کابل ها،  کارت های شبکه،  هاب ها و روترها ). ماهیت عناصر فوق بصورت سخت افزاری است .

?        عناصری که بنوعی زیر ساخت منطقی یک شبکه را تشکیل می دهند. ( نظیر : پروتکل های شبکه، سرویس های مربوط به DNS ، مدل های آدرس دهی IP،  سرویس های مربوط به دستیابی از راه دور و پروتکل های امتیتی ) ماهیت عناصر فوق نرم افزاری بوده که می بایست نصب و پیکربندی گردنند.

در ادامه به تشریح عناصر مربوط به زیرساخت منطقی یک شبکه پرداخته می شود.

عناصر مربوط به زیرساخت منطقی

شناخت زیرساخت فیزیکی در یک شبکه بدلیل ماهیت ملموس عناصر سخت افزاری و جایگاه هر یک از آنها بسادگی انجام خواهد شد. زیر ساخت منطقی یک شبکه کامپیوتری مستلزم استفاده از عناصر متفاوتی نظیر موارد زیر خواهد بود:

?        پروتکل های شبکه

?        مدل آدرس دهی IP

?        سرویس های مربوط به حل مشکل اسامی  و آدرس ها

?        دستیابی از راه دور

?        روتینگ و ترجمه آدرس های شبکه

?        سرویس های مربوط به ایجاد زیر ساخت های امنیتی

در ادامه به معرفی  هر یک از عناصر فوق و جایگاه آنها در یک شبکه خواهیم پرداخت .

پروتکل های شبکه

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

در ویندوز   ۲۰۰۰   نظیر ویندوز NT     و ۹۵ از پروتکل های متعدد ی نظیر : NWlink ( نسخه پیاده سازی شده از پروتکل IPX/SPX  توسط مایکروسافت ) و NetBEUI ( یک پروتکل ساده  سریع که در شبکه های کوچک با تاکید بر عدم  قابلیت روتینگ ) استفاده می گردد) . در ویندوز۲۰۰۰  از پروتکل TCP/IP استفاده می گردد.

 

 

مدل های شبکه ای

بمنظور شناخت مناسب نحوه عملکرد پروتکل در شبکه می بایست با برخی از مدل های رایج شبکه که معماری شبکه را تشریح می نمایند، آشنا گردید. مدل OSI (Open Systems Interconnection) بعنوان یک مرجع مناسب در این زمینه مطرح است . در مدل فوق از هفت لایه برای تشریح فرآیندهای مربوط به ارتباطات استفاده می گردد. در حقیقت هریک از لایه ها مسیولیت انجام عملیات خاصی را برعهده داشته و معیار و شاخص اصلی تقسیم بندی بر اساس عملیات مربوطه ای که می بایست در هر لایه صورت پذیرد. مدل OSI بعنوان یک مرجع و راهنما برای شناخت عملیات مربوط به ارتباطات استفاده می گردد. در بعد پیاده سازی خیلی از پروتکل دقیقا" از ساختار مدل OSI تبعیت نخواهند کرد. ولی برای شروع و آشنا شدن با عملکرد یک شبکه از بعد ارسال اطلاعات مطالعه مدل فوق موثر خواهد بود. شکل زیر هفت لایه معروف مدل OSI را نشان می دهد.

ارسال و دریافت اطلاعات از طریق لایه های مربوطه در کامپیوترهای فرستنده و گیرنده انجام خواهد شد. داده ها توسط یک برنامه و توسط کاربر تولید خواهند شد ( نظیر یک پیام الکترونیکی ) .شروع ارسال داده ها از لایه Application و در ادامه با حرکت به سمت پایین در هر لایه عملیات مربوط انجام و اطلاعاتی به بسته های اطلاعاتی  اضافه خواهد شد. در آخرین لایه ( لایه فیزیکی ) با توجه به محیط انتقال استفاده شده داده ها به سیگنالهای الکتریکی، پالس هائی از نور و یا سیگنالهای رادیوئی تبدیل و از طریق کابل و یا هوا برای کامپیوتر مقصد ارسال خواهند شد. پس از دریافت داده در کامپیوتر مقصد عملیات معکوس توسط هر یک از عناصر موجود در شبکه بر روی آنها انجام و در نهایت با رسیدن داده به لایه Application و بکمک یک برنامه امکان استفاده از اطلاعات  اراسالی توسط برنامه مربوطه فراهم خواهد شد. شکل زیر  نحوه انجام فرآیند فوق را نشان می دهد.

 

شناخت مدل فوق از این جهت مهم است که در پروتکل های پشته ای نظیر TCP/IP پروتکل های متعدد در لایه های متفاوت وجود داشته وهر یک دارای عملکرد اختصاص مربوط به خود می باشند. پروتکل های TCP ، UDP  ،  IP از جمله پروتکل هائی هستند که هریک عملیات مربوط به خود را با توجه به لایه مربوطه انجام می دهند. در ادامه به معرفی اولیه هر یک از  آنها خواهیم پرداخت . مدل OSI تنها مدل استفاده شده در شبکه نمی باشد و از مدل های دیگری نظیرمدل DoD  (Department of Defence)) نیز استفاده می گردد.

چرا پروتکل TCP/IP ؟

پروتکل TCP/IP استاندارد فعلی برای شبکه های بزرگ است . با اینکه پروتکل فوق کند و مستلزم استفاده از منابع بیشتری است ولی بدلیل مزایای بالای آن نظیر : قابلیت روتینگ ،  استفاده در اغلب پلات فورم ها و سیستم های عامل  همچنان در زمینه استفاده از پروتکل ها حرف اول را می زند. با استفاده از پروتکل فوق کاربری با در اختیار داشتن ویندوز و پس از اتصال به شبکه اینترنت براحتی قادر به ارتباط با کاربر دیگری خواهد بود  که از مکینتاش استفاده می کند 

برای مدیران شبکه امروزه کمتر محیطی را می توان یافت که نیازبه دارا بودن دانش کافی در رابطه با TCP/IP نباشد. حتی سیستم عامل شبکه ای ناول که سالیان متمادی از پروتکل IPX/SPX برای امر ارتباطات خود استفاده می کرد در نسخه شماره پنج خود به ضرورت استفاده از پروتکل فوق واقف و نسخه اختصاصی  خود را در این زمینه ارائه نمود.

پروتکل TCP/IP در ابتدا برای استفاده در شبکه ARPAnet ( نسخه قبلی اینترنت ) طراحی گردید. وزارت دفاع امریکا با همکاری برخی از دانشگاهها اقدام به طراحی یک سیستم جهانی نمود که دارای قابلیت ها و ظرفیت های متعدد حتی در صورت بروز جنگ هسته ای باشد. پروتکل ارتباطی برای اینچنین شبکه ای TCP/IP در نظر گرفته شد.

بمنظور پیکربندی مناسب پروتکل TCP/IP در ویندوز ۲۰۰۰ می بایست به موارد ذیل توجه نمود:

?        تخصیص دستی  آدرس  IP برای هر یک از منابع ضروری در شبکه  و یا استفاده منابع ضروری  در شبکه از سیستمی که بصورت پویا به آنان IP اختصاص خواهد داد. در این حالت لازم است که سرویس دهنده ای که رسالت فوق در شبکه را برعهده خواهد گرفت نصب و پیکربندی گردد.             ( DHCP server )

?        جایگاه Subnet mask . بکمک آن می توان مشخص نمود که کدام بخش IP مربوط به شماره شناسائی (ID) شبکه بوده وکدام بخش مربوط به شماره شناسائی (ID) کامپیوتر Host است.

?        در صورتیکه لازم است بسته های اطلاعاتی از شبکه خارج و برای شبکه دیگر ارسال گردنند( روتینگ ) می بایست Gateway پیش فرض را مشخص نمود.

?        آدرس مربوط به DNS که مسئولیت حل مشکل تبدیل نام به آدرس را برعهده خواهد داشت . ذکر این نکته ضروری است که استفاده از DNS در شبکه های ویندوز ۲۰۰۰ که بعنوان کنترل کننده دامنه محسوب شده و در کنار خود از Active Directory استفاده می کند یک ضرورت است نه انتخاب.

?        آدرس مربوط به سرویس دهنده WINS که مسئولیت برطرف کردن اسامی NetBIOS به IP مربوط را برعهده خواهد داشت. در صورت نیاز می توان امکان NetBIOS برروی TCP/IP را غیر فعال نموده و در چنین حالتی ضرورتی به نصب سرویس دهنده WINS نخواهد بود.

اغلب موارد فوق را می توان با استفاده از سرویس دهنده DHCP بصورت اتوماتیک انجام داد. شکل  صفحه بعد نحوه تغییر  خصایص پروتکل TCP/IP در ویندوز ۲۰۰۰  را نشان می دهد.

 

 

 

اجزای پروتکل TCP/IP

پروتکل TCP/IP  از مجموعه پروتکل های دیگر تشکیل شده که هر یک در لایه مربوطه، وظایف خود را انجام می دهند. پروتکل های موجود در لایه های Transport  و Network  دارای اهمیت بسزائی بوده و لازم است که در این بخش به معرفی آنها بپردازیم .

?        پروتکل TCP(Transmission Control Protocol) . مهمترین وظیفه پروتکل فوق اطمینان از صحت ارسال اطلاعات است . پروتکل فوق اصطلاحا" Connection-oriented نامیده می شود. علت این امر ایجاد یک ارتباط مجازی بین کامپیوترهای فرستنده و گیرنده بعد از ارسال اطلا عات است . پروتکل هائی از این نوع امکانات بیشتری را بمنظور کنترل خطاهای احتمالی در ارسال اطلاعات فراهم نموده ولی بدلیل افزایش بار عملیاتی سیستم کارائی آنان کاهش خواهد یافت . از پروتکل TCP  بعنوان یک پروتکل قابل اطمینان نیز یاد می شود. علت این امر ارسال اطلاعات و کسب آگاهی لازم از گیرنده اطلاعات بمنظور اطمینان از صحت ارسال توسط فرستنده است . در صورتیکه بسته های  اطلاعاتی بدرستی دراختیار فرستنده  قرار نگیرند فرستنده مجددا" اقدام به ارسال اطلاعات می نماید.

?        پروتکل UDP(User Datagram Protocol) . پروتکل فوق نظیر پروتکل TCP در لایه " حمل " فعالیت می نماید.  UDP بر خلاف پروتکل TCP  بصورت "بدون اتصال " است . بدیهی است که سرعت پروتکل فوق نسبت به TCP سریعتر بوده ولی از بعد کنترل خطاء تضمینات لازم را ارائه نخواهد داد. بهترین جایگاه استفاده از پروتکل فوق در مواردی است که برای ارسال و دریافت اطلاعات به یک سطح بالا از اعتماد نیاز نداشته باشیم .

?        پروتکل IP(Internet Protocol) . پروتکل فوق در لایه شبکه ایفای وظیفه کرده و مهمترین مسئولیت  آن دریافت و ارسال بسته های اطلاعاتی به مقاصد درست است . پروتکل فوق با استفاده آدرس های نسبت داده شده منطقی، عملیات روتینگ را انجام خواهد داد.

پروتکل های موجود در لایه Application  پروتکل TCP/IP

پروتکل TCP/IP صرفا" به سه پروتکل TCP ،  UDP  و IP محدود نشده و در سطح لایه Application دارای مجموعه گسترده ای از سایر پروتکل ها است . پروتکل های فوق بعنوان مجموعه ابزارهائی برای مشاهده  ،   اشکال زدائی و اخذ اطلاعات و سایر عملیات مورد استفاده قرار می گیرند.در این بخش به معرفی برخی از این پروتکل ها خواهیم پرداخت .

?        FTP(File Transfer Protocol) . از پروتکل فوق برای تکثیر فایل های موجود بر روی  یک کامیپیوتر و کامپیوتر دیگر استفاده می گردد. ویندوز ۲۰۰۰ دارای یک برنامه خط دستوری بوده که بعنوان سرویس گیرنده ایفای وظیفه کرده و امکان ارسال و یا دریافت فایل ها را از یک سرویس دهنده FTP فراهم می کند. سرویس دهنده FTP  بعنوان یک بخش مجزاء و در زمان نصب IIS ( سرویس دهنده اطلاعاتی اینترنت ) بر روی سیستم نصب خواهد شد.

?        SNMP(Simple Network Management Protocol) . از پروتکل فوق بمنظور اخذ اطلاعات آماری استفاده می گردد. یک سیستم مدیریتی درخواست خود را از یک آژانس SNMP مطرح و ماحصل عملیات کار در یک MIB(Management Information Base)  ذخیره می گردد. MIB یک بانک اطلاعاتی بوده که اطلاعات مربوط به کامپیوترهای موجود در شبکه را در خود نگهداری می نماید .( مثلا" به چه میزان فضا مربوط به هارد دیسک وجود دارد)

?        پروتکل TelNet . با استفاده از پروتکل فوق کاربران قادر به log on   اجرای برنامه ها و مشاهده فایل های موجود بر روی یک کامپیوتر از راه دور می باشند. ویندوز ۲۰۰۰ دارای برنامه های سرویس دهنده و گیرنده جهت فعال نمودن و استفاده از پتانسیل فوق است .

?         SMTP(simple Mail Transfer Protocol) . از پروتکل فوق برای ارسال پیام الکترونیکی بر روی اینترنت استفاده می گردد.

?         HTTP(HyperText Transfer Protocol) . پروتکل فوق مشهورترین پروتکل در این گروه بوده و از آن برای رایج ترین سرویس اینترنت یعنی وب استفاده می گردد. با استفاده از پروتکل فوق کامپیوترها قادر به مبادله فایل ها با فرمت های متفاوت ( متن،  تصاویر ،گرافیکی ، صدا  ویدئو و...) خواهند بود. برای مبادله اطلاعات با استناد به پروتکل فوق می بایست ، سرویس فوق از طریق نصب سرویس دهنده وب فعال و در ادامه  کاربران و استفاده کنندگان با استفاده از یک مرورگر وب قادر به استفاده از سرویس فوق خواهند بود.

?         NNTP(Network News TYransfer Protocol) . از پروتکل فوق برای مدیریت پیام های ارسالی برای گروه های خبری خصوصی و عمومی استفاده می گردد. بمنظور عملیاتی نمودن سرویس فوق می بایست سرویس دهنده NNTP برای مدیریت محل ذخیره سازی پیام های ارسالی نصب و در ادامه کاربران و سرویس گیرندگان با استفاده از برنامه ای موسوم به NewsReader از اطلاعات ذخیره شده استفاده خواهند کرد. ویندوز 2000 Server دارای یک سرویس دهنده NNTP بهمراه  IIS است . برنامه Outlook Explore 5.0 علاوه بر ارائه امکانات لازم در خصوص ارسال و دریافت پیام های الکترونیکی دارای امکانات لازم بعنوان یک NewsReader نیز است .

برنامه های کمکی TCP/IP

برای استفاده از پروتکل TCP/IP و مشاهده برخی پارامترها و تنظیمات مربوطه  مجموعه ای از برنامه های کمکی ارائه شده است . در ادامه به معرفی برخی از این برنامه های رایج خواهیم پرداخت .

?        IPCONFIG . از برنامه فوق برا ی اخذ اطلاعات در رابطه با پیکربندی TCP/IP نصب شده بر روی یک کامپیوتر استفاده می گردد. با تایپ نمودن دستور فوق بر روی خط دستور می توان اطلاعات متفاوتی نظیر IP  کامپیوتر مورد نظر   Subnet Mask و Default Gateway را مشاهده نمود. با اضافه نمودن سوئیچ /all  به دستور فوق می توان اطلاعات تکمیلی دیگر نظیر Host Name  آدرس های MAC  و سایر اطلاعات ذیربط را مشاهده نمود.

 

 

 

 

?        NETSTAT از برنامه  فوق برای مشاهده آمار و وضعیت جاری اتصالات شبکه استفاده نمود.

 

?        NBTSTAT . ازبرنامه  فوق برای مشاهده جدول محلی NetBIOS ( جدولی مشتمل بر اسامی  NetBIOS که توسط برنامه های محلی ریجستر شده اند ) و اسامی NetBIOS  که Cache شده اند استفاده می گردد.

 

?        NSLOOKUP از برنامه فوق برای بررسی رکوردهای اسامی مستعار Doman host ،   سرویس های Domain host  و اطلاعات مربوط به سیستم عامل استفاده می گردد. درخواست اطلاعات فوق از سرویس دهنده DNS  انجام خواهد شد.

?        ROUTE . از برنامه فوق بمنظور مشاهده وانجام  اصلاحات مورد نظر در جدول محلی روتینگ استفاده میگردد.

 

?        TRACERT . از برنامه فوق بمنظور مسیریابی یک بسته اطلاعاتی تا رسیدن به مقصد استفاده می گردد.

 

?        PING & PATPING . از برنامه های فوق برای بررسی پیکربندی و تست اتصال IP بر اساس نام  و یا آدرس  IP استفاده می گردد. PATHPING دارای ویژگی های PING و TRACERT بصورت همزمان است .

 

 

?        ARP . از برنامه فوق برای مشاهده و انجام تغییرات مورد نیاز در Address Resolution Protocol cache  استفاده می گردد.

 

مدل آدرس دهی IP

علاوه بر جایگاه پروتکل ها، یکی دیگر از عناصر مهم در زیرساخت شبکه های مبتنی بر TCP/IP مدل آدرس دهی IP است . مدل انتخابی می بایست این اطمینان را بوجود آورد که اطلاعات ارسالی بدرستی به مقصد خواهند رسید.  نسخه شماره چهار IP ( نسخه فعلی ) از 32 بیت برای آدرس دهی استفاده کرده که بمنظور تسهیل در امر نمایش بصورت چهار عدد صحیح ( مبنای ده ) که بین آنها نقطه استفاده شده است نمایش داده می شوند.

نحوه اختصاص  IP

نحوه اختصاص IP به عناصر مورد نیاز در شبکه های مبتنی بر TCP/IP یکی از موارد بسیار مهم است . اختصاص IP ممکن است بصورت دستی و توسط مدیریت شبکه انجام شده و یا انجام رسالت فوق بر عهده عناصر سرویس دهنده نرم افزاری نظیر DHCP و یا NAT  گذاشته گردد. برای آشنائی با نحوه اختصاص IP با هر یک از روش های فوق لازم است که در ابتدا اطلاعات لازم در خصوص ساختار داخلی IP و نحوه تخصیص آدرس های منطقی به آدرس های فیزیکی کسب گردد. در این مرحله لازم است با پروتکل هائی نظیر :

ARP(Address Resolution Protocol) و  RARP(Reverse ARP) و نحوه عملکرد آنها آشنا شویم .

ویندوز ۲۰۰۰ دارای امکانات جدیدی در رابطه با تخصیص IP  نظیر APIPA(Automatic Private IP Addressing) بوده که این امکان را به یک سرویس گیرنده DHCP خواهد داد که در صورت عدم یافتن سرویس دهنده DHCP برای خود یک آدرس موقت در نظر بگیرد.

DHCP

با استفاده از پروتکل فوق می توان سرویس دهنده ای در شبکه را مسئول ارائه IP بصورت خودکار نمود. سرویس دهنده DHCP با استفاده از یک منبع ( استخر) مشتمل بر مجموعه ای از آدرس های IP  قادر به اختصاص IP برای هر یک از سرویس گیرندگان DHCP خواهد بود. نسخه پیاده سازی شده در ویندوز ۲۰۰۰ شامل ویژگی های  جدیدی نظیر:  امکان ترکیب  با سرویس دهنده DNS  ، قابلیت ایجاد حوزه های Multicast ،  قابلیت تشخیص سرویس دهنده های غیر مجاز DHCP  و ... است .

IP Subnetting  

یکی از مهمترین عملیات در رابطه با اختصاص IP  مسئله Subnetting  است . مسئله فوق بعنوان هنر و علمی است که ماحصل آن تقسیم یک شبکه به مجموعه ای از شبکه های کوچکتر (Subnet) از طریق بخدمت گرفتن ۳۲ بیت با نام Subnet mask  بوده که بنوعی مشخصه (ID) شبکه را مشخص خواهد کرد. در ادامه این نوشتار در رابطه با نحوه تعریف زیرشبکه ها آشنا خواهیم شد. در این بخش لازم است که با مبنای دو و نحوه نشان دادن اعداد بصورت صفر و یک بیشتر آشنا شویم. ذکر این نکته ضروری است که در مبنای دو تمامی اعداد بصورت دنباله ای از صفر و یک نمایش داده شده و هر رقم در این مبنا دارای یک ارزش مکانی متناسب با ضرایب متفاوت عدد دو است . شکل زیر ارزش مکانی هر رقم در مبنای دو را نشان می دهد.

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

سرویس های Name Resolution

یکی دیگر از عناصر مهم در ایجاد زیر ساخت منطقی یک شبکه کامپیوتری مسئله Name Resolution است.شاید این سوال مطرح گردد که چرا این موضوع تا این اندازه دارای اهمیت است ؟ در پاسخ می توان گفت که علت وجود تفاوت های اساسی  در نحوه نامگذاری و استفاده از آن نزد انسان و کامپیوتر است . کامپیوترها صرفا" قادر به تشخیص و کار با اعداد ( مبنای دو ) می باشند.بدیهی است که در یک شبکه کامپیوتری هر سیستم دارای آدرس منحصر بفردی بوده که بصورت عدد نمایش داده خواهد شد. ارتباط بین کامپیوترهای موجود در شبکه از طریق اعداد فوق که بعنوان مولفه های عددی آدرس دهی مشخص می گردنند انجام خواهد یافت . در مقابل انسان ها علاقه مند به استفاده از اسامی برای دسترسی و ایجاد ارتباط با سایر کامپیوترها ،  سایت های وب و سایر منابع موجود در شبکه می باشند. مثلا" در زمان دستیابی به یک وب سایت کافی است که در بخش آدرس نرم افزار مرورگر خود آدرس یک سایت را تایپ نمائیم (www.Test.com ) . استفاده از نام فوق بمراتب راحت تر از استفاده از آدرسی بصورت 207.46.130.14  و یا 11001111001011101000001000001110    است . بدون استفاده از سیستم هائی که بنوعی مشکل Name Resolution را حل خواهند کرد استفاده از آدرس های عددی حتی بصورت مختصر و بصورت چهار عدد بسیار مشکل زا خواهد بود. سرویس های Name Resolution نظیر DNS(Domain Name System) و WINS(Windows Internet Name Service) امکان استفاده از اسامی ملموس و با معنی برای دستیابی به منابع متفاوت نرم افزاری و سخت افزاری در یک شبکه را فراهم می آورند.

سرویس دهنده های DNS و WINS کامپیوترهائی هستند که مسئولیت پشتیبانی و نگهداری بانک اطلاعاتی مربوط به آدرس های IP و نام مربوطه را برعهده خواهند داشت . عملکرد این سرویس دهنده ها مشابه درخواست یک شماره تلفن مربوط به یک فرد و یا سازمان از مراکز ۱۱۸  است . در چنین حالتی فرد متقاصی با تماس با این نوع مراکز نام و مشخصات مربوط را مشخص و در ادامه از طرف مرکز فوق شماره تلفن مورد نظر در اختیار گذاشته می شود. بهرحال بخاطر سپردن اسامی افراد بمراتب راحت تر از بخاطر سپردن شماره تلفن آنها است . برای ما راحتر است که به این سوال پاسخ دهیم که " شماره تلفن آقای / خانم  X  چیست ؟"

سرویس دهنده های DNS و WINS دارای عملکردی مشابه با اندک تفاوتی می باشند. سرویس دهنده DNS قادر به حل کردن مشکل اسامی بصورت) FQDN(Fully Qualified Domaion Names  به آدرس های IP است . این نوع اسامی از نفطه بین خود استفاده کرده و نظیر اسامی می باشند که از آنها در دسترسی به وب سایت ها استفاده می گردد. سرویس دهنده WINS مشکل اسامی را که بصورت NetBIOS می باشند و تبدیل به آدرس IP مربوطه، انجام خواهد داد. این نوع اسامی بصورت Flat  خواهند بود . مثلا" اگر کامپیوتری دارای نام Computer12 باشد نوع NetBIOS آن نیز به همان صورت استفاده شده در حالیکه اگر از DNS استفاده گردد نام معادل آن بصورت Computer12.mydomain.com نشان داده خواهد شد.

سرویس دهنده DNS

سرویس دهنده DNS در ویندوز ۲۰۰۰ بصورت پویا بوده و شاید استفاده از نام DDNS مناسبت تر باشد. در ویندوز NT 4.0 عملیات بهنگام سازی داده می بایست بصورت دستی انجام گیرد در صورتیکه در ویندوز ۲۰۰۰ بانک اطلاعاتی مربوطه دارای یک ویژگی جدید بگونه ای است که امکان بهنگام سازی را بصورت پویا انجام خواهد داد. با استفاده از ویژگی فوق این امکان فراهم خواهد شد که اسامی بصورت پویا در بانک اطلاعاتی مربوطه ثبت و در ادامه رکوردهای مربوطه در هر یک از Zone های مورد حمایت DNS بصورت خودکار بهنگام گردنند. در ویندوز ۲۰۰۰ سرویس دهنده DNS قادر با ارتباط با Active Directory نیز بوده و از این طریق تسهیلات بمراتب بیشتری ارائه خواهد شد.

بمنظور نصب و پیکربندی مناسب سرویس دهنده DNS می بایست اطلاعات لازم در این خصوص را کسب و به سوالاتی نظیر ذیل بدرستی پاسخ داد:

  • مهمترین وظیفه Primary DNS server چیست ؟ نسخه اولیه مربوط به DNS Zone file بر روی سرویس دهنده اولیه DNS قرار خواهد گرفت . سرویس دهنده فوق بعنوان Authoritative برای هر یک از دامنه ها ی موجود در Zone file  ایفای وظیفه خواهند کرد.
  • مهمترین وظیفه Secondray DNS Server  چیست ؟ سرویس دهنده فوق شامل یک نسخه از بانک اطلاعاتی مربوطه ای است که بر روی Primary   ایجاد شده است . در زمان نصب و پیکربندی DNS می بایست به این نکته توجه نمود که بدلیل جلوگیری از بروز اشکالات ناخواسته بر روی سرویس دهنده اصلی می بایست حتما" اقدام به ایجاد یک سرویس دهنده ثانویه نیز نمود.
  • Caching-only Server چیست و چرا به وجود حداقل یکی از آنها نیاز خواهیم داشت ؟ این نوع سرویس دهنده شامل اطلاعاتی در رابطه با هر یک از Zone ها نبوده و صرفا" اطلاعات مربوط به ماحصل درخواست های قبلی از سرویس دهنده را در خود ذخیره خواهد کرد.
  • وظیفه یک سرویس دهنده Forwarder و یا  Slave چیست ؟ سرویس دهنده ای از این نوع مسئول دریافت درخواست های ارسالی توسط سایر سرویس دهنده های DNS است . این نوع سرویس دهنده ها بمنظور حفاطت سرویس دهنده داخلی DNS از دستیابی توسط کاربران اینترنت نیز ممانعت خواهد کرد. سرویس دهنده های Slave نوع خاصی از سرویس دهنده های Forwarder بوده که بنوعی مسئولیت برطرف کردن مشکل نام و آدرس بر روی خودشان به آنان واگذار نگردیده است .

سرویس دهنده WINS

با اینکه با وجود سرویس دهنده DNS ضرورتی بر استفاده از سرویس دهنده WINS احساس نخواهد شد ولی با علم به این موضوع که هنوز اسامی اختصاص یافته به کامپیوترها و سایر منابع در یک شبکه کامپیوتری تابع NetBIOS  است شرکت مایکروسافت نه تنها آن را از گردونه خارج ننموده است بلکه در ویندوز ۲۰۰۰ تغییراتی را نیز در آن انجام داده است . اضافه کردن مجموعه برنامه های خط دستوری برای مدیریت و راهبری  ،  تغییر در ساختار بانک اطلاعاتی مربوطه   و.. نمونه هائی از تغییرات جدید بوجود آمده می باشند.

دستیابی از راه دور

دستیابی از راه دور یکی دیگر از  عناصر اساسی در ایجاد زیر ساخت منطقی در یک شبکه کامپیوتری است. امروزه دستیابی به یک شبکه و از راه دور بعنوان یک نیاز اساسی مطرح است . مثلا" اغلب کاربران خانگی و یا ادارات کوچک جهت دستیابی به اینترنت از مدل فوق استفاده می نمایند. در این روش کاربران با بخدمت گرفتن یکدستگاه مودم و با استفاده از خطوط تلفن قادر به ایجاد ارتباط با یک سرویس دهنده از راه دور خواهند بود. ویندوز ۲۰۰۰ روش دیگری نیز جهت دستیابی از راه دور را از طریق VPN(Virtual Private Network)  ارائه نموده است . در چنین مواردی کاربران قادر به انجام هر نوع عملیات خواهند بود .( مشابه حالتیکه کاربران از طریق کابل به شبکه متصل باشند) برنامه RRAS)Routing and Remote Access Services) در ویندوز ۲۰۰۰ ابزاری قدرتمندی در این راستا بوده که امکان دستیابی به شبکه از راه دور را برای کاربران فراهم خواهد ساخت . برای دستیابی به یک شبکه از راه دور می بایست از پروتکل های مربوطه نظیر پروتکل های استفاده شده در محیط LAN استفاده نمود(TCP/IP, IPX/SPX,NetBEUI  نمونه هائی از این نوع پروتکل ها بوده که عمدتا" در لایه حمل ایفای وظیفه می نمایند. در زمان استفاده از سرویس فوق (RAS) می بایست از پروتکل دیگر که در سطح لایه Data Link ایفای وظیفه می نماید نیز استفاده گردد. پروتکل فوق مسئولیت بخش WAN  ارتباط را برعهده خواهد گرفت . ویندوز ۲۰۰۰ از دو نوع عمده پروتکل های که اغلب Line Protocol نیز نامیده می شوند استفاده می کند:

?        PPP(Point To Point Protocol) . از پروتکل فوق هم سرویس گیرندگان و هم سرویس دهندگان استفاده خواهند کرد .(RAS Client & RAS server) پروتکل فوق رایج ترین پروتکل در نوع خود بوده که دارای امکانات از قبیل رمزنمودن ، فشرده سازی و اختصاص پویای آدرس های IP است.

?         SLIP(Serial Line Interface Protocol) یکی دیگر از پروتکل های قدیمی در این زمینه بوده که رمزنمودن و فشرده سازی را حمایت نکرده و آدرس های IP می بایست بصورت دستی و ایستا تخصیص یابند. پروتکل فوق صرفا" بر روی کامپیوترهای سرویس گیرنده نصب شده و امروزه اغلب برای ارتباط با سرویس دهندگانی که از سیستم عامل یونیکس استفاده می نمایند مورد توجه است.

IP Routing

روتینگ به مجموعه فرآیندهائی اطلاق می گردد که باعث مسیریابی و هدایت ترافیک موجود بین یک شبکه و سایر شبکه ها می گردد. پس از پیکربندی کامپیوتری که می بایست عملیات روتینگ را انجام دهد امکان دریافت  بسته های اطلاعاتی و ارسال آنها به مقاصد مناسب فراهم خواهد شد.  در چنین حالتی امکان مسیریابی از طریق چندین روتر وجود خواهد داشت . مسافت طی شده از یک روتر به روتر دیگر  hope  نامیده می شود. در هر روتر آدرس IP مقصد با اطلاعات موجود در جدول روتینگ مقایسه شده و بهترین مسیر برای حرکت بسته اطلاعاتی و طی کمترین میزان hope  در نظر گرفته خواهد شد.

مسیریابی سریع و با کارآئی و ضریب اعتماد بالا از مهمترین عوامل موفقیت در شبکه های بزرگ محسوب شده و حتی این مسئله بخوبی در اینترنت نیز برای کاربران ملموس است . عملیات روتینگ می تواند توسط دستگاههای اختصاصی خاصی با نام روتر و یا توسط کامپیوتری که از سیستم عاملی با قابلیت IP Forwarding  نیز  استفاده گردد، محقق خواهد شد. ویندوز ۲۰۰۰ بعنوان یک IP Router نیز می تواند در نظر گرفته شده و مراحل تنظیم و پیکربندی آن انجام گیرد.  از واژه Gateway نیز برای مراجعه به یک روتر نیز استفاده می گردد. در چنین مواردی Gateway بعنوان نقطه خروج بسته های اطلاعاتی از یک شبکه و دریافت آنان توسط شبکه دیگر مطرح خواهد بود. هر کارت شبکه قادر است که در هر لحظه دارای یک Gateway فعال باشد . بمنظور پیشگیری از خطاء در ویندوز ۲۰۰۰ می توان برای یک کارت شبکه بیش از یک Gateway را تعریف که صرفا" یکی از آنها در هر لحظه فعال و قابل استفاده خواهد بود. از واژه Gateway در موارد دیگری نیز استفاده می گردد. در مواردیکه هدف ترجمه بین پروتکل هاو اتصال بین چندین شبکه با نوع های متفاوتی است مثلا" اتصال یک کامپیوتر شخصی با سیستم عامل ویندوز به یک سیستم Mainframe  (SNA Gateway) و یا به یک شبکه مبتنی بر نت ور (Gateway Services for Netware) .

Satatic Routing

در روتینگ ایستا  ایجاد یک جدول روتینگ بصورت دستی و توسط مدیریت شبکه می بایست انجام گیرد.برنامه ROUTE  دارای امکانات گسترده ای در این زمینه بوده و با استفاده از سویئچ های مربوط به آن می توان نسبت به ایجاد ویرایش جدول روتینگ اقدام نمود.

Dynamic Routing

در روش فوق با استفاده ازبرخی پروتکل های روتینگ نظیر RIP(Routing Information Protocol)  و ... روترها خود با یکدیگر مرتبط و بصورت پویا اقدام به ویرایش جداول روتینگ خود خواهند کرد. در فرآیند فوق عوامل انسانی دخالت نخواهند داشت . ویندوز ۲۰۰۰ از پروتکل های زیر برای روتینگ استفاده می کند:

?        RIPv1

?        RIPv2

?        OSPF(Open Shortest Path First)

پروتکل RIP بعنوان یک Distance vector protocol مطرح بوده و دارای حداکثر طولی به اندازه پانزده hope است . در صورتیکه یک بسته اطلاعاتی به بیش از پانزده روتر جهت رسیدن به مقصد خود نیاز داشته باشد ، پروتکل RIP اعلان خواهد کرد که مقصد غیرقابل دستیابی است . این نوع پروتکل ها اغلب برا ی استفاده درشبکه های با ابعاد متوسط توصیه شده و برای  شبکه های بسیار بزرگ  توصیه  نمی گردد.

پروتکل OSPF بعنوان یک Link state protocols مطرح است . این نوع از پروتکل شبکه را  Map و بانک اطلاعاتی Mape شده را در زمان بروز هر نوع تغییراتی در شبکه بهنگام خواهد کرد.کارآئی این نوع پروتکل ها در مقایسه با نوع قبل بمراتب بیشتر بوده ولی در مقابل دارای پیچیدگی بیشتری خواهند بود.

پیکربندی روتینگ استاتیک و پویا در ویندوز ۲۰۰۰ از طریق کنسول Remote Access management انجام خواهد شد. شکل زیر نحوه عملکرد برنامه فوق را نشان می دهد.

 

زیر ساخت امنیتی

امروزه مقوله امنیت در شبکه ها کامپیوتری یکی از مهمترین ضرورت ها و چالش ها در برپاسازی و نگهداری یک شبکه مطمئن است .ویندوز ۲۰۰۰ دارای امکانات گسترده ای بمنظور ایجاد و نگهداری یک شبکه کامپیوتری با ضریب ایمنی بالا است . امکانات ارائه شده شامل موارد ذیل است .

 

       Kerberos authentication

       IP Security (IPSec)

       Much improved policy management (Group Policy)

       Enhanced certificate services

       Encrypting File System (EFS)

       Secondary Logon

       Security Configuration Toolset

       Smart card support

مبانی ویندوز و شبکه ( بخش دوم )

دربخش اول این مقاله به مفاهیم اولیه ویندوز و  شبکه اشاره  گردید . در این بخش به بررسی سیستم های عامل شبکه ای و نحوه پیاده سازی شبکه با استفاده از ویندوز 2000 خواهیم پرداخت .

سیستم های عامل شبکه ای 
هسته یک شبکه ، سیستم عامل شبکه است . همانگونه که یک کامپیوتر بدون استفاده از سیستم عامل ،  قادر به انجام عملیات خود نخواهد بود ، یک  شبکه نیز بدون وجود یک سیستم عامل شبکه ای، قادر به انجام عملیات و ارائه سرویس های مربوطه نخواهد بود. سیستم های  عامل شبکه ای،  سرویس ها و خدمات خاصی را در اختیار کامپیوترهای موجود در شبکه قرار خواهند داد: 

  • هماهنگی لازم در خصوص عملکرد دستگاه های متفاوت در شبکه بمنظور حصول اطمینان از برقراری ارتباط در مواقع ضروری 

  • امکان دستیابی سرویس گیرندگان به منابع شبکه نظیر فایل ها  و  دستگاه های جانبی نظیر چاپگرها و دستگاه های فاکس

  • اطمینان از ایمن بودن داده ها و دستگاههای موجود در شبکه از طریق تمرکز ابزارهای مدیریتی

ویژگی های یک سیستم عامل شبکه ای 
یک سیستم عامل شبکه ای می بایست امکانات و خدمات اولیه زیر را ارائه نماید:

  • ارائه مکانیزم ها ی لازم بمنظور برقراری ارتباط بین چندین دستگاه کامپیوتر برای انجام یک فعالیت

  • حمایت از چندین پردازنده 

  • حمایت از مجموعه ای (کلاستر)  دیسک درایو

  • ارائه امکانات و سرویس های امنیتی در رابطه با حفاظت از داده ها و سایر منابع موجود در  شبکه

  • قابلیت اطمینان بالا

  • تشخیص و برطرف نمودن خطاء با سرعت مناسب

بر اساس نوع سیستم عامل ،  یک نرم افزار شبکه ای می تواند به سیستم عامل ،  اضافه و یا  بصورت یکپارچه با سیستم عامل همراه باشد . نرم افزار سیستم عامل شبکه ای  با مجموعه ای از سیتسم های عامل رایج نظیر : ویندوز 2000 ، ویندوز NT ،  ویندوز 98 ،  ویندوز 95  واپل مکینتاش ،  بصورت یکپارچه همراه می گردد .

پیاده سازی شبکه در ویندوز 2000
 ویندوز 2000 ، با سازماندهی
Domain وسرویس  Active Directory ، نیاز سازمان ها و موسسات بمنظور ارتباط کاربران و شبکه ها با یکدیگر را فراهم می نماید. برپاسازی یک شبکه مبتنی بر ویندوز 2000 ، بهبود در اشتراک اطلاعات ، انجام موثرتر عملیات ، ایجاد زیرساخت مناسب ارتباطی ، ارائه سرویس های ارتباطی مطلوب را برای سازمان ها بدنبال خواهد داشت .

ویژگی های یک Domain
 
Domain ، یک گروه بندی منطقی از کامپیوترهای شبکه ای است که از یک محل مشترک بمنظور ذخیره سازی اطلاعات امنیتی ، استفاده می نمایند. استفاده از  Domain  ، تمرکز در مدیریت منابع شبکه را بدنبال خواهد داشت . بدین ترتیب پس از ورود کاربران به شبکه و تائید صلاحیت  آنان ، زمینه استفاده از منابع به  اشتراک گذاشته شده  در سایر کامپیوترهای موجود در Domain ، با توجه به مجوزهای تعریف شده ، فراهم می گردد .  Domain  ، درمفهوم مشابه Workgroup
بوده ولی امکانات و ویژگی های بمراتب بیشتر و مفیدتری را ارائه می نماید :

  • Single logon  . با استفاده از Domain ، فرآیند ورود به شبکه صرفا" یک مرتبه انجام و کاربران قادر به استفاده از منابع متفاوت موجود درشبکه شامل: فایل ها ، چاپگرها  و برنامه ها ، خواهند بود. Account مربوط به  تمامی کاربران در یک مکان متمرکز ، ذخیره می گردد.

  • Single User Account . کاربران  یک Domain ، صرفا" از یک Account بمنظور دستیابی به منابع موجود بر روی کامپیوترها ، استفاده خواهند کرد ( بر خلاف workgroup  که نیازمند یک account مجزاء بمنظور دستیابی به  هر یک از کامپیوترها  است ) .

  • مدیریت متمرکز .  با استفاده از Domain ، امکان مدیریت متمرکز فراهم خواهد شد . Account مربوط به کاربران و منابع اطلاعاتی موجود، از طریق یک نقطه متمرکز ، مدیریت خواهد شد.

  • Scalability . استفاده از Domain ، امکان گسترش و توسعه در شبکه را افزایش خواهد داد . روش دستیابی کاربران به منابع و نحوه مدیریت منابع در یک شبکه بسیار بزرگ مشابه یک شبکه کوچک خواهد بود .

مزایای استفاده از Domain 
استفاده از
Domain
، دارای مزایای زیر است :

  • سازماندهی اشیاء . اشیاء موجود در یک Domain را می توان  بر اساس واحدهای موجود در یک سازمان ، سازماندهی نمود. یک واحد سازماندهی شده شامل  مجموعه ای از اشیاء در یک Domain است . اشیاء، نشاندهنده عناصر فیزیکی موجود در یک شبکه بوده و می توانند به  یک و یا بیش از یک Domain مرتبط گردند.کاربران ، گروه هائی از کاربران، کامپیوترها ، برنامه ها ، سرویس ها ، فایل ها و لیست های توزیع شده نمونه هائی در این زمینه می باشند . مثلا" یک Domain در شبکه مربوط به یک سازمان ، می تواند  بمنظور تسهیل در مدیریت منابع موجود در شبکه،  منابع هر یک از دپارتمان های موجود در سازمان را در یک واحد ،سازماندهی نماید. هر واحد ، می تواند توسط کاربران  خاصی در دپارتمان مربوطه مدیریت گردد. بدین ترتیب مدیر شبکه قادر به مدیریت گروه هائی از واحدها در مقابل منابع انفرادی ، خواهد بود .

  • مکان یابی آسان اطلاعات . بموازات نشر( تعریف و پیکربندی )  یک منبع ، امکان دستیابی آن از طریق لیستی از اشیاء Domain ، برای کاربران فراهم و بدین ترتیب مکان یابی یک منبع بسادگی انجام و زمینه استفاده از آن فراهم خواهد شد. مثلا" در صورتیکه چاپگری در یک Domain نصب شده باشد ، کاربران قادر به دستیابی به آن از طریق لیستی از اشیاء موجود در Domain مربوطه ، خواهند بود. در صورتیکه چاپگر در Domain مربوطه تعریف نشده باشد ، کاربران شبکه جهت استفاده از آن می بایست از محل نصب آن آگاهی داشته باشند.

  • دستیابی آسان و موثر . تعریف و بکارگیری یک سیاست گروهی در ارتباط با یک  Domain ،نحوه دستیابی کاربران به منابع تعریف شده در Domain را  مشخص می نماید. بدین ترتیب استفاده از منابع بهمراه رویکردهای امنیتی ، یکپارچه می گردد .

  • تفویض اختیار. با استفاده از Domain ، امکان واگذاری  مسئولیت مربوط به مدیریت اشیاء در تمام Doamin و یا در بخش هائی خاص ، فراهم می گردد .

ساختار  Domain
هر
Domain توسط یک کنترل کننده Domain ، مدیریت می گردد. بمنظور تسهیل در مدیریت چندین Domain ،  می توان Domain
ها  را  در ساختارهائی با نام درخت (Tree)  و جنگل (Forest) ، گروه بندی کرد .

کنترل کننده Domain
کامپیوتری  که برروی آن سرویس دهنده ویندوز 2000 اجراء و مدیریت 
Domain را برعهده می گیرد، کنترل کننده Domain نامیده می شود.  کنترل کننده Domain ، تمام عملیاتی امنیتی مرتبط با کاربران و Domain
را مدیریت می نماید. 

درخت
درخت
، یک سازماندهی سلسله مراتبی از Domain های ویندوز 2000 بوده که یک نام را به اشتراک می گذارند . زمانیکه یک Domain به یک درخت موجود اضافه می گردد، بعنوان یک subDomain ، در نظر گرفته می شود. SubDomain ، یک Child domain  نیز نامیده شده و Domain اضافه شده از طریق Parent domain مربوطه شناخته می گردد . پس از اینکه Child Domain به درخت ملحق گردید نام Domain آن به نام Domain parent اضافه می شود. مثلا" زمانیکه یک Domain با نام Tehran به یک درخت موجود ملحق و بعنوان یک Chid Domain از Domain با نام Citys.com  مطرح گردد ، نام Domain مربوطه، بصورت Tehran.Citys.com خواهد بود. 

جنگل
جنگل، شامل گروهی از درخت ها بوده که در مقابل استفاده از یک نام مشترک، از یک پیکربندی مشترک استفاده می نمایند. بمنظور مراجعه به جنگل ، بصورت پیش فرض از نام ریشه درخت و یا اولین درختی که در جنگل ایجاد می گردد ، استفاده می گردد . مثلا" در صورتیکه
Citys.com اولین Domain در اولین درخت باشد و درخت دیگر به آن ملحق تا یک جنگل را ایجاد نمایند نام، جنگل Citys.com خواهد بود.

ویژگی های Active Directory
 
Active Directory ، سرویس دایرکتوری ویندوز 2000 است . Active Directory ،  اطلاعات مربوط به اشیاء شبکه را ذخیره و با ارائه یک ساختار سلسله مراتبی، زمینه سازماندهی Domain ها و منابع را بسادگی فراهم می نماید . بدین ترتیب کاربران بسادگی قادر به مکانیابی منابع شبکه نظیر فایل ها و چاپگرها ، خواهند بود . Active Directory دارای ویژگی های متعددی است :

  • Active Directory ، باعث سازماندهی دایرکتوری به  بخش هائی خواهد شد که امکان ذخیره سازی حجم بالائی از اشیاء را فراهم می آورد . دستاورد ویژگی فوق ، توسعه   Active Directory ، همزمان با رشد یک سازمان ، خواهد بود. بدین ترتیب،  امکان رشد شبکه  ای با صرفا" یک سرویس دهنده و کمتر از یکصد شی به شبکه ای با هزاران سرویس دهنده و میلیون ها شی فراهم خواهد شد .

  • Active Directory ،یک مکان متمرکز بمنظور جمع آوری و توزیع اطلاعات در رابطه با اشیاء موجود در شبکه شامل کاربران، گروهها و چاپگرها بوده و امکان یافتن و استفاده از اطلاعات را آسان خواهد کرد.

  • تدابیر امنیتی در ارتباط با  Active Directory ، پیش بینی  و زمینه تحقق آن با استفاده از Log on و کنترل دستیابی به اشیاء موجود در دایرکتوری، فراهم می گردد . پس از فرآیند ورود به شبکه ( یک log on به یک شبکه ) ، مدیران شبکه قادر به مدیریت داده ها ی موجود در دایرکتوری می گردند . کاربران تائید شده نیز امکان  دستیابی به منابع موجود درشبکه را از هر مکانی بدست خواهند آورد.

مزایای Active Directory
استفاده از
Active Directory ، دارای مزایای زیر است :

  • کاهش مجموع هزینه مالکیت . پارامتر فوق به هزینه مالکیت یک کامپیوتر، مرتبط می گردد . هزینه فوق شامل : هزینه های مربوط به نگهداری ، آموزش ،پشتیبانی فنی ، ارتقاء سخت افزار و نرم افزار است . Active Directory، با پیاده سازی سیاست ها باعث کاهش برخی از هزینه های فوق ،می گردد . بکارگیری یک سیاست بهمراه Active Directory ، این امکان را فراهم می آورد که پیکربندی محیط  مربوطه  ونصب  برنامه ها ، از یک مکان مرکزی ، انجام شود. بدین ترتیب زمان مربوط به پیکربندی و نصب برنامه ها بر روی هر کامپیوتر ،کاهش پیدا خواهد کرد . 

  • مدیریت انعطاف پذیر . واحد های سازمانی درون یک Domain  را می توان بر اساس سیاست های موجود در Active Directory ، تقسیم نمود. بدین ترتیب ، واحدهای سازمانی ،امکان تعریف کاربرانی خاص بمنظور مدیریت بخش هائی خاص از شبکه را بدست می آورند .

  • Scalability . با استفاده از  Active Directory ، امکان استفاده از سرویس های دایرکتوری  برای سازمان ها ئی با ابعاد متفاوت، فراهم می گردد .

  • تسهیل در مدیریت .  Active Directory ، ابزارهای مدیریتی خاصی را ارائه که  مدیران شبکه، با استفاده از آنان  قادر به مدیریت منابع موجود در شبکه خواهند بود.

دستیابی به یک شبکه ویندوز 2000
برای استفاده از منابع تعریف شده در شبکه، کاربران می بایست  فرآیند
Log on را دنبال نمایند . در زمان فرآیند Log on ،  ویندوز 2000 اعتبار و هویت یک کاربر را تائید خواهد کرد . فرآیند فوق ، این اطمینان را بوجود خواهد آورد که صرفا" کاربران معتبر و تائید شده،  قادر به دستیابی منابع موجود بر روی یک کامپیوتر در شبکه ،خواهند بود . پس از اتمام موفقیت آمیز فرآیند ورود به شبکه  ،زمینه استفاده از منابع موجود در تمام شبکه با توجه به سیاست های تعریف شده، فراهم می گردد . کاربران  برای دستیابی به منابع در یک شبکه مبتنی بر ویندوز 2000 ،  به یک Account ، نیاز خواهد داشت . Account ، شامل اطلاعات مرتبط با یک کاربر بوده و شامل نام و رمز عبور است . در صورتیکه کامپیوتر یک Memeber Domain باشد ، Account مربوط به کاربر، امکان log on نمودن به کامپیوتر بصورت محلی و یا به Domain ( اما نه هر دو ) را  فراهم و زمینه استفاده از منابع موجود در شبکه با توجه به  مجوزهای تعریف شده ، فراهم خواهد شد . در صورتیکه کامپیوتر عضوی از یک Workgroup باشد ، Account مربوطه ، امکان Log on  نمودن کاربر را صرفا" به کامپیوتر محلی، فراهم می نماید. ( چون Account کاربر صرفا" بر روی بانک اطلاعاتی امنیتی همان کامپیوتر محلی ذخیره شده است ) . برای ورود به یک Domain ویندوز 2000 ، کاربران می بایست ، نام خود را بصورت خاصی وارد نمایند .نام فوق، شامل نام  کاربر بوده که بدنبال آن از کاراکتر @ و یک پسوند استفاده می گردد. پسوند فوق، Domain مربوطه ای است که account بر روی آن وجود دارد .  User1@Citys.com نمونه ای  در این زمینه است .

ورود به شبکه
برای ورود به ویندوز 2000 ، کلیدهای
CTRL+ALT+DELETE بصورت همزمان فشرده و فعال می گردند. پس از فعال نمودن کلیدهای فوق جعبه محاوره ای ورود به ویندوز فعال می گردد . با تایپ نام و رمز عبور در محل مربوطه ، فرآیند  ورود به شبکه انجام خواهد شد. در ادامه می توان با کلیک نمودن برروی کامپیوترهای محلی و یا Domain مربوطه در لیست به هر یک از آنها log on نمود.

مشاهده Network Membership
پس از ورود به شبکه، می توان با استفاده از جعبه محاوره ای
System Properties ، از نوع عضویت در شبکه آگاهی پیدا کرد : یک Domain  و یا یک Workgroup  . برای دستیابی به جعبه محاوره ای System Properties مراحل زیر را دنبال نمائید :
از طریق
Desktop  بر روی آیکون MyComputer  کلیک سمت راست نموده و در ادامه برروی گزینه Properties کلیک نمائید.  جعبه محاوره ای System Properties ، دارای پنج Tab  است . بر روی Network Identification کلیک تا مشخص گردد که کامپیوتر مورد نظر به یک Doamin و یا Workgroup تعلق دارد .

مبانی ویندوز و شبکه ( بخش اول )

سیستم عامل ویندوز یکی از متداولترین  سیستم های عامل شبکه ای است که برای برپاسازی شبکه های کامپیوتری استفاده می گردد . در این مقاله قصد داریم به بررسی اولیه ویندوز بعنوان یک سیستم عامل پرداخته و  در ادامه با مفاهیم اولیه شبکه آشنا و در نهایت به بررسی برخی از مفاهیم اولیه  ویندوز  بعنوان یک سیستم عامل شبکه ای ، بپردازیم .

هسته اساسی یک کامپیوتر سیستم عامل ، است . سیستم عامل، نرم افزاری است که سخت افزار را کنترل و همانگونه  که از نام آن مشخص است باعث انجام عملیات در کامپیوتر می گردد . سیستم عامل ، برنامه ها را به درون حافظه کامپیوتر استقرار و زمینه اجرای آنان را فراهم می نماید. سیستم عامل دستگاه های جانبی ، نظیر دیسک ها و چاپگرها را مدیریت می نماید.  کامپیوتر و چاپگر های موجود در یک محیط کامپیوتری را  می توان بیکدیگر مرتبط تا زمینه مبادله اطلاعات و داده ها ، فراهم گردد. شبکه ، شامل گروهی از کامپیوترها و دستگاه های مرتبط بیکدیگر است. هماهنگی در اجرای  همزمان برنامه ها در یک شبکه ، مدیریت دستگاههای جانبی متصل به شبکه و موارد دیگر ، مستلزم وجود امکانات و پتانسیل های بیشتر از طرف سیستم عامل است . یک سیستم عامل شبکه ای ، امکانات فوق و سایر پتانسیل های لازم در خصوص  شبکه را ارائه می نماید. ویندوز 2000 ماکروسافت، نسل جدیدی از سیستم های عامل شبکه ای است که زیرساخت مناسبی را بمنظور مدیریت و حمایت از برنامه ها بمنظور استفاده توسط کاربران شبکه و سازمان های مربوطه، فراهم می نماید.

نسخه های متفاوت ویندوز 2000 
ویندوز 2000 ، مجموعه ای گسترده از امکانات و ابزارهای لازم ، بمنظور مدیریت یک شبکه کامپیوتری را ارائه و دارای نسخه های متفاوت زیر است :

  • Microsoft Windows 2000 Professional . نسخه فوق،  دارای امکانات گسترده ویندوز 98 بوده و بر اساس قدرت سنتی سیستم عامل ویندوز NT 4.0 ، ایجاد شده است . این نسخه ، دارای  یک رابط کاربر ساده بوده و علاوه بر بهبود در عملیات Plug&Play و مدیریت Power ، مجموعه ای گسترده از دستگاه های سخت افزاری را حمایت می نماید. نسخه فوق، حداکثر دو پردازنده و  4 گیگابایت حافظه را حمایت می نماید.

  • Microsoft Windows 2000 Server . نسخه فوق، بعنوان نسخه استاندارد خانواده  windows 2000 server ، مطرح می باشد. این نسخه دارای تمامی امکانات  windows 2000 professional بوده و برای سازمان های کوچک تا متوسط ایده آل و  بخوبی با سرویس دهندگان فایل ،  چاپگر ، وب و Workgroup ،  کار می نماید. نسخه فوق، قادر به حمایت از حداکثر 4 پردازنده و 4 گیگابایت حافظه فیزیکی است .

  • Microsoft Windows 2000 Advanced Server  .  نسخه فوق، دارای تمامی امکانات نسخه windows 2000 server  بوده و علاوه بر آن قابلیت گسترش و در دسترس بودن بیشتری را دارا است . با  گسترش شبکه ،  قدرت پردازش سیستم بصورت تصاعدی افزایش خواهد یافت.بدین منظور از کلاسترهائی که شامل چندین سرویس دهنده می باشند ،  استفاده می گردد. سرویس دهندگان فوق ،  توان پردازشی اضافه ای را ارائه و بدین ترتیب قابلیت در دسترس بودن سیستم نیز، افزایش خواهد یافت . در صورتیکه یکی از سرویس دهندگان بدلایلی غیرقابل دسترس گردد،  سایر سرویس دهندگان موجود در کلاستر،  سرویس های مورد نیاز را ارائه خواهند داد . نسخه فوق،  مختص سرویس دهندگانی است که در شبکه های بسیار بزرگ ایفای وظیفه نموده و عملیات گسترده ای را در ارتباط با بانک های اطلاعاتی انجام می دهند. نسخه فوق،  قادر به حمایت از هشت پردازنده و هشت گیگابایت حافظه فیزیکی است .

  • Microsoft Windows 2000 Datacenter Server . نسخه فوق، دارای تمام امکانات Advanced server بوده و علاوه بر آن امکان استفاده از حافظه و پردارنده های بمراتب بیشتری در هر کامپیوتر را فراهم می نماید. نسخه فوق، برای ذخیره سازی حجم بسیار بالائی از داده ها  ، پردازش های تراکنشی online و شبیه سازی های بزرگ استفاده می گردد . نسخه فوق، قادر به حمایت از حداکثر 32 پردازنده و  64 گیگابایت حافظه فیزیکی است .

وظایف سیستم عامل 
 سیستم عامل
، نرم افزاری است که امکانات لازم  بمنظور ارتباط برنامه ها با سخت افزار را فراهم می نماید. مهمترین وظایف یک سیستم عامل در ارتباط با عملیات در یک کامپیوتر ، بشرح زیر می باشد :

  • مدیریت سخت افزار. سیستم عامل، امکان ارتباط کامپیوتر با دستگاه های جانبی نظیر چاپگر و یا موس را فراهم می نماید

  • مدیریت نرم افزار. سیستم عامل ، مکانیزمی برای مقداردهی اولیه پردازه ها ی مربوط به برنامه ها را فراهم می نماید.  

  • مدیریت حافظه . سیستم عامل، عملیات اختصاص حافظه  برای هر برنامه بدون تاثیرگذاری بر فضای استفاده شده توسط سایر برنامه ها را فراهم می نماید.  

  • مدیریت داده . سیستم عامل، مدیریت فایل های ذخیره شده بر روی هارد دیسک و سایر رسانه های ذخیره سازی را بر عهده دارد  . در این راستا ، امکان ایجاد و فعال کردن فایل ها  در اختیار برنامه ها قرار گرفته  و زمینه  مباددله  داده  بین دستگاههای فراهم خواهدشد. سیستم عامل، امکان انجام عملیات مدیریتی در ارتباط با فایل ها نظیر تغییر نام و یا حذف فایل ها را نیز فراهم می نماید.

سیستم عامل ،  هماهنگی لازم در خصوص ارتباط بین کامپیوتر و برنامه هائی که بر روی آن اجراء می گردند را فراهم می نماید. جریان داده ها توسط سیستم عامل دنبال و کنترل و یک رابط کاربر گرافیکی GUI ( گرافیکی )  بمنظور ارتباط کاربر با کامپیوتر  ارائه می گردد. GUI ،  یک رابط کاربر گرافیکی ،  بمنظور ارتباط کاربر با سیستم و فعال نمودن دستورات مورد نظر است .( در مقایسه با یک محیط مبتنی بر متن )

سیستم عامل ویندوز 2000 ، امکانات گسترده و پیشرفته ای را در اختیار کاربران قرار می دهد:

  • Multitasking . با استفاده از ویژگی فوق،  کاربران قادر به اجرای چندین برنامه بصورت همزمان  بر روی یک سیستم  می شوند. تعداد برنامه هائی که یک کاربر قادر به اجرای همزمان آنان خواهد بود به میزان حافظه موجود بر روی سیستم بستگی خواهد داشت .

  • Memory Support .  بمنظور انجام عملیا ت مربوط به برنامه هائی که در محیط  ویندوز 2000 اجراء می گردند ،  به میزان مطلوبی از حافظه ،  نیاز خواهد بود. برای اجرای چندین برنامه بصورت همزمان و یا اجرای برنامه هائی که میزان بالائی از حافظه را نیاز دارند ،  ویندوز 2000 امکان حمایت تا 64 گیگابایت را فراهم می نماید. 

  • Symmetric Multiprocessing . سیستم های عامل از ویژگی فوق،  بمنظور استفاده همزمان از چندین پردازنده استفاده می نمایند .بدین ترتیب کارآئی سیستم بهبود و یک برنامه در محدوده زمانی کمتری اجراء خواهد شد .ویندوز 2000 ،  امکان حمایت ( با توجه به نوع نسخه ) از حداکثر 32 پردازنده را فراهم می نماید.

  • Plug &Play . با استفاده از ویندوز 2000 ،  دستگاههائی از نوع PNP بسادگی نصب می گردند . دستگاههای PNP ،  دستگاههائی هستند که پس از اتصال به سیستم ،   بدون نیاز به انجام فرآیندهای پیچیده ،  نصب خواهند شد . پس از اتصال  چنین دستگاههائی،  ویندوز 2000 بصورت اتوماتیک آنان را تشخیص و عناصر مورد نیاز را نصب و پیکربندی مربوطه را انجام خواهد داد .

  • Clustering . ویندوز 2000 ،  امکان گروبندی مستقل کامپیوترها را بایکدیگر و بمنظور اجرای یک مجموعه از برنامه ها فراهم می نماید. این گروه بعنوان یک سیستم برای سرویس گیرندگان و برنامه ها در نظر گرفته خواهد شد . چنین گروه بندی  ،  Clustering نامیده شده و گروههائی از کامپیوترها را  کلاستر می گویند. این نوع سازماندهی کامپیوترها ، باعث برخورد مناسب در صورت  بروز اشکال در یک نقطه می گردد . در صورتیکه یک کامپیوتر دچار مشکل گردد،  کامپیوتر دیگر در کلاستر ، سرویس مربوطه را ارائه خواهد داد . 

  • File System . ویندوز 2000 ، از سه نوع متفاوت سیستم فایل حمایت می نماید : FAT(File Allocation table) ، FAT32 و NTFS . در صورتیکه نیازی به استتفاده از قابلیت های بوت دوگانه (راه اندازی سیستم از طریق دو نوع متفاوت سیستم عامل با توجه به خواسته کاربر) وجود نداشته باشد،  ضرورتی به استفاده از سیستم فایل FAT و یا FAT32 وجود نخواهد داشت  . NTFS ، سیستم فایل پیشنهادی برای ویندوز 2000 بوده و امکانات امنیتی مناسبی را ارائه می نماید. ویندوز 2000 ،  با استفاده از سیستم NTFS امکانات متعددی نظیر : بازیافت سیستم فایل،  اندازه پارتیش های بالا،  امنیت،  فشرده سازی و Disk Quotas  را ارائه می نماید.

  • Quality of Service )QoS) . امکان  QoS ،  مجموعه ای از سرویس های  مورد نظر بمنظور حصول اطمینان از انتقال داده ها  با یک سطح قابل قبول در یک شبکه است  با استفاده از QoS ، می توان نحوه پهنای باند اختصاصی به یک برنامه را کنترل نمود. QoS ،  یک سیستم مناسب ، سریع و تضمین شده برای اطلاعات در شبکه را فراهم می نماید .

  • Terminal Service . با استفاده از ویژگی فوق ، امکان دستیابی از راه دور به یک سرویس دهنده از طریق یک ترمینال شبیه سازی شده ، فراهم می گردد . یک ترمینال شبیه سازی شده ،  برنامه ای است که امکان دستیابی به یک کامپیوتر از راه دور را بگونه ای فراهم می نماید که تصور می شود شما در کنار سیستم بصورت فیزیکی قرار گرفته اید. با استفاده از سرویس ترمینال، می توان برنامه های سرویس گیرنده را بر روی سرویس دهنده اجراء و بدین ترتیب کامپیوتر سرویس گیرنده بعنوان یک ترمینال ایفای وظیفه خواهد کرد ( نه بعنوان یک سیستم مستقل) . بدین ترتیب هزینه مربوط به عملیات و نگهداری شبکه کاهش و می توان مدیریت سرویس دهنده را از هر مکانی بر روی شبکه انجام داد.

  • Remote Installation Services)RIS) . سرویس فوق، امکان بکارگیری سیستم عامل در یک سازمان توسط مدیران سیستم را تسریع و بهبود خواهد بخشید. بدین ترتیب  نیاز به ملاقات فیزیکی هر یک از کامپیوترهای سرویس گیرنده وجود نداشته و می توان از راه دور ،  اقدام به نصب نمود. سرویس فوق ، یک عنصر انتخابی بوده و  بعنوان بخشی از  نسخه windows 2000 server است .

مبانی شبکه های کامپیوتری
فرض کنید در سازمانی
، می بایست تعدادی زیادی از کارکنان از داده های مشابه استفاده  نمایند . یکی از راه حل ها ی مربوطه می تواند استقرار  یک نسخه از داده ها  بر روی هر یک از کامپیوتر ها باشد. بدین ترتیب هر یک از کارکنان بصورت مجزاء به داده ها دستیابی خواهند داشت . راه حل دیگر در این زمینه
، استقرار داده ها بر روی یک کامپیوتر و دستیابی سایر کامپیوتر به داده های مورد نیاز از راه دور است. رویکرد فوق ،  باعث صرفه چوئی در فضای ذخیره سازی  بر روی کامپیوترها شده و یک محل مرکزی برای ذخیره سازی و مدیریت داده هائی را که چندین کاربر نیازمند دستیابی به آنان می باشند را فراهم می نماید .عملیات فوق،  مستلزم اشتراک داده ها و منابع بوده و ما را بسمت پیاده سازی شبکه هدایت می نماید.شبکه شامل گروهی از کامپیوترهای مرتبط بهم است که امکان اشتراک اطلاعات را به کاربران خواهد داد .در یک شبکه ، کاربران متعددی قادر به دستیابی به اطلاعات مشابه و اتصال به منابع یکسانی می باشند . مثلا" در مقابل ارتباط هر کامپیوتر به چاپگر اختصاصی خود،  تمام کامپیوترها می توانند به یک چاپگر مرتبط و بدین ترتیب امکان استفاده از چاپگر بصورت مشترک توسط چندین کاربر فراهم می گردد .

مزایای شبکه 
برپاسازی یک شبکه کامپیوتری دارای مزایای زیر است :

  • اشتراک اطلاعات . امکان  اشتراک اطلاعات و داده ها با سرعت مطلوب و هزینه پایین ، از مهمترین مزایای یک شبکه کامپیوتری است .

  • اشتراک سخت افزار و نرم افزار . قبل از مطرح شدن شبکه ،  کاربران کامپیوتر ،  از چاپگر و سایر دستگاههای جانبی اختصاصی  استفاده می کردند. رویکرد فوق ،  افزایش هزینه ها خصوصا" در سازمان های بزرگ را بدنبال خواهد داشت . شبکه های کامپیوتری ، کاهش هزینه های فوق را بدنبال داشته  وامکان استفاده از منابع سخت افزاری و نرم افزاری مشترک بصورت همزمان توسط کاربران متعددی را فراهم می نماید.

  • مدیریت و حمایت متمرکز . برپاسازی یک شبکه ، باعث تسهیل در امر مدیریت و عملیات مربوط به پشتیبانی می گردد. بدین ترتیب ،  مدیریت شبکه از یک محل ،  قادر به  انجام عملیات و وظایف مدیریتی بر روی هر یک از کامپیوترهای موجود در شبکه خواهد بود.

نقش ( وظایف ) کامپیوترها در شبکه 
کامپیوترهای موجود در شبکه بعنوان سرویس گیرنده و یا سرویس دهنده
،  ایفای وظیفه می نمایند . 

  • کامپیوترهای سرویس گیرنده،  درخواست خود برای دریافت سرویس و یا اطلاعات  را از کامپیوترهائی در شبکه که بعنوان سرویس دهنده ،  ایفای وظیفه می نمایند ،  مطرح می نمایند . 

  • کامپیوترهای سرویس دهنده،  کامپیوترهائی هستند که سرویس ها و داده های مورد نیاز کامپیوترهای سرویس گیرنده را ارائه می نمایند. سرویس دهندگان در شبکه ، عملیات متفاوت و پیچیده ای را انجام می دهند. سرویس دهندگان،  برای شبکه های بزرگ اختصاصی شده تا قادر به پاسخگوئی به نیازهای توسعه یافته کاربران باشند.  نمونه های زیر انواع متفاوت سرویس دهندگان در یک شبکه بزرگ را نشان می دهد:
    سرویس دهنده فایل و چاپ . این نوع سرویس دهندگان
    ،  منابع فایل و چاپگر را از طریق یک نقظه متمرکز،  ارائه می نمایند. زمانیکه  سرویس گیرنده  ای درخواست خود  را برای دریافت داده ،  فایل و سرویس دهنده چاپ ، ارسال می نماید،  تمام اطلاعات  و یا فایل درخواستی  بر روی کامپیوتر متقاصی دریافت می گردد. مثلا" زمانیکه یک برنامه واژه پرداز فعال می گردد،  برنامه برروی کامپیوتر شما اجراء و مستندات ذخیره شده بر روی سرویس دهنده چاپ و یا فایل در حافظه کامپیوتر شما مستقر تا امکان ویرایش و یا استفاده محلی از مستندات فراهم گردد . زمانیکه مستندات مجددا" بر روی سرویس دهنده ذخیره می گردد،  سایر کاربران شبکه که دارای مجوزهای لازم دستیابی می باشند ،  قادر به مشاهده و استفاده از مستندات خواهند بود.سرویس دهندگان فایل و چاپ، تمرکزدر ذخیره سازی فایل ها و داده ها را بدنبال خواهند داشت.
    سرویس دهنده بانک اطلاعاتی . سرویس دهندگان بانک اطلاعاتی
    ، قادر به ذخیره سازی حجم بالائی از داده ها در یک مکان متمرکز بوده و از این طریق داده ها در دسترس کاربران قرار گرفته و ضرورتی به دریافت تمام بانک اطلاعاتی نخواهد بود. با استفاده از یک سرویس دهنده بانک اطلاعاتی،  تمام بانک اطلاعاتی بر روی سرویس دهنده ذخیره و صرفا" نتایج مربوط به یک درخواست برای متقاضی ارسال خواهد شد. مثلا" می توان از
    بانک اطلاعاتی کارکنان بر روی یک سرویس دهنده اطلاعاتی نظیر Microsoft SQL Server  استفاده کرد. زمانیکه سرویس دهنده درخواست شما را پردازش می نماید ، صرفا" نتایج پرس و جو (Query) از طریق سرویس دهنده برای سرویس گیرنده ارسال می گردد.
    سرویس دهنده پستت الکترونیکی . سرویس دهنده پست الکترونیکی
    ،  نظیر سرویس دهنده بانک اطلاعاتی رفتار می نماید با این تفاوت که از برنامه های  سرویس دهنده و  سرویس گیرنده مجزائی استفاده می گردد. داده های انتخابی از سرویس دهنده  برای سرویس گیرنده ارسال خواهد شد. سرویس دهنده پست الکترونیکی،  مدیریت پیام های الکترونیکی در شبکه برعهده دارد.
    سرویس دهنده فاکس (نمابر) . سرویس دهندگان فاکس
    ،  مدیریت ترافیک فاکس به و یا  از شبکه را با اشتراک یک و یا چندین دستگاه  فاکس مودم ، فراهم می نمایند. بدین ترتیب، سرویس فاکس برای هر یک از کاربران شبکه فراهم و ضرورتی به نصب یک دستگاه فاکس برای هر یک از کامپیوترها ، وجود نخواهد داشت .
    سرویس دهنده
    Directory Service . سرویس دهنده فوق
    ،  یک محل مرکزی بمنظور ذخیره اطلاعات در رابطه با شبکه نظیر اسامی  کاربران و منابع موجود در شبکه است . بدین ترتیبز  امنیت شبکه بصورت متمزکز مدیریت خواهد شد . مدیریت شبکه قادر به تعریف یک منبع نظیر چاپگر و نوع دستیابی  کاربران،خواهد بود. پس از تعریف منابع توسط مدیریت شبکه، کاربران قادر به دستیابی و استفاده از منابع خواهند بود. نوع استفاده از منابع بر اساس سیاست هاتی است که توسط مدیریت شبکه برای کاربران تعریف و درنظر گرفته شده است .
     

انواع شبکه 
با توجه به نحوه پیکربندی کامپیوترها در شبکه و نحوه دستیابی به اطلاعات
،  شبکه ها را به دو گروه عمده
Peer-To-Peer و Client Server تقسیم می نمایند:

  • Peer-To-Peer ( نظیر به نظیر ) . در شبکه های نظیر به نظیر،  سرویس دهنده اختصاصی وجود نداشته  و سلسله مراتبی در رابطه با کامپیوترها رعایت نمی گردد. تمام کامپیوترها معادل و همتراز می باشند. هر کامپیوتر در شبکه هم بعنوان سرویس گیرنده وهم بعنوان  سرویس دهنده ایفای وظیفه  نموده و امنیت بصورت محلی و بر روی هر کامپیوتر ارائه می گردد . کاربر هر یک از کامپیوترها مشخص می نماید که چه داده ئی بر روی کامپیوتر خود را می بایست به اشتراک قرار دهد. شبکه های نظیر به نظیر workgroup ، نیز نامیده می شوند . واژه workgroup ، نشاندهنده یک گروه کوچک ( معمولا" ده و یا کمتر ) از کامپیوترهای مرتبط با یکدیگر است . شبکه های نظیر به نظیر ، گزینه ای مناسب برای محیط هائی با شرایط زیر می باشند:
     ○ حداکثر تعداد کاربران ده و یا کمتر .
     ○ کاربران منابع و چاپگرها را به اشتراک گذاشته و در این راستا
    ، سرویس دهندگان خاصی وجود ندارد.
     ○ امنیت متمرکز مورد نظر نباشد .
     ○ رشد سازمان و شبکه بر اساس آنالیز شده
    ، محدود باشد .

  • Client Server  ( سرویس دهنده - سرویس گیرنده ) . بموازات رشد شبکه و افزایش کاربران و منابع موجود ،یک شبکه نظیر به نظیر قادر به پاسخگوئی به حجم بالای تقاضا برای منابع اشتراکی نخواهد بود بمنظور هماهنگی با افزایش تقاضا و ارائه سرویس های مورد نیاز ، شبکه ها می بایست از سرویس دهندگان اختصاصی، استفاده نمایند . یک سرویس دهنده اختصاصی، صرفا" بعنوان یک سرویس دهنده در شبکه ایفای وظیفه می نماید (نه بعنوان یک سرویس گیرنده) . شبکه های سرویس گیرنده - سرویس دهنده ، بعنوان مدلی استاندارد برای  برپاسازی شبکه مطرح شده اند . بموازات رشد شبکه ( تعداد کامپیوترها متصل شده ،  فاصله فیزیکی ، ترافیک موجود) می توان تعداد سرویس دهندگان در شبکه را افزایش داد. با توزیع  مناسب فعالیت های شبکه بین چندین سرویس دهنده ، کارآئی شبکه بطرز محسوسی افزایش خواهد یافت .

در بخش دوم این مقاله ، به بررسی سیستم های عامل شبکه ای پرداخته و نحوه پیاده سازی شبکه در ویندوز بررسی خواهد شد .

اصول امنیت برنامه های وب ( بخش اول )

اینترنت و به دنبال آن وب ، دنیای نرم افزار را دستخوش تحولات فراوانی نموده است . ظهور نسل جدیدی از برنامه های کامپیوتری موسوم به "برنامه های وب " از جمله این تحولات عظیم است . پس از ارائه سرویس وب در سال 1991، وب سایت های متعددی ایجاد گردید .  اینگونه سایت ها به منظور ارائه اطلاعات به مخاطبان خود از صفحات وب ایستا استفاده می کردند . در چنین وب سایت هائی ، امکان تعامل کاربر با برنامه وجود نداشت .
با توجه به این که رویکرد فوق با ماهیت و یا روح  نرم افزار چندان سازگار نمی باشد ، تلاش های گسترده ای در جهت ایجاد محتویات پویا انجام و متعاقب آن ، فن آوری های متعددی ایجاد گردید . به عنوان نمونه ، با پیاده سازی فن آوری CGI ( برگرفته از Common Gateway Interface  ) ، امکان استفاده از برنامه های خارجی به منظور تولید محتویات پویا فراهم گردید . بدین ترتیب ، کاربران قادر به درج اطلاعات و ارسال آنها برای یک برنامه خارجی و یا اسکریپت سمت سرویس دهنده شدند . برنامه موجود در سمت سرویس دهنده پس از دریافت اطلاعات و انجام پردازش های تعریف شده ، نتایج را تولید و آنها را برای کاربر ارسال می نمود .
رویکرد فوق ،‌ به عنوان نقطه عطفی در برنامه های وب تلقی می گردد چراکه برای اولین مرتبه امکان تولید محتویات پویا در وب سایت ها فراهم گردید . از آن زمان تاکنون فن آوری های متعددی به منظور تولید برنامه های وب ایجاد شده است .  PHP و ASP.NET نمونه هائی در این زمینه می باشند .  صرفنظر از این که از کدام فن آوری به منظور ایجاد برنامه های وب استفاده می گردد ، ایمن سازی آنان از جمله اهداف مشترک تمامی پیاده کنندگان است .

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

امنیت برنامه های وب را می بایست با توجه به
نوع معماری و رفتار آنان بررسی نمود .

برداشت های غیرواقعی از امنیت برنامه های وب
متاسفانه به دلیل عدم شناخت لازم در خصوص ماهیت برنامه های وب از یک طرف و از سوی دیگر عدم آشنائی لازم با مفاهیم امنیت  ،‌ شاهد برداشت های نادرست در خصوص امنیت برنامه های وب می باشیم . اجازه دهید به چند نمونه در این خصوص اشاره نمائیم :

  • ما ایمن هستیم چون از یک فایروال استفاده می نمائیم . این تصور کاملا" اشتباه است و به نوع تهدید بستگی خواهد داشت . مثلا" یک فایروال قادر به تشخیص داده ورودی مخرب جهت ارسال به یک برنامه وب نمی باشد .  فایروال ها دارای عملکردی قابل قبول در رابطه با اعمال محدودیت بر روی پورت ها می باشند  و برخی از آنان می توانند همزمان با بررسی اطلاعات مبادله شده ،‌ امکانات برجسته حفاظتی را ارائه نمایند . فایروال ها جزء لاینفک در یک فریمورک امنیتی می باشند ولی نمی توان آنان را به عنوان یک راهکار جامع به منظور ایجاد و برپائی یک محیط ایمن در نظر گرفت .

  • ما ایمن هستیم چون از  SSL ( برگرفته ازSecure Sokets Layer ) استفاده می نمائیم SSL برای رمزنگاری ترافیک موجود بر روی شبکه یک گزینه ایده آل است ولی قادر به بررسی داده ورودی یک برنامه نمی باشد .

  • ما ایمن هستیم چون از سیستم عاملی استفاده می نمائیم که نسبت به سایر سیستم های عامل دارای امنیت بیشتری است . استدلال فوق با فرض درست بودن اصل قضیه ، نادرست و غیرمنطقی است چراکه امنیت یک فرآیند است نه یک محصول . بنابراین با بکارگیری یک محصول خاص ( به عنوان نمونه یک سیستم عامل ) نمی توان این ادعا را داشت که ما به یک محیط ایمن به منظور ایجاد برنامه های وب دست یافته ایم .

 با رد امنیت یک سیستم عامل نمی توان امنیت یک سیستم عامل دیگر را تائید نمود.
 ( من خوبم چون شما بد هستید ! )

امنیت چیست ؟
اولین رسالت امنیت ، حفاظت از سرمایه های یک سازمان است که ممکن است شامل آیتم های ملموسی نظیر یک صفحه وب و یا بانک اطلاعاتی مشتریان و یا آیتم های غیرملموسی نظیر شهرت و اعتبار یک سازمان باشد. امنیت یک مسیر است نه یک مقصد و به موازات تجزیه و تحلیل زیرساخت و برنامه های موجود ، می بایست اقدام به شناسائی تهدیدات و خطرات ناشی از آنان نمود . در واقع ، امنیت به مدیریت خطرات و پیاده سازی یک سیستم به منظور پاسخگوئی و مقابله با تهدیدات اشاره داشته و در ارتباط با عتاصر کلیدی زیر است :

  • Authentication ،  فرآیندی است که به کمک آن به صورت منحصربفرد سرویس گیرندگان یک برنامه شناسائی می گردند . کاربران ،  سرویس ها ، فرآیندها و کامپیوترها ،  نمونه هائی از سرویس گیرندگان یک برنامه می باشند . در واقع ، authentication هویت استفاده کنندگان یک برنامه را بررسی می نماید .

  • Authorization ، فرآیندی است که به کمک آن دستیابی سرویس گیرندگان تائید شده به منابع و عملیاتی که قصد انجام آن را دارند بررسی و مجوز لازم صادر می گردد. فایل ها ، بانک های اطلاعاتی ، جداول ، سطرها ، منابع موجود در سطح سیستم نظیر کلیدهای ریجتسری و داده پیکربندی ، نمونه هائی از منابع مورد درخواست سرویس گیرندگان می باشند . انجام تراکنش هائی خاص نظیر خرید یک محصول ، واریز و انتقال پول از یک حساب به حساب دیگر و یا افزایش اعتبار یک کارت اعتباری از جمله عملیاتی می باشند که می بایست مجوز استفاده از آنان برای سرویس گیرندگان صادر گردد . در واقع ، authorization محدوده مجاز عملیاتی را که یک سرویس گیرنده می تواند انجام دهد را مشخص می نماید .

  • Auditing :  ممیزی موثر و ثبت عملیات انجام شده یکی از اصول مهم در جلوگیری از انجام اعمال خلاف قانون است . بدین ترتیب این اطمینان ایجاد خواهد شد که یک کاربر نمی تواند باعث عدم انحام یک کار و یا فعالیت در سیستم گردد و یا یک تراکنش را مقداردهی اولیه نماید . مثلا" در یک سیستم e-commerce  می بایست از مکانیزم هائی استفاده گردد تا این اطمینان حاصل گردد که یک مصرف کننده نمی تواند سفارش انجام شده برای خرید یکصد نسخه از یک کتاب را انکار نماید .

  • Confidentiality ، که از آن با نام privacy نیز نام برده می شود ، فرآیندی است که به کمک آن این اطمینان ایجاد می گردد که حریم خصوصی داده رعایت و امکان مشاهده آن توسط کاربران غیرمجاز و یا سایر افرادی که  قادر به ردیابی ترافیک یک شبکه می باشند ، وجود نخواهد داشت . 

  •  Integrity ، فرآیندی است که به کمک آن این اطمینان ایجاد می گردد که داده در مقابل تغییرات تصادفی و یا تعمدی حفاظت خواهد شد . همانند privacy ، یکپارچگی اطلاعات یک فاکتور اساسی در خصوص امنیت داده محسوب می گردد ، خصوصا" در مواردی که داده در طول شبکه مبادله خواهد شد . یکپارچگی داده در حال حمل ،‌عموما" با استفاده از روش هائی نظیر hashing و یا کدهای تائید پیام انجام می شود .

  • Availability ، فرآیندی است که به کمک آن این اطمینان ایجاد خواهد شد که همواره داده برای کاربران مجاز در دسترس و قابل استفاده خواهد بود . در اغلب حملات از نوع DoS ، مهاجمان این هدف را دنبال می نمایند که بتوانند امکان استفاده و در دسترس بودن برنامه برای کاربران مجاز را غیرممکن و عملا" آن را از کار بیندازند .

تعاریف اولیه برخی از  اصطلاحات امنیتی : تهدیدات ، نقاط آسیب پذیر و حملات

  • تهدید ( threat ) : به هرگونه پتانسیل بروز یک رویداد مخرب و یا سایر موارد دیگر که می تواند به سرمایه های یک سازمان آسیب برساند ، تهدید  گفته می شود . به عبارت دیگر، هر رویدادی که بتواند به سرمایه های یک سازمان آسیب برساند ، در زمره تهدیدات محسوب می گردد . 

  • نقاط آسیب پذیر (vulnerability) : ضعف های موجود در یک سیستم می باشند که پتانسیل اولیه بروز یک رویداد مخرب را فراهم می نمایند . ضعف در طراحی ، پیکربندی اشتباه ، استفاده از روش های کدینگ غیرایمن مهمترین دلایل ایجاد یک ضعف در سیستم می باشند . ضعف در بررسی صحت داده ورودی توسط کاربر ، نمونه ای از یک لایه آسیب پذیر در یک برنامه است که می تواند زمینه بروز یک تهاجم را فراهم نماید .

  • تهاجم (attack) : عملیاتی است که محوریت آن سوء استفاده از نقاط آسیب پذیر و پتانسیل های بروز یک رویداد مخرب می باشد .  ارسال ورودی مخرب به یک برنامه و یا flooding یک شبکه به منظور از کار انداختن یک سرویس ، نمونه هائی در این زمینه می باشد .

یک تهدید پتانسیل بروز یک رویداد مخرب را فراهم می نماید که می تواند به سرمایه های یک سازمان آسیب برساند
 در حالی که در یک تهاجم موفقیت آمیز از نقاط آسیب پذیر موجود در سیستم استفاده می گردد .

چگونه می توان یک برنامه وب ایمن را ایجاد نمود ؟
تا زمانی که شناخت مناسبی نسبت به تهدیدات وجود نداشته باشد ، امکان ایجاد یک برنامه وب ایمن وجود نخواهد داشت . بنابراین قبل از هر چیز لازم است که با "مدل تهدیدات " موجود آشنا شویم . هدف مدل فوق، آنالیز معماری و نحوه طراحی برنامه به منظور شناسائی نقاط آسیب پذیری است که ممکن است به صورت تصادفی توسط یک کاربر ناآگاه و یا مهاجمان با اهداف مخرب مورد سوء استفاده قرار گرفته تا با استناد به آنان بتوانند موجودیت و امنیت  سیستم را با خطر مواجه نمایند  .
پس از آسنائی با تهدیدات ، می بایست با بکارگیری مجموعه ای از اصول امنیتی اقدام به طراحی سیستم نمود . در ادامه ، پیاده کنندگان می بایست از روش های ایمن به منظور نوشتن کدهای مطمئن ، مستحکم و قابل اعتماد استفاده نمایند . پس از طراحی و پیاده سازی برنامه ، می بایست از یک شبکه ایمن ، یک host مطمئن و یک پیکربندی مناسب بر روی سرویس دهنده ،‌ استفاده گردد .
ایجاد یک برنامه وب ایمن ، مستلزم اقدامات امنیتی چند جانبه ای است  که موفقیت در تمامی آنان ، ایمن بودن برنامه های‌ وب را تضمین خواهد کرد . ایمن سازی شبکه ، host و برنامه ، رئوس مثلث امنیتی ایجاد برنامه های وب ایمن را تشکیل می دهند .

ایمن سازی شبکه ، host و برنامه
به منظور  ایجاد برنامه های وب ایمن ، تبعیت از یک رویکرد جامع امری است الزامی . بنابراین ، می بایست امنیت برنامه های‌ وب را در سه لایه متفاوت بررسی و اقدامات لازم را در هر لایه با توجه به جایگاه آن انجام داد . شکل زیر سه لایه مهم به منظور ایجاد برنامه های وب ایمن را نشان می دهد .

 وجود یک نقطه آسیب پذیر در شبکه به یک مهاجم اجازه می دهد تا کنترل یک host  و یا برنامه را بدست بگیرد .

وجود یک نقطه آسیب پذیر در host  به یک مهاجم اجازه می دهد تا بتواند کنترل یک شبکه و یا برنامه را بدست بگیرد .

وجود یک نقطه آسیب پذیر در برنامه به یک مهاجم اجازه می دهد تا کنترل یک host  و یا شبکه را بدست بگیرد .

 در بخش دوم به بررسی هر یک از لایه های فوق خواهیم پرداخت .

اصول امنیت برنامه های وب ( بخش دوم )

در  بخش اول به این موضوع اشاره گردید که به منظور ایجاد برنامه های وب ایمن ، می بایست از یک رویکرد جامع تبعیت و بر روی سه لایه متفاوت شبکه ، host و برنامه متمرکز گردید. در این بخش به  بررسی ایمن سازی شبکه خواهیم پرداخت .

ایمن سازی شبکه
شبکه ، نقطه ورود به یک برنامه وب است و  اولین لایه حفاظتی به منظور کنترل دستیابی به سرویس دهندگان متعدد موجود در محیط عملیاتی را فراهم می نماید . با این که سرویس دهندگان توسط سیستم های عامل نصب شده بر روی خود حفاظت می گردند ولی نمی بایست به این موضوع صرفا" اکتفاء نمود و لازم است که تدابیر لازم به منظور حفاظت آنها در مقابل سایر تهدیدات ( نظیر ارسال سیلابی ‌از بسته های اطلاعاتی از طریق لایه شبکه ) نیز اندیشیده گردد .
ایمن سازی شبکه ، شامل حفاظت از دستگاه های شبکه ای و داده مبادله شده بر روی آنها می باشد . روتر ،‌ فایروال و سوئیچ عناصر اولیه زیرساخت یک شبکه را تشکیل می دهند . شکل زیر نحوه استفاده از عناصر فوق را در یک شبکه نشان می دهد .  

   عناصر شبکه : روتر ،‌ فایروال و سوئیچ
  عناصر شبکه : روتر ،‌ فایروال و سوئیچ

یک برنامه وب بر روی یک زیرساخت شبکه ای ایمن فعالیت و به کاربران خود سرویس های لازم را ارائه می نماید . برای ایمن سازی شبکه ، علاوه بر این که شبکه می بایست در مقابل حملات مبتنی بر TCP/IP از خود محافظت نماید ، بلکه لازم است اقدامات متعدد دیگری نیز در این رابطه انجام شود . ایجاد اینترفیس های مدیریتی ایمن، استفاده از رمزهای عبور قدرتمند ، حصول اطمینان از صحت ترافیک ارسالی از جمله اقدامات دیگر در خصوص ایجاد یک شبکه ایمن می باشد . بدین منظور لازم است که   پورت ها و پروتکل های استفاده شده در هر لایه به دقت بررسی و در صورتی که وجود آنها غیرضروری تشخیص داده شود و یا استفاده از آنها زمینه بروز تهدیداتی را فراهم می نماید ،‌ می بایست در همان لایه با آنان برخورد و از یک راهکار مناسب امنیتی استفاده گردد . 
وجود ضعف امنیتی در یک شبکه زمینه بروز تهدیدات متعددی را فراهم می نماید . بدون شناسائی اینگونه تهدیدات ، امکان مقابله منطقی با آنان وجود نخواهد داشت . 

تهدیدات
یک مهاجم به منظور برنامه ریزی حملات خود به دنبال دستگاه های شبکه ای است که بر روی آنها پیکربندی ضعیفی اعمال شده است . تنظیمات ضعیف پیش فرض ، دستیابی بدون ضابطه به منابع موجود بر روی شبکه ، وجود دستگاه هائی که به درستی patch و یا بهنگام نشده اند، حفره های امنیتی متعددی را در یک شبکه ایجاد می نماید . وجود حفره های امنتیی فوق و عدم برخورد مناسب با آنها ، احتمال موفقیت مهاجمان را افزایش می دهد .
مهمترین تهدیدات در یک شبکه عبارتند از :

  • جمع آوری اطلاعات
  • sniffing
  • spoofing
  • session hijacking
  • DoS ( برگرفته از Denial of Service )

با آگاهی از ماهیت هر یک از تهدیدات فوق و نحوه تاثیر آنها بر روی عملکرد شبکه ، می توان امکانات حفاظتی و تدافعی مناسبی را در یک شبکه پیش بینی و پیاده سازی نمود.
در ادامه به بررسی مختصر هر یک از تهدیدات فوق خواهیم پرداخت .

جمع آوری اطلاعات
مهاجمان در اولین مرحله ،‌اقدام به جمع آوری اطلاعات در رابطه با اهداف خود می نمایند . جمع آوری اطلاعات می تواند باعث افشای اطلاعات توپولوژی شبکه ، پیکربندی سیستم و دستگاه های شبکه ای گردد . یک مهاجم می تواند در ادامه با استفاده از اطلاعات جمع آوری شده بر روی نقاط آسیب پذیر متمرکز و از حفره های امنیتی موجود در جهت تامین خواسته های مخرب خود استفاده نماید .

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ماهیت غیرایمن ذاتی پروتکل TCP/IP
  • پیکربندی ضعیف دستگاه های شبکه ای
  • استفاده غیرایمن از سرویس هائی که به وجود آنها در یک شبکه نیاز نمی باشد .

حملات
متداولترین حملات مبتنی بر "جمع آوری اطلاعات"  عبارتند از :

  • استفاده از Tracert به منظور تشخیص توپولوژی شبکه
  • استفاده از Telnet به منظور باز نمودن پورت ها و جمع آوری اطلاعات اولیه 
  • استفاده از پویشگرهای پورت به منظور تشخیص وضعیت پورت ها 
  • استفاده از درخواست های broadcast برای شمارش تعداد host موجود بر روی یک subnet

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از روش های زیر استفاده نمود :

  • استفاده از امکاناتی که اطلاعات اضافه ای را در خصوص پیکربندی نظیر نام و شماره نسخه نرم افزار ارائه نمی نماید .
  • استفاده از فایروال ها به منظور پوشش سرویس هائی که نمی بایست در معرض دید و استفاده عموم قرار داده شوند .

sniffing
sniffing که به آن "استراق سمع "  نیز گفته می شود ، مانیتورینگ ترافیک شبکه برای داده هائی نظیر رمزهای عبور ( رمزنشده) و یا اطلاعات پیکربندی است . با استفاده از یک برنامه  packet sniffer  ، می توان به سادگی تمامی ترافیک plain text  ( رمز نشده ) را مشاهده نمود .

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ضعف امنیت فیزیکی
  • ضعف رمزنگاری در زمان ارسال داده حساس  و مهم
  • وجود سرویس هائی که با یکدیگر به صورت متن معمولی ( رمز نشده ) ارتباط برقرار می نمایند .
  • استفاده از الگوریتم های ضعیف رمزنگاری

حملات
مهاجمان با قرار دادن یک  packet sniffer  بر روی شبکه می توانند تمامی ترافیک را capture و  آنالیز نمایند .

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از روش های زیر استفاده نمود :

  • استفاده از یک سیستم امنیت فیزیکی مناسب به منظور پیشگیری از نصب دستگاه های مخرب بر روی شبکه
  • رمزنگاری اطلاعات حساس و ترافیک برنامه بر روی شبکه 

Spoofing
spoofing ، که به آن "هویت مبهم "  نیز گفته می شود  ، به کتمان هویت واقعی بر روی شبکه اطلاق می گردد . در این رابطه از یک آدرس مبداء جعلی که بیانگر آدرس اولیه صادرکننده پیام نمی باشد ، استفاده می گردد . در بسیاری موارد از spoofing به منظور مخفی کردن منبع بروز یک تهاجم استفاده می شود. در برخی موارد که دستیابی به منابع موجود بر روی شبکه بر اساس آدرس متقاضیان انجام می شود ، مهاجمان با تغییر آدرس مبداء سعی می نمایند به اینگونه از منابع دستیابی پیدا نمایند .

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ماهیت غیرایمن ذاتی پروتکل TCP/IP

  • ضعف در فیلترینگ بسته های اطلاعاتی ورودی و خروجی : ترافیک ورودی و خروجی شبکه به درستی کنترل و فیلتر نمی گردد (ingress & egress filtering )

 حملات
یک مهاجم می تواند از ابزارهای متعددی به منظور تغییر آدرس بسته های خروجی استفاده نماید تا اینچنین وانمود نماید که آنها از یک host و یا شبکه دیگر ارسال شده اند .

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از از فیلترینگ egress و ingress بر روی روتر های perimeter استفاده نمود .


session Hijacking
با استفاده از این نوع حملات که به آنها man in middle نیز گفته می شود ، مهاجمان می توانند از یک برنامه برای تغییر شکل ظاهری خود  به عنوان یک سرویس گیرنده و یا سرویس دهنده موجه استفاده نمایند . بدین ترتیب ، یک سرویس دهنده و یا سرویس گیرنده واقعی فریب خورده و فکر می کنند که با یک host معتبر و مجاز ارتباط برقرار نموده اند . در واقع ، این نوع کامپیوترهای میزبان متعلق به مهاجمان بوده که سعی می نمایند با دستکاری شبکه خود را به عنوان مقصد مورد نظر وانمود نمایند . از این نوع حملات به منظور آگاهی از اطلاعات logon و دستیابی به سیستم و سایر اطلاعات محرمانه استفاده می گردد .

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ضعف در امنیت فیزیکی
  • ماهیت غیرایمن ذاتی پروتکل TCP/IP
  • مبادله اطلاعات به صورت رمزنشده

 حملات
یک مهاجم می تواند از ابزارهای متعددی به منظور انجام عملیات spoofing ، تغییر روتینگ و دستکاری بسته های اطلاعاتی استفاده نماید. 

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از روش های زیر استفاده نمود :

  • رمزنگاری Session
  • استفاده از روش Stateful inspection در سطح فایروال

DoS
در این نوع از حملات ، امکان دستیابی کاربران مجاز به یک سرویس دهنده و یا سرویس خاص سلب می گردد .در حملات DoS لایه شبکه ، معمولا" مهاجمان با ارسال سیلابی از بسته های اطلاعاتی امکان استفاده از یک سرویس توسط سایر کاربران را سلب می نمایند . علاوه بر مشکل فوق ، در چنین مواردی از پهنای باند و منابع موجود بر روی شبکه استفاده بهینه نخواهد شد .  

نقاط آسیب پذیر
متداولترین نقاط آسیب پذیری که شبکه را مستعد این نوع از حملات می نماید عبارتند از :

  • ماهیت غیرایمن ذاتی پروتکل TCP/IP
  • ضعف در پیکربندی روتر و سوئیچ
  • باگ در سرویسهای نرم افزاری

 حملات
متداولترین حملات DoS عبارتند از :

  • ارسال سیلابی از بسته های اطلاعاتی نظیر حملات cascading broadcast
  • بسته های اطلاعاتی SYN flood
  • سوء استفاده از برخی سرویس ها 

پیشگیری و مقابله با تهدیدات 
به منظور پیشگیری و مقابله با این نوع حملات می توان از روش های زیر استفاده نمود : 

  • فیلترینگ درخواست های broadcast
  • فیلترینگ درخواست های ICMP ( برگرفته از  Internet Control Message Protocol )
  • بهنگام سازی و نصب patches سرویس های نرم افزاری

بدون آنالیز صحیح تهدیدات ،
 امکان ایجاد یک محیط و یا شبکه ایمن وجود نخواهد داشت .

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

آماده‌سازی اسناد با فرمت PDF

اشاره :
برای تبدیل اسناد به فرمت PDF، به غیر از محصولات خود ادوبی، برنامه‌های سبک‌تر و ارزان‌تری هم عرضه شده، که یکی از آن‌ها محصولی از PDF 995 است که در این مقاله معرفی کرده‌ایم.


 منبع: اینترنت ادوایزر

چه خواهید آموخت:
ý
آماده کردن اسناد برای وب
ý تبدیل اسناد به فرمت‌های مختلف
ý‌ ارائه اطلاعات با فرمتی شناخته شده‌
امروزه با این همه ابزار و برنامه‌ای که در اختیار همگان قرار دارند، درج محتوای نوشتاری در سایت وب نباید کار دشواری باشد. اما آنچه اهمیت آن هرگز کاهش نیافته، قابل دسترس کردن این اطلاعات و تبدیل دست نوشته‌ها به فایل‌های دیجیتالی یا تبدیل فایل‌ها از یک فرمت به فرمتی دیگر است. با رشد اینترنت، ابزارهایی که برای انجام این تبدیلات عرضه شده‌اند نیز توسعه یافته‌اند. یکی از این فرمت‌ها که بهترین‌گواه برای این مدعا می‌تواند باشد، Portable Document Format یا همان PDF است که محصول شرکت ادوبی می‌باشد. این فرمت امروزه یکی از پراستفاده‌ترین فرمت‌های انتشار اسناد در وب محسوب می‌شود

مدت زمان لا‌زم:‌ 45 دقیقه‌

چه خواهید یافت؟
اسنادی که دوست دارید در اختیار بازدیدکنندگان سایت خود قرار دهید چگونه باید باشند؟ یاد بگیرید یک فایل را به PDF تبدیل کنید.
چه اهمیتی دارد:
اینترنت با بقیه وسایل ارتباط جمعی فرق دارد. اسنادی که در وب منتشر می‌شوند باید فرمتی شناخته شده داشته باشند تا همگان بتوانند از آنها استفاده کنند.
چه می‌خواهد:
اگر به اینترنت دسترسی داشته باشید، فقط می‌ماند بارگذاری برنامه‌ها و نصب آنها. بقیه کار مثل آب خوردن است.
چقدر دشوار است؟
وقتی اصل سند را در اختیار دارید، تبدیل آن به PDF یا eBook کاری ندارد. خود این برنامه‌ها همه کار را برای شما انجام می‌دهند.

خیلی وقت‌ها باید اسناد چاپی را به فرم دیجیتالی درآورد تا در وب قابل استفاده باشد. در این مواقع، انواع فرمت‌های گرافیکی وجود دارند که می‌توانید انتخاب کنید. گاهی اوقات باید فرمت TXT را به HTML تبدیل کنید،  و گاهی مجبورید محتوای HTML یک سایت را به شکل TXT بیرون بکشید تا در اضافاتی که برای زیباسازی آن استفاده شده گرفتار نشوید. خوشبختانه، برنامه‌هایی وجود دارند که انجام این کارها را بدون هیچ زحمتی برای شما فراهم می‌سازند.




امروز وجود Acrobat Reader در میلیون‌ها کامپیوتر، این برنامه ادوبی را به استانداردی برای نمایش اسناد، به ویژه اسنادی که باید شکل کاغذی خود را حفظ کنند، تبدیل کرده است. برای تبدیل اسناد به این فرمت، به غیر از محصولات خود ادوبی، برنامه‌های سبک‌تر و ارزان‌تری هم عرضه شده، که یکی از آن‌ها محصولی از
www.pdf599.com ) PDF 995) است که در این مقاله معرفی کرده‌ایم.

فرمت PDF بدون شک سرآمد تمام فرمت‌های اسناد آنلاین است، ولی اهمیت قالب‌های دیگری چون eBook را نیز نباید از خاطر دور داشت. با برنامه‌هایی که در این مقاله به شما معرفی می‌کنیم، ساخت محتوا برای سایت وب و آماده کردن اسناد به نحوی که به آسانی قابل ایمیل‌کردن باشند، بسیار ساده می‌شود.

قدم ‌اول


بارگذاری مبدل:  PDF 995 مجموعه‌ای از چند برنامه است که یکی از آن‌ها مبدل اسناد به PDF می‌باشد.

برای دریافت این مجموعه از اینترنت،
به نشانی بروید.
و از آنجا، خود برنامه و همچنین درایور پرینتر را بارگذاری کنید.

 بعد از نصب، یک چاپگر به کامپیوترتان اضافه می‌شود که به عنوان خروجی در تمام برنامه قابل استفاده خواهد بود.

قدم‌ دوم‌


تبدیل سند:
  برای امتحان، یک فایل متنی ساده را در نظر می‌گیریم. بعد از باز کردن فایل، گزینه Print را از منوی File  کلیک کنید.

از فهرست کرکره‌ای موجود، پرینتر را انتخاب می‌کنیم که در این مورد PDF 995 مورد نظر ماست.

با کلیک روی دکمه OK، کادر محاوره Save As ظاهر می‌شود که در واقع نام فایل PDF را از ما می‌پرسد.

قدم سوم


دستکاری فایل PDF: اگر بخواهید تغییراتی جزئی در فایل پی‌دی‌افی که ساخته‌اید ایجاد کنید، می‌توانید از برنامه
PDFE dit995 استفاده کنید.
 
این برنامه که جزء مجموعه PDF 995 است، همراه با بقیه برنامه‌های این مجموعه نصب شده و امکان گذاشتن شماره صفحه، تغییر ابعاد صفحه، ترکیب چند سند با یکدیگر و خیلی کارهای دیگر را به شما می‌دهد.
 

قدم‌چهارم


رمز گذاشتن روی PDF:  یکی دیگر از برنامه‌های
مجموعه PDF 995 امکان گذاشتن رمز روی فایل‌های PDF را به شما می‌دهد.

این برنامه با استفاده از شیوه رمزگذاری Triple DES مانع از چاپ، کپی کردن نوشته‌ها و تصاویر، و تغییر در فایل PDF می‌شود.
 
با این شیوه حتی می‌توانید رمز عبوری روی PDF خود بگذارید که باز کردن فایل را هم محدود می‌کند


قدم‌پنجم‌


باز کردن فایل PDF:
اگر تاکنون برنامه Acrobat Reader را در سیستم خود نصب نکرده‌اید، همین حالا آن را از سایت www.adobe.com دریافت و نصب کنید.
 
بعد از نصب، PDF خود را باز کنید و ببینید که همه چیز درست تبدیل شده است.


قدم‌ششم‌

 
 ارسال فایل به سایت:  حالا که یک PDF درست و حسابی دارید، می‌توانید آن را در وب سایت خود گذاشته و به بازدیدکنندگان اجازه بدهید آن را بارگذاری و مشاهده کنند.


برای انتقال فایل به سرور وب، از همان برنامه FTP  معمول خود استفاده کنید. بعد از این کار، لینکی را در صفحه اضافه کنید تا بازدیدکننده با کلیک روی آن بتواند فایل را بارگذاری کند.





قدم‌ هفتم‌


تبدیل PDF به HTML:  اگر محتوای سایت‌تان را به صورت PDF در دست دارید، لازم نیست این همه متن و تصویر را به HTML تبدیل کنید.

شرکت ادوبی یک برنامه وبی به این نشانی
عرضه کرده که فایل‌های PDF را درجا به HTML  تبدیل می‌کند. شما می‌توانید این امکان را در سایت خود مورد استفاده قرار دهید.


 


قدم‌ هشتم‌


سایر خدمات رایگان ادوبی:
  شرکت ادوبی خدمات دیگری را در نشانی  ارائه داده که به کمک آنها می‌توانید هر نوع سند سازگار با PDF را به این فرمت تبدیل کنید.
این سرویس تا پنج بار استفاده رایگان است. در مواقع ضروری که هیچ ابزار دیگری در اختیار ندارید، این روش به دادتان می‌رسد.



حالا  این  را  امتحان  کنید:
1-  تبدیل TXT به HTML:
اگر مجبور شدید فایل متنی را سریعاً به HTML تبدیل کنید، AscToHTML در نشانی
(
www.jafsoft.com/asctohtml)  این کار را برای شما انجام می‌دهد. این برنامه حتی جداول موجود در سند اصلی را به صورت جداول HTML در می‌آورد.
2- برچسب‌ها را از روی HTML بردارید:
 کپی‌کردن و چسباندن نوشته‌های اچ‌تی‌ام‌الی در سایت‌های وب، برچسب‌های آن را هم با خود می‌آورد. اگر می‌خواهید این برچسب‌ها را از اصل متن جدا کنید، از برنامه‌ای به نام Detagger استفاده کنید.
3- ساخت کتاب الکترونیک:

با ساخت حالت eBook از اسناد و صفحات وب خود، به بازدیدکنندگان سایت خود امکان بارگذاری آنها را بدهید. نرم‌افزار رایگان ReaderWorks  نشانی (www.overdrive.com/reader)
 works این تبدیل را برای شما انجام می‌دهد.

     

PDF بخوانیم و بسازیم!

PDF بخوانیم و بسازیم!
PDF چیست؟
PDF فرمت رسمی کتابهای الکترونیک است و این مزیت را نسبت به فرمتهای دیگری نظیر doc دارد که در انتقال از یک کامپیوتر به کامپیوتر دیگر نظم نوشته هایش بهم نمی ریزد ، البته بر خلاف doc به راحتی قابل ویرایش نیست.
به هر حال بسیاری مواقع ، دریافت کنندگان فایل ترجیح می دهند تا فایل را به صورت PDF دریافت کنند چرا که ممکن است بر روی کامپیوتر مقصد نرم افزار سازنده فایل وجود نداشته باشد.

خواندن PDF
برای دیدن یک فایل PDF باید از نظر نرم افزار Adobe Acrobat Reader استفاده کنید. این نرم افزار از طریق سایت www.adobe.com/acrobat قابل دانلود است.
همچنین همراه بسیاری از CD ها هم وجود دارد. برای دانلود کردن یک فایل PDF بهتر است به جای کلیک کردن بر روی لینک آن ، ابتدا کلیک راست کنید و سپس Save target as را انتخاب نمایید تا ابتدا فایل بر روی کامپیوتر شما ذخیره گردد و بعد براحتی بتوانید آن را باز کنید و محتویات درونی اش را مشاهده نمایید.

ساختن یک فایل PDF
برای ساختن فایلهای PDF راههای مختلفی وجود دارد. تقریبا هر فایلی که قابل چاپ کردن باشد را می توان به PDF تبدیل کرد.
به این ترتیب می توانید فایلهای نرم افزارهای مختلف را به این فرمت تبدیل کنید تا دیگران برای دیدن فایلهای شما نیازی به نصب آن نرم افزارها نداشته باشند. یکی از راههای ساختن PDF استفاده از نصب نرم افزار Adobe Acrobatاست.
دقت کنید که این نرم افزار با Adobe Acrobat Reader متفاوت است. Reader فقط برای خواندن فایلهای PDF است ولی Adobe Acrobat که بعضی اوقات به آن Adobe Acrobat Writer هم می گویند برای خواندن ، ویرایش و ایجاد فایلهای PDF است. اگر فایلهای PDF را با نرم افزار Adobe Acrobat باز کنید می توانید آنها را تغییر هم بدهید. برای ساخت فایل PDFو در حقیقت تبدیل فایلهای دیگر به PDF از Acrobat Distiller که به همراه Adobe Acrobat نصب می شود می توان استفاده کرد.
البته نرم افزار Acrobat Distiller به تنهایی هم وجود دارد و می توانید به جای نصب Adobe Acrobat فقط Acrobat Distiller را نصب کنید. که در این صورت برای خواندن فایلهای PDF باید Adobe Acrobat Reader را هم نصب نمایید.

به همراه Acrobat Distiller چاپگری با همین نام بر روی کامپیوتر نصب می شود. هر فایلی را که می خواهید به PDF تبدیل کنید با نرم افزار خودش آن را باز کنید و فایل را چاپ کنید. چاپگر Acrobat Distiller را به جای چاپگر معمول خود انتخاب نمایید تا مسیر ذخیره فایل PDF از شما پرسیده شود و فایل PDF درست شود.
این روش هر چند بسیار ساده و راحت است ولی ممکن است بعضی اوقات با مشکل مواجه شود و فایل PDF درست نکند. مثلا گاهی اوقات این روش نمی تواند با بعضی از فونتهای استفاده شده در فایل شما بخوبی کار کند و با پیغام خطا مواجه شوید. راه دیگر ساختن فایلهای PDF ، استفاده از نرم افزار PDF 995 است.
این نرم افزار را می توانید از طریق سایت WWW.Pdf995.com دانلود کنید. با نصب این نرم افزار کم حجم ، یک چاپگر با نام PDF 995 بر روی ویندوز شما نصب می گردد که می توانید با انتخاب این چاپگر در موقع چاپ یک فایل ، فایل PDF تولید کنید. مطمئن ترین روش (البته با دردسر بیشتر) برای ساخت PDF استفاده از یک چاپگر Postscript است.
برای نصب چنین چاپگری در ControlPanel، Printers را باز کنید و بر روی AddPrinter دو بار کلیک کنید. در مرحله بعدی (LocalPrinter انتخاب پیش فرض) را انتخاب کرده و در قسمت Selectthe Printer Port از میان فهرست نمایش داده شده ، آخرین آنها یعنی File:Printtofile را انتخاب نمایید. در مرحله بعد که انتخاب چاپگر است یک چاپگر Postscript مثلا HPLaserJet5P/5MPPostscript را انتخاب نمایید. در مرحله بعد اگر می خواهید این چاپگر ، چاپگر پیش فرض شما باشد Yes و در غیر این صورت No را انتخاب نمایید. چند بار کلید Next را بزنید تا نصب این چاپگر تمام شود.
هم اکنون برای ساختن فایل PDF ابتدا در نرم افزار مورد نظر فایل را با استفاده از چاپگری که نصب کرده اید چاپ کنید. البته باید مسیر و نام ذخیره فایل را مشخص کنید تا یک فایل prn بر روی هارد ذخیره شود. سپس می توانید این فایل را با استفاده از نرم افزار AcrobatDistiller به فایل PDF تبدیل کنید. برای این کار می توانید نرم افزار AcrobatDistiller را باز کنید و سپس با ماوس prn را بر روی نرم افزار قرار دهید.
Distiller یک فایل PDF در کنار فایل prn شما می سازد که می توانید آن را باز کنید و محتویات آن را ببینید. سایتهایی هم نظیر www.pdfconverter.com هم وجود دارند که به صورت Online بعضی از فایلها نظیر فایلهای Word و html را به PDF تبدیل می کنند.
البته این سایتها معمولا با فایلهای فارسی مشکل دارند. همچنین بعضی از نرم افزارها امکانات خاصی برای ساختن فایلهای PDF دارند و در قسمت SaveAs و یا Export آنها می توان فایلهای PDF ساخت.

برنامه های وب مبتنی بر سرویس گیرنده : AJAX و Atlas

یکی از ویژگی های مهم برنامه های وب ، تبعیت آنان از معماری "سرویس گیرنده - سرویس دهنده"  است . این بدان معنی است که پیاده کنندگان برنامه های وب می توانند به منظور تحقق پردازش های سمت سرویس دهنده و سرویس گیرنده از فن آوری های متعددی استفاده نمایند. یکی از نکات مهم در خصوص انجام پردازش های سمت سرویس گیرنده ، میزان وابستگی آنان به اطلاعات موجود در سمت سرویس دهنده است . به عبارت دیگر ، اجرای یک event handler در سرویس گیرنده تا چه میزان وابسته به کد سمت سرویس دهنده است و  به منظور انجام آن چه میزان داده می بایست بین سرویس گیرنده و سرویس دهنده مبادله گردد ؟
صرفنظر از این که  به سوال فوق چه پاسخی داده می شود ، واقعیت این است که به منظور مدیریت رویدادهای محقق شده در سمت سرویس گیرنده ، می بایست ملزومات مورد نیاز ایجاد تا پیاده کنندگان بتوانند با استفاده از آنان پردازش های سمت سرویس گیرنده را مدیریت نمایند .

پردازش های سمت سرویس گیرنده از گذشته تاکنون
با توجه به این که پردازش های سمت سرویس گیرنده در برنامه های وب می بایست مستقل از نوع پلت فرم باشند ،  بدیهی است که تمامی تلاش های انجام شده در این عرصه ، می بایست متمرکز بر روی برنامه های مرورگر باشد تا با ایجاد پتانسیل هائی در آنها ، امکان انجام پردازش های سمت سرویس گیرنده فراهم گردد . ظهور زبان های اسکریپت نویسی نظیر جاوااسکریپت و  تجهیز مرورگرها به برنامه های مفسر مربوطه از جمله اقدامات عملی دراین عرصه است . استفاده از زبان جاوااسکریپت به منظور کدینگ پردازش های سمت سرویس گیرنده دارای قدمتی چندین ساله است . در ادامه ، قابلیت های جدیدی به مرورگرها اضافه گردید تا پیاده کنندگان بتوانند به کمک آنان برنامه های وب سمت سرویس گیرنده را ایجاد نمایند . هم اینک ، تمامی مرورگرهای متداول از یک مدل شی گراء موسوم  به DOM ( برگرفته از document object model ) استفاده می نمایند و تعداد اندکی از آنها از یک ویژگی جدید با نام XMLHTTP استفاده می نمایند  که به کمک آن ،  سرویس گیرندگان و سرویس دهندگان می توانند بدون نیاز به انجام یک postback کامل و round trip با یکدیگر و به صورت مستقیم ارتباط برقرار نمایند.
XMLHTTP  ، شامل مجموعه ای API ( رابط برنامه نویسی ) است که امکان ارسال و یا دریافت داده به صورت باینری ، HTML و XML را از سرویس دهندگان وب بر روی اینترنت و به کمک پروتکل HTTP فراهم می نماید .  در مواردی که نیاز به داده موجود در سمت سرویس دهنده می باشد ،  XMLHTTP  به صورت پیوسته اقدام به ارسال درخواست خود برای سرویس دهنده می نماید تا آخرین اطلاعات را بدون نیاز به refresh کردن مدام مرورگرها ، بازیابی نماید . در واقع ، به کمک فن آوری فوق ، سرویس گیرندگان قادر به مبادله غیرهمزمان با سرویس دهنده بوده و می توانند اقدام به ارسال و یا دریافت داده XML بدون نیاز به انجام یک round trip کامل که باعث تولید مجدد یک صفحه می گردد ، نمایند .
ماحصل این تحولات ، ظهور نسل جدیدی از برنامه های وب نظیر  Microsoft Virtual Earth  و   Microsoft Windows Live  است . ایجاد چنین برنامه های وبی کار ساده ای نخواهد بود و پیاده کنندگان می بایست شناخت مناسبی نسبت به جاوااسکریپت و مدل DOM  داشته باشند که ممکن است در هر مرورگر متفاوت باشد . علاوه بر این ، جاوااسکریپت تمامی ویژگی های یک زبان شی گراء را ارائه نمی نماید و بسیاری از ملزومات مورد نیاز پیاده کنندگان برنامه های وب در فریمورک دات نت را تامین نمی نماید ( نظیر type-safe ) .

ایجاد برنامه های وب با تاکید بر انجام پردازش سمت سرویس گیرنده ، نیازمند ملزوماتی نظیر
یک زبان برنامه نویسی و پلت فرم پیاده سازی جدید  است .   

AJAX ( برگرفته از asynchronous JavaScript and XML )
پیاده سازی برنامه های وب با استفاده از فن آوری های اشاره شده ( اسکریپت نویسی سمت سرویس گیرنده و مبادله غیرهمزمان با سرویس دهنده ) ،  AJAX  نامیده می شود . AJAX ، پیاده کنندگان را قادر به تولید صفحاتی می نماید که از توان پاسخگوئی بسیار مطلوبی در سمت سرویس گیرنده متناسب با رویداد ایجاده شده ، برخوردار می باشند . چراکه آنها  از اسکریپت های سمت سرویس دهنده برای دستیابی و مدیریت عناصر بخش رابط کاربر استفاده می نمایند . علاوه بر این ، با توجه به مبادله غیرهمزمان داده به منظور ارسال و دریافت داده ، امکان انجام عملیات مورد نظر بر روی داده بدون وقفه و ازدست دادن state وجود خواهد داشت .  Microsoft Virtual Earth  و برنامه سرویس گیرنده نامه های الکترونیکی Outlook Web Access  ،  دو نمونه از برنامه های سبک AJAX ، می باشند .

Atlas : تلاش‍ی در جهت ایجاد یک  پلت فرم پیاده سازی جامع 
فن آوری جدید ASP.NET با نام Atlas ، مجموعه ای از فن آوری های مایکروسافت را شامل می شود  که با تمرکز بر روی اصول AJAX ، سعی در توسعه و بهبود آن را دارد .
Atlas ، یک فن آوری جدید در عرصه پیاده سازی برنامه های وب ASP.NET است که  کتابخانه های اسکریپت سرویس گیرنده را با فریمورک پیاده سازی مبتنی بر سرویس دهنده ASP.NET 2.0 ترکیب می نماید . در واقع ، Atlas به پیاده کنندگان برنامه های وب یک پلت فرم مناسب به منظور پیاده  سازی صفحات وب مبتنی بر سرویس گیرنده را ارائه می نماید که قبلا" مشابه آن در خصوص صفحات وب مبتنی بر سرویس دهنده توسط ASP.NET ارائه شده بود . با توجه به این که Atlas ، به عنوان یک پتانسیل اضافه در کنار ASP.NET مطرح می باشد ، بدیهی است که کاملا" سازگار با سرویس های مبتنی بر سرویس دهنده باشد . با استفاده از Atlas ، می توان بخش قابل توجهی از پردازش های مورد نیاز یک برنامه را به سمت سرویس گیرنده انتقال داد ( fat-client ) . در چنین مواردی ، امکان ارتباط سرویس گیرنده با سرویس دهنده در background فراهم می گردد. ماحصل این فن آوری ، ایجاد برنامه های وبی است که علاوه بر ارائه امکانات مناسب  در لایه رابط کاربر ( UI ) ، دارای توان پاسخگوئی بالائی می باشند و به سادگی می توانند با سرویس دهنده ارتباط برقرار نمایند .

مفاهیم فنی اولیه AJAX
در AJAX ، پیاده کنندگان می توانند سرویس های وب را بطور غیرهمزمان و از طریق اسکریپت های سمت سرویس گیرنده و با استفاده از شی XMLHTTPRequest  فراخوانده تا اطلاعات به عنوان داده XML بسته بندی و در ادامه آنها را بر روی شبکه ارسال نمایند . بدین منظور شی XMLHTTPRequest یک شی پراکسی را ارائه می نماید تا به کمک آن امکان فراخوانی از راه دور و مبادله داده فراهم گردد . در فن آوری AJAX از زبان های اسکرپیت سمت سرویس گیرنده نظیر جاوااسکریپت بطرز گسترده ای استفاده می گردد . از جاوااسکریپت در مواردی نظیر فراخوانی از راه دور روتین ها ، انجام پردازش های مورد نیاز یک برنامه در سمت سرویس گیرنده و ایجاد ویژگی های پیشرفته ای در سطح لایه رابط کاربر استفاده می شود .
AJAX علاوه بر جاوااسکریپت از چندین فن آوری دیگر در سمت سرویس گیرنده نیز استفاده می نماید :

  • DOM : به کمک فن آوری فوق ، عناصر موجود در یک صفحه HTML به عنوان مجموعه ای از اشیاء استاندارد ( نظیر document و windows ) در نظر گرفته می شوند . بدین ترتیب ، امکان دستیابی  و انجام عملیات دلخواه بر روی آنان از طریق کد فراهم می گردد .

  • DHTML ( برگرفته از Dynamic HTML ) : فن آوری فوق ، توانمندی HTML را به منظور واکنش مناسب در خصوص عملیاتی که توسط کاربران انجام می شود ( نظیر درج داده ) با استفاده از اسکریپت های سمت سرویس گیرنده و بدون نیاز به یک round trip افزایش می دهد .

  • رفتارها ، شامل روشی مناسب به منظور برخورد سیستماتیک با عملیاتی نظیر drag and drop در سطح لایه رابط کاربر و مرتبط با عناصر موجود بر روی یک صفحه می باشد .

  • عناصر : اشیاء سفارشی شده جاوااسکریپت می باشند که پتانسیل های توسعه یافته ای را در سمت سرویس گیرنده ایجاد می نمایند .

چالش های فن آوری AJAX
برنامه نویسی صفحات به سبک AJAX دارای چالش های متعددی است :

  • عناصر موجود در صفحات وب می بایست متناسب با شرایط هر مرورگر برنامه نویسی گردند ، چراکه هر مرورگر یک نسخه متفاوت از DOM و DHTML را ارائه می نمایند(هر چند این تفاوت ها اندک باشد) .

  • برنامه نویسی سمت سرویس گیرنده صرفا" با استفاده از جاوااسکریپت انجام می شود . پیاده سازی برخی از پتانسیل های  AJAX می تواند برای پیاده کنندگان بسیار پیچیده باشد و نیازمند دانش بالائی در خصوص استفاده از جاوااسکریت است .

  • جاوا اسکریپت ،  ویژگی ها و امکانات مورد نیاز پیاده کنندگان برنامه های دات نت را تامین نمی نماید ( نظیر یک رویکرد شی گراء کامل ) . علاوه بر این ، در این فن آوری از کتابخانه ای نظیر آنچه در پلت فرم دات نت ارائه شده است ،‌ استفاده نمی گردد و برنامه نویسان می بایست تمامی برنامه را از ابتدا کد نمایند  .

  • جاوااسکریپت و پیاده سازی سمت سرویس گیرنده  ، عموما" بخوبی در IDEs حمایت نمی گردند .

فن آوری Atlas  ، مسائل اشاره شده را با ارائه یک فریمورک کامل برای ایجاد برنامه های وب مبتنی بر سرویس گیرنده برطرف می نماید.

فن آوری Atlas  ، 
دارای عناصر سرویس گیرنده و سرویس دهنده ای است
 که آن را  به خوبی با ASP.NET
یکپارچه و مرتبط می نماید

مفاهیم فنی اولیه معماری Atlas
در ساده ترین حالت ، یک برنامه Atlas ، از کتابخانه های سمت سرویس گیرنده به منظور مدیریت رابط کاربر و فراخوانی عناصر مبتنی بر سرویس دهنده استفاده می نماید . Atlas ، همچنین عناصر سمت سرویس دهنده ای را ارائه می نماید  که با سرویس گیرنده مرتبط و می توانند اسکریپت سمت سرویس گیرنده از قبل تعریف شده ای را تولید نمایند .

عناصر سمت سرویس گیرنده Atlas
فن آوری Atlas برای پیاده سازی برنامه های سمت سرویس گیرنده ، از مجموعه ای کتابخانه سمت سرویس گیرنده ( فایل هائی با انشعاب Js . ) استفاده می نماید که پیامد آن تعریف یک رویکرد لایه ای برای ایجاد برنامه های مبتنی بر سرویس گیرنده است . این لایه ها عبارتند از :

  • لایه مختص  مرورگرها : با استفاده از پتانسیل های ارائه شده توسط این لایه ، اسکریپت های Atlas در اکثر مرورگر سازگار بوده و ضرورتی به نوشتن اسکریت های مختص یک مرورگر وجود ندارد .

  • سرویس های هسته atlas : شامل ضمائمی به جاوااسکریپت نظیر کلاس ها ، namespace ، event handler ، توارث ، نوع های داده و تسلسل اشیاء است . ویژگی های فوق یک مدل برنامه نویسی شی گراء را در اختیار پیاده کنندگان قرار می دهد تا به کمک بتوان علاوه بر سرعت در ایجاد برنامه ها از کد تولید شده نیز بدفعات استفاده نمود.

  • کتابخانه کلاس پایه Atlas : شامل عناصری نظیر دیباگرها ، Timers ، ردیابی و string buliders است .

  • لایه شبکه : این لایه با سرویس های مبتنی بر وب و برنامه ها ارتباط برقرار می نماید و  مدیریت فراخوانی متدها از راه دور و غیرهمزمان را برعهده می گیرد . لایه فوق ، مدیریت فراخوانی غیرهمزمان برروی XMLHTTP  را برعهده گرفته و باعث می گردد که پیاده کنندگان بدون این که درگیر پیچیدگی های موجود شوند با نوشتن چندین خط کد ، متدهای مورد نظر را فراخوانند .

  • لایه UI  : در این لایه قابلیت های سرویس گیرنده Atlas نظیر رفتارها ، گرامر تعریفی Atlas ، عناصر UI و نسبت دهی داده  ارائه می گردد .

  • لایه کنترل ها : این لایه کنترل های مختص atlas را برای پیاده سازی سمت سرویس گیرنده ایجاد می نماید . علاوه بر این که می توان از طریق اسکریپت به این کنترل ها دستیابی داشت ، امکان انجام عملیات متفاوتی نظیر نسبت دهی داده نیز وجود دارد. کنترل های  Navigation و data-bound listview نمونه هائی در این زمینه می باشند . 

  •  یک مدل برنامه نویسی تعریفی که پیاده کنندگان را قادر می سازد عناصر atlas را با روشی مشابه کنترل های سرویس دهنده ASP.NET ایجاد نمایند .

فن آوری Atlas  را می توان
به عنوان کتابخانه های اسکریپت سرویس گیرنده تصور نمود که زیرمجموعه ای از معماری ASP.NET بر روی ‌سرویس دهنده می باشند

برای پیاده سازی برنامه های وب سمت سرویس گیرنده ، فن آوری Atlas  ویژگی های متعددی را ارائه می نماید . ارائه یک مجموعه API برای پیاده سازی در جاوااسکریپت ، قابلیت سازگاری اتوماتیک با مرورگرها و یک مدل تعریفی برای پیاده سازی سمت سرویس گیرنده ، نمونه هائی در این زمینه م‍ی باشند . 

عناصر سمت سرویس دهنده Atlas
فن آوری Atlas ، صرفا" در ارتباط با اسکریپت های سمت سرویس گیرنده نمی باشد و از عناصر سمت سرویس دهنده ، سرویس ها و کنترل هائی استفاده می نماید که می توانند با اسکریپت های Atlas سمت سرویس گیرنده مرتبط گردند :

  • سرویس های وب که ویژگی های ASP.NET نظیر سرویس های پروفایل ، membership ، roles ، personalization  و globalization را ارائه می نمایند .

  • کنترل های سرویس دهنده Atlas که کنترل های سرویس دهنده ASP.NET را reasemble می نمایند ولی اسکریپت های سمت سرویس گیرنده Atlas را منتشر می نمایند . این نوع کنترل ها ارتباط بسیار نزدیکی با کنترل های سرویس دهنده ASP.NET نظیر دکمه ها ، Label و ... دارند .

  • کنترل های سرویس دهنده Atlas که باعث می گردند جاوااسکریپت رفتارهای سمت سرویس گیرنده را تولید نماید . کنترل های  HoverBehavior  ، ClickBehavior ، Popup و  AutocompleteBehavior نمونه هائی در این زمینه می باشند .

  • تمامی کنترل های سرویس دهند atlas در ویژوال استودیو نیر قابل استفاده می باشند. بنابراین می توان از آنان در زمان طراحی استفاده نمود ( همانند کنترل های سرویس دهنده ASP.NET  ) .

 فن آوری Atlas ، اسکریپت نویسی سمت سرویس گیرنده را با پیاده سازی سمت سرویس دهنده ASP.NET یکپارچه می نماید و پیاده کنندگان می توانند از پتانسیل های ASP.NET در سمت سرویس دهنده برای برنامه های Atlas نیز استفاده نمایند . 

هدف اولیه فن آوری Atlas   ، 
ترکیب  ویژگی اسکریپت های سمت سرویس گیرنده با ویژگی هائی از ASP.NET بر روی سرویس دهنده است تا به کمک آن
یک پلت فرم پیاده سازی جامع و فراگیر ایجاد گردد .

اسکریپت های سمت سرویس گیرنده در صفحات ASP.NET ( بخش دوم )

دربخش اول به ضرورت استفاده از اسکریپت های سمت سرویس گیرنده در برنامه های وب اشاره و با نحوه استفاده از اسکریپت های سمت سرویس گیرنده توسط برخی از کنترل های سرویس دهنده ASP.NET به منظور انجام وظایف از قبل تعریف شده ، آشنا شدیم . همچنین ، به این موضوع اشاره گردید که رفتار اسکریپت های سمت سرویس گیرنده در صفحات ASP.NET در برخی موارد با صفحات HTML متفاوت است :

  • اضافه کردن event handler سمت سرویس گیرنده  به کنترل های سرویس دهنده ASP.NET 

  • شناسائی و مراجعه به کنترل های سرویس دهنده از طریق اسکریپت های سمت سرویس گیرنده  

  • افزودن اسکریپت های سمت سرویس گیرنده به صفحه به صورت پویا 

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

  • اشتراک اطلاعات بین اسکریپت های سمت سرویس گیرنده و کدهای سمت سرویس دهنده

  • فراخوانی کدهای سمت سرویس دهنده از طریق اسکریپت های سمت سرویس گیرنده بدون نیاز به postback

 در این بخش به بررسی موارد اول و دوم مورد خواهیم پرداخت .

اضافه کردن event handler سمت سرویس گیرنده به کنترل های سرویس دهنده ASP.NET 
با توجه به این که با کنترل های سرویس دهنده ASP.NET در یک صفحه به عنوان element  برخورد می شود (نوع عنصر تفسیر شده توسط یک کنترل به زبان نشانه گذاری استفاده شده در یک صفحه بستگی دارد : HTML ، XHTML و یا ... ) ، می توان اسکریپت های سمت سرویس گیرنده event handler را به کنترل ها همانند سایر عناصر موجود در صفحه اضافه نمود . توجه به این موضوع که کنترل چگونه خروجی خود را تفسیر می نماید و کدام خصلت را برای خود رزو نموده است ، حائز اهمیت است .

افزودن event handler سمت سرویس گیرنده به صورت تعریفی
از طریق تگ های کنترل های سرویس دهنده ASP.NET ، می توان با استفاده از Attributes مقادیر مورد نظر خصلت ها را مشخص نمود . مثلا"  برای مقداردهی خصلت Text کنترل TextBox ، می توان از تگ زیر استفاده نمود :

<asp:textbox id="TextBox1" runat="server" text="Sample Text" />

در صورتی که از یک attribute استفاده گردد  که نتوان آن را به یک خصلت خاص map نمود ، ASP.NET  در زمان پردازش سمت سرویس دهنده از آن صرفنظر نموده و آن را  به عنوان as-is به همراه سایر تگ های HTML تولید شده برای کنترل سرویس دهنده به مقصد مرورگر ارسال می نماید . مثلا" کنترل TextBox دارای خصلتی با نام onKeyup  نمی باشد . بنابراین در صورتی که به همراه کنترل TextBox از خصلت فوق استفاده گردد ، ASP.NET بدون انجام هیچگونه واکنشی آن را برای مرورگر سرویس گیرنده ارسال می نماید . با توجه به نحوه برخورد ASP.NET با اینچنین خصلت  هائی ، می توان رویدادهآی مورد نظر را به کنترل های سرویس دهنده و از طریق تعریف تگ های مربوطه نسبت داد .
کد زیر نحوه استفاده از یک event handler سمت سرویس گیرنده به همراه کنترل سرویس دهنده  TextBox را نشان می دهد . پس از درج هر حرف در TextBox ( بروز رویداد )  ، طول آن در یک عنصر span با نام spanCounter نمایش داده می شود ( event handler  ) .

<%@ Page Language="VB"%>
<html>
<head >
<title>تست یک </title>
</head>
<body>
<form id="form1" runat="server">
    <asp:textbox id="TextBox1" runat="server" text="Sample Text"
     onkeyup="spanCounter.innerText=this.value.length;" />
   <Span id="spanCounter" />
</form>
</body>
</html>

در صورت ضرورت می توان event handler سمت سرویس گیرنده را در قالب یک تابع سازماندهی تا پس از بروز رویداد ( فشردن یک کلید ) مرتبط با یک کنترل سرویس دهنده ، فعال و وظایف خود را انجام دهد . 

<%@ Page Language="VB"%>
<html>
<head  >
<title>تست دو </title>
<script type="text/javascript">
  function DisplayCount(a)
    {
       spanCounter.innerText=a.value.length;
    }
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:textbox id="TextBox1" runat="server" text="Sample Text"
         onkeyup="DisplayCount(this);" />
<Span id="spanCounter" />
</form></body></html>

افزودن یک event handler  سمت سرویس گیرنده از طریق برنامه و در زمان اجراء
در صورت ضرورت می توان event handler  سمت سرویس گیرنده را از طریق برنامه و در زمان اجراء به یک کنترل سرویس دهنده ASP.NET اضافه نمود . استفاده از ویژگی فوق در مواردی مفید است که رویداد و یا کد مرتبط با آن به اطلاعاتی نیاز دارند که صرفا" در زمان اجراء قابل دسترسی است . در چنین مواردی می توان از رویداده Load و یا Init صفحه به منظور اضافه کردن خصلت مورد نظر به یک کنترل استفاده نمود (استفاده از متد Add ) .
کد زیر نحوه اضافه کردن یک خصلت به یک کنترل سرویس دهنده در زمان اجراء و به منظور اجرای‌ یک event handler را نشان می دهد .  اسکریپت سمت سرویس گیرنده طول متن تایپ شده در کنترل TextBox را در هر لحظه نمایش می دهد . در اسکریپت فوق ،فرض شده است که صفحه دارای یک عنصر span با نام spanCounter  است .

<%@ Page Language="VB"%>
<html>
<head >
<title>تست سه </title>
<Script RunAt="Server">
 
  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
      Dim displayControlName As String = "spanCounter"
      TextBox1.Attributes.Add("onkeyup", _
       displayControlName & ".innerText=this.value.length;")
End Sub
</Script>

</head>
<body>
<form id="form1" runat="server">
<asp:textbox id="TextBox1" runat="server" text="Sample Text" />
<Span id="spanCounter" />
</form></body></html>

 

افزودن یک رویداد onClick سمت سرویس گیرنده به کنترل سرویس دهنده Button
با کلیک بر روی کنترل سرویس دهنده button  بلافاصله و به صورت پیش فرض  یک postback اتفاق می افتد تا event handler مرتبط با آن در سمت سرویس دهنده اجراء گردد . در صورت ضرورت می توان از خصلت OnClientClick  کنترل Button ( کنترل هائی نظیر Button , LinkButton  و ImageButton ) ، به منظور معرفی یک event handler استفاده نمود تا پس از کلیک بر روی button ، درابتدا event handler سمت سرویس گیرنده اجراء گردد و در ادامه عملیات postback انجام شود .
کد زیر نحوه اضافه کردن یک رویداد کلیک سمت سرویس گیرنده به  کنترل Button  را نشان می دهد . پس از کلیک بر روی Button یک پیام ارائه و در صورت تائید ، اطلاعات برای سرویس دهنده ارسال می گردد . ( با کلیک اول ، از یک روتین سمت سرویس گیرنده پرای پاسخگوئی به آْن استفاده می شود و پس از کلیک مجدد بر روی Button نمایش داده شده در جعبه محاوره ای ، اطلاعات برای سرویس دهنده ارسال تا متناسب با شرایط برنامه با آنان برخورد شود) .

<%@ Page Language="VB" %>
<script runat="server">
   Sub Button1_Click(ByVal sender As Object,ByVal e As System.EventArgs)
    Label1.Text = "Server click handler called."
   End Sub
</script>

<body>
<form id="form1" runat="server">
    <asp:Button ID="Button1" Runat="server"
         OnClick="Button1_Click"
         OnClientClick="return confirm('Ready to submit.')"
         Text="Test Client Click" />
       <br />
      <asp:Label ID="Label1" Runat="server" text="" />
</form>
</body>
</html>

شناسائی و مراجعه به کنترل های سرویس دهنده از طریق اسکریپت های سمت سرویس گیرنده
زمانی که یک کنترل سرویس دهنده ASP.NET تفسیر می گردد ، خصلت ClientID آن در بردارنده خصلت های Id و name عنصر تولید شده است . ( خصلت ClientID به صورت اتوماتیک و همزمان با مقداردهی به خصلت ID مقدار لازم را خواهد گرفت ) . فرض کنید با استفاده از نمونه کد زیر ، یک کنترل سرویس دهنده ASP.NET را ایجاد کرده باشیم :

 <asp:textbox id="TextBox1" runat="server" text="Sample Text" />

خصلت ClientID ، مقدار TextBox1 را خواهد گرفت و در نهایت نتایج تولید شده زیر برای یک مرورگر مبتنی بر HTML  ارسال می گردد :

<input name="TextBox1" type="text" value="Sample Text" id="TextBox1" />

بنابراین ، به منظور دستیابی به یک کنترل سرویس دهنده ASP.NET از طریق اسکریپت های سمت سرویس گیرنده ، می توان از خصلت های Id و name استفاده نمود . برای آدرس دهی یک کنترل سرویس دهنده ASP.NET توسط اسکریپت های سمت سرویس گیرنده ، می توان از نام کامل  آن نیز استفاده نمود  ( fully qualified reference  ). در صورتی که کنترل سرویس دهنده فرزند عنصر form در صفحه باشد ، می توان از گرامر زیر به منظور مراجعه به کنترل در اسکریپت های سمت سرویس گیرنده استفاده نمود .

<document.forms[0].TextBox1.value = "New value";

گرامر واقعی مورد نیاز برای مراجعه به یک کنترل سرویس دهنده به نوع کنترل و این که آیا کنترل فرزند کنترل دیگری است ، بستگی خواهد داشت . 

مراجعه به کنترل ها ئی که درون سایر کنترل ها قرار دارند
برخی کنترل ها ، کنترل های فرزند را درون صفحه تفسیر می نمایند . کنترل های GridView, DetailsView, FormView, DataList , Repeater , user controls و Web Parts نمونه هائی در این زمینه می باشند . در چنین مواردی ، کنترل فرزند ممکن است دارای یک ID منحصربفرد نباشد چراکه کنترل های فرزند در تمپلیتی تعریف شده اند که برای‌ هر سطر نمونه ، کنترل های جدیدی تولید  و یا ممکن است کنترل parent از طریق یک منبع خارجی به صفحه اضافه شده باشد ( نظیر کنترل های Web part و user ) .  کنترل های parent به منزله naming containers می‌باشند (توسط INamingContainer پیاده سازی شده اند ). یک naming containers  منحصربفرد بودن IDs کنترل های فرزند را تضمین می نماید .
مثلا" می توان یک خصلت ItemTemplate را در کنترل DataList ایجاد و یک کنترل Checkbox را به آن اضافه نمود که مقدار ID آن CheckEnabled در نظر گرفته شده باشد . در زمان تفسیر کنترل DataList ، یک کنترل جدید CheckEnabled برای هر آیتم داده در نظر گرفته می شود . صفحه تفسیر شده نمی بایست شامل چندین نمونه از یک عنصر با نام CheckEnabled باشد ، بنابراین کنترل DataList یک شناسه منحصربفرد برای‌هر یک از کنترل های فرزند خود ایجاد  می نماید .
شناسه های منحصربفرد برای کنترل های فرزند یک naming container با بررسی دو خصلت تولید می گردند . برای هر کنترل فرزند :

  • خصلت UniqueID کنترل به عنوان خصلت name در نظر گرفته می شود .

  • خصلت ClientID کنترل به عنوان خصلت Id  در نظر گرفته می شود .

هم ClientID و هم UniqueID بر اساس خصلت ID  اولیه تولید می گردند تا  اطلاعات لازم به منظور تضمین منحصربفرد بودن نتایج در یک صفحه تامین گردد .از مقدار ClientID که در واقع ID عنصر تفسیر شده است ، می توان  در اسکریپت های سمت سرویس گیرنده استفاده نمود . پس از اجرای یک صفحه حاوی یک  naming container  و مشاهده Source آن ، می توان ID تولید شده برای هر یک از کنترل های فرزند را مشاهده نمود .
در بخش سوم به بررسی سایر موارد خواهیم پرداخت .