🐧 چگونگی محدود کردن دسترسی کاربر به سیستم لینوکس – اطلاعات امنیت ملی

این سناریو را تصور کنید.

شما می خواهید کاربر بتواند تنها وظایف خاصی را انجام دهد و دستورات خاص را بر این اساس اجرا کند.

کاربر نباید متغیرها و مسیرهای محیطی را تغییر دهد.

خانه شما نیست ، و نمی توانید به سایر کاربران تغییر دهید و غیره.

[یککاربرمیتواندتنهاچنددستورازمدیرسیستمرااجراکند

آیا این امکان وجود دارد؟

بله!

این جایی است که Shell محدود شده به ما کمک می کند.

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

به محض اینکه کاربران را در حالت پوسته محدود قرار می دهید ، آنها فقط مجاز به اجرای دستورات محدودی هستند.

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

من این را بررسی کردم. کتابچه راهنمای کاربر روی حداقل سرور CentOS 7

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

پوسته محدود چیست؟

اول ، بگذارید روشن کنم که یک Shel محدود شده چیست.

این یک پوسته جداگانه نیست ، مانند Bash ، Korn Shell ، و غیره.

اگر پوسته موجود را با استفاده از گزینه های "rbash" ، "- محدود" ، "-r" اجرا کنید ، به یک پوسته محدود تبدیل می شود.

به عنوان مثال ، پوسته بورن می توانید با استفاده از دستور bsh -r ، و یک پوسته Korn با استفاده از دستور ksh -r ، آن را به عنوان یک پوسته محدود اجرا کنید.

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

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

  • به شما امکان نمی دهد دستور CD را اجرا کنید. بنابراین شما به جایی نخواهید رسید. شما فقط می توانید بمانید.
  • این به شما امکان نمی دهد مقادیر متغیرهای محیط $ $ PATH ، $ SHELL ، $ BASH_ENV یا $ ENV را تغییر دهید.
  • این [1945905] به شما امکان نمی دهد برنامه ای را اجرا کنید که حاوی شخصیت / (مایل) باشد. به عنوان مثال ، شما نمی توانید فرمان / usr bin / uname یا ./uname.ociation19659022-03 را اجرا کنید. می توانید دستور uname را اجرا کنید. به عبارت دیگر ، می توانید دستورات را فقط در مسیر فعلی اجرا کنید.
  • شما نمی توانید خروجی را با استفاده از اپراتورهای تغییر مسیر هدایت کنید '>' ، '> |'، '<>' ، '> &' ، '&>' و '>> ".
  • به شما اجازه نمی دهد از حالت پوسته محدود شده در اسکریپت ها خارج شوید.
  • این به شما اجازه نمی دهد حالت پوسته محدود شده را با استفاده از [غیرفعالکنید "set + r" یا "set + o limited" .

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

ابتدا یک نمادین ایجاد کنید

دستورات زیر باید بصورت ریشه اجرا شوند.

 # ln -s / bin / bash / bin / rbash 

سپس یک کاربر با نام "itsecforu" ایجاد کنید. "با استفاده از rbash به عنوان پیش فرض ورود به سیستم.

 # useradd itsecforu -s / bin / rbash 

گذرواژه را برای کاربر جدید تنظیم کنید.

 # passwd itsecforu 

یک پوشه بن را درون پوشه خانگی کاربر جدید ایجاد کنید.

 # mkdir / home / itsecforu / bin 

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


در مثال پوستر ، من می خواهم کف را مجاز کنم. تماس گیرنده فقط دستورات "ls" ، "mkdir" و "پینگ" را اجرا می کند.

شما می توانید دستورات مورد نظر خود را اختصاص دهید.

برای انجام این کار ، دستورات زیر را اجرا کنید:

 # ln -s / bin / ls / home / itsecforu / bin / ls 
 # ln -s / bin / mkdir / home / itsecforu / bin / mkdir 
 # ln -s / bin / ping / home / itsecforu / bin / ping 

حالا شما می فهمید چرا دایرکتوری بن را در مرحله قبل ایجاد کردیم.

کاربران نمی توانند هیچ دستور دیگری به جز سه دستور فوق را اجرا کنند.

در مرحله بعدی ، از تغییر کاربر جلوگیری کنید .bash_profile.

 # chown root. /home/itsecforu/.bash_profileociation19659047-03# chmod 755 /home/itsecforu/.bash_profileociation19659036-03 ویرایش پرونده /home/itsecforu/.bash_profile: 19919909055:51# vi /home/itsecforu/.bash_of PATH مطابق شکل زیر. 
[...]
 PATH = $ صفحه اصلی / سطل
[...] 

کلید ESC را فشار داده و وارد کنید: wq برای ذخیره و بستن پرونده.

اکنون که کاربر وارد سیستم شده است ، پوسته محدود شده (rbash) به عنوان پیش فرض پوسته کار می کند و پرونده .bash_profile را می خواند ، که PATH را روی $ HOME / bin تنظیم می کند تا کاربر فقط بتواند دستورات پینگ ls ، mkdir و را اجرا کند.

پوسته محدود شده اجازه نخواهد داد تا کاربر PATH را تغییر دهد و مجوز برای .bash_profile اجازه نخواهد داد تا محیط را تغییر دهد. محدودیت ها در جلسه ورود به سیستم بعدی.

بررسی رباش [19659033] اکنون به عنوان root وارد شوید و با کاربر تازه ایجاد شده وارد شوید ، در مورد ما itecforu.

سپس چند فرمان را اجرا کنید تا بررسی کنید که آیا این همه کار می کند یا خیر.

به عنوان مثال ، من می خواهم ترمینال را پاک کنم.

 $ paqij 

خروجی مثال:

 -rbash: clear: فرمان یافت نشد 

شما نمی توانید از دستور cd برای انتقال به فهرست دیگری استفاده کنید.

 cd / root 

مثال خروجی:

 -rbash: cd: limited 

همچنین نمی توانید با استفاده از> عملگر> خروجی را تغییر مسیر دهید.

 $ cat> file.txt 

خروجی مثال:

 -rbash: file.txt: محدود: می تواند نه خروجی تغییر مسیر 

کاربر "itsecforu" فقط می تواند از دستوراتی که شما (مدیر سیستم) به آنها اختصاص داده اید استفاده کند.

در مورد ما ، کاربر می تواند دستورات ls ، mkdir و پینگ را اجرا کند.

 $ ls 
 $ mkdir itsecforu.ru 
 $ ping-c 3 itsecforu.ru 

علاوه بر این سه دستور ، کاربر نمی تواند چیزی را اجرا کند.

او کاملاً تحت کنترل شما است.