• ایرانشل
  • وبلاگ
    • مفاهیم امنیت شبکه
    • معرفی راهکارها و سرویس‌های امنیتی
    • آموزش‌‌ راهکارهای امنیت شبکه
    • تهدیدات امنیتی
  • اخبار
  • دوره‌های امنیت
    • مسیرهای شغلی امنیت سایبری

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
ایرانشل
  • ایرانشل
  • وبلاگ
    • مفاهیم امنیت شبکه
    • معرفی راهکارها و سرویس‌های امنیتی
    • آموزش‌‌ راهکارهای امنیت شبکه
    • تهدیدات امنیتی
  • اخبار
  • دوره‌های امنیت
    • مسیرهای شغلی امنیت سایبری
ورود و ثبت نام

وبلاگ

وبلاگ > آموزش‌‌ راهکارهای امنیت شبکه > نحوه استفاده از SFTP برای انتقال امن فایل

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

آموزش‌‌ راهکارهای امنیت شبکه
ارسال شده توسط عزیزه اسعدی
18 دسامبر 2020
1.58k بازدید
نحوه-استفاده-از-SFTP-برای-انتقال-امن-فایل-سرور-راه-دور

FTP یا “File Transfer Protocol” یک روش محبوب رمزگذاری نشده برای انتقال فایل‌ها بین دو سیستم از راه دور می‌باشد.

SFTP، که مخفف SSH File Transfer Protocol یا Secure File Transfer Protocol است، یک پروتکل پکیج شده با SSH می‌باشد که به روشی مشابه اما از طریق اتصال ایمن کار می‌کند. مزیت این روش توانایی استفاده از اتصال ایمن برای انتقال فایل‌ها بدون وابستگی به فایل سیستم، سیستم لوکال و راه دور می‌باشد.

تقریبا در همه موارد، SFTP به دلیل ویژگی‌های امنیتی اساسی و توانایی کار تحت پروتکل SSH، نسبت به FTP ارجح است. FTP یک پروتکل ناامن می‌باشد که باید فقط در موراد محدود یا شبکه‌هایی که به آنها اعتماد داریم استفاده شود.

اگرچه SFTP در بسیاری از ابزارهای گرافیکی ادغام شده است، این راهنما نحوه استفاده از آن را از طریق اینترفیس خط فرمان نشان می‌دهد.

نحوه ایجاد اتصال SFTP

به طور پیش فرض، SFTP از پروتکل SSH برای احراز هویت و ایجاد یک اتصال ایمن استفاده می‌کند. به همین دلیل، همان روش‌های احراز هویت موجود در SSH در نشست SFTP نیزقابل استفاده می‌باشند.

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

برای شروع تنظیم SSH از راهنمای مربوط به نحوه تنظیم SSH برای اتصال به سرور راه دور با استفاده از کلید عمومی استفاده می‌کنیم.

در اولین مرحله از تنظیم پروتکلSFTP، اگر بتوانیم به سیستم راه دور از طریق SSH و بدون نیاز به نام کاربری و رمز متصل شویم، یعنی تمام نیازمندی‌های لازم برای استفاده از SFTP برای مدیریت فایل‌ها انجام شده است. برای تست دسترسی SSH از دستور زیر استفاده می‌کنیم.

[email protected]:~$ ssh [email protected]_server_ip_or_remote_hostname

بعد از برقراری اتصال می‌توانیم با استفاده از دستور زیر اتصال را قطع کنیم.

[email protected]:~$ exit

اکنون نوبت برقراری اتصال SFTP با استفاده از دستور زیر می‌باشد.

[email protected]:~$ sftp [email protected]_server_ip_or_remote_hostname

با اجرای دستور بالا به سیستم راه دور متصل و یک پیام SFTP نمایش داده خواهد شد.

در صورتی که از پورتی غیر از 22 برای SSH استفاده کرده‌ایم، برای اتصال SFTP از دستور زیر استفاده می‌کنیم.

[email protected]:~$ sftp -oPort=custom_port [email protected]_server_ip_or_remote_hostname

درخواست راهنما در SFTP

مفیدترین دستور در لینوکس به قطع یقین دستور help می‌باشد. با استفاده از یکی از دو دستور زیر می‌توانیم خلاصه‌ای از راهنمای SFTP را مطالعه کنیم.

 [email protected]:~$ help
 Or
 [email protected]: sftp> ? 

با این کار لیستی از دستورات موجود نمایش داده خواهد شد:

help-sftp

پیمایش فایل سیستم مقصد با استفاده از SFTP

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

خروجی دستور pwd، مسیر دایرکتوری فعلی که در آن هستیم می‌باشد.

