در این مقاله در مورد اینکه چطور می توانیم دسترسی کاربران SFTP را به Home دایرکتوری خودشان یا به دایرکتوری مشخصی محدود کنیم، صحبت می کنیم.یعنی با استفاده از این روش که جلوتر توضیح داده خواهد شد هر کاربر تنها قادر به مشاهده Home دایرکتوری خودش بوده و امکان دسترسی داشتن به فایل های سیستمی را نخواهد داشت.
محدود کردن دسترسی کاربران در بسیاری از مواقع امری حیاتی است مخصوصا در محیط سرورهای اشتراک گذاری شده،چرا که در چنین شرایطی خطر دسترسی به فایل ها و اطلاعات کاربر توسط کاربری دیگر وجود دارد.
همچنین قابل ذکر است در این مقاله صرفا روش محدود کردن دسترسی SFTP آموزش داده می شود و در نهایت دسترسی مورد نیاز برای انتقال فایل ها را می توانیم پیاده سازی کنیم،اما مجوز برقراری ارتباط ssh وجود ندارد.
ساده ترین روش برای انجام این کار ایجاد محیط chroot برای دسترسی SFTP می باشد،این روش در تمامی نسخه های سیستم عامل لینوکس قابل اجرا می باشد.
مراحل :
بعنوان مثال می خواهیم دسترسی SFTP کاربر CBTNET را به Home دایرکتوری خودش که در مسیر home/CBTNET/ وجود دارد محدود کنیم:
قدم اول) یک گروه به نام sftpgroup ایجاد می نماییم.
قدم دوم) کاربر CBTNET را عضو گروه sftpgroup می کنیم.
حتی می توانیم با استفاده از دستور adduser کاربر جدیدی را تعریف کرده و به عضویت این گروه درآوریم.
انجام تنظیمات بر روی کانفیگ فایل SSH:
فایل etc/ssh/ssh_config/ را با استفاده از ویرایشگر متن باز کرده و دستورات زیر را در انتهای فایل وارد می نماییم:
محتویات فایل را دخیره کرده و از آن خارج می شویم و سپس سرویس ssh را ریستارت می کنیم.
پس از آن لازم است تا Permission مربوط به home دایرکتوری هر کاربر را با سطح دسترسی ۷۰۰ تنظیم نماییم :
حالا پس از انجام این تنظیمات میتوانیم درستی کارکرد آنرا بصورت زیر چک نماییم:
پس از اجرای دستور بالا خروجی بصورت زیر مشاهده خواهیم کرد زیرا همانطور که در ابتدا به آن اشاره شد تنها مجوز دسترسی SFTP امکانپذیر می باشد:
برقراری ارتباط sftp
دستور زیر را برای برقراری ارتباط sftp اجرا می کنیم:
در این حالت ارتباط ما بصورت SFTP برقرار می گردد و فقط دسترسی ایجاد یا مشاهده فایل در مسیر home/CBTNET/ وجود دارد: