PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ایجاد حساب کاربری ایزوله - SSH Jail



Lithium
August 22nd, 2018, 22:15
در این موضوع ما یک حساب کاربری خواهیم ساخت که در محیطی ایزوله مشغول به فعالیت‌های خود باشد.
کاربردهای بسیاری برای ایجاد یک محیط ایزوله وجود دارد که این مقاله آن را پوشش نخواهد داد و فقط به نحوه ایجاد آن خواهد پرداخت.

- در این مقاله نام حساب کاربری برای مثال lithium وارد شده است، در محیط های عملیاتی آن را با مقادیر دلخواه تغییر دهید.
ابتدا یک حساب کاربری برای محیط ایزوله خواهیم ساخت!

useradd lithium

در ادامه سطح دسترسی ها را تنظیم میکنیم...


chmod 755 /home
chmod 751 /home/lithium

- قرار دادن سطح دسترسی 751 به این جهت است که فرد امکان نوشتن در دایرکتوری مورد نظر را نداشته باشد!

در این مرحله اقدام به Bind کردن مسیرهای مورد نیاز میکنیم و برخی فایل‌های موردنیاز نیز انتقال خواهیم داد:


mkdir -p /home/lithium/{bin, usr, etc, lib, lib64, dev, usr/{lib64, lib, local, share}, proc, sbin, private}
mount --bind /bin /home/lithium/bin
mount --bind /usr /home/lithium/usr
mount --bind /etc /home/lithium/etc
mount --bind /lib /home/lithium/lib
mount --bind /lib64 /home/lithium/lib64
mount --bind /dev /home/lithium/dev
mount --bind /usr/lib /home/lithium/usr/lib
mount --bind /usr/lib64 /home/lithium/usr/lib64
mount --bind /usr/local /home/lithium/usr/local
mount --bind /usr/share /home/lithium/usr/share
mount --bind /proc /home/lithium/proc
cp /sbin/consoletype /home/lithium/sbin
chmod 770 /home/lithium/private


سپس اجازه دیدن پروسس‌های درحال اجرا توسط سایر کاربران را از این حساب خواهیم گرفت.


mount -o remount,rw,hidepid=2 /proc


جهت افزودن مدیریت دسترسی‌ها، فایل /etc/ssh/sshd_config را باز کرده و محتوای زیر را در انتهای آن قرار خواهیم داد:


Match Group jailedssh
ChrootDirectory /home/%u
AllowTcpForwarding no


سپس حساب کاربری ساخته شده را به این گروه اضافه می کنیم:


usermod -G jailedssh lithium


سپس دستور زیر را اجرا میکنیم تا دایرکتوری مربوطه مشمول تغییر قرار گیرد:


awk '{gsub("/home/lithium", "");print}' /etc/passwd > /tmp/passwd.tmp
rm -rf /etc/passwd && mv /tmp/passwd.tmp /etc/passwd


در نهایت سرویس SSH Server را Restart کرده و میتوانیم اطلاعات حساب کاربری مربوطه را به فردی که میخواهیم بدهیم تا در محیط ایزوله ما مشغول به فعالیت شود!

در صورت بروز هرگونه مشکل، مشکل خود را در همین تاپیک مطرح کنید.
- با آرزوی خوش!