آشنائی با پروتکل های  SLIP و PPP

آشنائی با پروتکل های  SLIP و PPP

مبادله اطلاعات بر روی اينترنت با استفاده از پروتکل TCP/IP انجام می شود . با اين که پروتکل فوق يک راه حل مناسب در شبکه های محلی و جهانی را ارائه می نمايد ، ولی به منظور ارتباطات از نوع Dial-up طراحی نشده است .
ارتباط Dail-up ، يک لينک نقطه به نقطه ( Point-To-Point ) با استفاده  از تلفن است . در چنين مواردی يک روتر و يا سرويس دهنده، نقطه ارتباطی شما به شبکه با استفاده از يک  مودم خواهد بود. سرويس دهنده دستيابی راه دور موجود در مراکز ISP ، مسئوليت ايجاد يک ارتباط نقطه به نقطه با سريس گيرندگان Dial-up را برعهده دارد . در ارتباطات فوق ، می بايست از امکانات خاصی به منظور ارسال IP و ساير پروتکل ها استفاده گردد . با توجه به اين که لينک ايجاد شده بين دو نقطه برقرار می گردد ، آدرس دهی مشکل خاصی را نخواهد داشت. 
SLIP ( اقتباس شده از   Serial Line Internet Protocol  ) و PPP ( اقتباس شده از  Point-To-Point )  پروتکل هائی  می باشند که امکان استفاده از  TCP/IP بر روی کابل های سريال نظير خطوط تلفن را فراهم  می نمايند ( SLIP و PPP  : دو روش متفاوت به منظور اتصال به اينترنت ).  با استفاده از پروتکل های فوق ، کاربران می توانند توسط يک کامپيوتر و مودم به اينترنت متصل شوند . از پروتکل SLIP در ابتدا در سيستم عامل يونيکس استفاده می گرديد ولی امروزه تعداد بيشتری از سيستم های عامل نظير لينوکس و ويندوز نيز از آن حمايت می نمايند . در حال حاضر استفاده از پروتکل SLIP نسبت به PPP بمراتب کمتر است .

PPP نسبت به SLIP دارای مزايای متعددی است :

  • امکان مبادله اطلاعات به صورت همزمان و غير همزمان . در پروتکل SLIP صرفا" امکان مبادله اطلاعات به صورت همزمان وجود دارد  .

  • ارائه امکانات لازم به منظور تصحيح خطاء . تصحيح خطاء در پروتکل SLIP  عموما" مبتنی بر سخت افزار استفاده شده به منظور برقراری ارتباط ( نظير مودم ) و يا استفاده از قابليت های پروتکل TCP/IP است .

  • ارائه امکانات لازم برای فشرده سازی .پروتکل SLIP در اغلب بخش های آن چنين ويژگی را دارا نمی باشد . در اين رابطه نسخه هائی از SLIP به منظور فشرده سازی نظير Compressed SLIP و يا CSLIP طراحی شده است ولی متداول نمی باشند .

  • ارائه امکانات لازم به منظور نسبت دهی آدرس ها به صورت پويا و اتوماتيک .پروتکل SLIP می بايست به صورت دستی پيکربندی گردد ( در زمان  Dial-up و يا تنظيم اوليه Session ) .

  • امکان استفاده از چندين پروتکل بر روی لينک های PPP وجود دارد ( نظير IP و يا IPX ) . در پروتکل SLIP صرفا" امکان استفاده از پروتکل IP وجود خواهد داشت .

وجه اشتراک پروتکل های PPP و SLIP 

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

  •  هر دو پروتکل  قادر به کپسوله نمودن ساير پروتکل هائی می باشند که در ادامه برای روتر و ساير دستگاه ها ارسال می گردند . در  مقصد، اطلاعات مربوط به پروتکل های SLIP و يا PPP برداشته شده و پروتکل های ارسالی توسط  لينک سريال نظير IP ، در طول شبکه فرستاده می گردد .

