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