[email protected]: sftp> pwd
Output
Remote working directory: /home/demouser

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

[email protected]: sftp> Is
Output
Summary.txt    info.html    temp.txt    testDirectory

نکته مهم اینکه دستورات موجود در SFTP، دستورات shell معمول نیستند و از نظر ویژگی به آن اندازه غنی نمی‌باشند، اما برخی از مهمترین flagهای مورد نیاز در آن پیاده‌سازی شده است.

[email protected]: sftp> ls -la

همانند خط فرمان سیستم خودمان می‌توانیم برای رفتن به دایرکتوری دیگر، از این دستور زیر استفاده کنیم.

[email protected]: sftp> cd testDirectory

با استفاده از دستورات بالا توانستیم فایل سیستم دستگاه راه دور را پیمایش کنیم. سوال، اگر به فایل سیستم محلی سیستم خودمان نیاز داشته باشیم باید چه کنیم؟ جواب، می‌توانیم دستورات مستقیم را با اضافه کردن حرف l به اول آن‌ها به سیستم محلی خود هدایت کنیم.

همه دستوراتی که تاکنون بحث شده دارای معادل‌های محلی نیز می‌باشند. برای مثال می‌توانیم با دستور زیر دایرکتوری محلی سیستم خودمان را پرینت کنیم.

[email protected]: sftp> lpwd
Output
Local working directory: /Users/demouser

با استفاده از دستور زیر، می‌توانیم محتوای دایرکتوری فعلی را روی سیستم محلی لیست کنیم:

[email protected]: sftp> lls
Output
Desktop            local.txt      test.html
Documents      analysis.rtf      zebra.html

همچنین می‌توانیم دایرکتوری مورد نظر خود را برای تعامل در سیستم محلی تغییر دهیم.

[email protected]: sftp> lcd Desktop

انتقال فایل‌‌ها با استفاده از SFTP

پیمایش در فایل سیستم‌های راه دور و محلی، بدون اینکه بتوانیم فایل‌ها را بین آن‌ها انتقال دهیم، قابلیت محدودی در اختیار ما قرار می‌دهد.

انتقال فایل‌ها از سیستم راه دور به سیستم محلی

برای دانلود فایل‌ها از هاست راه دور می‌توانیم از دستور زیر استفاده کنیم.

[email protected]: sftp> get remoteFile
Output
Fetching /home/demouser/remoteFile to remoteFile
/home/demouser/remoteFile        100% 37KB 36.8KB/s 00:01

همان‌طور که مشاهدده می‌کنید، به صورت پیش‌فرض، فرمان get یک فایل راه دور را در فایلی با همان اسم در سیستم محلی دانلود می‌کند.

با تعیین نام در ادامه دستور کپی می‌توانیم فایل کپی شده سیستم راه دور را با نام متفاوتی ذخیره کنیم.

[email protected]: sftp> get remoteFile localFile

دستور get همچنین دارای flagهای اختیاری می‌باشد. به عنوان مثال، ما می‌توانیم یک دایرکتوری و تمام محتوای آن را با استفاده از فلگ recursive کپی کنیم.

[email protected]: sftp> get -r someDirectory

همچنین می‌توانیم با استفاده از فلگ p- یا P- به SFTP بگوییم که فایل را با حفظ مجوزها و زمان دسترسی کپی نماید.

[email protected]: sftp> get -Pr someDirectory

انتقال فایل‌های محلی به سیستم راه دور

انتقال فایل‌ها به سیستم راه دور با استفاده از فرمان put به راحتی انجام می‌شود.

[email protected]: sftp> put localFile

flagهایی که در دستور get با آنها کار می‌کند برای put نیز قابل استفاده می‌باشند. بنابراین برای کپی یک دایرکتوری کامل محلی، از دستور زیر استفاده می‌کنیم.

[email protected]: sftp> put -r localDirectory

یکی از دستورات معروف که برای دانلود و آپلود فایل‌ها نیاز می‌باشد، دستور df است. با استفاده از این دستور شما می‌توانید فضای مورد نیاز برای انتقال فایل را چک کنید.

[email protected]: sftp> df -h

این دستور به صورت مستقیم بر روی سیستم محلی قابل اجرا نمی‌باشد. ولی می‌توانیم این مشکل را با استفاده از ! حل کنیم.

دستور ! ما را در shell محلی قرار می‌دهد. جایی که می‌توانیم هر دستوری که بخواهیم را بر روی سیستم محلی اجرا کنیم.

[email protected]: sftp> !

و سپس

[email protected]: df -h

بعد از دستور بالا در خط فرمان SFTP هر دستور محلی دیگری مطابق انتظار عمل خواهد کرد. برای بازگشت به اتصال SFTP خود دستور زیر را تایپ می‌کنیم.