يک کامپيوتر با استفاده از  يک ارتباط  SLIP و يا PPP قادر به شبيه سازی يک اتصال مستقيم به اينترنت است . در اين رابطه به امکانات زير نياز می باشد  :

  • يک کامپيوتر و مودم

  • يک account از نوع SLIP و يا PPP از ISP مربوطه

  • نصب نرم افزارهای TCP/IP و SLIP/PPP بر روی کامپيوتر کاربر ( نرم افزارهای فوق معمولا" در زمان استقرار سيستم عامل بر روی کامپيوتر نصب خواهند شد ).

  • يک آدرس IP . آدرس فوق ممکن است به صورت دائم و يا پويا ( استفاده از سرويس دهنده DHCP ) به کامپيوتر کاربر نسبت داده شود.

نحوه عملکرد يک اتصال SLIP و يا PPP

  • مودم موجود بر روی کامپيوتر اقدام به شماره گيری يک کامپيوتر از راه دور در يک ISP می نمايد .

  • نرم افزار SLIP/PPP درخواست يک اتصال SLIP/PPP را می نمايد .

  • پس از برقراری ارتباط ، ISP مربوطه به کامپيوتر کاربر يک آدرس IP را اختصاص خواهد داد ( در مواردی که از يک سرويس دهنده DHCP استفاده می گردد ) .

  • نرم افزار TCP/IP بر روی کامپيوتر کاربر ، کنترل و مديريت مبادله اطلاعات بين کامپيوتر کاربر و اينترنت را برعهده خواهد گرفت .


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
باتشکر از شرکت سخاروش

آشنائی با پروتكل HTTP ( بخش اول )



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

پروتكل HTTP چيست ؟
دنيای شبكه های كامپيوتری دارای عمری چند ساله است و بسياری از كاربران ، ضرورت استفاده از شبكه را همزمان با متداول شدن اينترنت در اوايل سال 1990 دريافتند . عموميت اينترنت، رشد و گسترش شبكه های كامپيوتر‌ی را به دنبال داشته است . اينترنت نيز با سرعتی باورنكردنی رشد و  امروزه شاهد ايجاد ده ها  ميليون وب سايت در طی يك سال در اين عرصه می باشيم .
تمامی وب سايت های موجود بر روی‌ اينترنت از پروتكل HTTP استفاده می نمايند . با اين كه پروتكل HTTP  با استفاده از پروتكل های ديگری نظير IP و TCP ماموريت خود را انجام می دهد ، ولی اين پروتكل HTTP است كه به عنوان زبان مشترك ارتباطی بين سرويس گيرنده و سرويس دهنده وب به رسميت شناخته شده و از‌ آن استفاده می گردد . در واقع مرورگر وب صدای خود را با استفاده از پروتكل HTTP به گوش سرويس دهنده وب رسانده و از وی درخواست يك صفحه وب را می نمايد.
به منظور انجام يك تراكنش موفقيت آميز بين سرويس گيرندگان وب ( نظير IE )  و سرويس دهندگان وب ( نظير IIS ) ، به اطلاعات زيادی نياز خواهد بود . پس از handshake پروتكل TCP/IP ، مرورگر اطلاعات گسترده ای را ‌ برای سرويس دهنده وب  ارسال می نمايد .
يك بسته اطلاعاتی نمونه در شكل زير نشان داده شده است :

توضيحات  :
داده مربوط به پروتكل لايه application ( در اين مورد خاص پروتكل HTTP ) ، پس از هدر TCP/IP قرار می گيرد  . جدول زير برخی اطلاعات مبادله شده بين سرويس گيرنده و سرويس دهنده وب را نشان می دهد .

عملكرد

نوع اطلاعات

سرويس گيرنده وب يك درخواست GET را برای سرويس دهنده وب ارسال و از وی درخواست اطلاعاتی را با استفاده از  پروتكل HTTP 1.1 می نمايد.
پروتكل HTTP دارای نسخه شماره يك نيز می باشد كه امروزه عموما" از نسخه فوق استفاده نمی گردد و در مقابل از نسخه 1 . 1 استفاده می شود.

GET /HTTP/1.1

وب سايتی است كه سرويس گيرنده قصد ارتباط با آن را دارد .

Host:
 www.google.ca

به سرويس دهنده وب ، نوع  نرم افزار سرويس گيرنده ( در اين مورد خاص   Mozilla version 5.0 ) و  نوع سيستم عامل نصب شده بر روی كامپيوتر ( در اين مورد خاص Windows version NT 5.1 و يا همان ويندوز XP  ) اعلام می گردد.

User-agent:
 Mozilla/5.0 (Windows; U; Windows NT 5.1;

نوع character set استفاده شده به سرويس دهنده اعلام می گردد ( در اين مورد خاص از  en:us  و نسخه شماره  10 . 7 . 1  استفاده شده است ) .

en-US; rv: 1.7.10)

نام مرورگر استفاده شده توسط سرويس گيرنده به سرويس دهنده وب اعلام می گردد ( در اين مورد خاص از مرورگر FireFox استفاده شده است ) .

Gecko/20050716 Firefox/1.0.6

سرويس گيرنده به سرويس دهنده وب فرمت  اطلاعاتی را كه می تواند دريافت نمايد ، اعلام می نمايد ( در اين مورد خاص هم برای متن و هم برای   application  از فرمت xml استفاده می گردد ) . 

Accept:
 text/xml, application/xml, application/xhtml+xml

سرويس گيرنده  به سرويس دهنده نوع فرمت متن دريافتی را اعلام می نمايد ( در اين مورد خاص html و يا plain text ) .
همچنين فرمت فايل های گرافيكی ( در اين مورد خاص png . و ساير فرمت های متداول ) نيز اعلام می گردد .

 text/html; q=0.9, text/plain; q=0.8, image/png, */*;q=0.5

ليست character set كه سرويس گيرنده وب قادر به فهم آنان است،  اعلام می گردد ( در اين مورد خاص  ISO-8859 , و يا utf-8  ) .

Accept-Charset:
 ISO-8859-1, utf-8; q=0.7, *;q=0/7

به  سرويس دهنده وب مدت زمان نگهداری  session  اعلام می گردد ( در اين مورد خاص 300 ثانيه ) .
سرويس گيرندگان می توانند با صراحت پايان يك session را اعلام نمايند . در نسخه شماره 1 . 1  پروتكل HTTP ، ارتباط و يا اتصال برقرار شده فعال و يا open باقی خواهد ماند تا زمانی كه سرويس گيرنده خاتمه آن را اعلام  و يا مدت زمان حيات آن به اتمام رسيده باشد .
در نسخه شماره يك پروتكل HTTP ، پس از هر درخواست و اتمام تراكنش ، ارتباط ايجاد شده غيرفعال و يا close می گردد .

Keep-Alive:
 300 Connection: keep-alive

cookie  و مقدار مربوطه  به آن اعلام می گردد. كوكی يك متن اسكی فلت می باشد كه اطلاعات متفاوتی را در خود نگهداری می نمايد .
مدت زمان حيات يك كوكی می تواند موقت ( تا زمانی كه مرورگر فعال است ) و يا دائم ( ذخيره بر روی هارد ديسك كامپيوتر  و در يك محدوده زمانی تعريف شده ) باشد .

 Cookie: PREF=ID=01a0822454acb293: LD=en:TM=1121638094?..

 User agent نوع مرورگر و سيستم عامل  سرويس گيرنده را مشخص می نمايد و اين موضوع می تواند  مواد اوليه لازم برای تدارك برخی حملات توسط مهاجمان را تامين نمايد .


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
با تشکر از شرکت سخاروش

فايروال ها : يک ضرورت اجتناب ناپذير در دنيای امنيت اطلاعات  

فايروال ها : يک ضرورت اجتناب ناپذير در دنيای امنيت اطلاعات 

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

NAT ( برگرفته از Network Address Translation )
اولين و در عين حال مهم ترين وظيفه يک فايروال ، جداسازی شبکه داخلی يک سازمان از اينترنت است . يکی از فنآوری های موجود که ما را در جهت نيل به خواسته فوق کمک می نمايد ، جداول NAT می باشند ( NAT  ، همچنين کمک لازم در جهت حل معضل کمبود آدرس های IP را ارائه می نمايد ) . مهمترين ايده مطرح شده توسط NAT ، عدم دستيابی به اکثر کامپيوترهای موجود در يک شبکه خصوصی از طريق اينترنت است .  يکی از روش های نيل به خواسته فوق ، استفاده از آدرس های IP غيرمعتبر ( Invalid ) می باشد .
در اکثر موارد بکارگيری NAT ، صرفا" آدرس IP معتبر (Valid ) به فايروال نسبت داده  می شود و تمامی کامپيوترهائی که مسئوليت حفاظت از آنان به فايروال واگذار شده است ، از آدرس های IP که صرفا" بر روی شبکه داخلی معتبر می باشد ، استفاده می نمايند . با تبعيت از چنين رويکردی ، زمانی که يک کامپيوتر موجود در شبکه داخلی نيازمند برقراری ارتباط با دنيای خارج است ، اقدام به ارسال درخواست خود برای فايروال می نمايد . در ادامه فايروال به نمايندگی از کامپيوتر متقاضی ، درخواست مورد نظر را ارسال می نمايد . در زمان مراجعت درخواست ارسالی ، پاسخ مربوطه به فايروال رسيده و در نهايت ، فايروال آن را برای کامپيوتر موجود در شبکه داخلی ارسال می نمايد . 
فرض کنيد ، کاربری قصد داشته باشد که يک وب سايت خاص را از طريق کامپيوتر موجود بر روی يک شبکه داخلی ملاقات نمايد .پس از درج آدرس وب سايت مورد نظر در بخش آدرس برنامه مرورگر ، درخواست وی به يک درخواست HTTP ترجمه شده و برای فايروال ارسال می گردد . در ادامه ، فايروال از آدرس IP مختص به خود در ارتباط با درخواست HTTP و به نمايندگی از کاربر ارسال کننده درخواست ، استفاده می نمايد . پس از پاسخ به درخواست ، پاسخ مربوطه برای فايروال ارسال شده و در نهايت فايروال آن را برای کاربر مربوطه ارسال می نمايد .

فيلترينگ پورت ها
فيلترينگ پورت ها از جمله مهمترين عملياتی است که توسط فايروال ها انجام می شود و شايد به همين دليل باشد که اکثر مردم بر اين اعتقاد هستند که فايروال ها صرفا"  به همين دليل خاص طراحی و پياده سازی شده اند و اغلب ،  آنان را به عنوان ابزاری در جهت فيلترينگ پورت ها تصور می نمايند . همانگونه که می دانيد ، مبادلات اطلاعات مبتنی بر پروتکل TCP/IP با استفاده و محوريت پورت ها انجام می گردد . در اين رابطه 65،535 پورت TCP و به همين اندازه پورت UDP جداگانه وجود دارد که می توان از آنان به منظور مبادله اطلاعات استفاده نمود .
به منظور آشنائی با جايگاه پورت ها و نقش آنان در مبادله اطلاعات در پروتکل TCP/IP ، می توان آنان را نظير ايستگاه های راديوئی تصور نمود . فرض کنيد TCP به عنوان موج FM و UDP به عنوان موج AM باشد . در چنين وضعيتی ، می توان يک پورت در پروتکل TCP/IP را همانند يک ايستگاه راديوئی تصور نمود . همانگونه که يک ايستگاه راديوئی با اهداف خاصی طراحی شده است ، پورت های TCP و UDP نيز چنين وضعيتـی را داشته و با اهداف خاصی طراحی شده اند . يکی از مهمترين دلايل ضرورت استفاده از فايروال ها و فيلترينگ پورت ها ، استفاده غيرمتعارف از پورت ها به منظور نيل به اهدافی ديگر است . مثلا" پورت 21 مربوط به پروتکل TCP بطور سنتی به منظور FTP استفاده می گردد و مهاجمان می توانند از پورت فوق و با استفاده از برنامه هائی نظير Telnet سوء استفاده نمايند ( با اين که پورت فوق به منظور استفاده توسط برنامه Telnet طراحی نشده است ) .
پويش پورت ها و آگاهی از پورت های باز ، از جمله روش های متداولی است که توسط مهاجمان و به منظور يافتن يک نقطه ورود مناسب به يک سيستم و يا شبکه کامپيوتری ، مورد استفاده قرار می گيرد . مهاجمان پس از آگاهی از پورت های باز ، با بکارگيری برنامه هائی نظير Telnet زمينه ورود غير مجاز به يک سيستم را برای خود فراهم می نمايند .
وضعيت فوق و تهديدات امنيتی مرتبط با آن ، ضرورت فيلترينگ پورت ها را به خوبی نشان می دهد . با فيلترينگ پورت ها ، اين اطمينان ايجاد خواهد شد که هيچ چيزی نمی تواند از طريق يک پورت باز ارسال گردد مگر پروتکل هائی که توسط مديريت شبکه به آنان اجازه داده شده است . مثلا" در صورتی که فيلترينگ پورت بر روی پورت 21 مربوط به پروتکل TCP اعمال گردد ، صرفا" به مبادلات اطلاعات مبتنی بر FTP اجازه داده خواهد شد که از اين پورت استفاده نمايند و مبادله اطلاعات به کمک ساير پروتکل ها و بکارگيری پورت فوق ، امکان پذير نخواهد بود .
محدوده عملياتی فيلترينگ پورت ها می تواند از موارد اشاره شده نيز تجاوز نموده و در سطح هدر يک بسته اطلاعاتی و حتی محتويات آن نيز تعميم يابد . در چنين مواردی ، هدر بسته اطلاعاتی بررسی و با مشاهده اطلاعاتی نظير آدرس مبداء ، مقصد ، شماره پورت و ساير موارد ديگر در رابطه با آن اتخاذ تصميم می گردد . مشکل موجود در اين رابطه به وجود اطلاعات جعلی و يا نادرست در هدر بسته های اطلاعاتی برمی گردد . مثلا" فرستنده می تواند آدرس های IP و ساير اطلاعات ذخيره شده در هدر بسته های اطلاعاتی را جعل نمايد . به منظور غلبه بر مشکل فوق ، نوع ديگری از فيلترينگ  که برخی فايروال ها به آن stateful packet inspections و يا فيلترينگ پويای بسته های اطلاعاتی می گويند ، ايجاد شده است . در مدل فوق ، در مقابل بررسی هدر بسته های اطلاعاتی ، محتويات آنان مورد بازبينی قرار می گيرد . بديهی است با آگاهی از  اين موضوع که چه چيزی در بسته اطلاعاتی موجود است ، فايروال ها بهتر می توانند در رابطه با ارسال و يا عدم ارسال آن برای يک شبکه داخلی تصميم گيری نمايند . 

ناحيه غيرنطامی ( Demilitarized Zone )
نواحی غيرنظامی ( DMZ ) ، يکی ديگر از ويژگی های ارائه شده توسط اکثر فايروال ها می باشد . DMZ ، ناحيه ای است که تحت قلمرو حفاظتی فايروال قرار نمی گيرد . فايروال های مختلف ، نواحی DMZ را با روش های متفاوتی پياده سازی می نمايند . مثلا" برخی از فايروال ها ، صرفا" شما را ملزم به معرفی آدرس IP ماشينی می نمايند که قصد استقرار آن در ناحيه DMZ  وجود دارد .برخی از فايروال ها دارای يک پورت شبکه ای اختصاصی می باشند که می توان از آن برای هر نوع دستگاه شبکه ای که قصد استقرار آن در ناحيه DMZ وجود دارد ، استفاده گردد  .
 پيشنهاد می گردد ، حتی المقدور از نواحی DMZ استفاده نگردد ، چراکه ماشين های موجود در اين نواحی از امکانات حفاظتی و امنيتی فايروال استفاده نخواهند کرد و تنها گزينه موجود در اين رابطه امکانات ارائه شده توسط سيستم عامل نصب شده بر روی ماشين و ساير توصيه هائی است که با رعايت و بکارگيری آنان ،   وضعيت امنيتی سيستم بهتر می گردد .
در صورتی که برای ايجاد يک ناحيه DMZ دلايل موجه و قانع کننده ای وجود دارد ، می بايست با دقت و برنامه ريزی صحيح توام با رعايت مسائل امنيتی اقدام به انجام چنين کاری گردد. در صورتی که ماشين مستقر در ناحيه DMZ دارای يک اتصال به شبکه داخلی نيز باشد ، مهاجمان با تمرکز بر روی ماشين فوق می توانند نقطه مناسبی برای ورود به شبکه را پيدا نمايند . پيشنهاد می گردد به عنوان يک قانون و اصل مهم ، ماشين های موجود در ناحيه DMZ دارای اتصالاتی به غير از پورت DMZ فايروال نباشند .

فورواردينگ پورت ها
در بخش قبل به نحوه عملکرد فيلترينگ پورت ها به منظور بلاک نمودن استفاده از يک پروتکل بجزء يک آدرس IP خاص، اشاره گرديد . فورواردينگ پورت نيز بر اساس همين مفاهيم مطرح و در سازمان هائی که در ارتباط با NAT می باشند ، کارساز خواهد بود .
برای آشنائی با مفهوم فورواردينگ پورت ها ، يک مثال نمونه را بررسی می نمائيم  .
فرض کنيد ، سازمانی دارای يک سرويس دهنده وب است که از آدرس IP: 192.168.0.12 ( يک آدرس معتبر نمی باشد ولی فرض کنيد که چنين واقعيتی وجود ندارد ) استفاده می نمايد و می بايست امکان دستيابی عمومی به آن فراهم گردد . در صورتی که سرويس دهنده وب فوق تنها سرويس دهنده موجود در سازمان است که می بايست امکان دستيابی عمومی به آن فراهم گردد ، می بايست  يک قانون فيلترينگ بسته های اطلاعاتی در سطح  فايروال تعريف گردد که تمامی درخواست های HTTP بر روی پورت 80 و به مقصد هر آدرس موجود در شبکه بجزء آدرس IP:192.168.0.12 ، بلاک گردد  . پس از تعريف قانون فوق ، در صورتی که کاربری يک درخواست HTTP را برای آدرس های ديگری ارسال نمايد ، با پيامی مبنی بر اين که  وب سايت درخواستی وجود ندارد ، مواجه خواهد شد .
 
در مثال فوق ، اين فرض نادرست را کرديم که امکان دستيابی عمومی به آدرس IP:192.168.0.12 وجود دارد . آدرس فوق صرفا" بر روی يک شبکه خصوصی معتبر بوده و امکان دستيابی آن از طريق اينترنت وجود  نخواهد داشت . بديهی است در چنين وضعيتی می بايست آدرس سرويس دهنده وب خصوصی خود را با يک آدرس عمومی جايگزين نمائيد . ( با اين که يک گزينه مطلوب در اين رابطه نمی باشد ) . برخی از مراکز ارائه دهنده خدمات اينترنت ( ISP ) ، صرفا" امکان استفاده از يک آدرس IP عمومی را در اختيار شما قرار داده و بديهی است که در چنين مواردی ما دارای گزينه های متعددی برای اختصاص اين آدرس نخواهيم بود و می بايست آن را به فايروال اختصاص داد .
يکی از موارد استفاده سنتی از NAT  به مواردی نظير آنچه اشاره گرديد ، بر می گردد . سازمان فرضی دارای صرفا" يک آدرس IP معتبر است و آن را به فايروال نسبت داده و از NAT به منظور تسهيل در مبادله اطلاعات بين ماشين های موجود در شبکه داخلی و اينترنت استفاده می نمايد . در چنين مواردی يک مشکل همچنان باقی می ماند . NAT به منظور بلاک نمودن ترافيک تمامی ارتباطات ورودی بجزء آنانی که درخواست آنان از طرف يکی از ماشين های موجود در شبکه داخلی ارسال شده است ، طراحی شده است و ما همچنان دارای يک سرويس دهنده وب می باشيم که می خواهيم امکان دستيابی عمومی به آن را نيز فراهم نمائيم .
به منظور حل مشکل فوق می توان از فورواردينگ پورت استفاده نمود . در واقع فورواردينگ پورت ، قانونی است که به فايروال می گويد در صورتی که درخواست های خاصی بر روی يک پورت خاص برای وی ارسال شده باشد ، می بايست درخواست مربوطه را برای يک ماشين طراحی شده بدين منظور بر روی شبکه داخلی، ارجاع نمايد . در مثال اشاره شده ، ما قصد داريم امکان دستيابی عمومی به سرويس دهنده وب را فراهم نمائيم . بدين منظور می بايست يک قانون فورواردينگ پورت بدين منظور تعريف که به فايروال اعلام نمايد هر درخواست HTTP بر روی پروتکل TCP و پورت 80 را به آدرس IP:192.168.0.12 تغيير مسير داده و برای آن ارسال نمايد. پس از تعريف قانون فوق ، شخصی که قصد دستيابی به وب سايت سازمان شما را داشته باشد ، پس از فعال نمودن برنامه مرورگر ، اقدام به  درج آدرس سايت سازمان شما دربخش مربوطه می نمايد. مرورگر کاربر مورد نظر به منظور آگاهی از آدرس domain سايت سازمان شما ، اقدام به ارسال يک درخواست DNS می نمايد تا از اين طريق نسبت به آدرس IP نسبت داده شده به domain آگاهی لازم را پيدا نمايد . بديهی است آدرسی که پيدا خواهد شد و به عنوان مرجع در اختيار مرورگر قرار خواهد گرفت، همان آدرس IPعمومی است که شما آن را به فايروال نسبت داده ايد . مرورگر در ادامه ، درخواست HTTP را برای آدرس IP عمومی شما ارسال می نمايد که در حقيقت اين درخواست برای فايروال ارسال می گردد . فايروال درخواست را دريافت و آن را برای سرويس دهنده وب ارسال می نمايد ( فورواردينگ )  .

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


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
با تشکر از شرکت سخاروش

توپولوژی های فايروال

 

برای پياده سازی و پيکربندی فايروال ها در يک شبکه از توپولوژی های متفاوتی استفاده می گردد . توپولوژی انتخابی به ويژگی های  شبکه و خواسته های موجود بستگی خواهد داشت . در اين رابطه گزينه های متفاوتی وجود دارد که در ادامه به بررسی برخی از نمونه های متداول در اين زمينه خواهيم پرداخت.
(برای آشنائی با فايروال ها و برخی از ويژگی های ارائه شده توسط آنان مطالعه مطلب
 فايروال ها : يک ضرورت اجتناب ناپذير در دنيای امنيت اطلاعات  ، پيشنهاد می گردد ) .

سناريوی اول : يک فايروال Dual-Homed
در اين توپولوژی که يکی از ساده ترين و در عين حال متداولترين روش استفاده از يک فايروال است ، يک فايروال مستقيما" و از طريق يک خط Dial-up ، خطوط ISDN و يا مودم های کابلی به اينترنت متصل می گردد. در توپولوژی فوق امکان استفاده از DMZ وجود نخواهد داشت .

برخی از ويژگی های اين توپولوژی  عبارت از :

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

  • فايروال از آدرس IP خود برای ارسال بسته های اطلاعاتی بر روی اينترنت استفاده می نمايد .

  • دارای يک پيکربندی ساده بوده و در مواردی که صرفا" دارای يک آدرس IP معتبر ( Valid ) می باشيم ، کارساز خواهند بود .

  • برای اتصال فايروال به اينترنت می توان از يک خط Dial-up معمولی ، يک اتصال ISDN و  مودم های کابلی  استفاده نمود .

سناريوی دوم : يک شبکه Two-Legged به همراه قابليت استفاده از يک ناحيه DMZ
در اين توپولوژی که نسبت به مدل قبلی دارای ويژگی های پيشرفته تری است ، روتر متصل شده به اينترنت به هاب و يا سوئيچ موجود در شبکه داخلی متصل می گردد .

برخی از ويژگی های اين توپولوژی عبارت از  :

  • ماشين هائی که می بايست امکان دستيابی مستقيم به اينترنت را داشته باشند ( توسط فايروال فيلتر نخواهند شد ) ، به هاب و يا سوئيچ خارجی  متصل می گردند .

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

  • ماشين هائی که می بايست توسط فايروال حفاظت گردند به هاب و يا سوئيچ داخلی متصل می گردند .

  • به منظور افزايش کارآئی و امنيت شبکه ، می توان  از سوئيچ در مقابل هاب استفاده نمود .

  • در توپولوژی فوق امکان استفاده از سرويس دهندگانی نظير وب و يا پست الکترونيکی که می بايست قابليت دستيابی همگانی و عمومی  به آنان وجود داشته باشد از طريق ناحيه DMZ  فراهم می گردد .

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

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

  • پيکربندی مناسب ناحيه DMZ به دو عامل متفاوت بستگی خواهد داشت : وجود يک روتر خارجی و داشتن چندين آدرس IP 

  • در صورتی که امکان ارتباط با اينترنت از طريق يک اتصال PPP ( مودم Dial-up ) فراهم شده است و يا امکان کنترل روتر وجود ندارد و يا صرفا" دارای يک آدرس IP می باشيم ، می بايست از يک راهکار ديگر در اين رابطه استفاده نمود . در اين رابطه می توان از دو راه حل متفاوت با توجه به شرايط موجود  استفاده نمود :

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

راه حل دوم، ايجاد يک فايروال  Three Legged است که در ادامه به آن اشاره خواهيم کرد .

سناريوی سوم : فايروال Three-Legged
در اين توپولوژی که نسبت به مدل های قبلی دارای ويژگی های پيشرفته تری است ، از يک کارت شبکه ديگر بر روی فايروال و برای ناحيه DMZ استفاده می گردد . پيکربندی فايروال بگونه ای خواهد بود که روتينگ بسته های اطلاعاتی بين اينترنت و ناحيه DMZ  با روشی متمايز و متفاوت از اينترنت و شبکه داخلی ،  انجام خواهد شد .

برخی از ويژگی های اين توپولوژی عبارت از :

  • امکان داشتن يک ناحيه DMZ وجود خواهد داشت .

  • برای سرويس دهندگان موجود در ناحيه DMZ می توان از آدرس های IP غيرمعتبر استفاده نمود .

  • کاربرانی که از اتصالات ايستای PPP استفاده می نمايند نيز می توانند به  ناحيه DMZ دستيابی داشته و از خدمات سرويس دهندگان متفاوت موجود در اين ناحيه استفاده نمايند .

  • يک راه حل مقرون به صرفه برای سازمان ها و ادارات کوچک است .

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

  • در صورتی که امکان کنترل روتر متصل به اينترنت وجود نداشته باشد ، می توان کنترل ترافيک ناحيه DMZ  را با استفاده از امکانات ارائه شده توسط فايروال شماره يک انجام داد .

  • در صورت امکان سعی گردد که  دستيابی به ناحيه DMZ محدود شود .


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
با تشکراز شرکت سخاروش

فايروال چيست ؟

 

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

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

چه نوع فايروال هائی وجود دارد ؟
فايروال ها به دو شکل  سخت افزاری ( خارجی ) و نرم افزاری ( داخلی ) ، ارائه می شوند  . با اينکه هر يک از مدل های فوق دارای مزايا و معايب خاص خود می باشند ، تصميم در خصوص استفاده از يک فايروال بمراتب مهمتر از تصميم در خصوص نوع فايروال است .

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

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

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

 


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
با تشکر از شرکت سخاروش

آشنائی با پروتكل FTP ( بخش دوم )

 

 FTP ،‌ يك پروتكل ارسال فايل است كه با استفاده از آن سرويس گيرندگان می توانند به سرويس دهندگان متصل و صرفنظر از نوع سرويس دهنده اقدام به دريافت و يا ارسال فايل نمايند . پروتكل FTP به منظور ارائه خدمات خود از دو حالت متفاوت استفاده می نمايد : Active Mode و Passive Mode .  مهمترين تفاوت بين روش های فوق جايگاه سرويس دهنده و يا سرويس گيرنده  در ايجاد و خاتمه يك ارتباط است .
همانگونه كه در بخش اول اشاره گرديد ، يك اتصال پروتكل TCP/IP ( نسخه شماره چهار)  شامل دو  نقطه مجزا می باشد كه هر نقطه از يك آدرس IP و يك شماره پورت استفاده می نمايد . برقراری ارتباط بين يك سرويس گيرنده و يك سرويس دهنده منوط به وجود چهار عنصر اطلاعاتی است : آدرس سرويس دهنده ،‌پورت سرويس دهنده ، آدرس سرويس گيرنده و پورت سرويس گيرنده . در زمان برقراری يك ارتباط ، سرويس گيرنده از يك شماره پورت استفاده می نمايد . اين شماره پورت می تواند متناسب با نوع عملكرد برنامه سرويس گيرنده به صورت اختياری و يا اجباری باشد . مثلا"  برخی برنامه های سرويس گيرنده به منظور ارتباط با سرويس دهنده ، نيازمند استفاده از يك شماره پورت خاص می باشند ( نظير برنامه های سرويس گيرنده وب و يا مرورگرهای وب كه از پورت شماره 80 به منظور ارتباط با سرويس دهنده وب استفاده می نمايد) . در مواردی كه الزامی در خصوص شماره پورت وجود ندارد از يك شماره پورت موقتی و يا   ephemeral  استفاده می گردد . اين نوع پورت ها موقتی بوده و توسط IP stack ماشين مربوطه به متقاضيان نسبت داده شده و پس از خاتمه ارتباط ، پورت آزاد می گردد . با توجه به اين كه اكثر IP Stacks بلافاصله از پورت موقت آزاد شده استفاده نخواهند كرد ( تا زمانی كه تمام pool تكميل نشده باشد ) ،‌در صورتی كه سرويس گيرنده مجددا" درخواست  برقراری يك ارتباط را نمايد ، يك شماره پورت موقتی ديگر به وی تخصيص داده می شود .
پس از اين مقدمه ،‌ در ادامه به بررسی هر يك از روش های Active و Passive در پروتكل FTP خواهيم پرداخت .

Active Mode
Active Mode ، روش سنتی ارتباط بين يك سرويس گيرنده FTP و يك سرويس دهنده می باشد كه عملكرد آن بر اساس فرآيند زير است :

  • سرويس گيرنده  يك ارتباط با پورت 21 سرويس دهنده  FTP برقرار می نمايد . پورت 21 ، پورتی است كه سرويس دهنده  به آن گوش فرا می دهد تا از صدور فرامين آگاه و آنان را به ترتيب پاسخ دهد . سرويس گيرنده برای برقراری ارتباط با سرويس دهنده از يك پورت تصادفی و موقتی ( بزرگتر از 1024 ) استفاده می نمايد( پورت x ).

  • سرويس گيرنده شماره پورت لازم برای ارتباط سرويس دهنده با خود را  از طريق صدور دستور PORT N+1 به وی اطلاع می دهد ( پورت x+1 )

  • سرويس دهنده يك ارتباط را از طريق پورت 20  خود با پورت مشخص شده سرويس گيرنده ( پورت x+1 ) برقرار می نمايد .

لطفا" به من از طريق پورت 1931  بر روی آدرس
 IP: 192.168.1.2  متصل  و سپس داده را ارسال
نمائيد .

سرويس گيرنده
 تائيد دستور سرويس دهنده

در فرآيند فوق ، ارتباط  توسط  سرويس گيرنده آغاز  و پاسخ به آن توسط سرويس دهنده و از طريق پورت x+1 كه توسط سرويس گيرنده مشخص شده است ،  انجام می شود . در صورتی كه سرويس گيرنده از سيستم ها و دستگاه های امنيتی خاصی نظير فايروال استفاده كرده باشد ، می بايست تهميدات لازم به منظور ارتباط كامپيوترهای ميزبان راه دور به سرويس گيرنده پيش بينی تا آنان بتوانند به هر پورت بالاتر از 1024 سرويس گيرنده دستيابی داشته باشند . بدين منظور لازم است كه پورت های اشاره شده بر روی ماشين سرويس گيرنده open باشند . اين موضوع می‌ تواند تهديدات و چالش های امنيتی متعددی را برای سرويس گيرندگان به دنبال داشته باشد .

Passive Mode
در Passive Mode ، كه به آن " مديريت و يا اداره سرويس گيرندگان FTP" نيز گفته می شود از فرآيند زير استفاده می گردد :

  • سرويس گيرنده دو پورت را فعال می نمايد ( پورت x و x+1 )

  • ارتباط اوليه از طريق پورت x سرويس گيرنده با پورت 21  سرويس دهنده  آغاز می گردد .

  • سرويس دهنده يك پورت را فعال ( Y ) و به سرويس گيرنده شماره پورت را اعلام می نمايد .

  • در ادامه سرويس گيرنده يك اتصال از طريق پورت x+1 با پورت y سرويس دهنده برقرار می نمايد .

 

لطفا" به من بگوئيد  كه از كجا می توانم داده را دريافت نمايم

سرويس گيرنده
 با من از طريق پورت 4023  بر روی آدرس
 IP: 192.168.1.25 ارتباط برقرار نمائيد .
سرويس دهنده

در فرآيند فوق ، سرويس گيرنده دارای نقش محوری است و فايروال موجود بر روی سرويس گيرنده می تواند درخواست های دريافتی غيرمجاز به پورت های بالاتر از 1024 را به منظور افزايش امنيت بلاك نمايند .  در صورتی كه بر روی كامپيوترهای سرويس دهنده نيز فايروال نصب شده باشد ، می بايست پيكربندی لازم به منظور استفاده از پورت های بالاتر از 1024 بر روی آن آنجام و آنان open گردند . باز نمودن پورت های فوق بر روی سرويس دهنده می تواند چالش های امنيتی خاصی را برای سرويس دهنده به دنبال داشته باشد .
متاسفانه تمامی سرويس گيرندگان FTP از Passive Mode حمايت نمی نمايند . اگر يك سرويس گيرنده بتواند به يك سرويس دهنده  login نمايد ولی قادر به ارسال داده بر روی آن نباشد ، نشاندهنده اين موضوع است كه فايروال و يا Gateway برای استفاده از Passive Mode  به درستی پيكربندی نشده است .

ملاحضات امنيتی
در صورتی كه فايروال های موجود بر روی كامپيوترهای سرويس گيرنده به درستی پيكربندی نگردند ، آنان نمی توانند از Active Mode استفاده نمايند .  در Passive Mode استحكام سيستم امنيتی در سمت سرويس دهنده و توسط فايروال مربوطه انجام خواهد شد . بنابراين لازم است به سرويس دهنده اجازه داده شود كه به اتصالات هر پورت بالاتر از 1024 پاسخ دهد . ترافيك فوق ، معمولا" توسط فايروال سرويس دهنده بلاك می گردد . در چنين شرايطی امكان استفاده از Passive Mode وجود نخواهد داشت .

Passive Mode  و يا Active Mode ؟
با توجه به مستندات درج شده در RFC 1579 ، استفاده از Passive Mode به دلايل متعددی به Active Mode ترجيح داده می شود :

  •  تعداد سرويس دهندگان موجود بر روی اينترنت به مراتب كمتر از سرويس گيرندگان می باشد .

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

پيكربندی فايروال
جدول زير  پيكربندی فايروال در Active Mode و  Passive Mode  را نشان می دهد .

Active Mode
Server Inbound

from any client port >1024 to port 21 on the server

Server Outbound

from port 20 on the client on any port > 1024

Client Inbound ports 20 from the server to any port >1024 on client
Client Outbound

from any port >1024 to port 21 on the server

Passive Mode
Server Inbound port 21 and any port >1024 from client/anywhere, from any port >1024
Server Outbound port 21 and any port >1024 to client/anywhere, to any port >1024
Client Inbound Return traffic, any port > 1024 from server using any port >1024

و اما يك نكته ديگر در رابطه با پروتكل FTP !
در صورتی كه در زمان دريافت يك فايل با استفاده از پروتكل FTP مشكلات خاصی ايجاد  كه منجر به قطع ارتباط با سرويس دهنده FTP گردد ،‌ سرويس گيرنده می تواند با مشخص كردن يك offset از فايل دريافتی  به سرويس دهنده اعلام نمايد كه عمليات ارسال را از جائی كه ارتباط قطع شده است ، ادامه دهد ( سرويس گيرنده از محلی شروع به دريافت فايل می نمايد كه ارتباط غيرفعال شده بود ) . استفاده از ويژگی فوق به امكانات سرويس دهنده FTP بستگی دارد . 

با تشکر از شرکت سخاروش

آشنائی با پروتكل FTP ( بخش اول )

 

امروزه از پروتكل های متعددی در شبكه های كامپيوتری استفاده می گردد كه صرفا" تعداد اندكی از آنان به منظور انتقال داده طراحی و پياده سازی شده اند . اينترنت نيز به عنوان يك شبكه گسترده از اين قاعده مستثنی نبوده و در اين رابطه از پروتكل های متعددی استفاده می شود.
برای بسياری از كاربران اينترنت همه چيز محدود به وب و پروتكل مرتبط با آن يعنی HTTP است ، در صورتی كه در اين عرصه از پروتكل های متعدد ديگری نيز  استفاده می گردد. FTP  نمونه ای در اين زمينه است .

پروتكل FTP چيست ؟
تصوير اوليه اينترنت در ذهن بسياری از كاربران،  استفاده از منابع اطلاعاتی و حركت از سايتی به سايت ديگر است و شايد به همين دليل باشد كه اينترنت در طی ساليان اخير به سرعت رشد و متداول شده است . بسياری از كارشناسان اين عرصه اعتقاد دارند كه اينترنت گسترش و  عموميت خود را مديون  سرويس وب می باشد .
فرض كنيد كه سرويس وب را از اينترنت حذف نمائيم . برای بسياری از ما اين سوال مطرح خواهد شد كه چه نوع استفاده ای را می توانيم از اينترنت داشته باشيم ؟ در صورت تحقق چنين شرايطی ،  يكی از عملياتی كه كاربران قادر به انجام آن خواهند بود ،  دريافت داده ، فايل های صوتی ، تصويری و ساير نمونه فايل های ديگر با استفاده از پروتكل FTP (برگرفته از File Transfer Protocol ) است.
 

ويژگی های پروتكل FTP

  • پروتكل FTP ، اولين تلاش انجام شده برای‌ ايجاد يك استاندارد به منظور مبادله فايل بر روی شبكه های مبتنی بر پروتكل TCP/IP  است كه از اوايل سال 1970 مطرح  و مشخصات استاندارد آن طی RFC 959  در اكتبر سال 1985 ارائه گرديد .

  • پروتكل FTP  دارای حداكثر انعطاف لازم و در عين حال امكان پذير به منظور استفاده در شبكه های مختلف با توجه به نوع پروتكل شبكه است .

  • پروتكل FTP از مدل سرويس گيرنده - سرويس دهنده تبعيت می نمايد . برخلاف HTTP كه يك حاكم مطلق در عرصه مرورگرهای وب و سرويس دهندگان وب است ، نمی توان ادعای مشابهی را در رابطه با پروتكل FTP  داشت و هم اينك مجموعه ای گسترده از سرويس گيرندگان و سرويس دهندگان FTP وجود دارد .

  • برای ارسال فايل با استفاده از پروتكل FTP به يك سرويس گيرنده FTP نياز می باشد . ويندوز دارای يك برنامه سرويس گيرنده FTP از قبل تعبيه شده می باشد ولی دارای محدوديت های مختص به خود می باشد . در اين رابطه نرم افزارهای متعددی تاكنون طراحی و پياده سازی شده است:
    ulletProof FTP  ، WS FTP Professional، FTP Explorer  و Smart FTP  نمونه هائی در اين زمينه می باشند .

  • پروتكل FTP را می توان به عنوان يك سيستم پرس وجو نيز تلقی نمود چراكه سرويس گيرندگان و سرويس دهندگان گفتگوی لازم به منظور تائيد يكديگر و ارسال فايل را انجام می دهند. علاوه بر اين، پروتكل فوق مشخص می نمايد  كه سرويس گيرنده و سرويس دهنده، داده را بر روی كانال گفتگو ارسال نمی نمايند . در مقابل ،‌ سرويس گيرنده و سرويس دهنده در خصوص نحوه ارسال فايل ها بر روی اتصالات مجزا و جداگانه ( يك اتصال برای هر ارسال داده ) با يكديگر گفتگو خواهند كرد ( نمايش ليست فايل های موجود در يك دايركتوری نيز به عنوان يك ارسال فايل تلقی می گردد ) .

  • پروتكل FTP امكان استفاده از سيستم فايل را مشابه پوسته يونيكس و يا خط دستور ويندوز در اختيار كاربران قرار می دهد .

  • سرويس گيرنده در ابتدا يك پيام را برای سرويس دهنده ارسال و سرويس دهنده نيز به آن پاسخ خواهد داد و در ادامه ارتباط غيرفعال می گردد . وضعيت فوق با ساير پروتكل هائی كه به صورت تراكنشی كار می كنند ،‌ متفاوت می باشد ( نظير پروتكل HTTP ) . برنامه های سرويس گيرنده زمانی قادر به شبيه سازی يك محيط تراكنشی می باشند كه از مسائلی كه قرار است در آينده محقق شوند ، آگاهی داشته باشند . در واقع ، پروتكل FTP يك دنباله stateful  از يك و يا چندين تراكنش است.

  • سرويس گيرندگان ، مسئوليت ايجاد و مقداردهی اوليه درخواست ها را برعهده دارند كه  با استفاده از  دستورات اوليه FTP انجام می گردد. دستورات فوق ،  عموما" سه و يا چهار حرفی می باشند (مثلا" برای تغيير دايركتوری از دستور CWD استفاده می شود ).  سرويس دهنده نيز بر اساس يك فرمت استاندارد به سرويس گيرندگان پاسخ خواهد داد ( سه رقم كه به دنبال آن از  space استفاده شده است به همراه يك متن تشريحی ) . سرويس گيرندگان می بايست صرفا" به كد عددی نتيجه استناد نمايند چراكه متن تشريحی تغيير پذير بوده و در عمل برای اشكال زدائی مفيد است ( برای كاربران حرفه ای ) .

  • پروتكل FTP دارای امكانات حمايتی لازم برای ارسال داده با نوع های مختلف می باشد . دو فرمت  متداول،  اسكی برای متن ( سرويس گيرنده  با ارسال دستور  TYPE A ،‌موضوع را به اطلاع سرويس دهنده می رساند ) و image برای داده های باينری است ( توسط  TYPE I  مشخص می گردد) . ارسال داده با فرمت اسكی در مواردی كه ماشين سرويس دهنده و ماشين سرويس گيرنده از استانداردهای متفاوتی برای متن استفاده می نمايند ، مفيد بوده و  يك سرويس گيرنده می تواند پس از دريافت داده آن را به فرمت مورد نظر خود ترجمه و استفاده نمايد . مثلا" در نسخه های ويندوز  از يك دنباله  carriage return و  linefeed برای نشان دادن انتهای خط استفاده می گردد در صورتی كه در  سيستم های مبتنی بر يونيكس صرفا" از يك  linefeed استفاده می شود . برای ارسال هرنوع داده كه به ترجمه نياز نداشته باشد،می توان از ارسال باينری استفاده نمود.

  •  اتخاذ تصميم در رابطه با نوع ارسال فايل ها  در اختيار سرويس گيرنده است ( برخلاف HTTP كه می تواند به سرويس گيرنده نوع داده ارسالی را اطلاع دهد ) . معمولا" سرويس گيرندگان ارسال باينری را انتخاب می نمايند و پس از دريافت فايل ، ترجمه لازم را انجام خواهند داد . ارسال باينری ذاتا" دارای كارآئی بيشتری است چراكه سرويس دهنده و سرويس گيرنده نيازی به انجام تراكنش های on the fly نخواهند داشت . ارسال اسكی گزينه پيش فرض انتخابی توسط پروتكل FTP  است و در صورت نياز به ارسال باينری ، سرويس گيرنده می بايست اين موضوع را از سرويس دهنده درخواست نمايد .

  • يك اتصال پروتكل TCP/IP ( نسخه شماره چهار)  شامل دو  نقطه مجزا می باشد كه هر نقطه از يك آدرس IP و يك شماره پورت استفاده می نمايد . برقراری ارتباط بين يك سرويس گيرنده و يك سرويس دهنده منوط به وجود چهار عنصر اطلاعاتی است : آدرس سرويس دهنده ،‌پورت سرويس دهنده ، آدرس سرويس گيرنده و پورت سرويس گيرنده . در زمان برقراری يك ارتباط ، سرويس گيرنده از يك شماره پورت استفاده می نمايد . اين شماره پورت می تواند متناسب با نوع عملكرد برنامه سرويس گيرنده به صورت اختياری و يا اجباری باشد . مثلا"  برخی برنامه های سرويس گيرنده به منظور ارتباط با سرويس دهنده ، نيازمند استفاده از يك شماره پورت خاص می باشند ( نظير برنامه های سرويس گيرنده وب و يا مرورگرهای وب كه از پورت شماره 80 به منظور ارتباط با سرويس دهنده وب استفاده می نمايد) . در مواردی كه الزامی در خصوص شماره پورت وجود ندارد از يك شماره پورت موقتی و يا   ephemeral  استفاده می گردد . اين نوع پورت ها موقتی بوده و توسط IP stack ماشين مربوطه به متقاضيان نسبت داده شده و پس از خاتمه ارتباط ، پورت آزاد می گردد . با توجه به اين كه اكثر IP Stacks بلافاصله از پورت موقت آزاد شده استفاده نخواهند كرد ( تا زمانی كه تمام pool تكميل نشده باشد ) ،‌در صورتی كه سرويس گيرنده مجددا" درخواست  برقراری يك ارتباط را نمايد ، يك شماره پورت موقتی ديگر به وی تخصيص داده می شود .

  •  پروتكل FTP منحصرا" از پروتكل TCP استفاده می نمايد( هرگز از پروتكل UDP  استفاده نمی شود) . معمولا" پروتكل های لايه Application ( با توجه به مدل مرجع OSI ) از يكی از پروتكل های TCP و يا UDP استفاده می نمايند ( به جزء پروتكل DNS  ) . پروتكل FTP نيز از برخی جهات شرايط خاص خود را دارد و برای انجام وظايف محوله از دو پورت استفاده می نمايد . اين پروتكل معمولا" از پورت شماره 20 برای ارسال داده و از پورت 21 برای گوش دادن به فرامين استفاده می نمايد . توجه داشته باشيد كه برای ارسال داده همواره از پورت 20 استفاده نمی گردد و ممكن است در برخی موارد از پورت های ديگر استفاده شود .

  • اكثر سرويس دهندگان FTP  از روش خاصی برای رمزنگاری اطلاعات استفاده نمی نمايند و در زمان  login  سرويس گيرنده به سرويس دهنده ، اطلاعات مربوط به نام و  رمز عبور كاربر به صورت متن معمولی در شبكه ارسال می گردد . افرادی كه دارای يك Packet sniffer  بين سرويس گيرنده و سرويس دهنده می باشند ، می توانند به سادگی اقدام به سرقت نام و رمز عبور نمايند . علاوه بر سرقت رمزهای عبور ، مهاجمان می توانند تمامی مكالمات بر روی اتصالات FTP را شنود و محتويات داده های ارسالی را مشاهده نمايند . پيشنهادات متعددی به منظور ايمن سازی سرويس دهنده FTP مطرح می گردد ولی تا زمانی كه رمزنگاری و امكانات حفاظتی در سطح لايه پروتكل IP اعمال نگردد ( مثلا" رمزنگاری توسط  IPsecs  ) ،‌ نمی بايست از FTP استفاده گردد خصوصا" اگر بر روی شبكه اطلاعات مهم و حياتی ارسال و يا دريافت می گردد .

  • همانند بسياری از پروتكل های لايه Application ، پروتكل FTP دارای كدهای وضعيت خطاء مختص به خود می باشد ( همانند HTTP ) كه اطلاعات لازم در خصوص وضعيت ارتباط ايجاد شده و يا درخواستی را ارائه می نمايد . زمانی كه يك درخواست ( GET , PUT   ) برای يك سرويس دهنده FTP ارسال می گردد ، سرويس دهنده پاسخ خود را به صورت يك رشته اعلام می نمايد . اولين خط اين رشته معمولا" شامل نام سرويس دهنده و نسخه نرم افزار FTP است .در ادامه می توان  دستورات GET و يا PUT را برای سرويس دهنده ارسال نمود . سرويس دهنده با ارائه يك پيام وضعيت به درخواست سرويس گيرندگان پاسخ می دهد . كدهای وضعيت برگردانده شده را می توان در پنج گروه متفاوت تقسيم نمود :
    كدهای 1xx : پاسخ اوليه
    كدهای 2xx : درخواست بدون خطاء‌ اجراء گرديد .
    كدهای 3xx : به اطلاعات بشتری نياز است .
    كدهای 4xx : يك خطاء موقت ايجاد شده است .
    كدهای 5xx : يك خطاء دائمی ايجاد شده است .
    متداولترين كدهای وضعيت FTP به همراه مفهوم هريك در جدول زير نشان داده شده است :

كدهای وضعيت سری 100

110 Restart reply
120 Service ready in x minutes
125 Connection currently open, transfer starting
150 File status okay, about to open data

كدهای وضعيت سری 200

200 Command okay
202 Command not implemented, superfluous at this site
211 System status/help reply
212 Directory status
213 File status
214 System Help message
215 NAME system type
220 Service ready for next user.
221 Service closing control connection. Logged off where appropriate
225 Data connection open; no transfer in progress.
226 Closing data connection. Requested action successful
227 Entering Passive Mode
230 User logged in, continue
250 Requested file action okay, completed
257 "PATHNAME" created.

كدهای وضعيت سری 300

331 User name okay, need password.
332 Need account for login
350 Requested file action pending further information.

كدهای وضعيت سری 400

421 Service not available, closing control connection.
425 Can't open data connection
426 Connection closed; transfer aborted.
450 Requested file action not taken. File not available - busy etc..
451  Request aborted: error on server in processing.
452 Requested action not taken. Insufficient resources on system

كدهای وضعيت سری 500

500 Syntax error, command unrecognized
501 Syntax error in parameters or arguments.
502 Command not implemented.
503 Bad sequence of commands
504 Command not implemented for that parameter.
530 Not logged in.
532 Need account for storing files
550 Requested action not taken. File unavailable
552 Requested file action aborted. Exceeded storage allocation
553 Requested action not taken. File name not allowed
مفهوم برخی از كدهای متداول
226

دستور بدون هيچگونه خطائی اجراء گرديد .

230

زمانی اين كد نمايش داده می شود كه يك سرويس گيرنده رمز عبور خود را به درستی درج و عمليات login با موفقيت انجام شده باشد .

231

كد فوق نشاندهنده دريافت  username  ارسالی سرويس گيرنده توسط سرويس دهنده می باشد و تائيدی است بر اعلام وصول Username ( نه صحت آن  )  .

501

دستور تايپ شده دارای خطاء گرامری است و می بايست مجددا" دستور تايپ گردد .

530

عمليات login با موفقيت انجام نشده است . ممكن است Username و يا رمز عبور اشتباه باشد .

550 فايل مشخص شده در دستور تايپ شده نامعتبر است .

در بخش دوم به بررسی نحوه عملكرد پروتكل FTP خواهيم پرداخت .

با تشکر از شرکت سخاروش

آشنائی با پروتكل HTTP ( بخش دوم )



در بخش اول با  جايگاه پروتكل HTTP به منظور مبادله اطلاعات بين سرويس گيرندگان و سرويس دهندگان وب اشاره و در ادامه با نوع و ماهيت اطلاعات ارسالی سرويس گيرندگان وب به منظور دريافت خدمات از سرويس دهندگان ، آشنا شديم .
در اين بخش با نوع و ماهيت اطلاعات ارسالی سرويس دهندگان وب به منظور پاسخ به درخواست سرويس گيرندگان آشنا خواهيم شد. 

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

پروتكل HTTP  : يك معماری سرويس گيرنده و سرويس دهنده
سرويس گيرنده وب ، مقادير خاصی را با اهداف كاملا" مشخص شده برای سرويس دهنده وب ارسال می نمايد ( حصول اطمينان از وجود يك زبان مشترك برای گفتگو بين سرويس گيرنده و سرويس دهنده وب ) .  سرويس دهنده پس از بررسی اطلاعات ارسالی ، آنان را تفسير و متناسب با آن اطلاعاتی را برای سرويس گيرنده ارسال می نمايد . در معماری فوق يك نرم افزار در سمت سرويس گيرنده و به عنوان يك سرويس گيرنده وب ( نظير IE و يا  Mozilla Firefox   ) ايفای وظيفه می نمايد و در سمت سرويس دهنده يك نرم افزار به عنوان سرويس دهنده وب ( نظير : IIS و يا   Apache  ) وظايف تعريف شده خود را انجام می دهد.
سناريوی فوق مدل و يا معماری سرويس گيرنده - سرويس دهنده را در ذهن تداعی می نمايد ( معماری مبتنی بر درخواست و پاسخ ) .

پاسخ سرويس دهنده 
شكل زير يك بسته اطلاعاتی HTTP از مبداء يك سرويس دهنده به مقصد يك سرويس گيرنده  را نشان می دهد ( پاسخ سرويس دهنده ). 

 توضيحات  :
جدول زير برخی اطلاعات ارسالی توسط سرويس دهنده را نشان می دهد .

عملكرد

نوع اطلاعات

به سرويس گيرنده اعلام می گردد كه :

  • سرويس دهنده وب از پروتكل  HTTP نسخه  1 .1  استفاده می نمايد.

  • فايل درخواستی وی توسط سرويس دهنده پيدا شده است .

200 ، يك كد وضعيت است كه وضعيت پاسخ به درخواست را مشخص می نمايد .

HTTP/1.1 200 OK  

مستند و يا فايل درخواستی سرويس گيرنده  توسط يك پراكسی cache نخواهد شد و هدف آن صرفا" برای كاربر متقاضی فايل است .

Cache-Control:
 private

فرمت ارسال فايل و يا مستند درخواستی به سرويس گيرنده وب اعلام می شود . در اين مورد خاص ، اطلاعات با فرمت  text/html ارسال می گردند .
سرويس گيرنده وب دارای دانش لازم به منظور بررسی و نمايش اطلاعات با فرمت اشاره شده می باشد .

Content-type:
 text/html

نوع سرويس دهنده و يا نرم افزار سرويس دهنده ( سرويس دهنده وب ) مشخص می گردد .
در اين مورد خاص ،  سرويس دهنده وب Google نمايش داده شده است .

Server:
 GWS/2.1

پروتكل HTTP نسخه شماره 1 .1  از ارسال اطلاعات به صورت chuncked حمايت می نمايد. در روش فوق ، بدنه يك پيام به منظور ارسال مجموعه ای از ماژول ها اصلاح می گردد . مسوليت مشخص كردن اندازه هر ماژول ارسالی بر عهده يكی از فيلدهای موجود در اين ساختار گذاشته می شود .
در صورت ارسال معمولی اطلاعات  توسط پروتكل HTTP ، از يك فيلد با نام "Content-Length" به منظور مشخص نمودن حجم داده ارسالی،استفاده می گردد .

Transfer-Encoding: chunked
 

زمان و تاريخ سرويس دهنده وب مشخص می گردد.

Date:
 Sat 30 Jul 2005 14:14:50 GMT
 

تگ های HTML ارسالی توسط سرويس دهنده وب به مقصد سرويس گيرنده وب می باشند كه توسط سرويس گيرندگان وب ( نظير IE  ) تفسير و نمايش داده می شوند .
با استفاده از گزينه view موجود در برنامه های مرورگر ، می توان تگ های HTML يك صفحه وب را مشاهده نمود . 

 

با تشکر از شرکت سخاروش