Monday, March 02, 2009

ftp

آشنائی با پروتكل 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 بستگی دارد . 


  منبع :  www.srco.ir

 

0 Comments:

Post a Comment

<< Home