زمان جاری : چهارشنبه 13 تیر 1403 - 7:42 بعد از ظهر
نام کاربری : پسورد : یا عضویت | رمز عبور را فراموش کردم

ads
تعداد بازدید 162
نویسنده پیام
amir-admin
آنلاین

ارسال‌ها : 841
عضویت: 11 /8 /1391
محل زندگی: گــرگـــان
شناسه یاهو: jazzab.online
تشکرها : 291
تشکر شده : 190
FTP را بهتر بشناسیم

امروزه از پروتكل های متعددی در شبكه های كامپیوتری استفاده می گردد كه

صرفا" تعداد اندكی از آنان به منظور انتقال داده طراحی و پیاده سازی شده

اند . اینترنت نیز به عنوان یك شبكه گسترده از این قاعده مستثنی نبوده و در

این رابطه از پروتكل های متعددی استفاده می شود.

برای بسیاری از كاربران اینترنت همه چیز محدود به وب و پروتكل مرتبط با

آن یعنی HTTP است ، در صورتی كه در این عرصه از پروتكل های متعدد دیگری

نیز استفاده می گردد. FTP نمونه ای در این زمینه است .

پروتكل FTP چیست ؟

تصویر اولیه اینترنت در ذهن بسیاری از كاربران، استفاده از منابع

اطلاعاتی و حركت از سایتی به سایت دیگر است و شاید به همین دلیل باشد كه

اینترنت در طی سالیان اخیر به سرعت رشد و متداول شده است . بسیاری از

كارشناسان این عرصه اعتقاد دارند كه اینترنت گسترش و عمومیت خود را مدیون

سرویس وب می باشد .

فرض كنید كه سرویس وب را از اینترنت حذف نماییم . برای بسیاری از ما

این سوال مطرح خواهد شد كه چه نوع استفاده ای را می توانیم از اینترنت

داشته باشیم ؟ در صورت تحقق چنین شرایطی ، یكی از عملیاتی كه كاربران قادر

به انجام آن خواهند بود ، دریافت داده ، فایل های صوتی ، تصویری و سایر

نمونه فایل های دیگر با استفاده از پروتكل FTP (برگرفته از File Transfer

Protocol ) است.

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

پروتكل FTP ، اولین تلاش انجام شده برای‌ ایجاد یك استاندارد به

منظور مبادله فایل بر روی شبكه های مبتنی بر پروتكل TCP/IP است كه از اوایل

سال ۱۹۷۰ مطرح و مشخصات استاندارد آن طی RFC ۹۵۹ در اكتبر سال ۱۹۸۵ ارایه

گردید .

پروتكل 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 و یك شماره پورت استفاده می نماید .

برقراری ارتباط بین یك سرویس گیرنده و یك سرویس دهنده منوط به وجود چهار

عنصر اطلاعاتی است : آدرس سرویس دهنده ،‌پورت سرویس دهنده ، آدرس سرویس

گیرنده و پورت سرویس گیرنده . در زمان برقراری یك ارتباط ، سرویس گیرنده از

یك شماره پورت استفاده می نماید . این شماره پورت می تواند متناسب با نوع

عملكرد برنامه سرویس گیرنده به صورت اختیاری و یا اجباری باشد . مثلا" برخی

برنامه های سرویس گیرنده به منظور ارتباط با سرویس دهنده ، نیازمند

استفاده از یك شماره پورت خاص می باشند ( نظیر برنامه های سرویس گیرنده وب و

یا مرورگرهای وب كه از پورت شماره ۸۰ به منظور ارتباط با سرویس دهنده وب

استفاده می نماید) . در مواردی كه الزامی در خصوص شماره پورت وجود ندارد از

یك شماره پورت موقتی و یا ephemeral استفاده می گردد . این نوع پورت ها

موقتی بوده و توسط IP stack ماشین مربوطه به متقاضیان نسبت داده شده و پس

از خاتمه ارتباط ، پورت آزاد می گردد . با توجه به این كه اكثر IP Stacks

بلافاصله از پورت موقت آزاد شده استفاده نخواهند كرد ( تا زمانی كه تمام

pool تكمیل نشده باشد ) ،‌در صورتی كه سرویس گیرنده مجددا" درخواست برقراری

یك ارتباط را نماید ، یك شماره پورت موقتی دیگر به وی تخصیص داده می شود .

پروتكل FTP منحصرا" از پروتكل TCP استفاده می نماید( هرگز از

پروتكل UDP استفاده نمی شود) . معمولا" پروتكل های لایه Application ( با

توجه به مدل مرجع OSI ) از یكی از پروتكل های TCP و یا UDP استفاده می

نمایند ( به جزء پروتكل DNS ) . پروتكل FTP نیز از برخی جهات شرایط خاص خود

را دارد و برای انجام وظایف محوله از دو پورت استفاده می نماید . این

پروتكل معمولا" از پورت شماره ۲۰ برای ارسال داده و از پورت ۲۱ برای گوش

دادن به فرامین استفاده می نماید . توجه داشته باشید كه برای ارسال داده

همواره از پورت ۲۰ استفاده نمی گردد و ممكن است در برخی موارد از پورت های

