محدود کردن دسترسی کاربران معمولی

وقتی یک تیم روی یک پروژه کار می‌کنه و هر کدام از بخش ها دارای وظایف کلیدی هستند و نیاز به دسترسی داده‌ها دارند. خیلی از این نیاز‌ها با ایجاد یک mirror از داده ها در داخل شرکت برآورده می‌شوند. مشکل از زمانی آغاز می‌شود که هر کدام از بخش‌ها نیاز پیدا میکنه که به داده‌های آنلاین دسترسی داشته باشه.

مطمئنا دادن کاربر root کار احمقانه ای است. نه به دلیل عدم اعتماد و دلنگرانی از سوء استفاده از دسترسی ها (که البته بهتره به این هم فکر کنیم)، بلکه به دلیل اینکه همه کاربر‌ها حساسیت مدیر سیستم را در کار با دستورات و خط فرمان ندارند و یه سهل انگاری کوچک ممکنه یک فاجعه به وجود بیاره. بهتره همیشه دسترسی ها در حداقل نیاز خودش حفظ بشه، تا نگرانی از یکپارچگی داده ها و سلامت آنها کمتر بشه.

اولین قدم این هست که به ازای هر نفر یک کاربر بر روی سرور ساخته بشه تا مشخص بشه، چه کسی به سرور متصل شده است.

sudo
یکی از حالتهای دادن دسترسی اینه که اشخاص نیاز دارند تا دسترسی زیادی به فایل سیستم و دستورات داشته باشند. در این حالت بهتره sudo را کانفیگ کنیدو نیاز هایی که داره را بر آورده کنید.

کاربر محدود
خیلی مواقع هست که لازم نیست، کاربر به همه منابع سیستم دسترسی داشته باشه. یا فقط نیاز به tunnel زدن داره. در این مواقع می‌تونید کاربر را محدود به همان استفاده ها بکنید.

SSH برای Tunnel
فرض کنید مسوول BI نیاز داره که روی سیستم خودش به داده های دیتابیس دسترسی داشته باشه. می تونید کاربر را محدود به استفاده از Tunnel کنید و هیچ پوسته فرمانی در اختیارش قرار ندید. برای اینکار کافیه ssh را به شکل زیر کانفیگ کنید. این تنظیمات در فایل etc/ssh/sshd_config/ اعمال شده است.

Match user biuser
AllowAgentForwarding no
PermitOpen 127.0.0.1:3306
ForceCommand echo ‘This account can only be used for ssh tunnel.’

در این حالت به هیچ گونه پوسته فرمانی دسترسی نداره. برای اینکه کاربر biuser بتونه Tunnel بزنه باید از گزینه N- استفاده کنه.

ssh -N -L 127.0.0.1:3306:127.0.0.1:3306 biuser@server.com

Chroot User به کمک سرویس ssh
سرویس ssh این امکان را به شما میده که کاربر ssh را در یک پوشه زندان کنید تا به بقیه فایل سیستم دسترسی نداشته باشد.
برای این کار اول از همه باید پوشه مورد نظر را آماده کنید. پوشه ای که تنظیمات و باینری‌های پایه برای داشتن یک پوسته فرمان محدود را فراهم می کند. من یک اسکریپت نصفه نیمه نوشتم که می تونه براتون این کار را انجام بده. البته خیلی کار داره ولی ساخت پوشه را انجام می ده. این اسکریپت را می تونید از اینجا بگیرید.
بعد از اینکه اسکریپت را اجرا کردید، کافیه پوشه خانگی کاربری که قراره محدود بشه را به مسیر home/chroot/home/ منتقل کنید و بعد تنظیمات زیر با به etc/ssh/sshd_config/ اضافه کنید.

Match user behrad
ChrootDirectory /home/chroot

دقت داشته باشید که بعد از هر تغییر در فایل sshd_config سرویس ssh را reload کنید.

 

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

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