FTP (پروتکل انتقال فایل) یک پروتکل شبکه برای انتقال فایل‌ها بین رایانه‌ها از طریق اتصالات پروتکل کنترل انتقال/پروتکل اینترنت (TCP/IP) است. در مجموعه TCP/IP، پروتکل FTP، یک پروتکل لایه کاربردی در نظر گرفته می‌شود. در این مقاله به شرح این پروتکل پرداخته شده است.

 

در یک تراکنش FTP، کامپیوتر کاربر نهایی معمولاً میزبان محلی (Local host) نامیده می‌شود. دومین کامپیوتر درگیر در FTP یک میزبان راه دور است که معمولا یک سرور است. هر دو کامپیوتر باید از طریق یک شبکه متصل شده و به درستی پیکربندی شوند تا فایل‌ها از طریق FTP منتقل گردند. سرورها باید برای اجرای سرویس‌های FTP راه‌اندازی شوند و کلاینت باید نرم افزار FTP را برای دسترسی به این سرویس‌ها نصب کرده باشد.

اگرچه بسیاری از انتقال فایل‌ها را می‌توان با استفاده از پروتکل انتقال ابرمتن (HTTP) انجام داد که پروتکل دیگری در مجموعه TCP/IP است، FTP هنوز معمولاً برای انتقال فایل‌ها در پشت صحنه برای برنامه‌های کاربردی دیگر (مانند خدمات بانکی) استفاده می‌شود. همچنین گاهی اوقات برای دانلود برنامه‌های جدید از طریق مرورگرهای وب استفاده می‌شود.

 

این مطلب نیز ممکن است برای شما مفید باشد: نحوه استفاده از دستور SFTP لینوکس برای انتقال فایل ها

 

FTP چگونه کار می‌کند؟

FTP یک پروتکل کلاینت-سرور است که بر دو کانال ارتباطی بین کلاینت و سرور متکی است: یک کانال فرمان برای کنترل مکالمه و یک کانال داده برای انتقال محتوای فایل.

در اینجا نحوه عملکرد یک انتقال FTP معمولی آورده شده است:

1. یک کاربر معمولاً نیاز به ورود به سرور FTP دارد؛ اگرچه برخی از سرورها بخشی یا تمام محتوای خود را بدون ورود به سیستم در دسترس قرار می‌دهند (مدلی که به عنوان FTP ناشناس شناخته می‌شود).

2. زمانی که کاربر درخواست دانلود فایلی را می‌دهد، کلاینت با سرور مکالمه‌ای را آغاز می‌کند.

3. با استفاده از FTP، یک کلاینت می‌تواند عملیات آپلود، دانلود، حذف، تغییر نام، انتقال و کپی را برروی فایل‌ها در سرور انجام دهد.

 

نشست‌های FTP در دو حالت فعال و غیرفعال کار می‌کنند که به شرح زیر است.

حالت فعال: پس از اینکه یک کلاینت نشستی را از طریق درخواست کانال فرمان آغاز کرد، سرور یک اتصال داده به کلاینت ایجاد کرده و شروع به انتقال داده می‌نماید.

حالت غیر فعال: سرور از کانال فرمان استفاده می‌کند تا اطلاعات مورد نیاز برای باز کردن یک کانال داده را به کلاینت ارسال نماید. از آنجایی که در حالت غیرفعال، کلاینت تمام اتصالات را آغاز می‌نماید، در فایروال‌ها و دروازه‌های ترجمه آدرس شبکه به خوبی کار می‌کند.

 