دیگر استفاده شود .

اكثر سرویس دهندگان FTP از روش خاصی برای رمزنگاری اطلاعات

استفاده نمی نمایند و در زمان login سرویس گیرنده به سرویس دهنده ، اطلاعات

مربوط به نام و رمز عبور كاربر به صورت متن معمولی در شبكه ارسال می گردد .

افرادی كه دارای یك Packet sniffer بین سرویس گیرنده و سرویس دهنده می

باشند ، می توانند به سادگی اقدام به سرقت نام و رمز عبور نمایند . علاوه

بر سرقت رمزهای عبور ، مهاجمان می توانند تمامی مكالمات بر روی اتصالات FTP

را شنود و محتویات داده های ارسالی را مشاهده نمایند . پیشنهادات متعددی

به منظور ایمن سازی سرویس دهنده FTP مطرح می گردد ولی تا زمانی كه رمزنگاری

و امكانات حفاظتی در سطح لایه پروتكل IP اعمال نگردد ( مثلا" رمزنگاری

توسط IPsecs ) ،‌ نمی بایست از FTP استفاده گردد خصوصا" اگر بر روی شبكه

اطلاعات مهم و حیاتی ارسال و یا دریافت می گردد .

همانند بسیاری از پروتكل های لایه Application ، پروتكل FTP

دارای كدهای وضعیت خطاء مختص به خود می باشد ( همانند HTTP ) كه اطلاعات

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

زمانی كه یك درخواست ( GET , PUT ) برای یك سرویس دهنده FTP ارسال می گردد ،

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

رشته معمولا" شامل نام سرویس دهنده و نسخه نرم افزار FTP است .در ادامه می

توان دستورات GET و یا PUT را برای سرویس دهنده ارسال نمود . سرویس دهنده

با ارایه یك پیام وضعیت به درخواست سرویس گیرندگان پاسخ می دهد . كدهای

وضعیت برگردانده شده را می توان در پنج گروه متفاوت تقسیم نمود :

كدهای ۱xx : پاسخ اولیه

كدهای ۲xx : درخواست بدون خطاء‌ اجراء گردید .

كدهای ۳xx : به اطلاعات بشتری نیاز است .

كدهای ۴xx : یك خطاء موقت ایجاد شده است .

كدهای ۵xx : یك خطاء دایمی ایجاد شده است .

FTP ،‌ یك پروتكل ارسال فایل است كه با استفاده از آن سرویس گیرندگان

می توانند به سرویس دهندگان متصل و صرفنظر از نوع سرویس دهنده اقدام به

دریافت و یا ارسال فایل نمایند . پروتكل FTP به منظور ارایه خدمات خود از

دو حالت متفاوت استفاده می نماید : Active Mode و Passive Mode . مهمترین

تفاوت بین روش های فوق جایگاه سرویس دهنده و یا سرویس گیرنده در ایجاد و

خاتمه یك ارتباط است .

همانگونه كه در بخش اول اشاره گردید ، یك اتصال پروتكل TCP/IP ( نسخه

شماره چهار) شامل دو نقطه مجزا می باشد كه هر نقطه از یك آدرس IP و یك

شماره پورت استفاده می نماید . برقراری ارتباط بین یك سرویس گیرنده و یك

سرویس دهنده منوط به وجود چهار عنصر اطلاعاتی است : آدرس سرویس دهنده

،‌پورت سرویس دهنده ، آدرس سرویس گیرنده و پورت سرویس گیرنده . در زمان

برقراری یك ارتباط ، سرویس گیرنده از یك شماره پورت استفاده می نماید . این

شماره پورت می تواند متناسب با نوع عملكرد برنامه سرویس گیرنده به صورت

اختیاری و یا اجباری باشد . مثلا" برخی برنامه های سرویس گیرنده به منظور

ارتباط با سرویس دهنده ، نیازمند استفاده از یك شماره پورت خاص می باشند (

نظیر برنامه های سرویس گیرنده وب و یا مرورگرهای وب كه از پورت شماره ۸۰ به

منظور ارتباط با سرویس دهنده وب استفاده می نماید) . در مواردی كه الزامی

در خصوص شماره پورت وجود ندارد از یك شماره پورت موقتی و یا ephemeral

استفاده می گردد . این نوع پورت ها موقتی بوده و توسط IP stack ماشین

مربوطه به متقاضیان نسبت داده شده و پس از خاتمه ارتباط ، پورت آزاد می

گردد . با توجه به این كه اكثر IP Stacks بلافاصله از پورت موقت آزاد شده

استفاده نخواهند كرد ( تا زمانی كه تمام pool تكمیل نشده باشد ) ،‌در صورتی

كه سرویس گیرنده مجددا" درخواست برقراری یك ارتباط را نماید ، یك شماره

پورت موقتی دیگر به وی تخصیص داده می شود.

پس از این مقدمه ،‌ در ادامه به بررسی هر یك از روش های Active و Passive در پروتكل FTP خواهیم پرداخت .

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

سرویس گیرنده یك ارتباط با پورت ۲۱ سرویس دهنده FTP برقرار می نماید .

