آشنائی با پروتکل 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 Inboundports 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 Inboundport 21 and any port >1024 from client/anywhere, from any port >1024
Server Outboundport 21 and any port >1024 to client/anywhere, to any port >1024
Client InboundReturn traffic, any port > 1024 from server using any port >1024

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

  
نویسنده : ali gooliof ; ساعت ٧:٢٠ ‎ق.ظ روز ۱۳۸٧/٢/٢
تگ ها :