در این مقاله با آموزش Change Root در لینوکس در خدمت شما هستم اما قبل از اینکه به اصل ماجرا برسیم باید بدانید که اصلا change root چیست ؟
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
Change Root چیست ؟
در سیستم عامل لینوکس بر خلاف ویندوز فایل سیستم به گونه ای طراحی شده است که تنها با یک فضا به عنوان روت سروکار داریم.در بعضی مواقع و برای بالا بردن امنیت سرویس هایی نظیر DNS این امکان وجود دارد که مسیر روت تغییر داده شده تا در صورتیکه سرویس مورد نظر دچار حمله و نفوذ گردد ، هکر تنها به بخش مشخص شده به عنوان روت دسترسی داشته و امکان دسترسی به تمام سیستم را نداشته باشد.به طور کلی تغییر مسیر روت چه برای فایل سیستم اصلی و چه برای یک سرویس خاص را Change Root می نامند.در ادامه مسیر //usr//chroot را ایجاد و شل اصلی سیستم عامل را به آن منتقل می کنیم.
mkdir /usr/chroot ; cd /usr/chroot
سپس پوشه های اصلی را در این مسیر بوجود می آوریم.
mkdir bin etc lib var home
هر فایل باینری در لینوکس برای اجرا نیاز به فایل های کتابخانه مورد نظر را دارد.برای تنظیمات Change Root و انتقال فایل باینری ، می بایست فایل های کتابخانه آن را نیز منتقل نماییم.برای این کار از دستور ldd کمک می گیریم.
ldd /bin/bash
خروجی این دستور به صورت زیر خواهد بود.
[root@localhost chroot]# ldd /bin/bash
linux-vdso.so.1 => (0x00007ffe3e74e000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007ff12b5bf000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff12b3bb000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff12aff9000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff12b7ff000)
تمامی فایل ها را به پوشه lib در مسیر usrchroot منتقل می کنیم.
ذر آخر نیز فایل باینری را به پوشه bin می بریم.
cp /bin/bash /usr/chroot/bin
حال با اجرای دستور chroot usrchroot وارد مسیر جدید می شویم.
[root@localhost chroot]# chroot /usr/chroot/
نکته : بر روی سیستم عامل های 64 بیتی چنانچه به خطای عدم وجود فایل bash مواجه شدید ، دستور زیر را در شل وارد نمایید.
mv /usr/chroot/lib /usr/chroot/lib64