پورت ۲۱ ، پورتی است كه سرویس دهنده به آن گوش فرا می دهد تا از صدور

فرامین آگاه و آنان را به ترتیب پاسخ دهد . سرویس گیرنده برای برقراری

ارتباط با سرویس دهنده از یك پورت تصادفی و موقتی ( بزرگتر از ۱۰۲۴ )

استفاده می نماید( پورت x ).

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

سرویس دهنده یك ارتباط را از طریق پورت ۲۰ خود با پورت مشخص شده سرویس گیرنده ( پورت x+۱ ) برقرار می نماید .

لطفا" به من از طریق پورت ۱۹۳۱ بر روی آدرس

IP: ۱۹۲.۱۶۸.۱.۲ متصل و سپس داده را ارسال نمایید .

سرویس گیرنده

تایید دستور سرویس دهنده

در فرآیند فوق ، ارتباط توسط سرویس گیرنده آغاز و پاسخ به آن توسط

سرویس دهنده و از طریق پورت x+۱ كه توسط سرویس گیرنده مشخص شده است ، انجام

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

نظیر فایروال استفاده كرده باشد ، می بایست تهمیدات لازم به منظور ارتباط

كامپیوترهای میزبان راه دور به سرویس گیرنده پیش بینی تا آنان بتوانند به

هر پورت بالاتر از ۱۰۲۴ سرویس گیرنده دستیابی داشته باشند . بدین منظور

لازم است كه پورت های اشاره شده بر روی ماشین سرویس گیرنده open باشند .

این موضوع می‌ تواند تهدیدات و چالش های امنیتی متعددی را برای سرویس

گیرندگان به دنبال داشته باشد .

Passive Mode

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

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

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

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

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

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

سرویس گیرنده

با من از طریق پورت ۴۰۲۳ بر روی آدرس IP: ۱۹۲.۱۶۸.۱.۲۵ ارتباط برقرار نمایید .

سرویس دهنده

در فرآیند فوق ، سرویس گیرنده دارای نقش محوری است و فایروال موجود بر

روی سرویس گیرنده می تواند درخواست های دریافتی غیرمجاز به پورت های بالاتر

از ۱۰۲۴ را به منظور افزایش امنیت بلاك نمایند . در صورتی كه بر روی

كامپیوترهای سرویس دهنده نیز فایروال نصب شده باشد ، می بایست پیكربندی

لازم به منظور استفاده از پورت های بالاتر از ۱۰۲۴ بر روی آن آنجام و آنان

open گردند . باز نمودن پورت های فوق بر روی سرویس دهنده می تواند چالش های

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

متاسفانه تمامی سرویس گیرندگان FTP از Passive Mode حمایت نمی نمایند .

اگر یك سرویس گیرنده بتواند به یك سرویس دهنده login نماید ولی قادر به

ارسال داده بر روی آن نباشد ، نشاندهنده این موضوع است كه فایروال و یا

Gateway برای استفاده از Passive Mode به درستی پیكربندی نشده است .

ملاحضات امنیتی

در صورتی كه فایروال های موجود بر روی كامپیوترهای سرویس گیرنده به

درستی پیكربندی نگردند ، آنان نمی توانند از Active Mode استفاده نمایند .

در Passive Mode استحكام سیستم امنیتی در سمت سرویس دهنده و توسط فایروال

مربوطه انجام خواهد شد . بنابراین لازم است به سرویس دهنده اجازه داده شود

كه به اتصالات هر پورت بالاتر از ۱۰۲۴ پاسخ دهد . ترافیك فوق ، معمولا"

توسط فایروال سرویس دهنده بلاك می گردد . در چنین شرایطی امكان استفاده از

Passive Mode وجود نخواهد داشت .

Passive Mode و یا Active Mode ؟

با توجه به مستندات درج شده در RFC ۱۵۷۹ ، استفاده از Passive Mode به دلایل متعددی به Active Mode ترجیح داده می شود :

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

با استفاده از امكانات موجود می توان سرویس دهندگان را پیكربندی

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

امنیتی ، استفاده نمایند.

پیكربندی فایروال

مشخص كردن یك offset از فایل دریافتی به سرویس دهنده اعلام نماید كه

عملیات ارسال را از جایی كه ارتباط قطع شده است ، ادامه دهد ( سرویس گیرنده

از محلی شروع به دریافت فایل می نماید كه ارتباط غیرفعال شده بود ) .

استفاده از ویژگی فوق به امكانات سرویس دهنده FTP بستگی دارد .



امضا کاربر

----------------------
میزی برای کار ، کاری برای تخت

تختی برای خواب ، خوابی برای جان

جانی برای مرگ ، مرگی برای یاد

یادی برای سنگ ، این بود زندگی !!


----------------------
پنجشنبه 02 خرداد 1392 - 19:41
نقل قول این ارسال در پاسخ گزارش این ارسال به یک مدیر

پاسخ ها


برای نمایش پاسخ جدید نیازی به رفرش صفحه نیست روی تازه سازی پاسخ ها کلیک کنید !



برای ارسال پاسخ ابتدا باید لوگین یا ثبت نام کنید.


پرش به انجمن :