محدود کردن دسترسی کاربران در زندان SFTP برای توزیع های دبیان و اوبونتو

بسم الله الرحمن الرحیم

يا راهي خواهم يافت , يا راهي خواهم ساخت

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

در این WorkShop تصمیم داریم که به شما کمک کنیم تا سرویس OpenSSH  سرورتون رو به نحوی کانفیک کنید که هر کاربر به Home Directory خودش محدود بشود و تنها دسرسی SFTP داشته باشد.

لطفا یادتون باشه و یه جایی هم یاد داشت کنید که هر کاربری رو که به این صورت محدود می کنید تنها دسترسی SFTP به سرور دارند و اجازه لاگین به سرور توسط SSH از آنها گرفته می شود. ( پس ۱۰۰% یادتون باشه که یوزر خودتون رو به این صورت کانفیگ نکنید که بیچاره می شید.- داغ دیدم که میگم بهتوناااا)

من این کانفیک رو برای Ubuntu Server 12.04 انجام دادم و۱۰۰% تضمین می کنم و فکر کنم برای Ubuntu 9.04 و Debian 5 هم جواب بده.

کانفیگ کردن OpenSSH:

در ابتدا لازم است که سراغ کانفیگ OpenSSH بریم.

۱- با ادیتور مورد علاقه خودتون فایل /etc/ssh/sshd_config file رو باز کنید:

vim /etc/ssh/sshd_config

۲- مانند زیر Subsystem sftp رو مانند زیر اگر نیست اضافه کنید و اگر هم هست مانند نمونه زیر تغییر بدین:

فایل در حال ویرایش: /etc/ssh/sshd_config

Subsystem sftp internal-sftp

۳-این قسمت از تنظیمات رو در انتهای فایل اضافه کنید:

فایل در حال ویرایش: /etc/ssh/sshd_config

Match group filetransfer
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

تغییراتی که دادین رو ذخیره کنید.

۴-با کامند sshd -t کانفیگ انجام شده رو تست می کنیم و اگر ایروری مشاهده نکردیم با کامند زیر سرویس OpenSSH رو ریستارت می کنیم:

/etc/init.d/ssh restart

خب تا اینجای کار سرویس OpenSSH ما با موفقیت کانفیگ شده.

 

ایجاد تغییرات لازم در اکانت های کاربران:

در این بخش قصد راه اندازی یک گروه جدید و یک مالکیت جدید(OwnerShip) و ایجاد تغییرات در پرمیژن های اکانت های کاربران یا همون user accounts رو داریم.

۱- یک گروه جدید بسازید برای کاربرانی که میخواهید دسترسیشون توسط SFTP محدود بشه:

addgroup filetransfer

۲-در این قسمت قصد داریم که حساب های کاربری کاربرهایی که قصد داریم محدودشون کنیم رو تغییر بدیم. با تغییر مناسب username در دستورات زیر مطابق با هر کار بر خود، دستورات زیر  رو برای هر اکانت تکرار کنید. لطفا در خاطر خود نگه دارید که هر یوزری رو که مطابق با دستورات زیر تغییر میدین دیگر دسترسی لاگین توسط ریموت شل رو هرگز نخواهند داشت، پس حتما حساب کاربری که باهاش لاگین می کنید و Sudo انجام میدینرو هرگز جزء این گروه قرار ندهید.

usermod -G filetransfer username
chown root:root /home/username
chmod 755 /home/username

یوزرهایی که در این قسمت تغییر دادین از الان به بعد دیگر نمی توانند که در home directory های خودشون فایلی رو ایجاد کنند، چون home directory های آنها متعلق به حساب کاربر ریشه یا همون Root شده است.

۳-در نهایت لازم است که برای هر کاربر در home directory خودش یک دایرکتوری جدید ایجاد کنید که به آن دسترسی کامل داشته باشد. کامندهای زیر رو برای هر کاربر تکرار کنید. دایرکتوری که قراره ایجاد بشه رو با دایرکتوری مناسب خودتون مطابقت بدین: (به عنوان مثال ما در اینجا دایرکتوری public_html رو ایجاد می کنیم.)

cd /home/username
mkdir docs public_html
chown username:filetransfer *

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

نويسنده: حامد چوبين

هرگونه کپي برداري تنها با ذکر منبع مجاز مي باشد.

منبع: گروه سرويس هاي لينوکسي


حامد چوبین

I'm Hamed Choobin, living in I.R.Iran-Qom experiencing Linux OSs since 2010, and has experiences with RedHat Enterprise Linux (RHEL) ,Community Enterprise OS (CentOS) ,Debian,Ubuntu.

مطالب مرتبط

5 دیدگاه‌

  1. hossein گفت:

    سلام من تمام این مراحلی که گفتید انجام دادم روی vps centos 6.5

    ولی موقع ایجاد فایل یا آپلود اررور سطح دسترسی میده
    Permission denied.
    Error code: 3
    Error message from server: Permission denied

    از برنامه WinSCP استفاده میکنم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *