انتقال فایل: FTP، SFTP و TFTP
جواب کوتاه
FTP روش قدیمی فرستادن و گرفتن فایل از سرور است: با دو کانال، یکی برای فرمان (پورت ۲۱) و یکی برای خود فایل، ولی همهچیز، حتی رمز عبور، را آشکار میفرستد. SFTP همین کار را روی کانال امن SSH میکند و امروز جای FTP را گرفته است. TFTP روشی بسیار ساده روی UDP است، بی نام کاربری، که برای راهاندازی دستگاهها درون شبکهی محلی به کار میرود.
دو معنی FTP
اگر «کابل FTP» شنیدهاید، آن چیز دیگری است: نوعی کابل شبکه با پوشش فویل (درس کابل شبکه). این درس دربارهی FTP پروتکل است، یعنی روش فرستادن فایل در شبکه.
سه کلمه
- FTPکوتاهشدهی File Transfer Protocol: روش قدیمی فرستادن و گرفتن فایل از سرور، با نام کاربری و رمز، ولی بی رمزگذاری.
- SFTPکوتاهشدهی SSH File Transfer Protocol: کار با فایلها روی کانال امن SSH.
- TFTPکوتاهشدهی Trivial File Transfer Protocol، یعنی «ساده»: فقط خواندن و نوشتن فایل، روی UDP، بی نام کاربری.
سه راه بردن بار
فرض کنید باید باری را جابهجا کنید. سه راه دارید، و هر کدام جای خودش را دارد:
کامیون روباز: FTP
FTP یکی از قدیمیترین روشهای اینترنت است. یک ویژگی خاص دارد: دو کانال. روی یکی فرمانها میروند، مثل نام کاربری، رمز و «این فایل را بده»؛ روی دیگری خود فایل:
کانال فرمان روی پورت ۲۱ است (درس پورتهای رایج). کانال داده یا از طرف سرور باز میشود، یا در حالت «غیرفعال»، سرور منتظر میماند و برنامهی شما به آن وصل میشود. مشکل اصلی FTP این است که هیچکدام از این کانالها رمز نمیشوند: نام کاربری، رمز عبور، فرمانها و خود فایلها برای هر کسی که وسط راه باشد خواندنیاند.
کامیون زرهی: SFTP و FTPS
SFTP روش امن امروز است. روی همان کانال امن SSH، یعنی پورت ۲۲، کار میکند (درس SSH)، پس هم شما و هم سرور شناخته میشوید و همهچیز رمز میشود. SFTP فقط فرستادن نیست؛ میشود پوشهها را دید، فایل را تغییر نام داد یا پاک کرد. چون امنتر است، جانشین FTP دانسته میشود. ابزار کوچکتری به نام SCP هم روی SSH فایل میفرستد.
FTPS چیز دیگری است: همان FTP قدیمی، با کانالهایی که با TLS امن شدهاند (درس HTTPS و TLS). اگر سروری فقط FTP دارد، FTPS دستکم رمز و فایل را پنهان میکند.
یادداشت از روی دیوار: TFTP
TFTP آنقدر ساده است که نامش «پیشپاافتاده» است. روی UDP و پورت ۶۹ کار میکند (درس TCP و UDP)، فقط بلد است فایل بخواند یا بنویسد، فهرست پوشهها را نشان نمیدهد و نام کاربری و رمز هم نمیپرسد. چون UDP رسید ندارد، TFTP خودش این کار را میکند: فایل را در بلوکهای ۵۱۲ بایتی میفرستد و برای هر بلوک رسید میگیرد:
پس چرا هنوز هست؟ چون کوچک است و در حافظهای بسیار کم جا میشود. برای همین، دستگاههایی که از روی شبکه راهاندازی میشوند، در اولین قدمها با TFTP سیستمعامل یا فرمورشان را میگیرند، و فرمور یا تنظیمات روترها و تلفنهای اینترنتی هم گاهی با آن فرستاده میشود. روی خود اینترنت عملا به کار نمیرود.
کدام را کجا
| کار | روش | چرا |
|---|---|---|
| فرستادن فایلهای سایت به سرور از راه اینترنت | SFTP | امن است و همان دسترسی SSH را به کار میبرد |
| سروری که فقط FTP دارد | FTPS | اگر SFTP نیست، دستکم با TLS |
| راهاندازی دستگاه از شبکه، فرستادن فرمور به روتر | TFTP | ساده و سبک، درون شبکهی محلی |
| هر جا روی اینترنت | نه FTP بیرمز | نام کاربری و رمز آشکار میرود |
سه اشتباه
- «FTP چون رمز عبور میخواهد، امن است.»FTP رمز عبور را میپرسد ولی آن را آشکار میفرستد؛ هر کس وسط راه باشد، رمز و فایل را میبیند.
- «SFTP همان FTP است که یک S اضافه دارد.»SFTP پروتکل جدایی است که روی SSH کار میکند؛ نسخهی امن FTP با TLS، FTPS نام دارد.
- «TFTP برای فرستادن فایل روی اینترنت خوب است، چون ساده است.»TFTP شناساندن کاربر ندارد؛ جای درستش درون شبکهی محلی است، مثل راهاندازی دستگاهها.
جمعبندی. آنچه از این درس با خودتان میبرید.
- FTP دو کانال دارد: فرمان روی ۲۱ و داده (پیشفرض ۲۰)؛ بیرمز است.
- FTPS همان FTP است با TLS؛ SFTP پروتکل جدایی روی SSH است.
- SFTP امن است و جانشین FTP دانسته میشود.
- TFTP روی UDP و پورت ۶۹، بی شناساندن کاربر، با بلوکهای ۵۱۲ بایتی و رسید برای هر کدام.
- TFTP برای راهاندازی دستگاهها و فرستادن فرمور در شبکهی محلی است، نه اینترنت.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.