کاربران می‌توانند با FTP از طریق یک رابط خط فرمان ساده (از یک کنسول یا پنجره ترمینال در Microsoft Windows ،Apple macOS یا Linux یا با یک رابط کاربری گرافیکی اختصاصی کار کنند. مرورگرهای وب همچنین می‌توانند به عنوان کلاینت‌های FTP استفاده شوند.

 

اهمیت و کاربرد FTP

FTP یک پروتکل شبکه استاندارد است که می‌تواند قابلیت‌های گسترده انتقال فایل را در شبکه‌های IP فعال نماید. بدون FTP، انتقال فایل و داده‌ها را می‌توان با مکانیسم‌های دیگری مدیریت کرد (مانند ایمیل یا سرویس وب HTTP) اما سایر گزینه‌ها فاقد وضوح، دقت و کنترلی هستند که FTP آن را ارائه می‌کند.

FTP به منظور انتقال فایل بین یک سیستم به سیستم دیگر استفاده می‌شود و چندین مورد استفاده رایج از جمله موارد زیر دارد:

پشتیبان گیری: FTP را می‌توان برای پشتیبان‌گیری از داده‌ها و انتقال آن از به یک سرور پشتیبان امن که سرویس‌های FTP را اجرا می‌کند، استفاده کرد.

Replication: همانند پشتیبان‌گیری، Replication شامل کپی کردن داده‌ها از یک سیستم به سیستم دیگر است؛ اما رویکرد جامع‌تر و انعطاف‌پذیری بیشتری در ارائه دسترسی بالاتر دارد. از FTP می‌توان برای تسهیل این امر نیز استفاده کرد.

دسترسی و بارگذاری داده‌ها: از FTP معمولاً در دسترسی به میزبانی وب مشترک و سرویس‌های ابری به عنوان مکانیزمی برای بارگذاری داده‌ها بر روی یک سیستم راه دور نیز استفاده می‌شود.

 

این مطلب نیز ممکن است برای شما مفید باشد: نحوه ایجاد اکانت FTP در دایرکت ادمین

 

انواع FTP

چندین راه مختلف وجود دارد که یک سرور FTP و نرم افزار کلاینت می‌توانند با استفاده از پروتکل FTP انتقال فایل را انجام دهند. در این بخش به آن‌ها اشاره شده است.

Anonymous FTP: ابتدایی‌ترین شکل FTP است که از انتقال داده‌ها بدون رمزگذاری آن‌ها یا استفاده از نام کاربری و رمز عبور پشتیبانی می‌کند. این روش بیشتر به منظور دانلود مطالبی با توزیع نامحدود مجاز استفاده می‌شود.

Password-protected FTP: این روش نیز یک سرویس اولیه FTP است؛ اما نیاز به استفاده از نام کاربری و رمز عبور دارد. با این حال ممکن است، این سرویس رمزگذاری یا ایمن نباشد. این روش، برروی پورت 21 هم کار می‌کند.

FTP Secure (FTPS): گاهی اوقات به عنوان لایه سوکت‌های امن FTP (یا به اختصار FTP-SSL) شناخته می‌شود. این رویکرد امنیت لایه انتقال ضمنی (TLS) را به محض برقراری اتصال FTP فعال می‌نماید. FTPS در ابتدا به منظور کمک به فعال کردن یک فرم امن‌تر از انتقال داده FTP استفاده شد. این روش، معمولاً به طور پیش فرض از پورت 990 استفاده می‌کند.

FTP over explicit SSL/TLS (FTPES): این رویکرد با تبدیل یک اتصال FTP برروی پورت 21 به یک اتصال رمزگذاری شده، پشتیبانی صریح TLS را امکان پذیر می‌کند. FTPES روشی است که معمولاً توسط وب و سرویس‌های اشتراک فایل به منظور فعال کردن انتقال امن فایل استفاده می‌شود.

Secure FTP (SFTP): این روش از نظر فنی یک پروتکل FTP نیست؛ اما به طور مشابه عمل می‌کند؛ با این تفاوت که SFTP زیرمجموعه‌ای از پروتکل Secure Shell (SSH) است که روی پورت 22 اجرا می‌شود. SSH معمولاً توسط مدیران سیستم به منظور دسترسی ریموت و ایمن به سیستم‌ها و برنامه‌ها استفاده می‌شود و SFTP مکانیزمی را در SSH برای انتقال امن فایل فراهم می‌کند.

 

امنیت FTP

FTP، در ابتدا در سال 1971 (قبل از TCP و IP) تعریف شد و از آن زمان چندین بار به منظور تطبیق با فناوری‌های جدید، از جمله استفاده از TCP/IP، یا درخواست نظرات 765 و RFC 959، و IPv6، یا RFC 2428، مجدداً تعریف شده است.

علاوه براین، FTP چندین به روز رسانی را برای افزایش امنیت FTP انجام داده است. آن‌ها شامل نسخه‌هایی است که از طریق اتصال TLS ضمنی (FTPS) یا اتصال صریح TLS (FTPES) رمزگذاری می‌شوند یا با SFTP کار می‌کنند.

به‌طور پیش‌فرض، FTP ترافیک را رمزگذاری نمی‌کند و کاربران می‌توانند بسته‌ها را برای خواندن نام‌های کاربری، رمز عبور و سایر داده‌ها ضبط نمایند. با رمزگذاری FTP با FTPS یا FTPES، داده‌ها محافظت می‌شود و توانایی مهاجم برای استراق سمع اتصال و سرقت داده‌ها محدود می‌گردد.

FTP ممکن است در برابر حملات brute-force، جعل احراز هویت کاربر/رمز عبور، حمله FTP bounce و حمله DDoS آسیب پذیر باشد.

 

تاریخچه FTP

اولین مشخصات برای FTP با نام RFC 114 در 16 آوریل 1971 منتشر و توسط Abhay Bhushan، دانشجوی موسسه فناوری ماساچوست نوشته شد. ایده اصلی پشت FTP، فعال کردن انتقال فایل‌ها از طریق ARPANET، پیشرو اینترنت بود.

همان‌طور که اینترنت مدرن شروع به شکل گیری کرد، مشخصات FTP چندین مرتبه تحت تجدید نظر قرار گرفت تا با استانداردهای شبکه از جمله TCP/IP هماهنگ شود. در سال 1980، نسخه جدیدی از FTP در RFC 765 توسط Jon Postel، دانشمند پژوهشی در مؤسسه علوم اطلاعات در دانشگاه کالیفرنیای جنوبی تعریف شد. پنج سال بعد، FTP دوباره با RFC 959 تعریف شد، که قابلیت‌های مدیریتی جدیدی (از جمله توانایی ساخت و حذف دایرکتوری فایل) را برای پروتکل معرفی کرد. این نسخه‌های FTP تا حد زیادی محدود به انتقال فایل‌ها به و از ساختارهای دایرکتوری فایل موجود بود.

در سال 1997، نسخه RFC 959 با قابلیت‌های جدید تعریف شده در RFC 2228 به روز شد تا قابلیت‌های امنیتی را فراهم کند. دو سال بعد، FTP با RFC 2428 به روز شد تا از پروتکل IPv6 پشتیبانی نماید.

 

این مطلب نیز ممکن است برای شما مفید باشد: پیکربندی سرور FTP با VSFTPD در اوبونتو 20.04

 

کلاینت‌های FTP

کلاینت‌های FTP برای آپلود، دانلود و مدیریت فایل‌ها بر روی سرور استفاده می‌شوند. کلاینت‌های FTP شامل موارد زیر است:

FileZilla: یک کلاینت FTP رایگان برای ویندوز، macOS و لینوکس است که از FTP ،FTPS و SFTP پشتیبانی می‌کند.

Transmit: یک کلاینت FTP برای macOS است که از FTP و SSH پشتیبانی می‌نماید.

WinSCP: یک کلاینت FTP ویندوزی است که از FTP ،SSH و SFTP پشتیبانی می‌کند.

WS_FTP: یکی دیگر از کلاینت‌های FTP ویندوزی است که از SSH پشتیبانی می‌نماید.

 

 

 

منبع:

techtarget