فهرست محتوا
FTP چیست؟
File Transfer Protocol (پروتکل انتقال فایل) که به اختصار به آن FTP میگویند، نوعی پروتکل استاندارد شبکه است که از پروتکلهای IP برای ردوبدل کردن فایلها میان دو کامپیوتر یا دستگاه استفاده میکند و دارای ۲ به پورت شمارههای ۲۰ و ۲۱ میباشد. افتیپی در مجموع جزئی از پروتکل لایه اپلیکیشن بوده و کاربران دارای مجوز دسترسی میتوانند از طریق سرور FTP فایلهایی را دانلود و یا آپلود کنند. در فرآیند انتقال فایل از طریق FTP، به کامپیوتر کاربر نهایی، هاست محلی (Local Host) و به کامپیوتری که در سمت دیگر این فرآیند قرار دارد، میزبان راه دور (Remote Host) میگویند که معمولا یک سرور است. برای انتقال فایل از طریق FTP، هر دو طرف باید از طریق شبکه به هم متصل شوند. سرورها برای اجرای سرویسهای مرتبط با افتیپی باید به درستی راهاندازی شوند و کامپیوترهای کلاینت نیز برای دسترسی به چنین سرویسهایی معمولا نیاز به یک نرمافزار مبتنی بر FTP دارند. اگرچه امروزه اکثر فایلهای اینترنتی با استفاده از HTTP (پروتکل انتقال ابرمتن) و یا منتقل میشوند اما هنوز هم بسیاری از سرویسها مانند خدمات بانکی از FTP استفاده میکنند. توسعهدهندگان وب نیز با استفاده از FTP میتوانند به راحتی فایلهای مختلفی را به وبسایتهایی که توسعه میدهند، انتقال دهند.
واین پروتکل در ابتدا روشی بود که کاربران از آن برای برقراری ارتباط و تبادل اطلاعات میان دو دستگاه فیزیکی استفاده میکردند اما امروزه افتیپی معمولاً برای ذخیره فایلها در فضای ابری مورد استفاده قرار میگیرد. ما همچنان برای دانلود و آپلود فایلها و اپلیکیشنها در برخی مرورگرها، به افتیپی نیاز داریم و امروزه میلیاردها نفر بدون اینکه حتی متوجه شوند، از FTP استفاده میکنند. FTP فایلها و دادهها را رمزگذاری نمیکند و بنابراین دادههایی که از طریق افتیپی منتقل میشوند، در برابر برخی حملات سایبری آسیبپذیر هستند. افتیپی یکی از قدیمیترین پروتکلهای اینترنتی میباشد که اولین بار در تاریخ ۱۶ آوریل ۱۹۷۱ معرفی شد. اما FTP چگونه کار میکند؟ انواع FTP کدامند؟ FTP چه مزایا و معایبی دارد؟ کلاینت FTP چیست؟ ما در این مقاله به این سوالات پاسخ داده و در انتها به مقایسه دو پروتکل FTP و HTTP خواهیم پرداخت. اما بیایید در ابتدا کمی با تاریخچه افتیپی آشنا شویم.
تاریخچه FTP
اولین پروتکل انتقال فایل RFC 114 نام داشت که در ۱۶ آوریل ۱۹۷۱ توسط Abhay Bhushan ساخته شد که در آن زمان دانشجوی دانشگاه MIT بود. هدف از ایجاد افتیپی در آن برهه زمانی ایجاد امکانی برای انتقال فایلها از طریق آرپانت (ARPANET) بود. همزمان با مدرنسازی اینترنت و ایجاد پروتکلهایی مانند TCP/IP، پروتکل FTP نیز بارها دچار تغییر و تحول شد و در سال ۱۹۸۰، نسخه جدیدی از افتیپی به نام RFC 765 توسط جان پاستل (Jon Postel)، دانشمند دانشگاه کالیفرنیای جنوبی منتشر شد. نسخه بعدی پنج سال بعد، با نام RFC 959 ایجاد شد که دارای قابلیتهای مدیریتی جدیدی مانند ایجاد و حذف دایرکتوریهای فایل بود. در سال ۱۹۹۷، RFC 2228 منتشر شد که یکسری قابلیت امنیتی را به افتیپی اضافه کرد. دو سال بعد، پروتکل انتقال فایل RFC 2428 ایجاد شد که از پروتکل IPv6 پشتیبانی میکرد. همانطور که میبینید، FTP در طول سالیان دچار تغییرات متعددی شده است و RFC 9141 نیز آخرین نسخه آن میباشد که در سال ۲۰۲۱ منتشر شد. برای مشاهده سایر تغییرات FTP از زمان ایجاد تا سال ۲۰۲۱، میتوانید به وبسایت Rfc-editor مراجعه کنید. حال بیایید با نحوه عملکرد FTP آشنا شویم.
FTP چگونه کار میکند؟
FTP یک پروتکل مبتنی بر مدل کلاینت-سرور (Client-Server) است و برای ایجاد یک اتصال افتیپی، کلاینت و سرور باید با هم ارتباط برقرار کنند. FTP برای انجام وظایف خود وابسته به دو کانال ارتباطی به نامهای کانال دستور (Command Channel) و کانال داده (Data Channel) میباشد. FTP از کانال دستور برای انتقال دستورات و کنترل ارتباط میان کلاینت و سرور و از کانال داده نیز برای برای انتقال فایلها استفاده میکند.
مراحل برقراری اتصال FTP:
۱. در ابتدا کاربر باید وارد حساب کاربری افتیپی خود شود. با این حال برای استفاده از برخی سرورهای FTP عمومی و دانلود محتوای آنها نیاز به وارد کردن اطلاعات کاربری نیست. مدلی که در اصطلاح به آن افتیپی ناشناس (Anonymous FTP) میگویند.
۲. کاربر برای دانلود فایلهای مورد نظر خود درخواستی را به سمت سرور ارسال میکند و در نتیجه میان کلاینت و سرور ارتباط برقرار میشود.
۳. در پایان نیز پس از پذیرش درخواست، کلاینت یا همان کاربر میتواند فایلهای مورد نظر خود را از طریق سرور FTP دانلود کند.
حالت فعال و غیرفعال FTP:
حالت فعال (Active Mode): حالت فعال در واقع حالت پیشفرض افتیپی است که در آن، کلاینت در ابتدا
را از طریق ارسال درخواست کانال دستور به سرور ایجاد میکند که در اصطلاح به این سشن حالت اتصال فعال میگویند. سرور پس از دریافت درخواست، آن را پردازش کرده و یک اتصال داده به کلاینت ایجاد میکند و در نهایت فرآیند انتقال داده آغاز میشود. اگر فایروال کاربر فعال باشد، در این صورت ممکن است فرآیند اتصال با سرور با مشکل مواجه شود زیرا فایروالها معمولاً اجازه ایجاد هیچ سشن غیرمجازی که از طرف سرورها و برنامههای شخص ثالث ارسال میشوند را نمیدهد. راهحل این مشکل استفاده از حالت غیرفعال است.حالت غیرفعال (Passive Mode): در این حالت سرور از کانال فرمان برای ارسال اطلاعاتی که کلاینت برای باز کردن کانال داده به آن نیاز دارد، استفاده میکند. در حالت غیرفعال، این کلاینت است که همیشه شروع به ایجاد ارتباط با سرور میکند و از این رو Passive Mode کاملا با فایروالها و درگاههای NAT (ترجمه آدرس شبکه) سازگار است. در حالت غیرفعال، بر خلاف حالت فعال که باید فایروالهای متعددی را پیکربندی کنیم، تنها نیاز به پیکربندی فایروال سرور داریم.
انواع FTP کدامند؟
FTPها انواع مختلفی دارند که در ادامه با مهمترین آنها میشوید:
Anonymous FTP
Anonymous FTP در واقع ابتداییترین نوع FTP است که در آن فرآیند انتقال دادهها رمزگذاری نشده و با استفاده از آن هر فردی میتواند حتی بدون داشتن نام کاربری و رمز عبور به سرور FTP متصل شود. البته کاربران در این نوع FTP تنها یکسری دسترسی محدود به فایلهای موجود در سرور افتیپی دارند و معمولا تنها مجاز به ورود به سیستم و فهرست کردن و دریافت محتویات مجموعه محدودی از دایرکتوریها هستند. به این نوع پروتکل در اصطلاح AFTP میگویند.
FTPS
FTPS (مخفف FTP Secure Sockets Layer) نوع دیگری از پروتکل انتقال فایل میباشد که امنیت بیشتری از FTP داشته و به محض برقرای اتصال FTP، به صورت خودکار پروتکل تیالاس ضمنی (Implicit TLS) را فعال میکند. FTPS همچنین از پروتکل SSL پشتیبانی کرده و معمولاً به صورت پیشفرض از پورت شماره ۹۹۰ استفاده میکند. FTPS علاوهبراین میتواند به منظور افزایش هر چه بیشتر امنیت فرآیند انتقال دادهها هر دو کانال دستور و داده را رمزنگاری کند. این نوع پروتکل در نوع مختلف به نامهای FTPS صریح (Explicit) و FTPS ضمنی ارائه میشود که نوع صریح آن جدیدتر بوده و بیشتر مورد استفاده قرار میگیرد.
مقایسه FTPS (تصویر بالا) و SFTP (تصویر پایین)
SFTP
SFTP از نظر فنی یک پروتکل FTP به شمار نمیآید اما عملکردی مشابه به آن دارد. SFTP در واقع نسخه رمزنگاری شده پروتکل SSH است که توسط کارگروه مهندسی اینترنت (IETF) توسعه یافته و بر روی پورت شماره ۲۲ اجرا میشود. مدیران سیستم با استفاده از SSH میتوانند به شکلی امن، از راه دور به سیستمها و برنامههای کامپیوتری خود دسترسی داشته باشند و SFTP مکانیزمی را در SSH فعال میکند که باعث امن شدن فرآیند انتقال فایلها میشود. SFTP بر خلاف FTPS و افتیپی برای برقراری ارتباط میان کلاینت و سرور تنها از یک اتصال استفاده کرده و اطلاعات مرتبط با احراز هویت، دستورات و همچنین تمام دادههای در حال انتقال را رمزنگاری میکند. در مجموع با استفاده از SFTP میتوان با امنیت بسیار بالایی دادهها را از راه دور منتقل کرد.
FTPES
FTPES یا FTP با قابلیتهای امنیتی SSL/TLS صریح (FTP over explicit SSL/TLS) نوعی پروتکل انتقال فایل است که با یکسری دستورات خاص، اتصال افتیپی سنتی را به یک اتصال افتیپی رمزنگاری شده با SSL/TLS صریح تبدیل میکند. FTPES نیز به مانند FTPS و SFTP باعث افزایش امنیت فرآیند انتقال فایل میشود و از دادهها و اطلاعات حساس در برابر تهدیدات سایبری محافظت میکند. بسیاری از کاربران FTPES را به دلیل سازگاری با فایروالها به FTPS ترجیح میدهند.
Password-protected FTP
FTP محافظت شده با رمزعبور یا Password-protected FTP نیز همان پروتکل FTP سنتی میباشد اما برای استفاده از آن نیاز به داشتن نام کاربری و رمز عبور داریم. این پروتکل نیز به مانند افتیپی بر روی پورت شماره ۲۱ کار میکند.
FTP چه مزایایی دارد؟
پروتکل FTP دارای مزایای متعددی است که در ادامه با مهمترین آنها آشنا میشویم:
- امکان انتقال همزمان فایلهای مختلف
- سرعت انتقال بالا
- امکان بازیابی فرآیند انتقال فایل متوقف شده
- پشتیبانگیری خودکار
- دسترسی و استفاده آسان
- امکان انتقال آسان فایلهای بزرگ
- سازماندهی فایلهای در حال انتقال
- امکان زمانبندی برای انتقال فایل
- امکان مدیریت فرآیند انتقال فایل
- سازگاری با انواع CMS
- امکان ایجاد سطوح دسترسی مختلف
- آسانسازی مدیریت دادهها و فایلها
معایب FTP کدامند؟
با وجود تمام این مزایا، FTP دارای معایبی نیز میباشد که در زیر فهرستی از آنها را مشاهده میکنید:
- آسیبپذیری در برابر حملات و اسپوفینگ (Spoofing)
- عدم رمزنگاری نام کاربری، رمز عبور و فایلها
- با هر سیستمی سازگار نیست
- امکان نا امن بودن سرورها
- امکان حذف تصادفی فایلهای مهم از روی سرور
- هزینه بالای راهاندازی سرور افتیپی شخصی
- دشواری اسکن ویروس
- قابلیتهای یکپارچهسازی محدود
کلاینت FTP چیست؟
کاربران برای کار با FTP میتوانند از یک رابط
ساده، کلاینت افتیپی و یا مرورگر وب استفاده کنند. توجه داشته باشید که سرورهای FTP سنتی امنیت چندانی ندارند و بنابراین بهتر است با احتیاط کامل از آنها استفاده کنید. اما کلاینت FTP چیست؟ کلاینت افتیپی به طور خلاصه نرمافزاری است که با استفاده از آن میتوانید با یک سرور افتیپی ارتباط برقرار و فایلهایی را بر روی آن بارگذاری و یا از آن دانلود کنید. کلاینت FTP همچنین این امکان را به شما میدهد تا در صورت نیاز، فایلها را حذف و یا نام آنها را تغییر دهید. امروزه کلاینتهای افتیپی مختلفی در بازار وجود دارد که از میان آنها میتوان به FileZilla ،WinSCP و Cyberduck اشاره کرد که هر کدام مزایای خود را دارد. در ادامه با ویژگیهای این ۳ کلاینت FTP معروف آشنا میشوید:FileZilla
FileZilla یکی از محبوبترین کلاینتهای FTP موجود در بازار میباشد که با تمام سیستمعاملها سازگار بوده و از پروتکلهای FTP، FTPS و SFTP پشتیبانی میکند. علاوهبراین، FileZilla یک کلاینت FTP کاملا رایگان و متنباز بوده و پیکربندی و استفاده از آن نیز تقریبا آسان است. با این حال، این کلاینت افتیپی دارای یک نسخه پولی نیز میباشد که امکانات بیشتری نسبت به نسخه رایگان داشته و برای استفاده از آن باید ۲۵ دلار پرداخت کنید. از جمله قابلیتهای FileZilla میتوان به سهولت استفاده، پشتیبانی از IPV6، قابلیت drag and drop و امکان ویرایش فایلها از راه دور اشاره کرد. به منظور جلوگیری از هر گونه مشکل امنیتی و ویروسی شدن سیستم عامل خود، این نرمافزار را از سایت رسمی FileZilla دانلود کنید.
WinSCP
اگر برای سیستم عامل ویندوز خود به دنبال یک کلاینت FTP هستید، WinSCP میتواند گزینه خوبی برای شما باشد. این کلاینت FTP متنباز بوده و دارای یک رابط کاربری گرافیکی کاربرپسند میباشد. WinSCP از پروتکلهای انتقال فایلی مانند SCP ،SFTP ،WebDAV و S3 پشتیبانی کرده و علاوهبراین تمام فایلهای در حال انتقال را رمزنگاری میکند. WinSCP همچنین دارای ویرایشگر متنی یکپارچه است که با استفاده از آن میتوانید فایلهای متنی خود را به آسانی ویرایش کنید. کلاینت WinSCP از قابلیت پورت فورواردینگ و زبانهای مختلفی نیز پشتیبانی میکند. توجه داشته باشید که WinSCP از سیستمعاملهای مک و لینوکس پشتیبانی نمیکند که همین مسئله میتواند باعث ایجاد محدودیتهایی برای انتقال فایل شود.
Cyberduck
Cyberduck یکی از بهترین کلاینتهای FTP برای کاربران سیستمعامل مک و ویندوز است که از پروتکلهای FTP و SFTP پشتیبانی کرده و به خوبی با سرویسهای ذخیرهسازی ابری مانند OpenStack Swift و Backblaze B2 نیز ادغام میشود. Cyberduck تمام دادههای سمت کلاینت را رمزنگاری میکند و این مسئله باعث افزایش امنیت سیستم شما میشود. این کلاینت افتیپی رایگان همچنین دارای قابلیت کشیدن و رها کردن بوده و از فناوریهای مختلفی مانند Keychain و Bonjour پشتیبانی میکند. توجه داشته باشید که Cyberduck بیشتر مناسب سیستمعامل مک بوده و ممکن است در ویندوز عملکرد خوبی نداشته باشد. رابط کاربری ساده، پشتیبانی از سرویسهای Microsoft Azure، OneDrive و Dropbox، امکان ویرایش از راهدور، مرور آسان تصاویر و پشتیبانی از زبانهای مختلف از جمله مهمترین ویژگیهای Cyberduck هستند.
مقایسه FTP و HTTP
HTTP مهمترین پروتکل اینترنتی است که برای انتقال صفحات وب و محتواهای آنها از طریق اینترنت مورد استفاده قرار میگیرد. FTP نیز همانطور که اشاره شد یک پروتکل استاندارد اینترنتی است که امکان بارگذاری و دانلود فایلها از طریق اینترنت را فراهم میکند. اما این دو پروتکل چه تفاوتهایی دارند؟
مورد مقایسه | FTP | HTTP |
نام کامل | File Transfer Protocol | HyperText Transfer Protocol |
کاربرد | انتقال فایل از طریق اینترنت | انتقال صفحات وب میان کلاینت و سرور |
شماره پورت | ۲۰ و ۲۱ | ۸۰ |
اتصال | دو نوع اتصال برقرار میکند، یکی برای انتقال دادهها و دیگری برای انتقال دستورات و مدیریت اتصال. | تنها اتصال دادهای برقرار میکند. |
عملکرد | در انتقال فایلهای بزرگ بهتر عمل میکند. | در انتقال فایلهای کوچک بهتر عمل میکند. |
احراز هویت | معمولا نیاز به رمزعبور دارد. | بدون احراز هویت |
شکل URL | ftp.example.com | http.example.com |
شماره لایه مدل OSI | لایه ۷ | لایه ۷ |
حالت پروتکل | FTP حالت خود را حفظ میکند (Stateful). | بدون حالت (Stateless) است اما با وجود کوکیها میتواند حالت خود را حفظ کند. |
منابع: Techtarget ، Javatpoint و Spiceworks