محدود کردن دسترسی کاربران SFTP با استفاده از chroot jail

Telegram_GEEKBOY

در این مقاله در مورد اینکه چطور می توانیم دسترسی کاربران SFTP را به Home دایرکتوری خودشان یا به دایرکتوری مشخصی محدود کنیم، صحبت می کنیم. یعنی با استفاده از این روش که جلوتر توضیح داده خواهد شد هر کاربر تنها قادر به مشاهده Home دایرکتوری خودش بوده و امکان دسترسی داشتن به فایل های سیستمی را نخواهد داشت.

محدود کردن دسترسی کاربران در بسیاری از مواقع امری حیاتی است مخصوصا در محیط سرورهای اشتراک گذاری شده، چرا که در چنین شرایطی خطر دسترسی به فایل ها و اطلاعات کاربر توسط کاربری دیگر وجود دارد.

همچنین قابل ذکر است در این مقاله صرفا روش محدود کردن دسترسی SFTP آموزش داده می شود و در نهایت دسترسی مورد نیاز برای انتقال فایل ها را می توانیم پیاده سازی کنیم، اما مجوز برقراری ارتباط ssh وجود ندارد.

ساده ترین روش برای انجام این کار ایجاد محیط chroot برای دسترسی SFTP می باشد، این روش در تمامی نسخه های سیستم عامل لینوکس قابل اجرا می باشد.

مراحل:

بعنوان مثال می خواهیم دسترسی SFTP کاربر CBTNET را به Home دایرکتوری خودش که در مسیر home/CBTNET/ وجود دارد محدود کنیم:

قدم اول: یک گروه به نام sftpgroup ایجاد می نماییم.

.
# groupadd sftpgroup
.

قدم دوم: کاربر CBTNET را عضو گروه sftpgroup می کنیم.

.
# usermod -G sftpgroup CBTNET
.

حتی می توانیم با استفاده از دستور adduser کاربر جدیدی را تعریف کرده و به عضویت این گروه درآوریم.

.
# adduser test -g sftpgroup 
# passwd test

انجام تنظیمات بر روی کانفیگ فایل SSH:

فایل etc/ssh/ssh_config/ را با استفاده از ویرایشگر متن باز کرده و دستورات زیر را در انتهای فایل وارد می نماییم:

Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory /home
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

محتویات فایل را دخیره کرده و از آن خارج می شویم و سپس سرویس ssh را ریستارت می کنیم.

.
# service sshd restart
.

پس از آن لازم است تا Permission مربوط به home دایرکتوری هر کاربر را با سطح دسترسی 700 تنظیم نماییم:

.
chmod 700 /home/CBTNET
.

حالا پس از انجام این تنظیمات میتوانیم درستی کارکرد آنرا بصورت زیر چک نماییم:

.
# ssh CBTNET@192.168.1.150
.

پس از اجرای دستور بالا خروجی بصورت زیر مشاهده خواهیم کرد زیرا همانطور که در ابتدا به آن اشاره شد تنها مجوز دسترسی SFTP امکانپذیر می باشد:

CBTNET@192.168.1.150's password: 
Could not chdir to home directory /home/CBTNET: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.

برقراری ارتباط sftp

دستور زیر را برای برقراری ارتباط sftp اجرا می کنیم:

.
# sftp CBTNET@192.168.1.150
.

در این حالت ارتباط ما بصورت SFTP برقرار می گردد و فقط دسترسی ایجاد یا مشاهده فایل در مسیر home/CBTNET/ وجود دارد:

.
CBTNET@192.168.1.150's password: 
Connected to 192.168.1.150.
sftp>
.
منبع arashbabaei

ارسال یک نظر

آدرس ایمیل شما منتشر نخواهد شد.

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