محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

تفاوت Active FTP و Passive FTP در چیست؟ به زبان بسیار ساده

وقتی صحبت از FTP سرور می شود همه راجع به دو شماره پورت صحبت می کنند ! شماره پورت 20 و 21 و بعضا هیچیک از دوستان نمی دانند که کاربرد هر کدام از این پورت ها در چیست؟ چرا فایروال های ما اکثرا با پروتکل FTP بصورت پیشفرض مشکل دارند؟ آیا همچنان از پورت 20 در FTP استفاده می شود یا خیر ؟ و ... خوب در این مقاله در توسینسو من به شما این موارد را توضیح می دهم . به زبان بسیار ساده به این موضوع آگاه باشید که دیگر عملا در محیط های واقعی چیزی به نام Active FTP وجود ندارد و شما فقط از این نوع FTP برای توضیح دادن فرآیند کاری Passive FTP استفاده می کنید و بس .

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

تفاوت حالت Passive  و Active در FTP چیست؟

خوب قبل از اینکه ادامه بدهیم این جمله را به خاطر داشته باشید که Passive و Active در FTP دو Mode یا حالت اتصال و برقراری ارتباط بین کلاینت و سرور هستند که تفاوت اصلی آنها در نحوه برقراری ارتباط بین کلاینت و سرور از طریق پورت های مختلف است . FTP برای برقراری ارتباط با کلاینت از یک کانال برای ارسال دستورات و از کانالی دیگر برای انتقال داده ها استفاده می کند ، به زبان ساده ما در FTP دو کانال Command Channel و Data Channel داریم که در یکی از آنها دستورات برقراری ارتباط ارائه می شود و در دومی داده ها منتقل می شوند . بصورت پیشفرض Command Channel بر روی پورت 21 و  Data Channel بر روی پورت 20 فعالیت می کنند. وظیفه کانال دستور ، دریافت کردن دستورات از کلاینت و وظیفه کانال انتقال داده ، انتقال دادن فایل هاست ! همین ... ساده هست نه؟

تفاوت Active Mode و Passive Mode در FTP

در حالت Active FTP کلاینت از طریق یک پورت تصادفی یا Random Port دستور خودش را به سمت پورت Command Channel یا همان پورت 21 ارسال می کند . دلیل اینکار این است که نیازی نیست الزاما در سمت کلاینت از همان پورتی که سرور استفاده می کند برای ارسال کردن دستور به پورت 21 استفاده شود . بعد از اینکه دستور از طریق پورت 21 در حالت Active FTP دریافت شد ، سرور از طریق پورت 20 که Data Channel است یک شماره پورت تصادفی برای ارتباط گیری کلاینت با پورت 20 خودش به سمت کلاینت ارسال می کند. تعجب نکنید ، بله کلاینت از روی پورت 20 خودش برای برقراری ارتباط با سرور درخواست می دهد که کلاینت با یک پورت تصادفی دیگر ( معمولا یک شماره بالاتر از شماره پورتی که کلاینت در زمان ارسال درخواست به پورت 21 ارسال کرده است ) به سرور متصل شود و شروع به انتقال داده کند .

قطعا در این میان یک فرآیند Port Forwarding انجام می شد در دو مرحله ( یکبار در سمت سرور که پورت تصادفی کلاینت را دریافت و به سمت پورت 21 منتقل می کند و یکبار در سمت برگشت در سمت کلاینت که پورت تصادفی سرور برای ارتباط گیری را باز و ارتباط را برقرار می کند ) . و در نهایت کلاینت بر روی پورت 20 سرور ارتباط برقرار کرده و شروع به انتقال فایل می کند. در قدیم این امکان وجود داشت که پروتکل ها بصورت مستقیم ارتباط بگیرند اما این روزها با وجود فایروال ها این امکان وجود ندارد.

اما وقتی در حالت Passive FTP صحبت می کنیم . کلاینت باز هم از طریق یک پورت تصادفی دستور خودش را به سمت پورت یا همان کانال دستور FTP سرور به شماره 21 ارسال می کند اما اینبار درون دستور FTP خودش اعلام می کند که می خواهد ارتباط از نوع Passive FTP برقرار کند. در این حالت سرور پورت های تصادفی را برای برقراری ارتباط کلاینت به سمت خودش در نظر گرفته است که با هر با هر بار درخواست کلاینت ممکن است این شماره پورت تغییر کند . بعد از دریافت کردن دستور از سمت پورت تصادفی کلاینت به پورت 21 سرور ، سرور از طریق پورت 21 به کلاینت شماره پورت تصادفی که می تواند با آن Data Channel را برقرار کند را ارسال می کند و اینبار کلاینت به سمت پورت تصادفی مجددا ارتباط برقرار می کند .

تفاوت اصلی حالت FTP Passive و FTP Active در چیست ؟

تفاوت اصلی بین این دو روش انتقال در FTP در واقع سمت برقراری ارتباط است . در حالت Passive این سرور است که در پاسخ به سمت کلاینت ارتباط برقرار می کند که در بسیاری از فایروال ها ارتباط از بیرون به داخل مسدود شده است . در حالت Active این کلاینت است که با دستوری که در همان پورت اول دریافت کرده است به پورت تصادفی جدیدی که در سرور در نظر گرفته شده است متصل می شود و بنابراین Session اضافی نیاز نیست از بیرون به داخل شبکه تعریف شود. در واقع یک مبحث امنیتی است که تفاوت این دو روش را تعیین می کند . اگر به تصاویر بالا مراجعه کنید و سمت فلش ارتباطی را مشاهده کنید قطعا متوجه تفاوت ایندو خواهید شد . امیدوارم مورد توجه شما قرار گرفته باشد.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

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

نظرات