[email protected]: exit

دستکاری ساده فایل با استفاده از SFTP

SFTP این امکان را می‌دهد تا تغییرات اساسی که هنگام کار به صورت محلی با سلسله مراتب یک فایل قابل انجام است را به صورت راه دور نیز انجا دهیم.

استفاده از chown

به عنوان مثال، می‌توانیم با استفاده از دستور زیر owner یک فایل بر روی سیستم راه دور را تغییر دهیم.

[email protected]: sftp> chown userID file

بر خلاف دستور system chmod، دستور SFTP نام کاربری را قبول نمی‌کند اما به جای آن از UIDها استفاده می‌کند. متاسفانه هیچ راه آسانی برای پیدا کردن UID مناسب از داخل اینترفیس SFTP وجود ندارد و مجبوریم به روش زیر عمل کنیم.

[email protected]: sftp> get /etc/passwd
[email protected]: sftp> !less passwd

توجه کنید که چگونه به جای دستور !، از آن به عنوان یک پیشوند برای دستور shell محلی استفاده کرده‌ایم؟؟ این کار برای اجرای هر دستور موجود در سیستم محلی انجام می‌شود. و می‌تواند با دستور df محلی نیز استفاده شود.

در فایل passwd مقدار UID در ستون سوم فایل قرار دارد.

استفاده از دستور chgrp

به طور مشابه، ما می‌توانیم مالک گروه فایل را با دستور زیر تغییر دهیم.

[email protected]: sftp> chgrp groupID file

باز هم هیچ راه آسانی برای لیست کردن گروه‌های سیستم راه دور بع غیر از روش زیر وجود ندارد.

[email protected]: sftp> get /etc/group
[email protected]: sftp> !less group

ستون سوم ID گروه مرتبط با نام موجود در ستون اول را نگه می‌دارد.

استفاده از دستور chmod

خوشبختانه دستور chmod در سیستم فایل راه دور کار می‌کند و نیازی به دستور یا روش دیگری نمی‌باشد.

[email protected]: sftp> chmod 777 publicFile
Output
Changing mode on /home/demouser/publicFile

هیچ دستوری برای دستکاری یا تغییر مجوزهای فایل محلی وجود ندارد اما با تنظیم Umask محلی، هر فایلی که در سیستم محلی کپی می‌شود، مجوزهای مورد نظر را خواهد داشت.

این کار را می‌توان با دستور lumask انجام داد.

[email protected]: sftp> lumask 022
Output
Local umask: 022

بعد اجرای دستور بالا، از این به بعد همه‌ی فایل‌های دانلود شده (تا زمانی که از فلگ p- استفاده نشود) دارای مجوز 644 خواهند بود.

ایجاد دایرکتوری

SFTP همچنین به شما اجازه استفاده از دو دستور lmkdir و mkdir را به ترتیب روی هر دو سیستم محلی و راه دور برای ایجاد دایرکتوری می‌دهد.

بقیه دستورات فایل فقط بر روی فایل سیستم راه دور قابل اجرا می‌باشند.

[email protected]: sftp> ln
[email protected]: sftp> rm
[email protected]: sftp> rmdir

نتیجه‌گیری

اگرچه SFTP ابزاری ساده است، اما برای مدیریت سرورها و انتقال فایل بین آنها بسیار مفید است. به عنوان مثال، شما می‌توانید با استفاده از SFTP این اجازه را به کاربران خاص بدهید تا بدون دسترسی به SSH قادر به انتقال فایل باشند. اگر شما عادت دارید از FTP یا SCP برای انجام انتقال فایل خود استفاده کنید. SFTP روش خوبی برای بالا بردن نقاط قوت هر دو می‌باشد. هرچند این راه حل برای هر موقعیتی مناسب نیست اما ابزار انعطاف‌پذیری است که می‌توانید مورد استفاده قرار دهید.

اشتراک گذاری:
برچسب ها: ftpsftpssh

دیدگاهتان را بنویسید لغو پاسخ

درباره ایرانشل

تیم ایرانشل با این هدف تشکیل شده است‌ تا بتوانند با کمک شما همراهان عزیز اقدامات مثبتی در جهت شفاف‌سازی نیازمندی‌های امنیتی، معرفی سرویس‌ها و راهکارهای امنیتی انجام دهد.

عضویت در خبرنامه

اطلاعات تماس
  • تهران - خیابان شریعتی - بالاتر از پل سیدخندان
  • 09125162976
  • [email protected]
شبکه‌های اجتماعی
کلیه حقوق این وب سایت متعلق به ایرانشل می‌باشد.
جستجو

جستجو با زدن Enter و بستن با زدن ESC